@tokmizer/plugin 0.9.56 → 0.9.58

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.
Files changed (57) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +168 -9
  3. package/agent-plugins/amp.js +38 -0
  4. package/agent-plugins/hermes/__init__.py +39 -0
  5. package/agent-plugins/hermes/plugin.yaml +5 -0
  6. package/agent-plugins/kilo.js +40 -0
  7. package/agent-plugins/omp.js +32 -0
  8. package/agent-plugins/openclaw/index.js +39 -0
  9. package/agent-plugins/openclaw/openclaw.plugin.json +12 -0
  10. package/agent-plugins/openclaw/package.json +11 -0
  11. package/agent-plugins/opencode.js +40 -0
  12. package/agent-plugins/pi.js +30 -0
  13. package/codex-plugin/plugin.json +1 -1
  14. package/command-templates/tkr-gain.md +7 -2
  15. package/command-templates/tkr-link.md +1 -1
  16. package/command-templates/tkr-status.md +5 -3
  17. package/command-templates/tkr-telemetry.md +3 -3
  18. package/command-templates/tkr-unlink.md +2 -2
  19. package/dist/bin/tkr-agent-hook.js +11 -0
  20. package/dist/bin/tkr-codex-hook.js +131 -40
  21. package/dist/bin/tkr-copilot-hook.js +11 -0
  22. package/dist/bin/tkr-crush-hook.js +11 -0
  23. package/dist/bin/tkr-cursor-hook.js +11 -0
  24. package/dist/bin/tkr-daemon.js +161 -55
  25. package/dist/bin/tkr-droid-hook.js +11 -0
  26. package/dist/bin/tkr-exec +135 -42
  27. package/dist/bin/tkr-exec.js +135 -42
  28. package/dist/bin/tkr-gemini-hook.js +11 -0
  29. package/dist/bin/tkr-grok-hook.js +11 -0
  30. package/dist/bin/tkr-junie-hook.js +11 -0
  31. package/dist/bin/tkr-processor.js +162 -0
  32. package/dist/bin/tkr-qwen-hook.js +11 -0
  33. package/dist/bin/tkr-shim.js +131 -38
  34. package/dist/bin/tkr-trae-hook.js +11 -0
  35. package/dist/bin/tkr-zcode-hook.js +11 -0
  36. package/dist/bin/tkr.js +356 -152
  37. package/dist/hooks-host/post-tool-use.js +144 -48
  38. package/dist/hooks-host/pre-tool-use.js +8 -7
  39. package/dist/hooks-host/reducer-prompt-submit.js +1 -1
  40. package/dist/hooks-host/reducer-session-start.js +1 -1
  41. package/dist/hooks-host/reducer-stop.js +25 -16
  42. package/dist/hooks-host/session-recap.js +4 -3
  43. package/dist/index.js +125 -39
  44. package/dist/native/manifest.json +18 -8
  45. package/dist/native/single.json +38 -0
  46. package/dist/native/tkr-exec-darwin-arm64 +0 -0
  47. package/dist/native/tkr-exec-darwin-x64 +0 -0
  48. package/dist/native/tkr-exec-linux-arm64 +0 -0
  49. package/dist/native/tkr-exec-linux-x64 +0 -0
  50. package/dist/native/tkr-exec-win32-arm64.exe +0 -0
  51. package/dist/native/tkr-exec-win32-x64.exe +0 -0
  52. package/hooks/on-session-start.d.mts +1 -0
  53. package/hooks/on-session-start.mjs +25 -8
  54. package/package.json +24 -2
  55. package/scripts/README-INSTALL.md +13 -5
  56. package/scripts/install-mac-linux.sh +72 -6
  57. package/scripts/install-native.mjs +164 -25
@@ -1,71 +1,177 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var cc=Object.create;var Cr=Object.defineProperty;var uc=Object.getOwnPropertyDescriptor;var lc=Object.getOwnPropertyNames;var dc=Object.getPrototypeOf,fc=Object.prototype.hasOwnProperty;var we=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var $=(t,e,r)=>()=>{if(r)throw r[0];try{return t&&(e=t(t=0)),e}catch(n){throw r=[n],n}};var K=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Ye=(t,e)=>{for(var r in e)Cr(t,r,{get:e[r],enumerable:!0})},mc=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of lc(e))!fc.call(t,s)&&s!==r&&Cr(t,s,{get:()=>e[s],enumerable:!(n=uc(e,s))||n.enumerable});return t};var pc=(t,e,r)=>(r=t!=null?cc(dc(t)):{},mc(e||!t||!t.__esModule?Cr(r,"default",{value:t,enumerable:!0}):r,t));var C,Pr,b,oe,vt=$(()=>{(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw new Error}t.assertNever=r,t.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},t.getValidEnumValues=s=>{let o=t.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return t.objectValues(i)},t.objectValues=s=>t.objectKeys(s).map(function(o){return s[o]}),t.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},t.find=(s,o)=>{for(let i of s)if(o(i))return i},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}t.joinValues=n,t.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(C||(C={}));(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Pr||(Pr={}));b=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),oe=t=>{switch(typeof t){case"undefined":return b.undefined;case"string":return b.string;case"number":return Number.isNaN(t)?b.nan:b.number;case"boolean":return b.boolean;case"function":return b.function;case"bigint":return b.bigint;case"symbol":return b.symbol;case"object":return Array.isArray(t)?b.array:t===null?b.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?b.promise:typeof Map<"u"&&t instanceof Map?b.map:typeof Set<"u"&&t instanceof Set?b.set:typeof Date<"u"&&t instanceof Date?b.date:b.object;default:return b.unknown}}});var g,hc,H,Gt=$(()=>{vt();g=C.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"]),hc=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),H=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(o){return o.message},n={_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)n._errors.push(r(i));else{let a=n,c=0;for(;c<i.path.length;){let d=i.path[c];c===i.path.length-1?(a[d]=a[d]||{_errors:[]},a[d]._errors.push(r(i))):a[d]=a[d]||{_errors:[]},a=a[d],c++}}};return s(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,C.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];r[o]=r[o]||[],r[o].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};H.create=t=>new H(t)});var gc,le,Or=$(()=>{Gt();vt();gc=(t,e)=>{let r;switch(t.code){case g.invalid_type:t.received===b.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case g.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,C.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:r=`Unrecognized key(s) in object: ${C.joinValues(t.keys,", ")}`;break;case g.invalid_union:r="Invalid input";break;case g.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${C.joinValues(t.options)}`;break;case g.invalid_enum_value:r=`Invalid enum value. Expected ${C.joinValues(t.options)}, received '${t.received}'`;break;case g.invalid_arguments:r="Invalid function arguments";break;case g.invalid_return_type:r="Invalid function return type";break;case g.invalid_date:r="Invalid date";break;case g.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:C.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case g.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case g.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case g.custom:r="Invalid input";break;case g.invalid_intersection_types:r="Intersection results could not be merged";break;case g.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case g.not_finite:r="Number must be finite";break;default:r=e.defaultError,C.assertNever(t)}return{message:r}},le=gc});function yc(t){as=t}function Xe(){return as}var as,Wt=$(()=>{Or();as=le});function y(t,e){let r=Xe(),n=xt({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===le?void 0:le].filter(s=>!!s)});t.common.issues.push(n)}var xt,_c,B,E,Ie,j,Kt,qt,ve,Qe,Dr=$(()=>{Wt();Or();xt=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,o=[...r,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",c=n.filter(d=>!!d).slice().reverse();for(let d of c)a=d(i,{data:e,defaultError:a}).message;return{...s,path:o,message:a}},_c=[];B=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return E;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let o=await s.key,i=await s.value;n.push({key:o,value:i})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return E;o.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(n[o.value]=i.value)}return{status:e.value,value:n}}},E=Object.freeze({status:"aborted"}),Ie=t=>({status:"dirty",value:t}),j=t=>({status:"valid",value:t}),Kt=t=>t.status==="aborted",qt=t=>t.status==="dirty",ve=t=>t.status==="valid",Qe=t=>typeof Promise<"u"&&t instanceof Promise});var cs=$(()=>{});var v,us=$(()=>{(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(v||(v={}))});function R(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:s}}function ms(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Nc(t){return new RegExp(`^${ms(t)}$`)}function ps(t){let e=`${fs}T${ms(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Mc(t,e){return!!((e==="v4"||!e)&&Ac.test(t)||(e==="v6"||!e)&&Cc.test(t))}function Lc(t,e){if(!Sc.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Fc(t,e){return!!((e==="v4"||!e)&&Ic.test(t)||(e==="v6"||!e)&&Pc.test(t))}function Bc(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,o=Number.parseInt(t.toFixed(s).replace(".","")),i=Number.parseInt(e.toFixed(s).replace(".",""));return o%i/10**s}function et(t){if(t instanceof Z){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Y.create(et(n))}return new Z({...t._def,shape:()=>e})}else return t instanceof me?new me({...t._def,type:et(t.element)}):t instanceof Y?Y.create(et(t.unwrap())):t instanceof ae?ae.create(et(t.unwrap())):t instanceof ie?ie.create(t.items.map(e=>et(e))):t}function Nr(t,e){let r=oe(t),n=oe(e);if(t===e)return{valid:!0,data:t};if(r===b.object&&n===b.object){let s=C.objectKeys(e),o=C.objectKeys(t).filter(a=>s.indexOf(a)!==-1),i={...t,...e};for(let a of o){let c=Nr(t[a],e[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(r===b.array&&n===b.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let o=0;o<t.length;o++){let i=t[o],a=e[o],c=Nr(i,a);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return r===b.date&&n===b.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}function hs(t,e){return new je({values:t,typeName:S.ZodEnum,...R(e)})}function ds(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function gs(t,e={},r){return t?Ee.create().superRefine((n,s)=>{let o=t(n);if(o instanceof Promise)return o.then(i=>{if(!i){let a=ds(e,n),c=a.fatal??r??!0;s.addIssue({code:"custom",...a,fatal:c})}});if(!o){let i=ds(e,n),a=i.fatal??r??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ee.create()}var X,ls,A,bc,wc,vc,xc,Ec,Sc,kc,Tc,Rc,$r,Ac,Ic,Cc,Pc,Oc,Dc,fs,$c,xe,Ce,Pe,Oe,De,tt,$e,Ne,Ee,fe,ee,rt,me,Z,Me,de,Jt,Le,ie,Yt,nt,st,Xt,Fe,Be,je,Ue,Se,Q,Y,ae,ze,He,ot,jc,Et,St,Ze,Uc,S,zc,ys,_s,Hc,Zc,bs,Vc,Gc,Wc,Kc,qc,Jc,Yc,Xc,Qc,eu,tu,ru,nu,su,ou,iu,au,cu,uu,lu,du,fu,mu,pu,hu,gu,yu,_u,bu,wu,vu,xu,Eu,Su,ws=$(()=>{Gt();Wt();us();Dr();vt();X=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,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}},ls=(t,e)=>{if(ve(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new H(t.common.issues);return this._error=r,this._error}}};A=class{get description(){return this._def.description}_getType(e){return oe(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:oe(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new B,ctx:{common:e.parent.common,data:e.data,parsedType:oe(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Qe(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:oe(e)},s=this._parseSync({data:e,path:n.path,parent:n});return ls(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:oe(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return ve(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>ve(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:oe(e)},s=this._parse({data:e,path:n.path,parent:n}),o=await(Qe(s)?s:Promise.resolve(s));return ls(n,o)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,o)=>{let i=e(s),a=()=>o.addIssue({code:g.custom,...n(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new Q({schema:this,typeName:S.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,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:r=>this["~validate"](r)}}optional(){return Y.create(this,this._def)}nullable(){return ae.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return me.create(this)}promise(){return Se.create(this,this._def)}or(e){return Me.create([this,e],this._def)}and(e){return Le.create(this,e,this._def)}transform(e){return new Q({...R(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new ze({...R(this._def),innerType:this,defaultValue:r,typeName:S.ZodDefault})}brand(){return new Et({typeName:S.ZodBranded,type:this,...R(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new He({...R(this._def),innerType:this,catchValue:r,typeName:S.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return St.create(this,e)}readonly(){return Ze.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},bc=/^c[^\s-]{8,}$/i,wc=/^[0-9a-z]+$/,vc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,xc=/^[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,Ec=/^[a-z0-9_-]{21}$/i,Sc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,kc=/^[-+]?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)?)??$/,Tc=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Rc="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ac=/^(?:(?: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])$/,Ic=/^(?:(?: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])$/,Cc=/^(([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]))$/,Pc=/^(([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])$/,Oc=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Dc=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,fs="((\\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])))",$c=new RegExp(`^${fs}$`);xe=class t extends A{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==b.string){let o=this._getOrReturnCtx(e);return y(o,{code:g.invalid_type,expected:b.string,received:o.parsedType}),E}let n=new B,s;for(let o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")e.data.length>o.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){let i=e.data.length>o.value,a=e.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(e,s),i?y(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&y(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")Tc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"email",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")$r||($r=new RegExp(Rc,"u")),$r.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"emoji",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")xc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"uuid",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")Ec.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"nanoid",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")bc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"cuid",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")wc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"cuid2",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")vc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"ulid",code:g.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),y(s,{validation:"url",code:g.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"regex",code:g.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(e,s),y(s,{code:g.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(s=this._getOrReturnCtx(e,s),y(s,{code:g.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(s=this._getOrReturnCtx(e,s),y(s,{code:g.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?ps(o).test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{code:g.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?$c.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{code:g.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?Nc(o).test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{code:g.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?kc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"duration",code:g.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?Mc(e.data,o.version)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"ip",code:g.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?Lc(e.data,o.alg)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"jwt",code:g.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?Fc(e.data,o.version)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"cidr",code:g.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?Oc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"base64",code:g.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?Dc.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"base64url",code:g.invalid_string,message:o.message}),n.dirty()):C.assertNever(o);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(s=>e.test(s),{validation:r,code:g.invalid_string,...v.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...v.errToObj(e)})}url(e){return this._addCheck({kind:"url",...v.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...v.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...v.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...v.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...v.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...v.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...v.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...v.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...v.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...v.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...v.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...v.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...v.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...v.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...v.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...v.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...v.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...v.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...v.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...v.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...v.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...v.errToObj(r)})}nonempty(e){return this.min(1,v.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};xe.create=t=>new xe({checks:[],typeName:S.ZodString,coerce:t?.coerce??!1,...R(t)});Ce=class t extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==b.number){let o=this._getOrReturnCtx(e);return y(o,{code:g.invalid_type,expected:b.number,received:o.parsedType}),E}let n,s=new B;for(let o of this._def.checks)o.kind==="int"?C.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),y(n,{code:g.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),y(n,{code:g.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),y(n,{code:g.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Bc(e.data,o.value)!==0&&(n=this._getOrReturnCtx(e,n),y(n,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),y(n,{code:g.not_finite,message:o.message}),s.dirty()):C.assertNever(o);return{status:s.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,v.toString(r))}gt(e,r){return this.setLimit("min",e,!1,v.toString(r))}lte(e,r){return this.setLimit("max",e,!0,v.toString(r))}lt(e,r){return this.setLimit("max",e,!1,v.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:v.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:v.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:v.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:v.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&C.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};Ce.create=t=>new Ce({checks:[],typeName:S.ZodNumber,coerce:t?.coerce||!1,...R(t)});Pe=class t extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==b.bigint)return this._getInvalidInput(e);let n,s=new B;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),y(n,{code:g.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),y(n,{code:g.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),y(n,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):C.assertNever(o);return{status:s.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return y(r,{code:g.invalid_type,expected:b.bigint,received:r.parsedType}),E}gte(e,r){return this.setLimit("min",e,!0,v.toString(r))}gt(e,r){return this.setLimit("min",e,!1,v.toString(r))}lte(e,r){return this.setLimit("max",e,!0,v.toString(r))}lt(e,r){return this.setLimit("max",e,!1,v.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:v.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:v.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:v.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Pe.create=t=>new Pe({checks:[],typeName:S.ZodBigInt,coerce:t?.coerce??!1,...R(t)});Oe=class extends A{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==b.boolean){let n=this._getOrReturnCtx(e);return y(n,{code:g.invalid_type,expected:b.boolean,received:n.parsedType}),E}return j(e.data)}};Oe.create=t=>new Oe({typeName:S.ZodBoolean,coerce:t?.coerce||!1,...R(t)});De=class t extends A{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==b.date){let o=this._getOrReturnCtx(e);return y(o,{code:g.invalid_type,expected:b.date,received:o.parsedType}),E}if(Number.isNaN(e.data.getTime())){let o=this._getOrReturnCtx(e);return y(o,{code:g.invalid_date}),E}let n=new B,s;for(let o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:g.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:g.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):C.assertNever(o);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:v.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:v.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};De.create=t=>new De({checks:[],coerce:t?.coerce||!1,typeName:S.ZodDate,...R(t)});tt=class extends A{_parse(e){if(this._getType(e)!==b.symbol){let n=this._getOrReturnCtx(e);return y(n,{code:g.invalid_type,expected:b.symbol,received:n.parsedType}),E}return j(e.data)}};tt.create=t=>new tt({typeName:S.ZodSymbol,...R(t)});$e=class extends A{_parse(e){if(this._getType(e)!==b.undefined){let n=this._getOrReturnCtx(e);return y(n,{code:g.invalid_type,expected:b.undefined,received:n.parsedType}),E}return j(e.data)}};$e.create=t=>new $e({typeName:S.ZodUndefined,...R(t)});Ne=class extends A{_parse(e){if(this._getType(e)!==b.null){let n=this._getOrReturnCtx(e);return y(n,{code:g.invalid_type,expected:b.null,received:n.parsedType}),E}return j(e.data)}};Ne.create=t=>new Ne({typeName:S.ZodNull,...R(t)});Ee=class extends A{constructor(){super(...arguments),this._any=!0}_parse(e){return j(e.data)}};Ee.create=t=>new Ee({typeName:S.ZodAny,...R(t)});fe=class extends A{constructor(){super(...arguments),this._unknown=!0}_parse(e){return j(e.data)}};fe.create=t=>new fe({typeName:S.ZodUnknown,...R(t)});ee=class extends A{_parse(e){let r=this._getOrReturnCtx(e);return y(r,{code:g.invalid_type,expected:b.never,received:r.parsedType}),E}};ee.create=t=>new ee({typeName:S.ZodNever,...R(t)});rt=class extends A{_parse(e){if(this._getType(e)!==b.undefined){let n=this._getOrReturnCtx(e);return y(n,{code:g.invalid_type,expected:b.void,received:n.parsedType}),E}return j(e.data)}};rt.create=t=>new rt({typeName:S.ZodVoid,...R(t)});me=class t extends A{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==b.array)return y(r,{code:g.invalid_type,expected:b.array,received:r.parsedType}),E;if(s.exactLength!==null){let i=r.data.length>s.exactLength.value,a=r.data.length<s.exactLength.value;(i||a)&&(y(r,{code:i?g.too_big:g.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}),n.dirty())}if(s.minLength!==null&&r.data.length<s.minLength.value&&(y(r,{code:g.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&r.data.length>s.maxLength.value&&(y(r,{code:g.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((i,a)=>s.type._parseAsync(new X(r,i,r.path,a)))).then(i=>B.mergeArray(n,i));let o=[...r.data].map((i,a)=>s.type._parseSync(new X(r,i,r.path,a)));return B.mergeArray(n,o)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:v.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:v.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:v.toString(r)}})}nonempty(e){return this.min(1,e)}};me.create=(t,e)=>new me({type:t,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...R(e)});Z=class t extends A{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=C.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==b.object){let d=this._getOrReturnCtx(e);return y(d,{code:g.invalid_type,expected:b.object,received:d.parsedType}),E}let{status:n,ctx:s}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ee&&this._def.unknownKeys==="strip"))for(let d in s.data)i.includes(d)||a.push(d);let c=[];for(let d of i){let l=o[d],f=s.data[d];c.push({key:{status:"valid",value:d},value:l._parse(new X(s,f,s.path,d)),alwaysSet:d in s.data})}if(this._def.catchall instanceof ee){let d=this._def.unknownKeys;if(d==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(d==="strict")a.length>0&&(y(s,{code:g.unrecognized_keys,keys:a}),n.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let d=this._def.catchall;for(let l of a){let f=s.data[l];c.push({key:{status:"valid",value:l},value:d._parse(new X(s,f,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let d=[];for(let l of c){let f=await l.key,u=await l.value;d.push({key:f,value:u,alwaysSet:l.alwaysSet})}return d}).then(d=>B.mergeObjectSync(n,d)):B.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return v.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:v.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:S.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of C.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of C.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return et(this)}partial(e){let r={};for(let n of C.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of C.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof Y;)o=o._def.innerType;r[n]=o}return new t({...this._def,shape:()=>r})}keyof(){return hs(C.objectKeys(this.shape))}};Z.create=(t,e)=>new Z({shape:()=>t,unknownKeys:"strip",catchall:ee.create(),typeName:S.ZodObject,...R(e)});Z.strictCreate=(t,e)=>new Z({shape:()=>t,unknownKeys:"strict",catchall:ee.create(),typeName:S.ZodObject,...R(e)});Z.lazycreate=(t,e)=>new Z({shape:t,unknownKeys:"strip",catchall:ee.create(),typeName:S.ZodObject,...R(e)});Me=class extends A{_parse(e){let{ctx:r}=this._processInputParams(e),n=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 r.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new H(a.ctx.common.issues));return y(r,{code:g.invalid_union,unionErrors:i}),E}if(r.common.async)return Promise.all(n.map(async o=>{let i={...r,common:{...r.common,issues:[]},parent:null};return{result:await o._parseAsync({data:r.data,path:r.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let c of n){let d={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:d});if(l.status==="valid")return l;l.status==="dirty"&&!o&&(o={result:l,ctx:d}),d.common.issues.length&&i.push(d.common.issues)}if(o)return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(c=>new H(c));return y(r,{code:g.invalid_union,unionErrors:a}),E}}get options(){return this._def.options}};Me.create=(t,e)=>new Me({options:t,typeName:S.ZodUnion,...R(e)});de=t=>t instanceof Fe?de(t.schema):t instanceof Q?de(t.innerType()):t instanceof Be?[t.value]:t instanceof je?t.options:t instanceof Ue?C.objectValues(t.enum):t instanceof ze?de(t._def.innerType):t instanceof $e?[void 0]:t instanceof Ne?[null]:t instanceof Y?[void 0,...de(t.unwrap())]:t instanceof ae?[null,...de(t.unwrap())]:t instanceof Et||t instanceof Ze?de(t.unwrap()):t instanceof He?de(t._def.innerType):[],Jt=class t extends A{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==b.object)return y(r,{code:g.invalid_type,expected:b.object,received:r.parsedType}),E;let n=this.discriminator,s=r.data[n],o=this.optionsMap.get(s);return o?r.common.async?o._parseAsync({data:r.data,path:r.path,parent:r}):o._parseSync({data:r.data,path:r.path,parent:r}):(y(r,{code:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),E)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let o of r){let i=de(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);s.set(a,o)}}return new t({typeName:S.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...R(n)})}};Le=class extends A{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=(o,i)=>{if(Kt(o)||Kt(i))return E;let a=Nr(o.value,i.value);return a.valid?((qt(o)||qt(i))&&r.dirty(),{status:r.value,value:a.data}):(y(n,{code:g.invalid_intersection_types}),E)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Le.create=(t,e,r)=>new Le({left:t,right:e,typeName:S.ZodIntersection,...R(r)});ie=class t extends A{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==b.array)return y(n,{code:g.invalid_type,expected:b.array,received:n.parsedType}),E;if(n.data.length<this._def.items.length)return y(n,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),E;!this._def.rest&&n.data.length>this._def.items.length&&(y(n,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let o=[...n.data].map((i,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new X(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>B.mergeArray(r,i)):B.mergeArray(r,o)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};ie.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ie({items:t,typeName:S.ZodTuple,rest:null,...R(e)})};Yt=class t extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==b.object)return y(n,{code:g.invalid_type,expected:b.object,received:n.parsedType}),E;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in n.data)s.push({key:o._parse(new X(n,a,n.path,a)),value:i._parse(new X(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?B.mergeObjectAsync(r,s):B.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof A?new t({keyType:e,valueType:r,typeName:S.ZodRecord,...R(n)}):new t({keyType:xe.create(),valueType:e,typeName:S.ZodRecord,...R(r)})}},nt=class extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==b.map)return y(n,{code:g.invalid_type,expected:b.map,received:n.parsedType}),E;let s=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([a,c],d)=>({key:s._parse(new X(n,a,n.path,[d,"key"])),value:o._parse(new X(n,c,n.path,[d,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of i){let d=await c.key,l=await c.value;if(d.status==="aborted"||l.status==="aborted")return E;(d.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(d.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of i){let d=c.key,l=c.value;if(d.status==="aborted"||l.status==="aborted")return E;(d.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(d.value,l.value)}return{status:r.value,value:a}}}};nt.create=(t,e,r)=>new nt({valueType:e,keyType:t,typeName:S.ZodMap,...R(r)});st=class t extends A{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==b.set)return y(n,{code:g.invalid_type,expected:b.set,received:n.parsedType}),E;let s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(y(n,{code:g.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),r.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(y(n,{code:g.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let o=this._def.valueType;function i(c){let d=new Set;for(let l of c){if(l.status==="aborted")return E;l.status==="dirty"&&r.dirty(),d.add(l.value)}return{status:r.value,value:d}}let a=[...n.data.values()].map((c,d)=>o._parse(new X(n,c,n.path,d)));return n.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:v.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:v.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};st.create=(t,e)=>new st({valueType:t,minSize:null,maxSize:null,typeName:S.ZodSet,...R(e)});Xt=class t extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==b.function)return y(r,{code:g.invalid_type,expected:b.function,received:r.parsedType}),E;function n(a,c){return xt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Xe(),le].filter(d=>!!d),issueData:{code:g.invalid_arguments,argumentsError:c}})}function s(a,c){return xt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Xe(),le].filter(d=>!!d),issueData:{code:g.invalid_return_type,returnTypeError:c}})}let o={errorMap:r.common.contextualErrorMap},i=r.data;if(this._def.returns instanceof Se){let a=this;return j(async function(...c){let d=new H([]),l=await a._def.args.parseAsync(c,o).catch(h=>{throw d.addIssue(n(c,h)),d}),f=await Reflect.apply(i,this,l);return await a._def.returns._def.type.parseAsync(f,o).catch(h=>{throw d.addIssue(s(f,h)),d})})}else{let a=this;return j(function(...c){let d=a._def.args.safeParse(c,o);if(!d.success)throw new H([n(c,d.error)]);let l=Reflect.apply(i,this,d.data),f=a._def.returns.safeParse(l,o);if(!f.success)throw new H([s(l,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:ie.create(e).rest(fe.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||ie.create([]).rest(fe.create()),returns:r||fe.create(),typeName:S.ZodFunction,...R(n)})}},Fe=class extends A{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Fe.create=(t,e)=>new Fe({getter:t,typeName:S.ZodLazy,...R(e)});Be=class extends A{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return y(r,{received:r.data,code:g.invalid_literal,expected:this._def.value}),E}return{status:"valid",value:e.data}}get value(){return this._def.value}};Be.create=(t,e)=>new Be({value:t,typeName:S.ZodLiteral,...R(e)});je=class t extends A{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return y(r,{expected:C.joinValues(n),received:r.parsedType,code:g.invalid_type}),E}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return y(r,{received:r.data,code:g.invalid_enum_value,options:n}),E}return j(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};je.create=hs;Ue=class extends A{_parse(e){let r=C.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==b.string&&n.parsedType!==b.number){let s=C.objectValues(r);return y(n,{expected:C.joinValues(s),received:n.parsedType,code:g.invalid_type}),E}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=C.objectValues(r);return y(n,{received:n.data,code:g.invalid_enum_value,options:s}),E}return j(e.data)}get enum(){return this._def.values}};Ue.create=(t,e)=>new Ue({values:t,typeName:S.ZodNativeEnum,...R(e)});Se=class extends A{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==b.promise&&r.common.async===!1)return y(r,{code:g.invalid_type,expected:b.promise,received:r.parsedType}),E;let n=r.parsedType===b.promise?r.data:Promise.resolve(r.data);return j(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Se.create=(t,e)=>new Se({type:t,typeName:S.ZodPromise,...R(e)});Q=class extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,o={addIssue:i=>{y(n,i),i.fatal?r.abort():r.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(n.data,o);if(n.common.async)return Promise.resolve(i).then(async a=>{if(r.value==="aborted")return E;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?E:c.status==="dirty"?Ie(c.value):r.value==="dirty"?Ie(c.value):c});{if(r.value==="aborted")return E;let a=this._def.schema._parseSync({data:i,path:n.path,parent:n});return a.status==="aborted"?E:a.status==="dirty"?Ie(a.value):r.value==="dirty"?Ie(a.value):a}}if(s.type==="refinement"){let i=a=>{let c=s.refinement(a,o);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?E:(a.status==="dirty"&&r.dirty(),i(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?E:(a.status==="dirty"&&r.dirty(),i(a.value).then(()=>({status:r.value,value:a.value}))))}if(s.type==="transform")if(n.common.async===!1){let i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ve(i))return E;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:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>ve(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:r.value,value:a})):E);C.assertNever(s)}};Q.create=(t,e,r)=>new Q({schema:t,typeName:S.ZodEffects,effect:e,...R(r)});Q.createWithPreprocess=(t,e,r)=>new Q({schema:e,effect:{type:"preprocess",transform:t},typeName:S.ZodEffects,...R(r)});Y=class extends A{_parse(e){return this._getType(e)===b.undefined?j(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Y.create=(t,e)=>new Y({innerType:t,typeName:S.ZodOptional,...R(e)});ae=class extends A{_parse(e){return this._getType(e)===b.null?j(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ae.create=(t,e)=>new ae({innerType:t,typeName:S.ZodNullable,...R(e)});ze=class extends A{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===b.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ze.create=(t,e)=>new ze({innerType:t,typeName:S.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...R(e)});He=class extends A{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Qe(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new H(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new H(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};He.create=(t,e)=>new He({innerType:t,typeName:S.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...R(e)});ot=class extends A{_parse(e){if(this._getType(e)!==b.nan){let n=this._getOrReturnCtx(e);return y(n,{code:g.invalid_type,expected:b.nan,received:n.parsedType}),E}return{status:"valid",value:e.data}}};ot.create=t=>new ot({typeName:S.ZodNaN,...R(t)});jc=Symbol("zod_brand"),Et=class extends A{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},St=class t extends A{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?E:o.status==="dirty"?(r.dirty(),Ie(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?E:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:S.ZodPipeline})}},Ze=class extends A{_parse(e){let r=this._def.innerType._parse(e),n=s=>(ve(s)&&(s.value=Object.freeze(s.value)),s);return Qe(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};Ze.create=(t,e)=>new Ze({innerType:t,typeName:S.ZodReadonly,...R(e)});Uc={object:Z.lazycreate};(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(S||(S={}));zc=(t,e={message:`Input not instance of ${t.name}`})=>gs(r=>r instanceof t,e),ys=xe.create,_s=Ce.create,Hc=ot.create,Zc=Pe.create,bs=Oe.create,Vc=De.create,Gc=tt.create,Wc=$e.create,Kc=Ne.create,qc=Ee.create,Jc=fe.create,Yc=ee.create,Xc=rt.create,Qc=me.create,eu=Z.create,tu=Z.strictCreate,ru=Me.create,nu=Jt.create,su=Le.create,ou=ie.create,iu=Yt.create,au=nt.create,cu=st.create,uu=Xt.create,lu=Fe.create,du=Be.create,fu=je.create,mu=Ue.create,pu=Se.create,hu=Q.create,gu=Y.create,yu=ae.create,_u=Q.createWithPreprocess,bu=St.create,wu=()=>ys().optional(),vu=()=>_s().optional(),xu=()=>bs().optional(),Eu={string:(t=>xe.create({...t,coerce:!0})),number:(t=>Ce.create({...t,coerce:!0})),boolean:(t=>Oe.create({...t,coerce:!0})),bigint:(t=>Pe.create({...t,coerce:!0})),date:(t=>De.create({...t,coerce:!0}))},Su=E});var p={};Ye(p,{BRAND:()=>jc,DIRTY:()=>Ie,EMPTY_PATH:()=>_c,INVALID:()=>E,NEVER:()=>Su,OK:()=>j,ParseStatus:()=>B,Schema:()=>A,ZodAny:()=>Ee,ZodArray:()=>me,ZodBigInt:()=>Pe,ZodBoolean:()=>Oe,ZodBranded:()=>Et,ZodCatch:()=>He,ZodDate:()=>De,ZodDefault:()=>ze,ZodDiscriminatedUnion:()=>Jt,ZodEffects:()=>Q,ZodEnum:()=>je,ZodError:()=>H,ZodFirstPartyTypeKind:()=>S,ZodFunction:()=>Xt,ZodIntersection:()=>Le,ZodIssueCode:()=>g,ZodLazy:()=>Fe,ZodLiteral:()=>Be,ZodMap:()=>nt,ZodNaN:()=>ot,ZodNativeEnum:()=>Ue,ZodNever:()=>ee,ZodNull:()=>Ne,ZodNullable:()=>ae,ZodNumber:()=>Ce,ZodObject:()=>Z,ZodOptional:()=>Y,ZodParsedType:()=>b,ZodPipeline:()=>St,ZodPromise:()=>Se,ZodReadonly:()=>Ze,ZodRecord:()=>Yt,ZodSchema:()=>A,ZodSet:()=>st,ZodString:()=>xe,ZodSymbol:()=>tt,ZodTransformer:()=>Q,ZodTuple:()=>ie,ZodType:()=>A,ZodUndefined:()=>$e,ZodUnion:()=>Me,ZodUnknown:()=>fe,ZodVoid:()=>rt,addIssueToContext:()=>y,any:()=>qc,array:()=>Qc,bigint:()=>Zc,boolean:()=>bs,coerce:()=>Eu,custom:()=>gs,date:()=>Vc,datetimeRegex:()=>ps,defaultErrorMap:()=>le,discriminatedUnion:()=>nu,effect:()=>hu,enum:()=>fu,function:()=>uu,getErrorMap:()=>Xe,getParsedType:()=>oe,instanceof:()=>zc,intersection:()=>su,isAborted:()=>Kt,isAsync:()=>Qe,isDirty:()=>qt,isValid:()=>ve,late:()=>Uc,lazy:()=>lu,literal:()=>du,makeIssue:()=>xt,map:()=>au,nan:()=>Hc,nativeEnum:()=>mu,never:()=>Yc,null:()=>Kc,nullable:()=>yu,number:()=>_s,object:()=>eu,objectUtil:()=>Pr,oboolean:()=>xu,onumber:()=>vu,optional:()=>gu,ostring:()=>wu,pipeline:()=>bu,preprocess:()=>_u,promise:()=>pu,quotelessJson:()=>hc,record:()=>iu,set:()=>cu,setErrorMap:()=>yc,strictObject:()=>tu,string:()=>ys,symbol:()=>Gc,transformer:()=>hu,tuple:()=>ou,undefined:()=>Wc,union:()=>ru,unknown:()=>Jc,util:()=>C,void:()=>Xc});var Mr=$(()=>{Wt();Dr();cs();vt();ws();Gt()});var Ve=$(()=>{Mr();Mr()});var it,Qt=$(()=>{"use strict";Ve();it=p.object({slug:p.string().min(1).max(64),description:p.string().max(255).optional(),match_command:p.string().min(1),priority:p.number().int().default(50),strip_ansi:p.boolean().default(!1),strip_lines_matching:p.array(p.string()).default([]),keep_failures:p.boolean().default(!1),fold_passing:p.boolean().default(!1),fold_passing_threshold:p.number().int().positive().max(1e3).optional(),mask_abs_paths:p.boolean().default(!1),preserve_exact:p.boolean().default(!1),truncate_lines_at:p.number().int().positive().max(1e4).optional(),max_lines:p.number().int().positive().max(1e5).optional(),scale_with_level:p.boolean().default(!0),transform:p.string().max(64).optional(),on_empty:p.string().max(255).optional()})});function ke(t){return JSON.stringify(t)+at}function*er(t){let e=0;for(;;){let r=t.indexOf(at,e);if(r<0)return;yield t.slice(e,r),e=r+1}}function kt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var ku,Tu,Ru,Au,vs,cg,ug,xs,at,Es,Lr=$(()=>{"use strict";Ve();Qt();ku=p.object({id:p.string().min(1).max(64),op:p.literal("filter"),cmd:p.string().min(1).max(2048),plan:p.enum(["trial","smart","pro"]),allowed:p.array(p.string().min(1).max(64)).max(512).optional(),installId:p.string().min(1).max(64).optional()}),Tu=p.object({id:p.string().min(1).max(64),op:p.literal("ping")}),Ru=p.object({id:p.string().min(1).max(64),op:p.literal("shutdown"),installId:p.string().min(1).max(64)}),Au=p.object({id:p.string().min(1).max(64),op:p.literal("reload"),installId:p.string().min(1).max(64).optional()}),vs=p.discriminatedUnion("op",[ku,Tu,Ru,Au]),cg=p.object({id:p.string(),ok:p.literal(!0),data:p.unknown()}),ug=p.object({id:p.string(),ok:p.literal(!1),err:p.string(),retryAfterMs:p.number().int().nonnegative().optional()}),xs=p.object({filter:it.nullable(),cacheHit:p.boolean().optional()}),at=`
4
- `,Es=64*1024});import Ss from"node:os";import{join as ce}from"node:path";function x(){return process.env.TOKMIZER_HOME||ce(Ss.homedir(),".tokmizer")}function Tt(){return ce(x(),"install-id")}function Fr(){return ce(x(),"bundle-refresh.json")}function tr(){return ce(x(),"skills")}function Rt(t){return ce(tr(),`${t}.md`)}function At(){return ce(x(),"content-cache")}function ks(t){return ce(At(),t)}function Br(){return ce(x(),"managed-commands.json")}function jr(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||ce(Ss.homedir(),".claude","commands")}function ct(t){return ce(jr(),`${t}.md`)}var M=$(()=>{"use strict"});import Iu from"node:os";import{join as It}from"node:path";import{existsSync as Cu,statSync as Pu,lstatSync as Ts,unlinkSync as Ou,mkdirSync as Du,chmodSync as $u}from"node:fs";import{createHash as Nu}from"node:crypto";function Mu(t){let e=Nu("sha256").update(x()).digest("hex").slice(0,8),r=It(Iu.tmpdir(),`tkr-${t}-${e}`),n=It(r,"d.sock");if(Buffer.byteLength(n)>Ur)throw new Error("Temporary directory path is too long for IPC");return Rs(r,t),n}function Lu(t,e){try{let r=Ts(t);return r.isDirectory()&&r.uid===e&&(r.mode&63)===0}catch{return!1}}function Rs(t,e){Du(t,{recursive:!0,mode:448});let r=Ts(t);if(!r.isDirectory()||r.uid!==e)throw new Error("Unsafe IPC directory");$u(t,448)}function pe(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let t=typeof process.getuid=="function"?process.getuid():0,e=process.env.XDG_RUNTIME_DIR;if(e&&Lu(e,t)){let s=It(e,`tokmizer-${t}.sock`);if(Buffer.byteLength(s)<=Ur)return{path:s,isPipe:!1}}let r=It(x(),"run"),n=It(r,"daemon.sock");return Buffer.byteLength(n)>Ur?{path:Mu(t),isPipe:!1}:(Rs(r,t),{path:n,isPipe:!1})}async function Ct(){let{path:t,isPipe:e}=pe();if(e||!Cu(t))return;try{if(!Pu(t).isSocket())return}catch{return}let r=await import("node:net");if(!await new Promise(s=>{let o=r.createConnection(t),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let c=a.code;i(c!=="ECONNREFUSED"&&c!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{Ou(t)}catch{}}function Cs(){let t=process.ppid;if(!t||t===1)return!1;try{return process.kill(t,0),!0}catch{return!1}}var Ur,As,Is,rr=$(()=>{"use strict";M();Ur=100;As=3e4,Is=5*6e4});import{createHash as Fu}from"node:crypto";function V(t){let e=Ps.get(t);return e||(e=Fu("sha256").update(`tkr:${t}`).digest("hex").slice(0,16),Ps.set(t,e)),e}function nr(t,e=!1){return e||!t||t.length===0?(Os??=new Set(Uu.map(V)),new Set(Os)):new Set(t.map(r=>zu.test(r)?r:V(r)))}var Bu,ju,ut,Uu,zu,Ps,Os,Ge=$(()=>{"use strict";Ve();Bu=p.enum(["normal","compact","minimal"]),ju=p.enum(["off","light","balanced","max"]),ut=p.object({enabled:p.boolean().default(!0),telemetryOptIn:p.boolean().default(!0),outputVerbosity:Bu.default("compact"),reducer:ju.default("off"),filters:p.object({enableAll:p.boolean().default(!0),disabled:p.array(p.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Uu=["git","git-status","git-log","git-diff","grep","find","diff","ls","ls-long","ps","cat","head","tail","df","du","tree","wc","nl","xargs","seq","echo","printf","sleep","shasum","python","node","read-tool","grep-tool","glob-tool","bash-tool","npm","npm-test","docker","kubectl","curl","cargo","go-test","go-build","gh","gh-api","aws","dotnet","prisma","tsc","next","jest","vitest","pytest","pip","rspec"],zu=/^[0-9a-f]{16}$/,Ps=new Map;Os=null});import{join as zr}from"node:path";import{mkdir as Zu,readFile as Vu,writeFile as Gu,unlink as $s,rename as Wu}from"node:fs/promises";function or(){try{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return t&&t.length>0?t:"Etc/UTC"}catch{return"Etc/UTC"}}function Zr(t){return t?.dir??x()}async function L(t){let e=Zr(t);try{let r=await Vu(zr(e,Hr),"utf8"),n=JSON.parse(r),s=n.timeZone;return{...n,lastSettingsRevision:n.lastSettingsRevision??0,get timeZone(){return s??=or()},bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}async function Vr(t,e){let r=Zr(e);await Zu(r,{recursive:!0}),t.installedAt==null&&(t.installedAt=Math.floor(Date.now()/1e3));let n=zr(r,Hr),s=`${n}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Gu(s,JSON.stringify(t,null,2),{mode:384});try{await Wu(s,n)}catch(o){try{await $s(s)}catch{}throw o}}async function Ns(t){let e=Zr(t);try{await $s(zr(e,Hr))}catch{return}}var Hr,he=$(()=>{"use strict";M();Hr="state.json"});import{createRequire as Ku}from"node:module";function Ju(){for(let t of["../package.json","../../package.json"])try{let e=qu(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}function lt(t,e){if(!t||!e)return!1;let r=t.split(".").map(s=>parseInt(s,10)),n=e.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=r[s]??0,i=n[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var qu,q,We=$(()=>{"use strict";qu=Ku(import.meta.url);q=Ju()});var Ms,Ls=$(()=>{"use strict";Ms=`-----BEGIN PUBLIC KEY-----
3
+ var Zd=Object.create;var ws=Object.defineProperty;var Jd=Object.getOwnPropertyDescriptor;var Vd=Object.getOwnPropertyNames;var Wd=Object.getPrototypeOf,Kd=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 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}},Pe=(e,t)=>{for(var n in t)ws(e,n,{get:t[n],enumerable:!0})},Yd=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Vd(t))!Kd.call(e,s)&&s!==n&&ws(e,s,{get:()=>t[s],enumerable:!(r=Jd(t,s))||r.enumerable});return e};var qd=(e,t,n)=>(n=e!=null?Zd(Wd(e)):{},Yd(t||!e||!e.__esModule?ws(n,"default",{value:e,enumerable:!0}):n,e));var D,_s,S,Se,pn=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})(D||(D={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(_s||(_s={}));S=D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Se=e=>{switch(typeof e){case"undefined":return S.undefined;case"string":return S.string;case"number":return Number.isNaN(e)?S.nan:S.number;case"boolean":return S.boolean;case"function":return S.function;case"bigint":return S.bigint;case"symbol":return S.symbol;case"object":return Array.isArray(e)?S.array:e===null?S.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?S.promise:typeof Map<"u"&&e instanceof Map?S.map:typeof Set<"u"&&e instanceof Set?S.set:typeof Date<"u"&&e instanceof Date?S.date:S.object;default:return S.unknown}}});var g,Xd,te,sr=b(()=>{pn();g=D.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"]),Xd=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),te=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 c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],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,D.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()}};te.create=e=>new te(e)});var Qd,Ne,Ss=b(()=>{sr();pn();Qd=(e,t)=>{let n;switch(e.code){case g.invalid_type:e.received===S.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case g.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,D.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:n=`Unrecognized key(s) in object: ${D.joinValues(e.keys,", ")}`;break;case g.invalid_union:n="Invalid input";break;case g.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${D.joinValues(e.options)}`;break;case g.invalid_enum_value:n=`Invalid enum value. Expected ${D.joinValues(e.options)}, received '${e.received}'`;break;case g.invalid_arguments:n="Invalid function arguments";break;case g.invalid_return_type:n="Invalid function return type";break;case g.invalid_date:n="Invalid date";break;case g.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}"`:D.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case g.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 g.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 g.custom:n="Invalid input";break;case g.invalid_intersection_types:n="Intersection results could not be merged";break;case g.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case g.not_finite:n="Number must be finite";break;default:n=t.defaultError,D.assertNever(e)}return{message:n}},Ne=Qd});function em(e){Zi=e}function Ct(){return Zi}var Zi,or=b(()=>{Ss();Zi=Ne});function w(e,t){let n=Ct(),r=hn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Ne?void 0:Ne].filter(s=>!!s)});e.common.issues.push(r)}var hn,tm,Y,R,tt,q,ir,ar,ze,It,vs=b(()=>{or();Ss();hn=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(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},tm=[];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"}),tt=e=>({status:"dirty",value:e}),q=e=>({status:"valid",value:e}),ir=e=>e.status==="aborted",ar=e=>e.status==="dirty",ze=e=>e.status==="valid",It=e=>typeof Promise<"u"&&e instanceof Promise});var Ji=b(()=>{});var v,Vi=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 qi(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 bm(e){return new RegExp(`^${qi(e)}$`)}function Xi(e){let t=`${Yi}T${qi(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 km(e,t){return!!((t==="v4"||!t)&&fm.test(e)||(t==="v6"||!t)&&mm.test(e))}function wm(e,t){if(!am.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function _m(e,t){return!!((t==="v4"||!t)&&dm.test(e)||(t==="v6"||!t)&&pm.test(e))}function Sm(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 Ot(e){if(e instanceof ne){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ce.create(Ot(r))}return new ne({...e._def,shape:()=>t})}else return e instanceof Fe?new Fe({...e._def,type:Ot(e.element)}):e instanceof ce?ce.create(Ot(e.unwrap())):e instanceof xe?xe.create(Ot(e.unwrap())):e instanceof ve?ve.create(e.items.map(t=>Ot(t))):e}function Es(e,t){let n=Se(e),r=Se(t);if(e===t)return{valid:!0,data:e};if(n===S.object&&r===S.object){let s=D.objectKeys(t),o=D.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Es(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===S.array&&r===S.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Es(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===S.date&&r===S.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function Qi(e,t){return new dt({values:e,typeName:$.ZodEnum,...P(t)})}function Ki(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function ea(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=Ki(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=Ki(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ze.create()}var ue,Wi,N,nm,rm,sm,om,im,am,lm,cm,um,xs,fm,dm,mm,pm,hm,gm,Yi,ym,Ge,nt,rt,st,ot,Pt,it,at,Ze,Me,he,Nt,Fe,ne,lt,De,lr,ct,ve,cr,Dt,Mt,ur,ut,ft,dt,mt,Je,fe,ce,xe,pt,ht,Ft,vm,gn,yn,gt,xm,$,Em,ta,na,Tm,Rm,ra,Am,$m,Cm,Im,Om,Pm,Nm,Dm,Mm,Fm,Lm,jm,Bm,Hm,Um,zm,Gm,Zm,Jm,Vm,Wm,Km,Ym,qm,Xm,Qm,ep,tp,np,rp,sp,op,ip,ap,sa=b(()=>{sr();or();Vi();vs();pn();ue=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}},Wi=(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 te(e.common.issues);return this._error=n,this._error}}};N=class{get description(){return this._def.description}_getType(t){return Se(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Se(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:Se(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:Se(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Wi(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Se(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:Se(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(It(s)?s:Promise.resolve(s));return Wi(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:g.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 fe({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 ce.create(this,this._def)}nullable(){return xe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Fe.create(this)}promise(){return Je.create(this,this._def)}or(t){return lt.create([this,t],this._def)}and(t){return ct.create(this,t,this._def)}transform(t){return new fe({...P(this._def),schema:this,typeName:$.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new pt({...P(this._def),innerType:this,defaultValue:n,typeName:$.ZodDefault})}brand(){return new gn({typeName:$.ZodBranded,type:this,...P(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new ht({...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 yn.create(this,t)}readonly(){return gt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nm=/^c[^\s-]{8,}$/i,rm=/^[0-9a-z]+$/,sm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,om=/^[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,im=/^[a-z0-9_-]{21}$/i,am=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,lm=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,cm=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,um="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",fm=/^(?:(?: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])$/,dm=/^(?:(?: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])$/,mm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,pm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,hm=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gm=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Yi="((\\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])))",ym=new RegExp(`^${Yi}$`);Ge=class e extends N{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==S.string){let o=this._getOrReturnCtx(t);return w(o,{code:g.invalid_type,expected:S.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),w(s,{code:g.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),w(s,{code:g.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?w(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&w(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")cm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"email",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")xs||(xs=new RegExp(um,"u")),xs.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"emoji",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")om.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"uuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")im.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"nanoid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")nm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"cuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")rm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"cuid2",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")sm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"ulid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),w(s,{validation:"url",code:g.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),w(s,{validation:"regex",code:g.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),w(s,{code:g.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),w(s,{code:g.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),w(s,{code:g.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?Xi(o).test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{code:g.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?ym.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{code:g.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?bm(o).test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{code:g.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?lm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"duration",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?km(t.data,o.version)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"ip",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?wm(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"jwt",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?_m(t.data,o.version)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"cidr",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?hm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"base64",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?gm.test(t.data)||(s=this._getOrReturnCtx(t,s),w(s,{validation:"base64url",code:g.invalid_string,message:o.message}),r.dirty()):D.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:g.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}};Ge.create=e=>new Ge({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...P(e)});nt=class e extends N{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==S.number){let o=this._getOrReturnCtx(t);return w(o,{code:g.invalid_type,expected:S.number,received:o.parsedType}),R}let r,s=new Y;for(let o of this._def.checks)o.kind==="int"?D.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),w(r,{code:g.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),w(r,{code:g.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),w(r,{code:g.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Sm(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),w(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),w(r,{code:g.not_finite,message:o.message}),s.dirty()):D.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"&&D.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)}};nt.create=e=>new nt({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...P(e)});rt=class e extends N{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==S.bigint)return this._getInvalidInput(t);let r,s=new Y;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),w(r,{code:g.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),w(r,{code:g.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),w(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):D.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return w(n,{code:g.invalid_type,expected:S.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}};rt.create=e=>new rt({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...P(e)});st=class extends N{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==S.boolean){let r=this._getOrReturnCtx(t);return w(r,{code:g.invalid_type,expected:S.boolean,received:r.parsedType}),R}return q(t.data)}};st.create=e=>new st({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...P(e)});ot=class e extends N{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==S.date){let o=this._getOrReturnCtx(t);return w(o,{code:g.invalid_type,expected:S.date,received:o.parsedType}),R}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return w(o,{code:g.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),w(s,{code:g.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),w(s,{code:g.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):D.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}};ot.create=e=>new ot({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...P(e)});Pt=class extends N{_parse(t){if(this._getType(t)!==S.symbol){let r=this._getOrReturnCtx(t);return w(r,{code:g.invalid_type,expected:S.symbol,received:r.parsedType}),R}return q(t.data)}};Pt.create=e=>new Pt({typeName:$.ZodSymbol,...P(e)});it=class extends N{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return w(r,{code:g.invalid_type,expected:S.undefined,received:r.parsedType}),R}return q(t.data)}};it.create=e=>new it({typeName:$.ZodUndefined,...P(e)});at=class extends N{_parse(t){if(this._getType(t)!==S.null){let r=this._getOrReturnCtx(t);return w(r,{code:g.invalid_type,expected:S.null,received:r.parsedType}),R}return q(t.data)}};at.create=e=>new at({typeName:$.ZodNull,...P(e)});Ze=class extends N{constructor(){super(...arguments),this._any=!0}_parse(t){return q(t.data)}};Ze.create=e=>new Ze({typeName:$.ZodAny,...P(e)});Me=class extends N{constructor(){super(...arguments),this._unknown=!0}_parse(t){return q(t.data)}};Me.create=e=>new Me({typeName:$.ZodUnknown,...P(e)});he=class extends N{_parse(t){let n=this._getOrReturnCtx(t);return w(n,{code:g.invalid_type,expected:S.never,received:n.parsedType}),R}};he.create=e=>new he({typeName:$.ZodNever,...P(e)});Nt=class extends N{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return w(r,{code:g.invalid_type,expected:S.void,received:r.parsedType}),R}return q(t.data)}};Nt.create=e=>new Nt({typeName:$.ZodVoid,...P(e)});Fe=class e extends N{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==S.array)return w(n,{code:g.invalid_type,expected:S.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)&&(w(n,{code:i?g.too_big:g.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&&(w(n,{code:g.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&&(w(n,{code:g.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 ue(n,i,n.path,a)))).then(i=>Y.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new ue(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)});ne=class e extends N{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=D.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==S.object){let c=this._getOrReturnCtx(t);return w(c,{code:g.invalid_type,expected:S.object,received:c.parsedType}),R}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof he&&this._def.unknownKeys==="strip"))for(let c in s.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let f=o[c],u=s.data[c];l.push({key:{status:"valid",value:c},value:f._parse(new ue(s,u,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof he){let c=this._def.unknownKeys;if(c==="passthrough")for(let f of a)l.push({key:{status:"valid",value:f},value:{status:"valid",value:s.data[f]}});else if(c==="strict")a.length>0&&(w(s,{code:g.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let f of a){let u=s.data[f];l.push({key:{status:"valid",value:f},value:c._parse(new ue(s,u,s.path,f)),alwaysSet:f in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let f of l){let u=await f.key,d=await f.value;c.push({key:u,value:d,alwaysSet:f.alwaysSet})}return c}).then(c=>Y.mergeObjectSync(r,c)):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 D.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 D.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ot(this)}partial(t){let n={};for(let r of D.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 D.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof ce;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Qi(D.objectKeys(this.shape))}};ne.create=(e,t)=>new ne({shape:()=>e,unknownKeys:"strip",catchall:he.create(),typeName:$.ZodObject,...P(t)});ne.strictCreate=(e,t)=>new ne({shape:()=>e,unknownKeys:"strict",catchall:he.create(),typeName:$.ZodObject,...P(t)});ne.lazycreate=(e,t)=>new ne({shape:e,unknownKeys:"strip",catchall:he.create(),typeName:$.ZodObject,...P(t)});lt=class extends N{_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 te(a.ctx.common.issues));return w(n,{code:g.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 c={...n,common:{...n.common,issues:[]},parent:null},f=l._parseSync({data:n.data,path:n.path,parent:c});if(f.status==="valid")return f;f.status==="dirty"&&!o&&(o={result:f,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new te(l));return w(n,{code:g.invalid_union,unionErrors:a}),R}}get options(){return this._def.options}};lt.create=(e,t)=>new lt({options:e,typeName:$.ZodUnion,...P(t)});De=e=>e instanceof ut?De(e.schema):e instanceof fe?De(e.innerType()):e instanceof ft?[e.value]:e instanceof dt?e.options:e instanceof mt?D.objectValues(e.enum):e instanceof pt?De(e._def.innerType):e instanceof it?[void 0]:e instanceof at?[null]:e instanceof ce?[void 0,...De(e.unwrap())]:e instanceof xe?[null,...De(e.unwrap())]:e instanceof gn||e instanceof gt?De(e.unwrap()):e instanceof ht?De(e._def.innerType):[],lr=class e extends N{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.object)return w(n,{code:g.invalid_type,expected:S.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}):(w(n,{code:g.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=De(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 N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(ir(o)||ir(i))return R;let a=Es(o.value,i.value);return a.valid?((ar(o)||ar(i))&&n.dirty(),{status:n.value,value:a.data}):(w(r,{code:g.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)});ve=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.array)return w(r,{code:g.invalid_type,expected:S.array,received:r.parsedType}),R;if(r.data.length<this._def.items.length)return w(r,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),R;!this._def.rest&&r.data.length>this._def.items.length&&(w(r,{code:g.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 ue(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})}};ve.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ve({items:e,typeName:$.ZodTuple,rest:null,...P(t)})};cr=class e extends N{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.object)return w(r,{code:g.invalid_type,expected:S.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 ue(r,a,r.path,a)),value:i._parse(new ue(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 N?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...P(r)}):new e({keyType:Ge.create(),valueType:t,typeName:$.ZodRecord,...P(n)})}},Dt=class extends N{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.map)return w(r,{code:g.invalid_type,expected:S.map,received:r.parsedType}),R;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:s._parse(new ue(r,a,r.path,[c,"key"])),value:o._parse(new ue(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,f=await l.value;if(c.status==="aborted"||f.status==="aborted")return R;(c.status==="dirty"||f.status==="dirty")&&n.dirty(),a.set(c.value,f.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let c=l.key,f=l.value;if(c.status==="aborted"||f.status==="aborted")return R;(c.status==="dirty"||f.status==="dirty")&&n.dirty(),a.set(c.value,f.value)}return{status:n.value,value:a}}}};Dt.create=(e,t,n)=>new Dt({valueType:t,keyType:e,typeName:$.ZodMap,...P(n)});Mt=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.set)return w(r,{code:g.invalid_type,expected:S.set,received:r.parsedType}),R;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(w(r,{code:g.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&&(w(r,{code:g.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 c=new Set;for(let f of l){if(f.status==="aborted")return R;f.status==="dirty"&&n.dirty(),c.add(f.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>o._parse(new ue(r,l,r.path,c)));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)}};Mt.create=(e,t)=>new Mt({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...P(t)});ur=class e extends N{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.function)return w(n,{code:g.invalid_type,expected:S.function,received:n.parsedType}),R;function r(a,l){return hn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ct(),Ne].filter(c=>!!c),issueData:{code:g.invalid_arguments,argumentsError:l}})}function s(a,l){return hn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ct(),Ne].filter(c=>!!c),issueData:{code:g.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Je){let a=this;return q(async function(...l){let c=new te([]),f=await a._def.args.parseAsync(l,o).catch(m=>{throw c.addIssue(r(l,m)),c}),u=await Reflect.apply(i,this,f);return await a._def.returns._def.type.parseAsync(u,o).catch(m=>{throw c.addIssue(s(u,m)),c})})}else{let a=this;return q(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new te([r(l,c.error)]);let f=Reflect.apply(i,this,c.data),u=a._def.returns.safeParse(f,o);if(!u.success)throw new te([s(f,u.error)]);return u.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:ve.create(t).rest(Me.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||ve.create([]).rest(Me.create()),returns:n||Me.create(),typeName:$.ZodFunction,...P(r)})}},ut=class extends N{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})}};ut.create=(e,t)=>new ut({getter:e,typeName:$.ZodLazy,...P(t)});ft=class extends N{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return w(n,{received:n.data,code:g.invalid_literal,expected:this._def.value}),R}return{status:"valid",value:t.data}}get value(){return this._def.value}};ft.create=(e,t)=>new ft({value:e,typeName:$.ZodLiteral,...P(t)});dt=class e extends N{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return w(n,{expected:D.joinValues(r),received:n.parsedType,code:g.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 w(n,{received:n.data,code:g.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})}};dt.create=Qi;mt=class extends N{_parse(t){let n=D.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==S.string&&r.parsedType!==S.number){let s=D.objectValues(n);return w(r,{expected:D.joinValues(s),received:r.parsedType,code:g.invalid_type}),R}if(this._cache||(this._cache=new Set(D.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=D.objectValues(n);return w(r,{received:r.data,code:g.invalid_enum_value,options:s}),R}return q(t.data)}get enum(){return this._def.values}};mt.create=(e,t)=>new mt({values:e,typeName:$.ZodNativeEnum,...P(t)});Je=class extends N{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.promise&&n.common.async===!1)return w(n,{code:g.invalid_type,expected:S.promise,received:n.parsedType}),R;let r=n.parsedType===S.promise?n.data:Promise.resolve(n.data);return q(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)});fe=class extends N{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=>{w(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"?tt(l.value):n.value==="dirty"?tt(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"?tt(a.value):n.value==="dirty"?tt(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);D.assertNever(s)}};fe.create=(e,t,n)=>new fe({schema:e,typeName:$.ZodEffects,effect:t,...P(n)});fe.createWithPreprocess=(e,t,n)=>new fe({schema:t,effect:{type:"preprocess",transform:e},typeName:$.ZodEffects,...P(n)});ce=class extends N{_parse(t){return this._getType(t)===S.undefined?q(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ce.create=(e,t)=>new ce({innerType:e,typeName:$.ZodOptional,...P(t)});xe=class extends N{_parse(t){return this._getType(t)===S.null?q(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};xe.create=(e,t)=>new xe({innerType:e,typeName:$.ZodNullable,...P(t)});pt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===S.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};pt.create=(e,t)=>new pt({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...P(t)});ht=class extends N{_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 te(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new te(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};ht.create=(e,t)=>new ht({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...P(t)});Ft=class extends N{_parse(t){if(this._getType(t)!==S.nan){let r=this._getOrReturnCtx(t);return w(r,{code:g.invalid_type,expected:S.nan,received:r.parsedType}),R}return{status:"valid",value:t.data}}};Ft.create=e=>new Ft({typeName:$.ZodNaN,...P(e)});vm=Symbol("zod_brand"),gn=class extends N{_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}},yn=class e extends N{_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(),tt(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})}},gt=class extends N{_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}};gt.create=(e,t)=>new gt({innerType:e,typeName:$.ZodReadonly,...P(t)});xm={object:ne.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"})($||($={}));Em=(e,t={message:`Input not instance of ${e.name}`})=>ea(n=>n instanceof e,t),ta=Ge.create,na=nt.create,Tm=Ft.create,Rm=rt.create,ra=st.create,Am=ot.create,$m=Pt.create,Cm=it.create,Im=at.create,Om=Ze.create,Pm=Me.create,Nm=he.create,Dm=Nt.create,Mm=Fe.create,Fm=ne.create,Lm=ne.strictCreate,jm=lt.create,Bm=lr.create,Hm=ct.create,Um=ve.create,zm=cr.create,Gm=Dt.create,Zm=Mt.create,Jm=ur.create,Vm=ut.create,Wm=ft.create,Km=dt.create,Ym=mt.create,qm=Je.create,Xm=fe.create,Qm=ce.create,ep=xe.create,tp=fe.createWithPreprocess,np=yn.create,rp=()=>ta().optional(),sp=()=>na().optional(),op=()=>ra().optional(),ip={string:(e=>Ge.create({...e,coerce:!0})),number:(e=>nt.create({...e,coerce:!0})),boolean:(e=>st.create({...e,coerce:!0})),bigint:(e=>rt.create({...e,coerce:!0})),date:(e=>ot.create({...e,coerce:!0}))},ap=R});var h={};Pe(h,{BRAND:()=>vm,DIRTY:()=>tt,EMPTY_PATH:()=>tm,INVALID:()=>R,NEVER:()=>ap,OK:()=>q,ParseStatus:()=>Y,Schema:()=>N,ZodAny:()=>Ze,ZodArray:()=>Fe,ZodBigInt:()=>rt,ZodBoolean:()=>st,ZodBranded:()=>gn,ZodCatch:()=>ht,ZodDate:()=>ot,ZodDefault:()=>pt,ZodDiscriminatedUnion:()=>lr,ZodEffects:()=>fe,ZodEnum:()=>dt,ZodError:()=>te,ZodFirstPartyTypeKind:()=>$,ZodFunction:()=>ur,ZodIntersection:()=>ct,ZodIssueCode:()=>g,ZodLazy:()=>ut,ZodLiteral:()=>ft,ZodMap:()=>Dt,ZodNaN:()=>Ft,ZodNativeEnum:()=>mt,ZodNever:()=>he,ZodNull:()=>at,ZodNullable:()=>xe,ZodNumber:()=>nt,ZodObject:()=>ne,ZodOptional:()=>ce,ZodParsedType:()=>S,ZodPipeline:()=>yn,ZodPromise:()=>Je,ZodReadonly:()=>gt,ZodRecord:()=>cr,ZodSchema:()=>N,ZodSet:()=>Mt,ZodString:()=>Ge,ZodSymbol:()=>Pt,ZodTransformer:()=>fe,ZodTuple:()=>ve,ZodType:()=>N,ZodUndefined:()=>it,ZodUnion:()=>lt,ZodUnknown:()=>Me,ZodVoid:()=>Nt,addIssueToContext:()=>w,any:()=>Om,array:()=>Mm,bigint:()=>Rm,boolean:()=>ra,coerce:()=>ip,custom:()=>ea,date:()=>Am,datetimeRegex:()=>Xi,defaultErrorMap:()=>Ne,discriminatedUnion:()=>Bm,effect:()=>Xm,enum:()=>Km,function:()=>Jm,getErrorMap:()=>Ct,getParsedType:()=>Se,instanceof:()=>Em,intersection:()=>Hm,isAborted:()=>ir,isAsync:()=>It,isDirty:()=>ar,isValid:()=>ze,late:()=>xm,lazy:()=>Vm,literal:()=>Wm,makeIssue:()=>hn,map:()=>Gm,nan:()=>Tm,nativeEnum:()=>Ym,never:()=>Nm,null:()=>Im,nullable:()=>ep,number:()=>na,object:()=>Fm,objectUtil:()=>_s,oboolean:()=>op,onumber:()=>sp,optional:()=>Qm,ostring:()=>rp,pipeline:()=>np,preprocess:()=>tp,promise:()=>qm,quotelessJson:()=>Xd,record:()=>zm,set:()=>Zm,setErrorMap:()=>em,strictObject:()=>Lm,string:()=>ta,symbol:()=>$m,transformer:()=>Xm,tuple:()=>Um,undefined:()=>Cm,union:()=>jm,unknown:()=>Pm,util:()=>D,void:()=>Dm});var Ts=b(()=>{or();vs();Ji();pn();sa();sr()});var yt=b(()=>{Ts();Ts()});var Ve,bn=b(()=>{"use strict";yt();Ve=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()})});function We(e){return JSON.stringify(e)+Lt}function*fr(e){let t=0;for(;;){let n=e.indexOf(Lt,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function kn(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var lp,cp,up,fp,oa,Xv,Qv,ia,Lt,aa,Rs=b(()=>{"use strict";yt();bn();lp=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()}),cp=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),up=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),fp=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),oa=h.discriminatedUnion("op",[lp,cp,up,fp]),Xv=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),Qv=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),ia=h.object({filter:Ve.nullable(),cacheHit:h.boolean().optional()}),Lt=`
4
+ `,aa=64*1024});import la from"node:os";import{join as ge}from"node:path";function _(){return process.env.TOKMIZER_HOME||ge(la.homedir(),".tokmizer")}function wn(){return ge(_(),"install-id")}function As(){return ge(_(),"bundle-refresh.json")}function dr(){return ge(_(),"skills")}function _n(e){return ge(dr(),`${e}.md`)}function Ke(){return ge(_(),"content-cache")}function ca(){return ge(_(),"restore.json")}function $s(e){return ge(Ke(),e)}function Cs(){return ge(_(),"managed-commands.json")}function Is(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||ge(la.homedir(),".claude","commands")}function jt(e){return ge(Is(),`${e}.md`)}var H=b(()=>{"use strict"});import dp from"node:os";import{join as Sn}from"node:path";import{existsSync as mp,statSync as pp,lstatSync as ua,unlinkSync as hp,mkdirSync as gp,chmodSync as yp}from"node:fs";import{createHash as bp}from"node:crypto";function kp(e){let t=bp("sha256").update(_()).digest("hex").slice(0,8),n=Sn(dp.tmpdir(),`tkr-${e}-${t}`),r=Sn(n,"d.sock");if(Buffer.byteLength(r)>Os)throw new Error("Temporary directory path is too long for IPC");return fa(n,e),r}function wp(e,t){try{let n=ua(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function fa(e,t){gp(e,{recursive:!0,mode:448});let n=ua(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");yp(e,448)}function Le(){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&&wp(t,e)){let s=Sn(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=Os)return{path:s,isPipe:!1}}let n=Sn(_(),"run"),r=Sn(n,"daemon.sock");return Buffer.byteLength(r)>Os?{path:kp(e),isPipe:!1}:(fa(n,e),{path:r,isPipe:!1})}async function vn(){let{path:e,isPipe:t}=Le();if(t||!mp(e))return;try{if(!pp(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{hp(e)}catch{}}function pa(){let e=process.ppid;if(!e||e===1)return!1;try{return process.kill(e,0),!0}catch{return!1}}var Os,da,ma,mr=b(()=>{"use strict";H();Os=100;da=3e4,ma=5*6e4});var ba={};Pe(ba,{OutputVerbosity:()=>ga,ReducerLevel:()=>ya,Settings:()=>bt,slugKey:()=>X});import{createHash as _p}from"node:crypto";function X(e){let t=ha.get(e);return t||(t=_p("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),ha.set(e,t)),t}var ga,ya,bt,ha,je=b(()=>{"use strict";yt();ga=h.enum(["normal","compact","minimal"]),ya=h.enum(["off","light","balanced","max"]),bt=h.object({enabled:h.boolean().default(!0),telemetryOptIn:h.boolean().default(!0),outputVerbosity:ga.default("compact"),reducer:ya.default("off"),filters:h.object({enableAll:h.boolean().default(!0),disabled:h.array(h.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),ha=new Map});function Bt(e,t,n,r=t){let s=ka.get(r);s||(s=new Map,ka.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(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Sp){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}var ka,Sp,pr=b(()=>{"use strict";je();ka=new WeakMap,Sp=256});import{join as Ps}from"node:path";import{mkdir as vp,readFile as xp,writeFile as Ep,unlink as wa,rename as Tp}from"node:fs/promises";function hr(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Ds(e){return e?.dir??_()}async function G(e){let t=Ds(e);try{let n=await xp(Ps(t,Ns),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=hr()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}async function Ms(e,t){let n=Ds(t);await vp(n,{recursive:!0}),e.installedAt==null&&(e.installedAt=Math.floor(Date.now()/1e3));let r=Ps(n,Ns),s=`${r}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Ep(s,JSON.stringify(e,null,2),{mode:384});try{await Tp(s,r)}catch(o){try{await wa(s)}catch{}throw o}}async function _a(e){let t=Ds(e);try{await wa(Ps(t,Ns))}catch{return}}var Ns,Ee=b(()=>{"use strict";H();Ns="state.json"});import{createRequire as Rp}from"node:module";function $p(){let e="0.9.58";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Ap(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function Ht(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 Ap,ee,Ye=b(()=>{"use strict";Ap=Rp(import.meta.url);ee=$p()});var Sa,va=b(()=>{"use strict";Sa=`-----BEGIN PUBLIC KEY-----
5
5
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
6
6
  -----END PUBLIC KEY-----
7
- `});import{createHmac as Yu,createPublicKey as Xu,verify as Qu}from"node:crypto";function Pt(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Ms).replace(/\\n/g,`
8
- `)}function tl(t,e,r,n){try{let s=Xu({key:n,format:"pem"});return Qu(null,Buffer.from(`${e}.${t}`,"utf8"),s,Buffer.from(r,"base64url"))}catch{return!1}}async function Ke(t){let e=await t.text(),r=Pt(),n=t.headers?.get?.("x-tokmizer-resp-ts")??null;if(n!==null){let i=Number(n);if(!Number.isFinite(i)||Date.now()-i>el)throw new Te("http","stale server response (resp-ts outside freshness window)")}if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Te("http","no signing public key configured; refusing to trust server response");let s=t.headers?.get?.("x-tokmizer-resp-sig")??null,o=Number(n);if(!s||n===null||!Number.isFinite(o))throw new Te("http","missing server response signature");if(!tl(e,o,s,r))throw new Te("http","invalid server response signature");return JSON.parse(e)}function rl(t,e,r){return Yu("sha256",r).update(`${e}.${t}`).digest("hex")}async function te(t,e,r,n){let s=Date.now(),o=r===void 0?"":JSON.stringify(r),i=n.signingSecret?rl(o,s,n.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":n.fingerprint,"x-tokmizer-install-id":n.installId,"x-tokmizer-sig":i,"x-tokmizer-ts":String(s),"x-tokmizer-plugin-version":q};n.bearer&&(a.authorization=`Bearer ${n.bearer}`);let c=n.timeoutMs??5e3,d=t!=="GET"&&t!=="DELETE",l={method:t,headers:a,signal:AbortSignal.timeout(c)};d&&(l.body=o);try{return await fetch(`${n.baseUrl}${e}`,l)}catch(f){let u=f.name;throw u==="TimeoutError"||u==="AbortError"?new Te("timeout",`${t} ${e} timed out after ${c}ms`):new Te("network",`${t} ${e} failed: ${f.message}`)}}var el,Te,dt=$(()=>{"use strict";We();Ls();el=300*1e3;Te=class extends Error{constructor(r,n,s){super(n);this.kind=r;this.status=s;this.name="TransportError"}kind;status}});import ft from"node:os";import{createHash as xl,randomUUID as El}from"node:crypto";import{readFile as Ws,writeFile as Ks,mkdir as Sl}from"node:fs/promises";async function cr(){try{let r=(await Ws(Tt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await Sl(x(),{recursive:!0});let t=El();try{return await Ks(Tt(),t,{mode:384,flag:"wx"}),t}catch{try{let e=(await Ws(Tt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(e))return e}catch{}return await Ks(Tt(),t,{mode:384}),t}}function Kr(t){return xl("sha256").update(t).digest("hex")}function kl(){let t=ft.networkInterfaces();for(let e of Object.keys(t))for(let r of t[e]??[])if(!r.internal&&r.mac&&r.mac!=="00:00:00:00:00:00")return r.mac;return"no-mac"}async function ge(){let t=await cr(),e=ft.hostname(),r=ft.platform(),n=ft.release(),s=ft.cpus(),o=s[0]?.model??"unknown",i=s.length,a=Kr(kl()),c=Kr(ft.userInfo().username),d=[e,r,n,o,String(i),a,c,t].join("|");return{fingerprint:Kr(d),installId:t,hostname:e,os:r,osVersion:n,cpuModel:o,cpuCores:i,macHash:a,usernameHash:c}}var mt=$(()=>{"use strict";M()});import{readFile as mo,writeFile as po,mkdir as ho,chmod as ql,rm as fr,rename as go,readdir as Jl}from"node:fs/promises";import{randomUUID as Yl}from"node:crypto";import{join as Dt}from"node:path";import{setTimeout as uo}from"node:timers/promises";async function re(){try{let t=await mo(Dt(x(),yo),"utf8"),e=JSON.parse(t);return ut.parse({...lo,...e})}catch{return lo}}async function tn(t){await ho(x(),{recursive:!0});let e=Dt(x(),yo),r=`${e}.tmp-${process.pid}-${process.hrtime.bigint()}`;await po(r,JSON.stringify(t,null,2),{mode:384});try{await ql(r,384),await go(r,e)}catch(n){try{await fr(r,{force:!0})}catch{}throw n}}async function fo(t){let e=[];for(let r of await Jl(t)){let n=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(r);if(!n)continue;let s=Dt(t,r);try{process.kill(Number(n[1]),0)}catch(o){let i=o.code;if(i==="ESRCH"){await fr(s,{force:!0});continue}if(i!=="EPERM")throw o}try{let o=JSON.parse(await mo(s,"utf8"));if(!Number.isSafeInteger(o)||o<0)throw new Error("Invalid local settings lock");e.push({id:r,ticket:o})}catch(o){if(o.code!=="ENOENT")throw o}}return e}async function _o(t){let e=Xl.parse(t),r=Dt(x(),"settings-cache-locks");await ho(r,{recursive:!0,mode:448});let n=`${process.pid}-${Yl()}.json`,s=Dt(r,n),o=`${s}.tmp`,i=performance.now()+3e3,a=async c=>{for(await po(o,String(c),{mode:384});;)try{await go(o,s);return}catch(d){let l=d.code;if(process.platform!=="win32"||l!=="EPERM"&&l!=="EBUSY"||performance.now()>=i)throw d;await uo(10)}};try{await a(0);let c=Math.max(0,...(await fo(r)).map(d=>d.ticket))+1;if(!Number.isSafeInteger(c))throw new Error("Invalid local settings lock");for(await a(c);;){if(!(await fo(r)).some(l=>l.id!==n&&(l.ticket===0||l.ticket<c||l.ticket===c&&l.id<n))){let l=await re(),f=ut.parse({...l,...e,filters:{...l.filters,...e.filters}});return await tn(f),f}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await uo(10)}}finally{await Promise.all([fr(s,{force:!0}),fr(o,{force:!0})])}}var yo,lo,Xl,$t=$(()=>{"use strict";Ge();M();yo="settings-cache.json",lo=ut.parse({}),Xl=ut.partial().extend({filters:ut.shape.filters.removeDefault().partial().optional()})});var ko={};Ye(ko,{connectDaemon:()=>pr,shutdownDaemon:()=>So});import{createConnection as ed}from"node:net";import{spawn as td}from"node:child_process";import{existsSync as xo,openSync as rn,closeSync as wo,unlinkSync as sn,writeFileSync as on,mkdirSync as an,readFileSync as rd,appendFileSync as nd,rmSync as sd,statSync as od}from"node:fs";import{dirname as id,join as cn}from"node:path";import{fileURLToPath as ad}from"node:url";function un(){return cn(x(),"daemon.spawn.fail")}function ln(){return cn(x(),"daemon.log")}function dd(){try{let t=Number(rd(un(),"utf8"));return Number.isFinite(t)&&Date.now()-t<ud}catch{return!1}}function fd(t){try{an(x(),{recursive:!0});let e=ln();try{od(e).size>ld&&sn(e)}catch{}nd(e,`${new Date().toISOString()} ${t}
9
- `)}catch{}}function md(t){try{an(x(),{recursive:!0}),on(un(),String(Date.now()))}catch{}fd(`spawn failed: ${t.message}`)}function pd(){try{sd(un(),{force:!0})}catch{}}async function mr(t,e){return new Promise((r,n)=>{let s=ed(t),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}n(a)}else r(s)},i=setTimeout(()=>o(new Error("connect timeout")),e);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function hd(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:ad(new URL("../bin/tkr-daemon.js",import.meta.url))}async function nn(t,e=3e3){let r=Math.ceil(e/75),n=process.platform==="win32";for(let s=0;s<r;s++){if(n)try{return(await mr(t,75)).destroy(),!0}catch{}else if(xo(t))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function gd(t){let e=hd();if(!xo(e))throw new Error(`tkr-daemon binary not found at ${e}`);let{path:r}=pe(),n=process.platform==="win32"?x():id(r);try{an(n,{recursive:!0})}catch{}let s=cn(n,"daemon.spawn.lock"),o=null;try{o=rn(s,"wx"),on(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await nn(r,5e3))return;try{sn(s)}catch{}try{o=rn(s,"wx"),on(o,String(process.pid))}catch(c){if(c.code==="EEXIST"){await nn(r,5e3);return}throw c}}else throw i}try{let i=null;try{i=rn(ln(),"a")}catch{}if(td(process.execPath,[e],{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:t}}).unref(),i!==null)try{wo(i)}catch{}if(!await nn(r,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{wo(o)}catch{}try{sn(s)}catch{}}}}async function So(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:pe(),r=await cr();try{let n=await mr(e,Eo);n.write(ke({id:kt(),op:"shutdown",installId:r})),await new Promise(s=>setTimeout(s,150));try{n.destroy()}catch{}return!0}catch{return!1}}async function yd(t,e){let r=Date.now()+e;for(;Date.now()<r;){try{(await mr(t,250)).destroy()}catch{return!0}await new Promise(n=>setTimeout(n,100))}return!1}async function pr(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:pe(),r=await cr(),n=null,s=0,o=!1;for(;s<=vo;)try{n=await mr(e,Eo),pd();break}catch{if(s+=1,s>vo)throw new Error(`tkr-daemon unreachable at ${e}`);if(dd())throw new Error(`tkr-daemon spawn on cooldown (see ${ln()})`);await Ct();try{await gd(r),o=!0}catch(l){throw md(l),l}}if(!n)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";n.setEncoding("utf8"),n.on("data",l=>{a+=l;let f=-1;for(let h=0;h<a.length;h++)a[h]===at&&(f=h);if(f<0)return;let u=[];for(let h of er(a.slice(0,f+1)))u.push(h);a=a.slice(f+1);for(let h of u)if(h)try{let m=JSON.parse(h),w=i.get(m.id);if(!w)continue;clearTimeout(w.timer),i.delete(m.id),w.resolve(m)}catch{}}),n.on("close",()=>{for(let l of i.values())clearTimeout(l.timer),l.reject(new Error("daemon socket closed"));i.clear()}),n.on("error",()=>{});function c(l){return new Promise((f,u)=>{if(n.destroyed||!n.writable){u(new Error("daemon socket closed"));return}let h=setTimeout(()=>{i.delete(l.id),u(new Error(`daemon request timeout (${l.op})`))},cd);i.set(l.id,{resolve:f,reject:u,timer:h}),n.write(ke(l))})}let d={filter:async(l,f,u)=>{let h=await c({id:kt(),op:"filter",cmd:l.slice(0,2048),plan:f,...u&&u.length>0?{allowed:u.slice(0,512)}:{},installId:r});if(!h.ok)return null;let m=xs.safeParse(h.data);return m.success?m.data.filter:null},ping:async()=>{let l=await c({id:kt(),op:"ping"});if(!l.ok)throw new Error(l.err);return l.data},reload:async()=>{let l=await c({id:kt(),op:"reload",installId:r});if(!l.ok)throw new Error(l.err);return l.data},close:()=>{try{n.destroy()}catch{}}};if(!t.skipVersionCheck&&!o){let l=!1;try{let f=await d.ping();if(f.version&&lt(q,f.version))throw new Error(`newer daemon ${f.version} already running`);l=f.version!==q}catch(f){throw d.close(),f}if(l){try{await So(t.socketPath?{socketPath:t.socketPath}:{})}catch{}d.close();let f=await yd(e,2e3);if(await Ct(),!f)throw new Error("stale daemon still running after shutdown request");return pr({...t,skipVersionCheck:!0})}}return d}var Eo,cd,vo,ud,ld,dn=$(()=>{"use strict";Lr();rr();M();mt();We();Eo=500,cd=3e3,vo=1,ud=6e4,ld=256*1024});import{readFileSync as _d,renameSync as bd,statSync as wd,writeFileSync as vd}from"node:fs";function hr(t,e,r){try{if(wd(t).size<=e)return;let n=_d(t,"utf8").split(`
10
- `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=n.length-1;a>=0;a-=1){let c=n[a],d=Buffer.byteLength(c)+1;if(o+d>r)break;s.push(c),o+=d}s.reverse();let i=`${t}.tmp-${process.pid}`;vd(i,s.length?`${s.join(`
7
+ `});import{existsSync as Cp,mkdirSync as Sx,rmSync as vx,writeFileSync as xx}from"node:fs";import{join as Ip}from"node:path";function Np(){return Ip(_(),"network-off")}function Dp(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Op.has(e.trim().toLowerCase())}function K(){return Dp()?!1:!Cp(Np())}function Ut(){if(!K())throw new xn}var Op,Pp,Rx,xn,ye=b(()=>{"use strict";H();Op=new Set(["0","off","false","no"]),Pp="Network is off for Tokmizer. Turn it back on with: tkr network on",Rx=["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 and token 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(`
8
+ `),xn=class extends Error{constructor(){super(Pp),this.name="NetworkDisabledError"}}});import{createHmac as Mp,createPublicKey as Fp,verify as Lp}from"node:crypto";function En(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Sa).replace(/\\n/g,`
9
+ `)}function Bp(e,t,n,r){try{let s=Fp({key:r,format:"pem"});return Lp(null,Buffer.from(`${t}.${e}`,"utf8"),s,Buffer.from(n,"base64url"))}catch{return!1}}async function kt(e){let t=await e.text(),n=En(),r=e.headers?.get?.("x-tokmizer-resp-ts")??null;if(r!==null){let i=Number(r);if(!Number.isFinite(i)||Date.now()-i>jp)throw new qe("http","stale server response (resp-ts outside freshness window)")}if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new qe("http","no signing public key configured; refusing to trust server response");let s=e.headers?.get?.("x-tokmizer-resp-sig")??null,o=Number(r);if(!s||r===null||!Number.isFinite(o))throw new qe("http","missing server response signature");if(!Bp(t,o,s,n))throw new qe("http","invalid server response signature");return JSON.parse(t)}function Hp(e,t,n){return Mp("sha256",n).update(`${t}.${e}`).digest("hex")}async function be(e,t,n,r){Ut();let s=Date.now(),o=n===void 0?"":JSON.stringify(n),i=r.signingSecret?Hp(o,s,r.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":r.fingerprint,"x-tokmizer-install-id":r.installId,"x-tokmizer-sig":i,"x-tokmizer-ts":String(s),"x-tokmizer-plugin-version":ee};r.bearer&&(a.authorization=`Bearer ${r.bearer}`);let l=r.timeoutMs??5e3,c=e!=="GET"&&e!=="DELETE",f={method:e,headers:a,signal:AbortSignal.timeout(l)};c&&(f.body=o);try{return await fetch(`${r.baseUrl}${t}`,f)}catch(u){let d=u.name;throw d==="TimeoutError"||d==="AbortError"?new qe("timeout",`${e} ${t} timed out after ${l}ms`):new qe("network",`${e} ${t} failed: ${u.message}`)}}var jp,qe,zt=b(()=>{"use strict";Ye();va();ye();jp=300*1e3;qe=class extends Error{constructor(n,r,s){super(r);this.kind=n;this.status=s;this.name="TransportError"}kind;status}});import{createCipheriv as Dx,createDecipheriv as Up,hkdfSync as zp,randomBytes as Mx}from"node:crypto";function Jp(e){return Buffer.from(zp("sha256",Buffer.from(e,"utf8"),Gp,Zp,32))}function gr(e,t){let n=Jp(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Up("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var Gp,Zp,Fs=b(()=>{"use strict";Gp=Buffer.from("tokmizer-bundle-enc-v1"),Zp=Buffer.from("rules-bundle")});import{chmodSync as Vp,readFileSync as Wp,writeFileSync as Kp,mkdirSync as Yp,renameSync as qp}from"node:fs";import{join as xa}from"node:path";function Ls(){return xa(_(),"bundle-cache.json")}function Ea(e){try{let t=_();Yp(t,{recursive:!0});let n={...e,fetchedAt:Date.now()},r=xa(t,`bundle-cache.${process.pid}.tmp`);Kp(r,JSON.stringify(n),{mode:384}),qp(r,Ls()),Vp(Ls(),384)}catch{}}function Ta(){try{let e=Wp(Ls(),"utf8"),t=Xp.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Xp,Ra=b(()=>{"use strict";yt();H();Xp=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1"),fetchedAt:h.number().int().nonnegative()})});import{createPublicKey as Qp,verify as eh}from"node:crypto";function br(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:nh}function Aa(e,t=Date.now()){return t-e.fetchedAt>br()}function rh(e,t){let n=En();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=Qp({key:n,format:"pem"});if(!eh(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(gr(e.payload,t))}async function $a(e,t,n){if(e instanceof yr&&(e.status===401||e.status===403))try{return await n.heartbeat(t),await n.fetchBundle(t)}catch(r){return n.log(`initial fetch failed after heartbeat: ${r.message}`),null}return n.log(`initial fetch failed: ${e.message}`),null}async function Bs(e){let t=await G();if(!t||!t.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!t.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let n=await be("GET","/api/v1/rules/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:t.fingerprint??"0".repeat(64),installId:t.installId,timeoutMs:1e4});if(!n.ok)throw new yr(n.status);let r=th.parse(await n.json()),s=Ca(r,t.signingSecret);return Ea(r),s}function Ca(e,t){let n=rh(e,t),r=js.parse(n);if(Date.now()-r.signedAt>br())throw new Error("tkr-daemon: rules bundle is stale");return Hs(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Hs(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)=>Bt(r,n.values(),o?new Set(o):null,n)}}async function Tn(){try{let e=Ta();if(!e)return null;let t=await G();return t?.signingSecret?Ca(e,t.signingSecret):null}catch{return null}}var js,th,nh,yr,Gt=b(()=>{"use strict";yt();bn();pr();Ee();zt();Fs();Ra();js=h.object({bundleVersion:h.number().int().nonnegative(),signedAt:h.number().int(),filters:h.array(Ve)}),th=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1")}),nh=10080*60*1e3;yr=class extends Error{status;constructor(t){super(`tkr-daemon: bundle fetch failed ${t}`),this.status=t}}});import Zt from"node:os";import{createHash as ih,randomUUID as ah}from"node:crypto";import{readFile as Pa,writeFile as Na,mkdir as lh}from"node:fs/promises";async function kr(){try{let n=(await Pa(wn(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await lh(_(),{recursive:!0});let e=ah();try{return await Na(wn(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Pa(wn(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Na(wn(),e,{mode:384}),e}}function Us(e){return ih("sha256").update(e).digest("hex")}function ch(){let e=Zt.networkInterfaces();for(let t of Object.keys(e))for(let n of e[t]??[])if(!n.internal&&n.mac&&n.mac!=="00:00:00:00:00:00")return n.mac;return"no-mac"}async function Be(){let e=await kr(),t=Zt.hostname(),n=Zt.platform(),r=Zt.release(),s=Zt.cpus(),o=s[0]?.model??"unknown",i=s.length,a=Us(ch()),l=Us(Zt.userInfo().username),c=[t,n,r,o,String(i),a,l,e].join("|");return{fingerprint:Us(c),installId:e,hostname:t,os:n,osVersion:r,cpuModel:o,cpuCores:i,macHash:a,usernameHash:l}}var Jt=b(()=>{"use strict";H()});import{readFileSync as wh}from"node:fs";import{join as _h}from"node:path";function Te(){try{return wh(_h(_(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var Rn=b(()=>{"use strict";H()});import{chmod as Sh,mkdir as vh,readFile as TE,writeFile as Ga,stat as xh,readdir as Eh,rm as Vt,rename as Th}from"node:fs/promises";import{readFileSync as Rh}from"node:fs";import{createHash as Ah}from"node:crypto";import{join as Sr}from"node:path";function Ja(){try{let e=JSON.parse(Rh(ca(),"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 Ph(){let e=Ja().maxAgeDays;return e?e*Za:$h}function Ws(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function Nh(e){return`${$s(e)}${An}`}function Dh(e){return e===""?[]:(e.endsWith(`
10
+ `)?e.slice(0,-1):e).split(`
11
+ `)}async function Mh(e,t,n=process.env,r={}){if(Te()||!Oh.test(e))return!1;let s=Buffer.byteLength(t,"utf8");if(s>Ws("TOKMIZER_CCR_ENTRY_MAX_BYTES",Ih,n))return!1;let o=$s(e),i=`${o}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await vh(Ke(),{recursive:!0}),Te())return!1;if(await Ga(i,t,{mode:384}),await Sh(i,384),Te())return await Vt(i,{force:!0}),!1;await Th(i,o)}catch{try{await Vt(i)}catch{}return!1}let a={at:Date.now(),bytes:s,lines:Dh(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{}};try{await Ga(Nh(e),JSON.stringify(a),{mode:384})}catch{}return!0}function Va(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||Te()||Ja().disabled===!0}async function Ks(e,t,n,r){let s=Ah("sha256").update(e).digest("hex").slice(0,16);return await Mh(s,e,r,{partial:t,label:n})?s:null}async function $n(e,t,n=process.env,r={}){if(Va(n)||!e)return t;let s=i=>`
12
+ [tkr restore ${i}]`;if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(s("0".repeat(16)),"utf8"))return t;if(r.raw){let i=await Ks(r.raw,!1,r.label,n);if(i)return`${t}${s(i)}`}let o=await Ks(e,!0,r.label,n);return o?`${t}${s(o)}`:t}async function vr(e,t,n=process.env,r={}){if(Va(n)||!e)return t;let s=await Ks(e,!1,r.label,n);return s?`${t}
13
+ [tkr restore ${s}]`:t}async function Wa(){let e;try{e=await Eh(Ke())}catch{return}let t=Ws("TOKMIZER_CCR_MAX_AGE_MS",Ph()),n=Ws("TOKMIZER_CCR_DIR_CAP_BYTES",Ch),r=Date.now(),s=new Map;for(let a of e){let l=Sr(Ke(),a);try{let c=await xh(l);r-c.mtimeMs>t?await Vt(l):s.set(a,{mtimeMs:c.mtimeMs,size:c.size})}catch{}}for(let a of[...s.keys()])if(!(!a.endsWith(An)||s.has(a.slice(0,-An.length)))){try{await Vt(Sr(Ke(),a))}catch{}s.delete(a)}let o=[...s.entries()].filter(([a])=>!a.endsWith(An)).sort((a,l)=>a[1].mtimeMs-l[1].mtimeMs),i=o.reduce((a,[,l])=>a+l.size,0);for(let[a,l]of o){if(i<=n)break;try{await Vt(Sr(Ke(),a)),i-=l.size,await Vt(Sr(Ke(),`${a}${An}`),{force:!0})}catch{}}}var Za,$h,Ch,Ih,Oh,An,OE,xr=b(()=>{"use strict";H();Rn();Za=1440*60*1e3,$h=30*Za,Ch=200*1024*1024,Ih=8*1024*1024,Oh=/^[0-9a-f]{8,64}$/i,An=".meta",OE=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list"," tkr restore --grep <pattern>",""].join(`
14
+ `)});import{readFile as Xa,writeFile as Qa,mkdir as el,chmod as Fh,rm as Er,rename as tl,readdir as Lh}from"node:fs/promises";import{randomUUID as jh}from"node:crypto";import{join as Cn}from"node:path";import{setTimeout as Ka}from"node:timers/promises";async function re(){let e=null;try{let t=JSON.parse(await Xa(Cn(_(),nl),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?bt.parse({...Ya,...e}):Ya}async function Ys(e){await el(_(),{recursive:!0});let t=Cn(_(),nl),n=`${t}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Qa(n,JSON.stringify(e,null,2),{mode:384});try{await Fh(n,384),await tl(n,t)}catch(r){try{await Er(n,{force:!0})}catch{}throw r}}async function qa(e){let t=[];for(let n of await Lh(e)){let r=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(n);if(!r)continue;let s=Cn(e,n);try{process.kill(Number(r[1]),0)}catch(o){let i=o.code;if(i==="ESRCH"){await Er(s,{force:!0});continue}if(i!=="EPERM")throw o}try{let o=JSON.parse(await Xa(s,"utf8"));if(!Number.isSafeInteger(o)||o<0)throw new Error("Invalid local settings lock");t.push({id:n,ticket:o})}catch(o){if(o.code!=="ENOENT")throw o}}return t}async function rl(e){let t=Bh.parse(e),n=Cn(_(),"settings-cache-locks");await el(n,{recursive:!0,mode:448});let r=`${process.pid}-${jh()}.json`,s=Cn(n,r),o=`${s}.tmp`,i=performance.now()+3e3,a=async l=>{for(await Qa(o,String(l),{mode:384});;)try{await tl(o,s);return}catch(c){let f=c.code;if(process.platform!=="win32"||f!=="EPERM"&&f!=="EBUSY"||performance.now()>=i)throw c;await Ka(10)}};try{await a(0);let l=Math.max(0,...(await qa(n)).map(c=>c.ticket))+1;if(!Number.isSafeInteger(l))throw new Error("Invalid local settings lock");for(await a(l);;){if(!(await qa(n)).some(f=>f.id!==r&&(f.ticket===0||f.ticket<l||f.ticket===l&&f.id<r))){let f=await re(),u=bt.parse({...f,...t,filters:{...f.filters,...t.filters}});return await Ys(u),u}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await Ka(10)}}finally{await Promise.all([Er(s,{force:!0}),Er(o,{force:!0})])}}var nl,Ya,Bh,wt=b(()=>{"use strict";je();H();nl="settings-cache.json",Ya=bt.parse({}),Bh=bt.partial().extend({filters:bt.shape.filters.removeDefault().partial().optional()})});import{basename as Uh}from"node:path";function In(e){let t=Uh(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(zh))if(r===t)return[n];for(let[n,r]of Object.entries(Gh))if(r===t)return["hook",n];return null}var zh,Gh,Tr=b(()=>{"use strict";zh={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Gh={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","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"}});import{realpathSync as ol}from"node:fs";import{delimiter as Zh,join as Jh}from"node:path";function Re(){return!1}function _t(e,t=process.execPath){let n=Re()?In(e):null;return n?[process.execPath,...n]:[t,e]}function Vh(e,t){try{return ol(e)===ol(t)}catch{return!1}}function qs(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"?";":Zh)){if(!s||s.includes("node_modules"))continue;let o=Jh(s,r);if(Vh(o,n))return o}return n}var Xe=b(()=>{"use strict";Tr()});var fl={};Pe(fl,{connectDaemon:()=>Ar,shutdownDaemon:()=>ul});import{createConnection as Wh}from"node:net";import{spawn as Kh}from"node:child_process";import{existsSync as ll,openSync as Xs,closeSync as il,unlinkSync as eo,writeFileSync as to,mkdirSync as no,readFileSync as Yh,appendFileSync as qh,rmSync as Xh,statSync as Qh}from"node:fs";import{dirname as eg,join as ro}from"node:path";import{fileURLToPath as tg}from"node:url";function so(){return ro(_(),"daemon.spawn.fail")}function oo(){return ro(_(),"daemon.log")}function og(){try{let e=Number(Yh(so(),"utf8"));return Number.isFinite(e)&&Date.now()-e<rg}catch{return!1}}function ig(e){try{no(_(),{recursive:!0});let t=oo();try{Qh(t).size>sg&&eo(t)}catch{}qh(t,`${new Date().toISOString()} ${e}
15
+ `)}catch{}}function ag(e){try{no(_(),{recursive:!0}),to(so(),String(Date.now()))}catch{}ig(`spawn failed: ${e.message}`)}function lg(){try{Xh(so(),{force:!0})}catch{}}async function Rr(e,t){return new Promise((n,r)=>{let s=Wh(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 cg(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:tg(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Qs(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 Rr(e,75)).destroy(),!0}catch{}else if(ll(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function ug(e){let t=cg();if(!Re()&&!ll(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Le(),r=process.platform==="win32"?_():eg(n);try{no(r,{recursive:!0})}catch{}let s=ro(r,"daemon.spawn.lock"),o=null;try{o=Xs(s,"wx"),to(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Qs(n,5e3))return;try{eo(s)}catch{}try{o=Xs(s,"wx"),to(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Qs(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Xs(oo(),"a")}catch{}let[a,...l]=_t(t);if(Kh(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{il(i)}catch{}if(!await Qs(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{il(o)}catch{}try{eo(s)}catch{}}}}async function ul(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Le(),n=await kr();try{let r=await Rr(t,cl);r.write(We({id:kn(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function fg(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await Rr(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function Ar(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Le(),n=await kr(),r=null,s=0,o=!1;for(;s<=al;)try{r=await Rr(t,cl),lg();break}catch{if(s+=1,s>al)throw new Error(`tkr-daemon unreachable at ${t}`);if(og())throw new Error(`tkr-daemon spawn on cooldown (see ${oo()})`);await vn();try{await ug(n),o=!0}catch(f){throw ag(f),f}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",f=>{a+=f;let u=-1;for(let m=0;m<a.length;m++)a[m]===Lt&&(u=m);if(u<0)return;let d=[];for(let m of fr(a.slice(0,u+1)))d.push(m);a=a.slice(u+1);for(let m of d)if(m)try{let p=JSON.parse(m),k=i.get(p.id);if(!k)continue;clearTimeout(k.timer),i.delete(p.id),k.resolve(p)}catch{}}),r.on("close",()=>{for(let f of i.values())clearTimeout(f.timer),f.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(f){return new Promise((u,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let m=setTimeout(()=>{i.delete(f.id),d(new Error(`daemon request timeout (${f.op})`))},ng);i.set(f.id,{resolve:u,reject:d,timer:m}),r.write(We(f))})}let c={filter:async(f,u,d)=>{let m=await l({id:kn(),op:"filter",cmd:f.slice(0,2048),plan:u,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!m.ok)return null;let p=ia.safeParse(m.data);return p.success?p.data.filter:null},ping:async()=>{let f=await l({id:kn(),op:"ping"});if(!f.ok)throw new Error(f.err);return f.data},reload:async()=>{let f=await l({id:kn(),op:"reload",installId:n});if(!f.ok)throw new Error(f.err);return f.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let f=!1;try{let u=await c.ping();if(u.version&&Ht(ee,u.version))throw new Error(`newer daemon ${u.version} already running`);f=u.version!==ee}catch(u){throw c.close(),u}if(f){try{await ul(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let u=await fg(t,2e3);if(await vn(),!u)throw new Error("stale daemon still running after shutdown request");return Ar({...e,skipVersionCheck:!0})}}return c}var cl,ng,al,rg,sg,io=b(()=>{"use strict";Rs();mr();H();Xe();Jt();Ye();cl=500,ng=3e3,al=1,rg=6e4,sg=256*1024});import{readFileSync as dg,renameSync as mg,statSync as pg,writeFileSync as hg}from"node:fs";function $r(e,t,n){try{if(pg(e).size<=t)return;let r=dg(e,"utf8").split(`
16
+ `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],c=Buffer.byteLength(l)+1;if(o+c>n)break;s.push(l),o+=c}s.reverse();let i=`${e}.tmp-${process.pid}`;hg(i,s.length?`${s.join(`
11
17
  `)}
12
- `:"",{mode:384}),bd(i,t)}catch{}}var fn=$(()=>{"use strict"});var Co={};Ye(Co,{codexHookCommand:()=>Dd,codexHookInstalled:()=>Pd,codexHooksFile:()=>mn,ensureCodexHook:()=>Od});import{readFile as xd,writeFile as Ed,rename as Sd,mkdir as kd,copyFile as Td}from"node:fs/promises";import{existsSync as To,readFileSync as Rd,accessSync as Ad,constants as Id}from"node:fs";import{join as gr}from"node:path";import Cd from"node:os";function mn(){return gr(process.env.CODEX_HOME||gr(Cd.homedir(),".codex"),"hooks.json")}function Io(t){return(t.hooks??[]).find(e=>typeof e.command=="string"&&e.command.includes(Ao))}function Pd(){try{return(JSON.parse(Rd(mn(),"utf8")).hooks?.PreToolUse??[]).some(e=>Io(e)!=null)}catch{return!1}}async function Od(t){let e=mn(),r={},n=To(e);if(n)try{if(r=JSON.parse(await xd(e,"utf8")),!r||typeof r!="object"||Array.isArray(r))return"error"}catch{return"error"}let s=r.hooks&&typeof r.hooks=="object"?r.hooks:{},o=Array.isArray(s.PreToolUse)?s.PreToolUse:[],i="added",a=o.map(Io).find(c=>c!=null);if(a){if(a.command===t)return"present";a.command=t,i="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:t,timeout:10}]});s.PreToolUse=o,r.hooks=s;try{await kd(gr(e,".."),{recursive:!0});let c=`${e}.tkr-bak`;n&&!To(c)&&await Td(e,c);let d=`${e}.tmp-${process.pid}`;await Ed(d,`${JSON.stringify(r,null,2)}
13
- `),await Sd(d,e)}catch{return"error"}return i}function Ro(t){return`'${t.replace(/'/g,"'\\''")}'`}function Dd(t,e){if(process.platform!=="win32")for(let r of t.split(":")){if(!r||r.includes("node_modules"))continue;let n=gr(r,Ao);try{return Ad(n,Id.X_OK),Ro(n)}catch{}}return`node ${Ro(e)}`}var Ao,Po=$(()=>{"use strict";Ao="tkr-codex-hook"});var jo={};Ye(jo,{autoUpdateEnabled:()=>gn,claimSelfUpdateSlot:()=>Bo,defaultDeps:()=>Gd,maybeSpawnSelfUpdate:()=>Kd,selfUpdate:()=>Zd,setAutoUpdate:()=>zd});import{spawn as Mo}from"node:child_process";import{accessSync as $d,constants as Nd,existsSync as Nt,mkdirSync as Lo,readFileSync as Fo,rmSync as Md,writeFileSync as hn,appendFileSync as Ld}from"node:fs";import{fileURLToPath as Fd}from"node:url";import{join as ne}from"node:path";import Bd from"node:os";function gn(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!Nt(pn())}function zd(t){if(t){Md(pn(),{force:!0});return}Lo(x(),{recursive:!0,mode:448}),hn(pn(),String(Date.now()))}function Bo(t=Date.now()){try{let e=Number(Fo($o(),"utf8"));if(Number.isFinite(e)&&t-e<jd)return!1}catch{}try{Lo(x(),{recursive:!0,mode:448}),hn($o(),String(t))}catch{return!1}return!0}function Hd(t){try{let e=ne(x(),"self-update.log");Ld(e,`${new Date().toISOString()} ${t}
14
- `,{mode:384}),hr(e,Do,Do/2)}catch{}}async function Zd(t){if(!gn())return["disabled"];let e=t.latest;if(!e||!Oo.test(e))return["no-version"];let r=[],n=[],s=(await t.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),o=s?t.npmVersion(s):void 0;if(o)if(!lt(o,e))n.push(o);else if(!t.writable(s))r.push("npm needs permission");else{let a=await t.run("npm",["i","-g",`@tokmizer/plugin@${e}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),c=t.npmVersion(s);a.code===0&&c===e?(r.push(`npm ${o} -> ${e}`),n.push(e)):r.push(`npm failed (${o})`)}if(process.platform!=="win32"){let a=await t.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),c=a.code===0?a.stdout.trim().split(/\s+/)[1]:void 0;if(c&&Oo.test(c))if(!lt(c,e))n.push(c);else{let d=await t.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));d.code===0?(r.push(`brew ${c} -> ${e}`),n.push(e)):/untrusted tap/i.test(d.stderr??"")?r.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):r.push(`brew failed (${c})`)}}if(r.some(a=>a.includes("->"))&&await t.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),n.some(a=>!lt(a,Ud))&&t.codexInstalled()&&!Nt(No())){let a=await t.ensureCodexHook(s).catch(()=>"error");if(a!=="error"){try{hn(No(),String(Date.now()))}catch{}r.push(`codex hook ${a}`)}}for(let a of r)Hd(a);return r}function Vd(t,e,r){return new Promise(n=>{let s=Mo(t,e,{env:r??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),o="",i="";s.stdout?.on("data",c=>{o+=c.toString("utf8")}),s.stderr?.on("data",c=>{i.length<8192&&(i+=c.toString("utf8"))});let a=setTimeout(()=>s.kill("SIGTERM"),10*6e4);s.on("error",()=>{clearTimeout(a),n({code:127,stdout:""})}),s.on("close",c=>{clearTimeout(a),n({code:c??1,stdout:o,stderr:i})})})}function Gd(t){return{latest:t,run:Vd,npmVersion:e=>{try{let r=JSON.parse(Fo(ne(e,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof r=="string"?r:void 0}catch{return}},writable:e=>{try{return $d(e,Nd.W_OK),!0}catch{return!1}},codexInstalled:()=>Nt(process.env.CODEX_HOME||ne(Bd.homedir(),".codex")),ensureCodexHook:async e=>{let{ensureCodexHook:r,codexHookCommand:n}=await Promise.resolve().then(()=>(Po(),Co)),s=ne(e,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),o=n(process.env.PATH??"",s);return o.startsWith("node ")&&!Nt(s)?"error":r(o)}}}function Wd(){let t=Fd(new URL(".",import.meta.url));for(let e of[ne(t),ne(t,"..")])if(Nt(ne(e,"bin","tkr.js")))return e;return null}function Kd(){try{if(!gn())return;let t=Wd();if(!t||!Bo())return;let e=Mo(process.execPath,[ne(t,"bin","tkr.js"),"self-update"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,TOKMIZER_SELF_UPDATE_CHILD:"1"}});e.on("error",()=>{}),e.unref()}catch{}}var Oo,jd,Ud,Do,pn,$o,No,Uo=$(()=>{"use strict";M();We();fn();Oo=/^\d+\.\d+\.\d+$/,jd=6*36e5,Ud="0.9.34",Do=64*1024,pn=()=>ne(x(),"auto-update-off"),$o=()=>ne(x(),"self-update-last"),No=()=>ne(x(),"codex-hook-offered")});function Mt(t){let e=t;for(let[r,n]of qd)e=e.replace(r,n);return e}var qd,yn=$(()=>{"use strict";qd=[[/(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]"]]});import{join as _r}from"node:path";import{appendFileSync as Zo,chmodSync as Jd,existsSync as Lt,mkdirSync as wn,readFileSync as En,renameSync as vn,rmdirSync as Vo,statSync as Sn,unlinkSync as pt,utimesSync as Yd,writeFileSync as kn}from"node:fs";function Tn(t){return _r(Ft(),`${t}.lock`)}function Qd(t){let e=Tn(t);try{return wn(Ft(),{recursive:!0,mode:448}),wn(e),!0}catch{try{Date.now()-Sn(e).mtimeMs>Xd&&Vo(e)}catch{return!1}return!1}}function ef(t){try{Yd(Tn(t),new Date,new Date)}catch{return}}function tf(t){try{Vo(Tn(t))}catch{return}}function Ft(){return _r(x(),"spool")}function yr(t){return _r(Ft(),`${t}.jsonl`)}function br(t){return _r(Ft(),`${t}.pending.jsonl`)}function wr(t,e){try{wn(Ft(),{recursive:!0,mode:448});let r=yr(t);if(Lt(r)&&Sn(r).size>=xn)return;Zo(r,JSON.stringify(e)+`
15
- `,{mode:384}),Jd(r,384)}catch{return}}function zo(t,e){Zo(t,En(e,"utf8"),{mode:384}),kn(e,"",{mode:384});try{pt(e)}catch{return}}function rf(t){if(Sn(t).size<=xn)return;let e=En(t,"utf8").split(`
16
- `).filter(s=>s.trim()),r=0,n=[];for(let s=e.length-1;s>=0;s--){let o=e[s]??"";if(r+=Buffer.byteLength(o,"utf8")+1,r>xn)break;n.unshift(o)}kn(t,n.length?n.join(`
18
+ `:"",{mode:384}),mg(i,e)}catch{}}var ao=b(()=>{"use strict"});import{readFile as gg,writeFile as yg,rename as bg,mkdir as kg,copyFile as wg}from"node:fs/promises";import{existsSync as co,accessSync as _g,constants as Sg}from"node:fs";import{join as dl}from"node:path";function Z(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Ae(e){if(!co(e))return{};try{let t=JSON.parse(await gg(e,"utf8"));return Z(t)?t:null}catch{return null}}async function $e(e,t){try{await kg(dl(e,".."),{recursive:!0});let n=`${e}.tkr-bak`;co(e)&&!co(n)&&await wg(e,n);let r=`${e}.tmp-${process.pid}`;return await yg(r,`${JSON.stringify(t,null,2)}
19
+ `),await bg(r,e),!0}catch{return!1}}function lo(e){return`'${e.replace(/'/g,"'\\''")}'`}function Wt(e,t,n){let r=Re()?In(n):null;if(r)return[lo(qs(t)),...r].join(" ");if(process.platform!=="win32")for(let s of t.split(":")){if(!s||s.includes("node_modules"))continue;let o=dl(s,e);try{return _g(o,Sg.X_OK),lo(o)}catch{}}return`node ${lo(n)}`}var St=b(()=>{"use strict";Tr();Xe()});var gl={};Pe(gl,{codexHookCommand:()=>Rg,codexHookInstalled:()=>Eg,codexHooksFile:()=>uo,ensureCodexHook:()=>Tg});import{readFileSync as vg}from"node:fs";import{join as ml}from"node:path";import xg from"node:os";function uo(){return ml(process.env.CODEX_HOME||ml(xg.homedir(),".codex"),"hooks.json")}function hl(e){return(e.hooks??[]).find(t=>typeof t.command=="string"&&t.command.includes(pl))}function Eg(){try{return(JSON.parse(vg(uo(),"utf8")).hooks?.PreToolUse??[]).some(t=>hl(t)!=null)}catch{return!1}}async function Tg(e){let t=uo(),n=await Ae(t);if(!n)return"error";let r=n.hooks&&typeof n.hooks=="object"?n.hooks:{},s=Array.isArray(r.PreToolUse)?r.PreToolUse:[],o="added",i=s.map(hl).find(a=>a!=null);if(i){if(i.command===e)return"present";i.command=e,o="updated"}else s.push({matcher:"Bash",hooks:[{type:"command",command:e,timeout:10}]});return r.PreToolUse=s,n.hooks=r,await $e(t,n)?o:"error"}function Rg(e,t){return Wt(pl,e,t)}var pl,yl=b(()=>{"use strict";St();pl="tkr-codex-hook"});var Tl={};Pe(Tl,{autoUpdateEnabled:()=>po,claimSelfUpdateSlot:()=>El,defaultDeps:()=>Bg,maybeSpawnSelfUpdate:()=>Ug,selfUpdate:()=>Lg,setAutoUpdate:()=>Mg});import{spawn as Sl}from"node:child_process";import{accessSync as Ag,constants as $g,existsSync as On,mkdirSync as vl,readFileSync as xl,rmSync as Cg,writeFileSync as mo,appendFileSync as Ig}from"node:fs";import{fileURLToPath as Og}from"node:url";import{join as ke}from"node:path";import Pg from"node:os";function po(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!On(fo())}function Mg(e){if(e){Cg(fo(),{force:!0});return}vl(_(),{recursive:!0,mode:448}),mo(fo(),String(Date.now()))}function El(e=Date.now()){try{let t=Number(xl(wl(),"utf8"));if(Number.isFinite(t)&&e-t<Ng)return!1}catch{}try{vl(_(),{recursive:!0,mode:448}),mo(wl(),String(e))}catch{return!1}return!0}function Fg(e){try{let t=ke(_(),"self-update.log");Ig(t,`${new Date().toISOString()} ${e}
20
+ `,{mode:384}),$r(t,kl,kl/2)}catch{}}async function Lg(e){if(!po())return["disabled"];if(!K())return["network off"];let t=e.latest;if(!t||!bl.test(t))return["no-version"];let n=[],r=[],s=(await e.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),o=s?e.npmVersion(s):void 0;if(o)if(!Ht(o,t))r.push(o);else if(!e.writable(s))n.push("npm needs permission");else{let a=await e.run("npm",["i","-g",`@tokmizer/plugin@${t}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),l=e.npmVersion(s);a.code===0&&l===t?(n.push(`npm ${o} -> ${t}`),r.push(t)):n.push(`npm failed (${o})`)}if(process.platform!=="win32"){let a=await e.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),l=a.code===0?a.stdout.trim().split(/\s+/)[1]:void 0;if(l&&bl.test(l))if(!Ht(l,t))r.push(l);else{let c=await e.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));c.code===0?(n.push(`brew ${l} -> ${t}`),r.push(t)):/untrusted tap/i.test(c.stderr??"")?n.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):n.push(`brew failed (${l})`)}}if(n.some(a=>a.includes("->"))&&await e.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),r.some(a=>!Ht(a,Dg))&&e.codexInstalled()&&!On(_l())){let a=await e.ensureCodexHook(s).catch(()=>"error");if(a!=="error"){try{mo(_l(),String(Date.now()))}catch{}n.push(`codex hook ${a}`)}}for(let a of n)Fg(a);return n}function jg(e,t,n){return new Promise(r=>{let s=Sl(e,t,{env:n??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),o="",i="";s.stdout?.on("data",l=>{o+=l.toString("utf8")}),s.stderr?.on("data",l=>{i.length<8192&&(i+=l.toString("utf8"))});let a=setTimeout(()=>s.kill("SIGTERM"),10*6e4);s.on("error",()=>{clearTimeout(a),r({code:127,stdout:""})}),s.on("close",l=>{clearTimeout(a),r({code:l??1,stdout:o,stderr:i})})})}function Bg(e){return{latest:e,run:jg,npmVersion:t=>{try{let n=JSON.parse(xl(ke(t,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof n=="string"?n:void 0}catch{return}},writable:t=>{try{return Ag(t,$g.W_OK),!0}catch{return!1}},codexInstalled:()=>On(process.env.CODEX_HOME||ke(Pg.homedir(),".codex")),ensureCodexHook:async t=>{let{ensureCodexHook:n,codexHookCommand:r}=await Promise.resolve().then(()=>(yl(),gl)),s=ke(t,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),o=r(process.env.PATH??"",s);return o.startsWith("node ")&&!On(s)?"error":n(o)}}}function Hg(){let e=Og(new URL(".",import.meta.url));for(let t of[ke(e),ke(e,"..")])if(On(ke(t,"bin","tkr.js")))return t;return null}function Ug(){try{if(!po()||!K())return;let e=Hg();if(!e||!El())return;let[t,...n]=_t(ke(e,"bin","tkr.js")),r=Sl(t,[...n,"self-update"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,TOKMIZER_SELF_UPDATE_CHILD:"1"}});r.on("error",()=>{}),r.unref()}catch{}}var bl,Ng,Dg,kl,fo,wl,_l,Rl=b(()=>{"use strict";H();Ye();ao();Xe();ye();bl=/^\d+\.\d+\.\d+$/,Ng=6*36e5,Dg="0.9.34",kl=64*1024,fo=()=>ke(_(),"auto-update-off"),wl=()=>ke(_(),"self-update-last"),_l=()=>ke(_(),"codex-hook-offered")});function Pn(e){let t=e;for(let[n,r]of zg)t=t.replace(n,r);return t}var zg,ho=b(()=>{"use strict";zg=[[/(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]"]]});import{existsSync as Gg,mkdirSync as MT,writeFileSync as FT}from"node:fs";import{join as Zg}from"node:path";function Vg(){return Zg(_(),Jg)}function Al(){return Gg(Vg())}var Jg,$l=b(()=>{"use strict";H();wt();ye();Ye();Jg="telemetry-notice-shown"});import{join as Ir}from"node:path";import{appendFileSync as Ol,chmodSync as Wg,existsSync as Nn,mkdirSync as bo,readFileSync as _o,renameSync as ko,rmdirSync as Pl,statSync as So,unlinkSync as Kt,utimesSync as Kg,writeFileSync as vo}from"node:fs";function xo(e){return Ir(Dn(),`${e}.lock`)}function qg(e){let t=xo(e);try{return bo(Dn(),{recursive:!0,mode:448}),bo(t),!0}catch{try{Date.now()-So(t).mtimeMs>Yg&&Pl(t)}catch{return!1}return!1}}function Xg(e){try{Kg(xo(e),new Date,new Date)}catch{return}}function Qg(e){try{Pl(xo(e))}catch{return}}function Dn(){return Ir(_(),"spool")}function Cr(e){return Ir(Dn(),`${e}.jsonl`)}function Or(e){return Ir(Dn(),`${e}.pending.jsonl`)}function Pr(e,t){if(K())try{bo(Dn(),{recursive:!0,mode:448});let n=Cr(e);if(Nn(n)&&So(n).size>=wo)return;Ol(n,JSON.stringify(t)+`
21
+ `,{mode:384}),Wg(n,384)}catch{return}}function Cl(e,t){Ol(e,_o(t,"utf8"),{mode:384}),vo(t,"",{mode:384});try{Kt(t)}catch{return}}function ey(e){if(So(e).size<=wo)return;let t=_o(e,"utf8").split(`
22
+ `).filter(s=>s.trim()),n=0,r=[];for(let s=t.length-1;s>=0;s--){let o=t[s]??"";if(n+=Buffer.byteLength(o,"utf8")+1,n>wo)break;r.unshift(o)}vo(e,r.length?r.join(`
17
23
  `)+`
18
- `:"",{mode:384})}function nf(t){try{let e=br(t),r=yr(t),n=`${r}.merging`;if(Lt(n)&&zo(e,n),Lt(e))Lt(r)&&(vn(r,n),zo(e,n));else{if(!Lt(r))return[];vn(r,e)}rf(e);let s=[];for(let o of En(e,"utf8").split(`
19
- `))if(o.trim())try{s.push(JSON.parse(o))}catch{continue}return s.length===0?(pt(e),[]):s}catch{return[]}}function Go(t){try{pt(br(t))}catch{return}}function sf(t,e){if(e.length===0){Go(t);return}let r=br(t),n=`${r}.tmp`;kn(n,e.map(s=>JSON.stringify(s)).join(`
24
+ `:"",{mode:384})}function ty(e){try{let t=Or(e),n=Cr(e),r=`${n}.merging`;if(Nn(r)&&Cl(t,r),Nn(t))Nn(n)&&(ko(n,r),Cl(t,r));else{if(!Nn(n))return[];ko(n,t)}ey(t);let s=[];for(let o of _o(t,"utf8").split(`
25
+ `))if(o.trim())try{s.push(JSON.parse(o))}catch{continue}return s.length===0?(Kt(t),[]):s}catch{return[]}}function Nl(e){try{Kt(Or(e))}catch{return}}function ny(e,t){if(t.length===0){Nl(e);return}let n=Or(e),r=`${n}.tmp`;vo(r,t.map(s=>JSON.stringify(s)).join(`
20
26
  `)+`
21
- `,{mode:384}),vn(n,r)}async function vr(t,e,r={}){if(bn.has(t)||!Qd(t))return"fail";bn.add(t);try{if(!(await re()).telemetryOptIn)return Ho(t),"empty";let n=nf(t);if(n.length===0)return"empty";let s=await L();if(!s)return"fail";if(r.requirePro&&s.plan!=="pro")return Go(t),"ok";let o=r.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await ge();for(let a=0;a<n.length;a+=_n){if(!(await re()).telemetryOptIn)return Ho(t),"empty";ef(t);let c=await te("POST",e,{events:n.slice(a,a+_n)},{baseUrl:o,bearer:s.jwt,signingSecret:s.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!c.ok)return c.status===401||c.status===403?"auth":"fail";sf(t,n.slice(a+_n))}return"ok"}catch{return"fail"}finally{bn.delete(t),tf(t)}}function Ho(t){try{pt(yr(t))}catch{}try{pt(`${yr(t)}.merging`)}catch{}try{pt(br(t))}catch{return}}var xn,_n,Xd,bn,Rn=$(()=>{"use strict";M();he();mt();dt();$t();xn=512*1024,_n=100,Xd=12e4,bn=new Set});var Ko={};Ye(Ko,{commandName:()=>xr,flushTelemetry:()=>In,recordTelemetry:()=>An});function Wo(t){let e=t.toLowerCase();return e.startsWith("git")||uf.has(e)}function xr(t){let e=t.trim().split(/\s+/).filter(a=>a.length>0),r=0;for(;r<e.length&&cf.test(e[r]??"");)r+=1;let n=e[r];if(!n||!of.test(n)||n.length>df||Wo(n)||lf.test(n)||Mt(n)!==n)return"";let s=e[r+1];return s&&Wo(s)?"":(s&&ff.has(n.toLowerCase())&&af.test(s)?`${n} ${s}`:n).slice(0,64)}async function An(t){if(!t.telemetryOptIn)return;let e=xr(t.cmd),r=e&&Mt(e)===e?e:"other",n=t.sessionId?t.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";wr("telemetry",{cmd:r,tokensSaved:Math.max(0,Math.round(t.tokensSaved)),...t.tokensRestored?{tokensRestored:Math.max(0,Math.round(t.tokensRestored))}:{},...t.rawTokens!=null?{rawTokens:Math.max(0,Math.round(t.rawTokens))}:{},optimized:t.optimized,...n?{sessionId:n}:{},...t.host?{host:t.host}:{}})}async function In(t){return vr("telemetry","/api/v1/telemetry",{baseUrl:t})}var of,af,cf,uf,lf,df,ff,Bt=$(()=>{"use strict";yn();Rn();of=/^[a-z0-9][a-z0-9._-]*$/i,af=/^[a-z][a-z-]+$/,cf=/^[A-Za-z_][A-Za-z0-9_]*=/,uf=new Set(["gh","glab","gup","hub","gist"]),lf=/^(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,df=24,ff=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"])});var qo={};Ye(qo,{flush:()=>Pn,recordEvent:()=>Cn});async function Cn(t){if(t.plan!=="pro"||!(await re()).telemetryOptIn)return;let e=xr(t.cmd);!e||Mt(e)!==e||wr("learn",{cmd:e,filterId:t.filterId==null?null:V(t.filterId),rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}async function Pn(t){return vr("learn","/api/v1/learn",{baseUrl:t,requirePro:!0})}var Er=$(()=>{"use strict";Bt();yn();Rn();Ge();$t()});var ii=K((r_,oi)=>{oi.exports=si;si.sync=_f;var ri=we("fs");function yf(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var s=r[n].toLowerCase();if(s&&t.substr(-s.length).toLowerCase()===s)return!0}return!1}function ni(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:yf(e,r)}function si(t,e,r){ri.stat(t,function(n,s){r(n,n?!1:ni(s,t,e))})}function _f(t,e){return ni(ri.statSync(t),t,e)}});var di=K((n_,li)=>{li.exports=ci;ci.sync=bf;var ai=we("fs");function ci(t,e,r){ai.stat(t,function(n,s){r(n,n?!1:ui(s,e))})}function bf(t,e){return ui(ai.statSync(t),e)}function ui(t,e){return t.isFile()&&wf(t,e)}function wf(t,e){var r=t.mode,n=t.uid,s=t.gid,o=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),d=parseInt("001",8),l=a|c,f=r&d||r&c&&s===i||r&a&&n===o||r&l&&o===0;return f}});var mi=K((o_,fi)=>{var s_=we("fs"),Sr;process.platform==="win32"||global.TESTING_WINDOWS?Sr=ii():Sr=di();fi.exports=On;On.sync=vf;function On(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){On(t,e||{},function(o,i){o?s(o):n(i)})})}Sr(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function vf(t,e){try{return Sr.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var wi=K((i_,bi)=>{var gt=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",pi=we("path"),xf=gt?";":":",hi=mi(),gi=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),yi=(t,e)=>{let r=e.colon||xf,n=t.match(/\//)||gt&&t.match(/\\/)?[""]:[...gt?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=gt?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=gt?s.split(r):[""];return gt&&t.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:s}},_i=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:o}=yi(t,e),i=[],a=d=>new Promise((l,f)=>{if(d===n.length)return e.all&&i.length?l(i):f(gi(t));let u=n[d],h=/^".*"$/.test(u)?u.slice(1,-1):u,m=pi.join(h,t),w=!h&&/^\.[\\\/]/.test(t)?t.slice(0,2)+m:m;l(c(w,d,0))}),c=(d,l,f)=>new Promise((u,h)=>{if(f===s.length)return u(a(l+1));let m=s[f];hi(d+m,{pathExt:o},(w,_)=>{if(!w&&_)if(e.all)i.push(d+m);else return u(d+m);return u(c(d,l,f+1))})});return r?a(0).then(d=>r(null,d),r):a(0)},Ef=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=yi(t,e),o=[];for(let i=0;i<r.length;i++){let a=r[i],c=/^".*"$/.test(a)?a.slice(1,-1):a,d=pi.join(c,t),l=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+d:d;for(let f=0;f<n.length;f++){let u=l+n[f];try{if(hi.sync(u,{pathExt:s}))if(e.all)o.push(u);else return u}catch{}}}if(e.all&&o.length)return o;if(e.nothrow)return null;throw gi(t)};bi.exports=_i;_i.sync=Ef});var xi=K((a_,Dn)=>{"use strict";var vi=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Dn.exports=vi;Dn.exports.default=vi});var Ti=K((c_,ki)=>{"use strict";var Ei=we("path"),Sf=wi(),kf=xi();function Si(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(t.options.cwd)}catch{}let i;try{i=Sf.sync(t.command,{path:r[kf({env:r})],pathExt:e?Ei.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return i&&(i=Ei.resolve(s?t.options.cwd:"",i)),i}function Tf(t){return Si(t)||Si(t,!0)}ki.exports=Tf});var Ri=K((u_,Nn)=>{"use strict";var $n=/([()\][%!^"`<>&|;, *?])/g;function Rf(t){return t=t.replace($n,"^$1"),t}function Af(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace($n,"^$1"),e&&(t=t.replace($n,"^$1")),t}Nn.exports.command=Rf;Nn.exports.argument=Af});var Ii=K((l_,Ai)=>{"use strict";Ai.exports=/^#!(.*)/});var Pi=K((d_,Ci)=>{"use strict";var If=Ii();Ci.exports=(t="")=>{let e=t.match(If);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var Di=K((f_,Oi)=>{"use strict";var Mn=we("fs"),Cf=Pi();function Pf(t){let r=Buffer.alloc(150),n;try{n=Mn.openSync(t,"r"),Mn.readSync(n,r,0,150,0),Mn.closeSync(n)}catch{}return Cf(r.toString())}Oi.exports=Pf});var Li=K((m_,Mi)=>{"use strict";var Of=we("path"),$i=Ti(),Ni=Ri(),Df=Di(),$f=process.platform==="win32",Nf=/\.(?:com|exe)$/i,Mf=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Lf(t){t.file=$i(t);let e=t.file&&Df(t.file);return e?(t.args.unshift(t.file),t.command=e,$i(t)):t.file}function Ff(t){if(!$f)return t;let e=Lf(t),r=!Nf.test(e);if(t.options.forceShell||r){let n=Mf.test(e);t.command=Of.normalize(t.command),t.command=Ni.command(t.command),t.args=t.args.map(o=>Ni.argument(o,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Bf(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:Ff(n)}Mi.exports=Bf});var ji=K((p_,Bi)=>{"use strict";var Ln=process.platform==="win32";function Fn(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function jf(t,e){if(!Ln)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let o=Fi(s,e);if(o)return r.call(t,"error",o)}return r.apply(t,arguments)}}function Fi(t,e){return Ln&&t===1&&!e.file?Fn(e.original,"spawn"):null}function Uf(t,e){return Ln&&t===1&&!e.file?Fn(e.original,"spawnSync"):null}Bi.exports={hookChildProcess:jf,verifyENOENT:Fi,verifyENOENTSync:Uf,notFoundError:Fn}});var Hi=K((h_,yt)=>{"use strict";var Ui=we("child_process"),Bn=Li(),jn=ji();function zi(t,e,r){let n=Bn(t,e,r),s=Ui.spawn(n.command,n.args,n.options);return jn.hookChildProcess(s,n),s}function zf(t,e,r){let n=Bn(t,e,r),s=Ui.spawnSync(n.command,n.args,n.options);return s.error=s.error||jn.verifyENOENTSync(s.status,n),s}yt.exports=zi;yt.exports.spawn=zi;yt.exports.sync=zf;yt.exports._parse=Bn;yt.exports._enoent=jn});Lr();rr();import{createServer as wl}from"node:net";import{chmodSync as vl}from"node:fs";Ve();Qt();import{createPublicKey as pl,verify as hl}from"node:crypto";Ge();var Ds=new WeakMap,Hu=256;function sr(t,e,r,n=e){let s=Ds.get(n);s||(s=new Map,Ds.set(n,s));let o=JSON.stringify([t,r?[...r].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let c of e)r&&!r.has(V(c.slug))||c.matchRegex.test(t)&&(!a||c.priority>a.priority)&&(a=c);if(s.size>=Hu){let c=s.keys().next().value;c&&s.delete(c)}return s.set(o,a),a}he();dt();import{createCipheriv as Lg,createDecipheriv as nl,hkdfSync as sl,randomBytes as Fg}from"node:crypto";var ol=Buffer.from("tokmizer-bundle-enc-v1"),il=Buffer.from("rules-bundle");function al(t){return Buffer.from(sl("sha256",Buffer.from(t,"utf8"),ol,il,32))}function Fs(t,e){let r=al(e),n=Buffer.from(t,"base64url"),s=n.subarray(0,12),o=n.subarray(12,28),i=n.subarray(28),a=nl("aes-256-gcm",r,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}Ve();M();import{chmodSync as cl,readFileSync as ul,writeFileSync as ll,mkdirSync as dl,renameSync as fl}from"node:fs";import{join as Bs}from"node:path";var ml=p.object({payload:p.string().min(1),signature:p.string().min(1),enc:p.literal("v1"),fetchedAt:p.number().int().nonnegative()});function Gr(){return Bs(x(),"bundle-cache.json")}function js(t){try{let e=x();dl(e,{recursive:!0});let r={...t,fetchedAt:Date.now()},n=Bs(e,`bundle-cache.${process.pid}.tmp`);ll(n,JSON.stringify(r),{mode:384}),fl(n,Gr()),cl(Gr(),384)}catch{}}function Us(){try{let t=ul(Gr(),"utf8"),e=ml.safeParse(JSON.parse(t));return e.success?e.data:null}catch{return null}}var gl=p.object({bundleVersion:p.number().int().nonnegative(),signedAt:p.number().int(),filters:p.array(it)}),yl=p.object({payload:p.string().min(1),signature:p.string().min(1),enc:p.literal("v1")}),_l=10080*60*1e3;function ar(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?t:_l}function zs(t,e=Date.now()){return e-t.fetchedAt>ar()}function bl(t,e){let r=Pt();if(!r||!r.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 n=pl({key:r,format:"pem"});if(!hl(null,Buffer.from(t.payload,"utf8"),n,Buffer.from(t.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(Fs(t.payload,e))}var ir=class extends Error{status;constructor(e){super(`tkr-daemon: bundle fetch failed ${e}`),this.status=e}};async function Hs(t,e,r){if(t instanceof ir&&(t.status===401||t.status===403))try{return await r.heartbeat(e),await r.fetchBundle(e)}catch(n){return r.log(`initial fetch failed after heartbeat: ${n.message}`),null}return r.log(`initial fetch failed: ${t.message}`),null}async function Wr(t){let e=await L();if(!e||!e.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!e.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let r=await te("GET","/api/v1/rules/bundle",void 0,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:e.fingerprint??"0".repeat(64),installId:e.installId,timeoutMs:1e4});if(!r.ok)throw new ir(r.status);let n=yl.parse(await r.json()),s=Zs(n,e.signingSecret);return js(n),s}function Zs(t,e){let r=bl(t,e),n=gl.parse(r);if(Date.now()-n.signedAt>ar())throw new Error("tkr-daemon: rules bundle is stale");let s=new Map;for(let o of n.filters)s.set(o.slug,{...o,matchRegex:new RegExp(o.match_command)});return{bundleVersion:n.bundleVersion,signedAt:n.signedAt,ruleCount:s.size,startedAt:Date.now(),fetchedAt:Date.now(),selectFor:(o,i,a)=>sr(o,s.values(),a?new Set(a):null,s)}}async function Ot(){try{let t=Us();if(!t)return null;let e=await L();return e?.signingSecret?Zs(t,e.signingSecret):null}catch{return null}}We();async function Vs(t,e={}){await Ct();let{path:r,isPipe:n}=e.socketPath?{path:e.socketPath,isPipe:process.platform==="win32"}:pe(),s=t,o=null,i=Date.now(),a=e.idleTimeoutMs??Is,c=process.env.TOKMIZER_DAEMON_INSTALL_ID??"",d=async m=>{if(i=Date.now(),m.op==="ping")return{id:m.id,ok:!0,data:{pid:process.pid,uptimeMs:s?Date.now()-s.startedAt:0,ruleCount:s?.ruleCount??0,bundleVersion:s?.bundleVersion??0,version:q}};if(m.op==="shutdown")return!c||m.installId!==c?{id:m.id,ok:!1,err:"forbidden"}:(setTimeout(()=>e.onShutdown?.(),10),{id:m.id,ok:!0,data:{stopping:!0}});if(m.op==="reload"){if(!c||m.installId!==c)return{id:m.id,ok:!1,err:"forbidden"};if(!e.onWarming)return{id:m.id,ok:!1,err:"no_warming_handler"};try{return s=await e.onWarming(),{id:m.id,ok:!0,data:{ruleCount:s.ruleCount,bundleVersion:s.bundleVersion}}}catch(w){return{id:m.id,ok:!1,err:w.message,retryAfterMs:1e3}}}if(m.op==="filter"){if(c&&m.installId!==c)return{id:m.id,ok:!1,err:"forbidden"};if(s&&zs(s))if(e.onWarming)o||(o=e.onWarming(),o.then(_=>{s=_}).catch(()=>{}).finally(()=>{o=null}));else return{id:m.id,ok:!0,data:{filter:null,cacheHit:!0}};if(!s)if(e.onWarming){o||(o=e.onWarming());try{s=await o}catch(_){return o=null,{id:m.id,ok:!1,err:_.message,retryAfterMs:1e3}}o=null}else return{id:m.id,ok:!1,err:"warming",retryAfterMs:250};let w=s.selectFor(m.cmd,m.plan,m.allowed);return{id:m.id,ok:!0,data:{filter:w??null,cacheHit:!0}}}return{id:m.id,ok:!1,err:"unknown_op"}},l=wl(m=>{let w="";m.setEncoding("utf8"),m.on("data",_=>{if(w+=_,Buffer.byteLength(w,"utf8")>Es){m.write(ke({id:"?",ok:!1,err:"frame_too_large"})),w="";return}let I=-1;for(let T=0;T<w.length;T++)w[T]===at&&(I=T);if(I<0)return;let k=[];for(let T of er(w.slice(0,I+1)))k.push(T);w=w.slice(I+1);for(let T of k){if(!T)continue;let O="?";try{let D=JSON.parse(T);typeof D.id=="string"&&D.id.length<=64&&(O=D.id);let N=vs.parse(D);d(N).then(z=>{m.write(ke(z))}).catch(z=>{m.write(ke({id:N.id,ok:!1,err:`internal:${z.message?.slice(0,80)??"error"}`}))})}catch(D){m.write(ke({id:O,ok:!1,err:`bad_request:${D.message.slice(0,80)}`}))}}}),m.on("error",()=>{try{m.destroy()}catch{}})}),f=!1,u=setInterval(()=>{if(f)return;if(e.isActive?.()){i=Date.now();return}let m=Date.now()-i;(!Cs()&&m>a||m>a*2)&&(f=!0,e.onShutdown?.())},As);return u.unref(),await new Promise((m,w)=>{l.once("error",w),l.listen(r,()=>{if(l.off("error",w),!n)try{vl(r,384)}catch{}m()})}),{server:l,close:async()=>{clearInterval(u),await new Promise(m=>l.close(()=>m()))},touch:()=>{i=Date.now()}}}function Gs(t){let e=0,r=0,n=null;return async function(){let o=Date.now();if(r>o&&n)throw new Error(`bundle fetch cooling down for ${r-o}ms (last: ${n.message})`);try{let i=await t();return e=0,r=0,n=null,i}catch(i){if(e+=1,n=i,e>=3){let a=Math.min(6e4,500*2**(e-3));r=Date.now()+a}throw i}}}Ge();mt();he();dt();M();import{readFile as M0,writeFile as mf,mkdir as L0}from"node:fs/promises";dt();he();mt();import{createPublicKey as Tl,verify as Rl}from"node:crypto";function Al(t,e){let r=Pt();if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Error("Tokmizer plugin: no valid signing public key. Set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM or rebuild plugin against a prod key.");let n=Tl({key:r,format:"pem"});try{let s=Buffer.from(e,"base64url");return Rl(null,Buffer.from(t,"utf8"),n,s)}catch{return!1}}var Il=/^[a-z0-9][a-z0-9-]*$/;async function qs(t){let e=await L();if(!e)throw new Error("Plugin not activated.");let r=await ge(),n=await te("GET","/api/v1/skills/bundle",void 0,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:8e3});if(!n.ok)throw new Error(`bundle fetch failed ${n.status}`);let s=await Ke(n),o=[];for(let i of s.bundles){if(!Il.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((c,d)=>c.position-d.position);for(let c of a)if(!Al(c.body,c.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${c.position}]`);o.push({slug:i.slug,version:i.version,body:a.map(c=>c.body).join(`
22
-
23
- `)})}return o}M();import{chmod as qr,mkdir as ur,readFile as Jr,writeFile as lr,stat as Cl,readdir as Pl,rm as Ys}from"node:fs/promises";var Xs="managed-by: tokmizer",Ol=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],Dl=["power","tkr-reducer"];async function Qs(){try{let t=JSON.parse(await Jr(Br(),"utf8"));return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}catch{return[]}}async function eo(t){try{await ur(x(),{recursive:!0}),await lr(Br(),JSON.stringify(t),{mode:384})}catch{}}var $l=3600*1e3,Js=10080*60*1e3;function Nl(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?Math.min(t,Js):Js}async function to(t){try{let e=await Cl(Rt(t)),r=Date.now()-e.mtimeMs;return r<$l&&r<=Nl()}catch{return!1}}async function ro(t,e){await ur(tr(),{recursive:!0}),await lr(Rt(t),e,{mode:384}),await qr(Rt(t),384)}async function Yr(t){let e=new Set(t),r;try{r=await Pl(tr())}catch{return}for(let n of r){if(!n.endsWith(".md"))continue;let s=n.slice(0,-3);if(!e.has(s))try{await Ys(Rt(s))}catch{}}}async function no(t,e){await ur(jr(),{recursive:!0});try{if(!(await Jr(ct(t),"utf8")).includes(Xs))return}catch{}await lr(ct(t),e,{mode:384}),await qr(ct(t),384);let r=await Qs();r.includes(t)||await eo([...r,t])}async function Xr(t){let e=new Set([...t,...Ol]),r=await Qs(),n=new Set([...r,...Dl]);for(let s of n)if(!e.has(s))try{if(!(await Jr(ct(s),"utf8")).includes(Xs))continue;await Ys(ct(s))}catch{}await eo(r.filter(s=>e.has(s)))}async function Qr(t){try{await ur(x(),{recursive:!0}),await lr(Fr(),JSON.stringify({at:Date.now(),error:t}),{mode:384}),await qr(Fr(),384)}catch{}}M();import{chmod as Fl,mkdir as Bl,readFile as Ry,writeFile as jl,stat as Ul,readdir as zl,rm as dr,rename as Hl}from"node:fs/promises";import{createHash as so}from"node:crypto";import{join as Zl}from"node:path";import{readFileSync as Ml}from"node:fs";M();import{join as Ll}from"node:path";function ye(){try{return Ml(Ll(x(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var Vl=10080*60*1e3,Gl=100*1024*1024,Wl=2*1024*1024,Kl=/^[0-9a-f]{8,64}$/i;function en(t,e,r=process.env){let n=Number(r[t]);return Number.isFinite(n)&&n>0?n:e}async function oo(t,e,r=process.env){if(ye()||!Kl.test(t)||Buffer.byteLength(e,"utf8")>en("TOKMIZER_CCR_ENTRY_MAX_BYTES",Wl,r))return!1;let n=ks(t),s=`${n}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{return await Bl(At(),{recursive:!0}),ye()?!1:(await jl(s,e,{mode:384}),await Fl(s,384),ye()?(await dr(s,{force:!0}),!1):(await Hl(s,n),!0))}catch{try{await dr(s)}catch{}return!1}}async function io(t,e,r=process.env){let n=r.TOKMIZER_CCR_DISABLED;if(n==="1"||n==="true"||ye()||!t)return e;let s=so("sha256").update(t).digest("hex").slice(0,16),o=`
24
- [tkr restore ${s}]`;return Buffer.byteLength(t,"utf8")<=Buffer.byteLength(o,"utf8")||!await oo(s,t,r)?e:`${e}${o}`}async function ao(t,e,r=process.env){let n=r.TOKMIZER_CCR_DISABLED;if(n==="1"||n==="true"||ye()||!t)return e;let s=so("sha256").update(t).digest("hex").slice(0,16);return await oo(s,t,r)?`${e}
25
- [tkr restore ${s}]`:e}async function co(){let t;try{t=await zl(At())}catch{return}let e=en("TOKMIZER_CCR_MAX_AGE_MS",Vl),r=en("TOKMIZER_CCR_DIR_CAP_BYTES",Gl),n=Date.now(),s=[];for(let i of t){let a=Zl(At(),i);try{let c=await Ul(a);n-c.mtimeMs>e?await dr(a):s.push({path:a,mtimeMs:c.mtimeMs,size:c.size})}catch{}}let o=s.reduce((i,a)=>i+a.size,0);if(!(o<=r)){s.sort((i,a)=>i.mtimeMs-a.mtimeMs);for(let i of s){if(o<=r)break;try{await dr(i.path),o-=i.size}catch{}}}}he();mt();dt();$t();async function Ql(t,e){let r=await L();if(!r)throw new Error("Not activated. Run: tkr link");if(r.linked===!1){if(t==="GET")return{plan:r.plan,settings:await re()};let a=await _o(e);return{plan:r.plan,settings:a}}let n=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await ge(),o=await te(t,"/api/v1/settings",e,{baseUrl:n,bearer:r.jwt,signingSecret:r.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:8e3});if(!o.ok)throw new Error(`Settings ${t} failed: ${o.status}`);let i=await Ke(o);return await tn(i.settings),i}async function bo(){return Ql("GET")}We();var Jo="-command",Yo=3;async function Xo(){try{let{connectDaemon:t}=await Promise.resolve().then(()=>(dn(),ko)),e=await t();try{await e.reload()}finally{e.close()}}catch{}}async function Qo(t,e){if(!(!e&&await to("power"))){try{let r=await qs(t),n=[],s=[];for(let o of r)if(o.slug.endsWith(Jo)){let i=o.slug.slice(0,-Jo.length);await no(i,o.body),s.push(i)}else await ro(o.slug,o.body),n.push(o.slug);await Yr(n),await Xr(s),await Qr(null)}catch(r){await Qr(r instanceof Error?r.message:String(r))}try{await co()}catch{}}}function pf(t){try{return new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}function Ut(t,e=0){let r=t.split(".")[1];if(!r)return!0;try{let n=Number(JSON.parse(Buffer.from(r,"base64url").toString("utf8")).exp);return!Number.isFinite(n)||n*1e3<=Date.now()+e}catch{return!0}}async function jt(t,e){let r=await L();return r&&r.token!==t.token?!1:(await Vr(e),!0)}async function ht(t){let e=await L();if(!e)return null;let r=await ge(),n=e.timeZone??or(),s={ts:Date.now(),localDate:pf(n),timeZone:n},o;try{o=await te("POST","/api/v1/license/heartbeat",s,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:5e3})}catch{return e}if(o.status===401){let u=(e.heartbeatAuthFails??0)+1,h={...e,heartbeatAuthFails:u},m=e.linked??(!!e.email||e.plan==="smart"||e.plan==="pro");if(u>=Yo&&m&&(h.relinkRequired=!0),!await jt(e,h))return null;if(u>=Yo&&!m){try{await mf(`${x()}/state.replaced.json`,JSON.stringify(e),{mode:384})}catch{}try{return await hf(t)}catch{return null}}return null}if(o.status===451){let u=await L();if(u&&u.token!==e.token)return null;await Ns();try{await Yr([]),await Xr([])}catch{}return null}if(o.status===426)return await jt(e,{...e,updateRequired:!0}),null;if(o.status===423)return await jt(e,{...e,relinkRequired:!0}),null;if(!o.ok){if(o.status===400)try{(await o.json())?.code==="stale_ts"&&await jt(e,{...e,clockSkewDetected:!0})}catch{}return e}let i;try{i=await Ke(o)}catch{return e}let a=i.settingsRevision??0,c=e.lastSettingsRevision??0,d=a>c,l=i.plan!==e.plan,f={...e,jwt:i.jwt,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:n,bonusActive:i.bonusActive??!1,...i.bonusResetAt!==void 0?{bonusResetAt:i.bonusResetAt}:{},...i.latestPluginVersion?{latestPluginVersion:i.latestPluginVersion}:{},...Array.isArray(i.allowedFilters)?{allowedFilters:i.allowedFilters.map(V)}:{}};if(d)try{await bo(),f.lastSettingsRevision=a}catch{}if(!await jt(e,f))return L();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:u}=await Promise.resolve().then(()=>(Uo(),jo));u()}catch{}(d||l)&&await Xo(),await Qo(t,d||l);try{let{flushTelemetry:u}=await Promise.resolve().then(()=>(Bt(),Ko)),{flush:h}=await Promise.resolve().then(()=>(Er(),qo));await u(t),await h(t)}catch{}return f}var q0=5*6e4;async function hf(t){let e=await ge(),r=or(),n={pluginVersion:q,timeZone:r,...e},s=await te("POST","/api/v1/license/enroll",n,{baseUrl:t,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:4e3});if(!s.ok)throw new Error(`enroll failed ${s.status}`);let o=await Ke(s),i={token:o.token,jwt:o.jwt,signingSecret:o.signingSecret,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:q,email:"",timeZone:r,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(o.allowedFilters)&&o.allowedFilters.length>0?{allowedFilters:o.allowedFilters.map(V)}:{}};return await Vr(i),await Xo(),await Qo(t,!0),i}he();he();Er();Bt();var gf=10*6e4,ei=6e4;function ti(t){let e=0,r=async()=>{let n=Date.now();if(n-e<gf)return;let s;try{s=await ht(t)}catch{e=n;return}s&&!Ut(s.jwt,ei)&&(e=n)};return async()=>{let n=await L();if(!n)return;if(Ut(n.jwt,ei)){await r();return}(await Promise.all([Pn(t),In(t)])).includes("auth")&&await r()}}rr();M();We();import{randomBytes as yh,randomUUID as sc}from"node:crypto";import{lstatSync as _h,mkdirSync as bh,realpathSync as wh,renameSync as vh,rmSync as xh,writeFileSync as Eh}from"node:fs";import{dirname as Sh,join as Ir}from"node:path";Ve();import{timingSafeEqual as rc}from"node:crypto";import{chmodSync as uh,lstatSync as lh,realpathSync as dh}from"node:fs";import{dirname as fh}from"node:path";import{createServer as mh}from"node:net";M();var Np=pc(Hi(),1);Qt();import{readdir as Hf,readFile as Zf}from"node:fs/promises";import{join as Gi,dirname as Vf}from"node:path";import{fileURLToPath as Gf}from"node:url";var Wf=Vf(Gf(import.meta.url)),Zi=process.env.TOKMIZER_FILTERS_DIR||Gi(Wf,"..","..","filters"),Re=null,Vi=!1;function Kf(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function Wi(){if(Re)return Re;if(!Kf())return!Vi&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
26
- `),Vi=!0),Re=new Map,Re;let t=new Map,e,r;try{e=(await import("smol-toml")).parse,r=(await Hf(Zi)).filter(n=>n.endsWith(".toml"))}catch{return Re=t,Re}for(let n of r){let s=await Zf(Gi(Zi,n),"utf8"),i=e(s).filters;if(i)for(let[a,c]of Object.entries(i)){let d=it.parse({slug:a,...c});t.set(a,{...d,matchRegex:new RegExp(d.match_command)})}}return Re=t,Re}var qf=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Jf=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function qe(t){return t.replace(qf,"").replace(Jf,"")}function Ki(t,e){return e.length===0?t:t.filter(r=>!e.some(n=>n.test(r)))}function qi(t,e){return t.map(r=>{if(r.length<=e)return r;let n=r.charCodeAt(e-1),s=r.charCodeAt(e),o=n>=55296&&n<=56319&&s>=56320&&s<=57343?e-1:e;return`${r.slice(0,o)}\u2026`})}function kr(t){return`\u2026 (${t} more lines omitted)`}function Ji(t,e){if(t.length<=e)return{kept:t,dropped:[]};let r=Math.ceil(e*.7),n=e-r,s=t.slice(r,t.length-n);return{kept:[...t.slice(0,r),kr(s.length),...t.slice(t.length-n)],dropped:s}}var Yf=/^\s*(?:[✓✔√]|ok )/,Ae=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function Yi(t,e){let r=e>0?e:5,n=[],s=0,o=a=>{s>=r?n.push(`\u2026 ${s} passing checks folded \u2026`):n.push(...a)},i=[];for(let a of t)Yf.test(a)&&!Ae.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,n.push(a));return o(i),n}var Xf=/(?:\/[\w.@+-]+){3,}/g;function Xi(t){return t.map(e=>e.replace(Xf,r=>{let n=r.split("/").filter(Boolean);return n.length<=2?r:`\u2026/${n.slice(-2).join("/")}`}))}var Qf=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,em=/\{\s*$/;var tm=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,rm=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function nm(t){let e=tm.exec(t);return!e||rm.has(e[1])?!1:!/=>|\bfunction\b/.test(e[2])}var sm=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function om(t,e,r){let n=e;for(;n<t.length;){if(t[n]==="\\"){n+=2;continue}if(t[n]===r)return!0;n+=1}return!1}function im(t,e){let r=0,n=null,s=0;for(;s<t.length;){let o=t[s];if(e.inBlockComment){if(o==="*"&&t[s+1]==="/"){e.inBlockComment=!1,s+=2;continue}s+=1;continue}if(e.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(e.inTemplate=!1),s+=1;continue}if(n){if(o==="\\"){s+=2;continue}o===n&&(n=null),s+=1;continue}if(o==="/"&&t[s+1]==="/")break;if(o==="/"&&t[s+1]==="*"){e.inBlockComment=!0,s+=2;continue}if(o==="`"){e.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?t[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&om(t,s+1,o)&&(n=o),s+=1;continue}o==="{"||o==="("||o==="["?r+=1:(o==="}"||o===")"||o==="]")&&(r-=1),s+=1}return r}var Qi=/^\s*… \d+ lines? folded …$/,am=/^\s*… (\d+) lines? folded …$/;function Un(t){let e=new Array(t.length).fill(!1);for(let r=0;r<t.length;r+=1){let n=am.exec(t[r]);if(!n)continue;let s=Number(n[1])-1,o=r+1;for(;s>0&&o<t.length&&t[o]==="";)e[o]=!0,s-=1,o+=1;r=o-1}return e}function zt(t,e=3){let r=[],n=0;for(;n<t.length;){let s=t[n];if(Qf.test(s)&&em.test(s)||nm(s)||sm.test(s)){let o={inBlockComment:!1,inTemplate:!1},i=0,a=n,c=!1;for(;a<t.length&&a-n<200;)if(i+=im(t[a],o),a+=1,i<=0&&!o.inTemplate&&!o.inBlockComment){c=!0;break}let d=a-n;if(c&&d<e){r.push(...t.slice(n,a)),n=a;continue}if(c&&d>=3){let l=d-2,f=/^\s*/.exec(t[n+1]??"")?.[0]??" ";r.push(s),r.push(`${f}\u2026 ${l} ${l===1?"line":"lines"} folded \u2026`);for(let u=0;u<l-1;u++)r.push("");r.push(t[a-1]),n=a;continue}}r.push(s),n+=1}return r}var cm=/\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 Tr(t){let e=t.slice(0,4096);return!(!cm.test(e)||e.split(`
27
- `).length<6)}var um=/^\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*/,lm=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,dm=new RegExp(Ae.source,"i"),fm=/\bWARN(?:ING)?\b/i;function ea(t){let e=[],r=0,n=()=>{r>0&&e.push(`\u2026 ${r} verbose log line${r===1?"":"s"} dropped \u2026`),r=0};for(let s of t){if(lm.test(s.replace(um,""))&&!dm.test(s)&&!fm.test(s)){r+=1;continue}n(),e.push(s)}return n(),e}function ta(t){if(t.length===0)return t;let e=[],r=1,n=t[0];for(let s=1;s<t.length;s++){if(t[s]===n){r+=1;continue}e.push(r>1?`${n} \xD7${r}`:n),n=t[s],r=1}return e.push(r>1?`${n} \xD7${r}`:n),e}function ra(t){let e=[],r=0;for(let n of t){if(n.trim()===""){r+=1;continue}r>0&&e.push(""),r=0,e.push(n)}return e}var na=new Map;function G(t,e){na.set(t,e)}function sa(t){return na.get(t)}var mm=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,pm=/^[./~][^\s]*:$/,zn=1e3;function hm(t){if(t<1024)return String(t);let e=["K","M","G","T"],r=t/1024,n=0;for(;r>=1024&&n<e.length-1;)r/=1024,n+=1;return`${r.toFixed(1)}${e[n]}`}function gm(t){if(!mm.test(t))return null;let e=t.split(/\s+/);if(e.length<9)return null;let r=Number(e[4]);if(!Number.isFinite(r))return null;let n=e.slice(8).join(" ").trim();if(n===""||n==="."||n==="..")return null;let s=e[0].charCodeAt(0)===100;return{name:n,size:r,isDir:s}}function ym(t){if(t.length<3)return null;let e=new Map;for(let s of t){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);e.set(i,(e.get(i)??0)+1)}let r=null,n=0;for(let[s,o]of e)o>n&&(n=o,r=s);return r&&n>=Math.ceil(t.length/2)?`${n} ${r}`:null}function _m(t){let e=[],r=[],n=!1;for(let u of t){if(/^total\s+\d+/.test(u))continue;if(pm.test(u.trim()))return t;let h=gm(u);h&&(n=!0,(h.isDir?e:r).push(h))}if(!n)return t;let s=(u,h)=>u.name.localeCompare(h.name);e.sort(s),r.sort((u,h)=>h.size-u.size||s(u,h));let o=[...e,...r],i=Math.min(40,Math.max(0,...o.map(u=>u.isDir?u.name.length+1:u.name.length))),a=[];for(let u of o){let h=u.isDir?`${u.name}/`:u.name,m=u.isDir?"":hm(u.size);a.push(m?`${h.padEnd(i)} ${m}`:h)}if(a.length>zn){let u=a.length-zn;a=[...a.slice(0,zn),`\u2026 ${u} more lines omitted`]}let c=r.length===1?"file":"files",d=e.length===1?"dir":"dirs",l=ym(r),f=`${r.length} ${c}, ${e.length} ${d}`+(l?` (${l})`:"");return a.push(f),a}G("smart-ls",_m);G("smart-read",t=>zt(t));var oa=1e3;function bm(t){let e=t.filter(l=>l.trim()!=="");if(e.length===0||e.filter(l=>!/\s/.test(l.trim())).length<e.length*.6)return t;let n=new Map,s=[],o=0;for(let l of e){let f=l.trim();if(f.startsWith("find:")){s.push(f);continue}let u=f.replace(/^\.\//,"").replace(/\/+$/,""),h=u.lastIndexOf("/"),m=h>=0?u.slice(0,h):"",w=h>=0?u.slice(h+1):u;if(!w)continue;let _=n.get(m)??[];_.push(/\s/.test(w)?`"${w}"`:w),n.set(m,_),o+=1}if(o===0)return t;let i=new Set([""]);for(let l of n.keys()){if(l==="")continue;let f=l.split("/");for(let u=1;u<=f.length;u+=1)i.add(f.slice(0,u).join("/"))}let a=[...i].sort(),c=a.filter(l=>l!=="").length,d=[`${o}F ${c}D:`,""];for(let l of a){let f=l===""?0:l.split("/").length,u=l===""?".":l.slice(l.lastIndexOf("/")+1),h=n.get(l)??[],m=h.length?` ${h.join(" ")}`:"";d.push(`${" ".repeat(f)}${u}/${m}`)}if(d.length+s.length>oa){let l=Math.max(0,oa-s.length),f=d.length-l;return[...d.slice(0,l),`\u2026 ${f} more lines omitted`,...s]}return[...d,...s]}G("smart-find",bm);var Hn=1e3,ia=200,wm=60,vm=190,xm=/^([^\s:]+):(\d+):(.*)$/,Em=/^([^:]+?)-(\d+)-(.*)$/,Sm=/^([^\s:]+):(.*)$/,aa=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function ca(t){let e=t.trim();return e.length>ia?`${e.slice(0,ia)}\u2026`:e}function km(t){let e=[],r="";for(let n of t){let s=r?`${r}, ${n}`:n;s.length>vm&&r?(e.push(`${r},`),r=n):r=s}return r&&e.push(r),e}function Tm(t){let e=t.filter(f=>f.trim()!=="");if(e.length===0)return t;let r=new Map,n=new Map,s=null,o=0,i=0;for(let f of e){if(f==="--"){s&&r.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(f))return t;let u=xm.exec(f),h=Em.exec(f);if(u&&h)return t;let m=u||h?null:Sm.exec(f),w=(u??h??m)?.[1];if(!w)return t;let _=u?{line:u[2],content:u[3],context:!1}:h?{line:h[2],content:h[3],context:!0}:{line:"",content:m[2],context:!1},I=r.get(w)??[];I.push(_),r.set(w,I),_.context||(o+=1,n.set(w,(n.get(w)??0)+1)),i+=1,s=w}if(r.size===i)return t;let a=[...r.keys()].sort((f,u)=>{let h=aa.test(f)?1:0,m=aa.test(u)?1:0;return h-m||(f<u?-1:f>u?1:0)}),c=[];for(let f of a){c.push(`${f} (${n.get(f)??0}):`);for(let u of r.get(f))"separator"in u?c.push(" --"):u.line?c.push(` ${u.line}${u.context?"-":":"} ${ca(u.content)}`):c.push(` ${ca(u.content)}`)}let d=a.length>1&&c.length>wm?km(a.map(f=>`${f} (${n.get(f)??0})`)):[],l=[`${o}m ${a.length}f:`,...d,"",...c];if(l.length>Hn){let f=l.length-Hn;return[...l.slice(0,Hn),`\u2026 ${f} more lines omitted`]}return l}G("smart-grep",Tm);var ua=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,Rm=/^[|\\/* ._-]*$/,Am=/^ {4}/,Im=2;function Cm(t){if(!t.some(d=>ua.test(d)))return t;let e=[],r=0,n=0,s=0,o="",i=!1,a=!1,c=()=>{n>0&&e.push(`${o} \u2026 ${n} ${n===1?"line":"lines"} folded \u2026`),n=0};for(let d of t){let l=d.slice(0,s),f=Rm.test(l),u=f?d.slice(s):d,h=Am.test(u),m=i&&h?null:ua.exec(d);if(m){c(),r=0,s=m[1]?.length??0,i=!0,a=!1,e.push(d);continue}if(/^diff --(?:git|cc|combined) /.test(u)&&(a=!0),h&&!a&&!(s>0&&u.trim().length===0)){r+=1,r<=Im?e.push(d):(n+=1,o=f?l:"");continue}c(),e.push(d)}return c(),e}G("smart-log",Cm);var Pm=/^[\s=]+$/,Om=/^\s*=+\s+(.*?)\s+=+\s*$/,Dm=512;G("strip-banners",t=>{let e=[];for(let r of t){if(Pm.test(r))continue;let n=r.length<=Dm?Om.exec(r):null;e.push(n?n[1]:r)}return e});function $m(t){let e=[],r=0,n=0;for(;n<t.length;){let s=t[n].replace(/\s+$/,"");if(s===""){r+=1,n+=1,r<=1&&e.push("");continue}r=0;let o=1;for(;n+o<t.length&&t[n+o].replace(/\s+$/,"")===s;)o+=1;if(o>=3)e.push(s),e.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)e.push(s);n+=o}for(;e.length>0&&e[e.length-1]==="";)e.pop();return e}G("squeeze-output",$m);function Nm(t){return t==="compact"?.6:t==="minimal"?.3:1}var Mm=20;function Lm(t){let[e,r,n,s]=t.slice(-4);if(!e||!r||!n||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(e)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(r)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(n))return t;let o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...t.slice(0,-4).filter((a,c)=>c>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),e,r,o]:t}var la=new WeakMap;function Fm(t){let e=la.get(t);if(e)return e;let r=t.strip_lines_matching.map(s=>new RegExp(s)),n={def:t,stripRegexes:r};return la.set(t,n),n}function da(t,e,r={}){return Zn(t,e,r).text}function Zn(t,e,r={}){let n=r.verbosity??"normal";if(!e.strip_ansi&&e.strip_lines_matching.length===0&&!e.transform&&!e.mask_abs_paths&&!e.fold_passing&&!e.truncate_lines_at&&!e.max_lines&&!e.on_empty&&!r.smartCode&&n==="normal")return{text:t,droppedTail:null};let s=Fm(e),o=t;e.strip_ansi&&(o=qe(o));let i=o.endsWith(`
27
+ `,{mode:384}),ko(r,n)}async function Nr(e,t,n={}){if(!K()||yo.has(e)||!qg(e))return"fail";yo.add(e);try{if(!(await re()).telemetryOptIn)return Il(e),"empty";if(!Al())return"fail";let r=ty(e);if(r.length===0)return"empty";let s=await G();if(!s)return"fail";if(n.requirePro&&s.plan!=="pro")return Nl(e),"ok";let o=n.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await Be();for(let a=0;a<r.length;a+=go){if(!(await re()).telemetryOptIn)return Il(e),"empty";Xg(e);let l=await be("POST",t,{events:r.slice(a,a+go),...n.consent?{consent:!0}:{}},{baseUrl:o,bearer:s.jwt,signingSecret:s.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!l.ok)return l.status===401||l.status===403?"auth":"fail";ny(e,r.slice(a+go))}return"ok"}catch{return"fail"}finally{yo.delete(e),Qg(e)}}function Il(e){try{Kt(Cr(e))}catch{}try{Kt(`${Cr(e)}.merging`)}catch{}try{Kt(Or(e))}catch{return}}var wo,go,Yg,yo,Eo=b(()=>{"use strict";H();Ee();Jt();zt();wt();ye();$l();wo=512*1024,go=100,Yg=12e4,yo=new Set});var Fl={};Pe(Fl,{commandName:()=>Dr,flushTelemetry:()=>To,recordTelemetry:()=>Mn});function dy(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 cy.has(n.toLowerCase())?n:""}function my(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=fy.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Dl(e){let t=e.toLowerCase();return t.startsWith("git")||iy.has(t)}function Dr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&oy.test(t[n]??"");)n+=1;let r=dy(t[n]??"");if(!r||!ry.test(r)||r.length>ly)return"";let s=uy.get(r.toLowerCase());if(s)return my(r.toLowerCase(),s,t.slice(n+1));if(Dl(r)||ay.test(r)||Pn(r)!==r)return"";let o=t[n+1];return o&&Dl(o)?"":(o&&Ml.has(r.toLowerCase())&&sy.test(o)?`${r} ${o}`:r).slice(0,64)}async function Mn(e){if(!e.telemetryOptIn)return;let t=Dr(e.cmd),n=t&&Pn(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";Pr("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}:{}})}async function To(e){return Nr("telemetry","/api/v1/telemetry",{baseUrl:e,consent:!0})}var ry,sy,oy,iy,ay,ly,Ml,cy,uy,fy,Yt=b(()=>{"use strict";ho();Eo();ry=/^[a-z0-9][a-z0-9._-]*$/i,sy=/^[a-z][a-z-]+$/,oy=/^[A-Za-z_][A-Za-z0-9_]*=/,iy=new Set(["gh","glab","gup","hub","gist"]),ay=/^(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,ly=24,Ml=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"]),cy=new Set([...Ml,"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"]),uy=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"])]]),fy=new Set(["-C","-c"])});function Ce(e){return e.replace(py,"").replace(hy,"")}var py,hy,Fn=b(()=>{"use strict";py=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,hy=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function Ll(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var jl=b(()=>{"use strict"});function Bl(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 Hl=b(()=>{"use strict"});function qt(e){return`\u2026 (${e} more lines omitted)`}function Ul(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),qt(s.length),...e.slice(e.length-r)],dropped:s}}var Ro=b(()=>{"use strict"});function zl(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)gy.test(a)&&!Qe.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var gy,Qe,Ao=b(()=>{"use strict";gy=/^\s*(?:[✓✔√]|ok )/,Qe=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function Gl(e){return e.map(t=>t.replace(yy,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var yy,Zl=b(()=>{"use strict";yy=/(?:\/[\w.@+-]+){3,}/g});function Sy(e){let t=wy.exec(e);return!t||_y.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function xy(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 Ey(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==="&"))&&xy(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}function Ry(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 $o(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Ty.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 Ln(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(by.test(o)&&ky.test(o)||Sy(o)||vy.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,c=!1;for(;l<e.length&&l-s<200;)if(a+=Ey(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let f=l-s;if(c&&f<t){r.push(...e.slice(s,l)),s=l;continue}if(c&&f>=3){let u=f-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(Ry(d,u,n?s+2:null));for(let m=0;m<u-1;m++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}function Fr(e){let t=e.slice(0,4096);return!(!Ay.test(t)||t.split(`
28
+ `).length<6)}var by,ky,wy,_y,vy,Mr,Ty,Ay,Xt=b(()=>{"use strict";by=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,ky=/\{\s*$/,wy=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,_y=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);vy=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;Mr=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,Ty=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;Ay=/\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 Ql(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(Yl.test(s.replace(Kl,""))&&!ql.test(s)&&!Xl.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}function Wl(e){if(e.trim()===""||/^\s/.test(e)||ql.test(e)||Xl.test(e)||Cy.test(e))return null;let t=e.replace(Kl,"");return Yl.test(t)||$y.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function ec(e){let t=[],n=0;for(;n<e.length;){let r=Wl(e[n]),s=n+1;if(r!==null)for(;s<e.length&&Wl(e[s])===r;)s+=1;let o=s-n;r===null||o<Iy?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+Jl)),t.push(`\u2026 ${o-Jl-Vl} similar log lines dropped \u2026`),t.push(...e.slice(s-Vl,s))),n=s}return t}function Lr(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} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function tc(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 Kl,Yl,ql,Xl,$y,Cy,Iy,Jl,Vl,jr=b(()=>{"use strict";Ao();Kl=/^\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*/,Yl=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,ql=new RegExp(Qe.source,"i"),Xl=/\bWARN(?:ING)?\b/i;$y=/^(?:DEBUG|INFO):[\w.-]+:/,Cy=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Iy=8,Jl=1,Vl=2});function se(e,t){nc.set(e,t)}function rc(e){return nc.get(e)}var nc,He=b(()=>{"use strict";nc=new Map});function Fy(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 Ly(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?My[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function jy(e){let t=Dy.exec(e);if(!t)return null;let n=t[2].trim();if(n===""||n==="."||n==="..")return null;let r=t[1],s=/^\d+$/.test(r)?Fy(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:Ly(r),isDir:o}}function By(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 Hy(e){let t=[],n=[],r=!1;for(let u of e){if(u.trim()===""||/^total\s+\d+/.test(u))continue;if(Py.test(u.trim())||!Oy.test(u))return e;let d=jy(u);if(!d){if(/\s\.\.?$/.test(u))continue;return e}r=!0,(d.isDir?t:n).push(d)}if(!r)return e;let s=(u,d)=>u.name.localeCompare(d.name);t.sort(s),n.sort((u,d)=>d.sizeKey-u.sizeKey||s(u,d));let o=[...t,...n],i=[];for(let u of o){let d=u.isDir?`${u.name}/`:u.name;i.push(u.isDir?d:`${d} ${u.size}`)}if(i.length>Co){let u=i.length-Co;i=[...i.slice(0,Co),`\u2026 ${u} more lines omitted`]}let a=n.length===1?"file":"files",l=t.length===1?"dir":"dirs",c=By(n),f=`${n.length} ${a}, ${t.length} ${l}`+(c?` (${c})`:"");return i.push(f),i}var Oy,Py,Ny,Dy,My,Co,sc=b(()=>{"use strict";He();Oy=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Py=/^[./~][^\s]*:$/,Ny=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})?`,Dy=new RegExp(String.raw`^\S+\s+\d+\s+\S+\s+(?:\S+\s+)?(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Ny})\s+(.+)$`),My={k:1,m:2,g:3,t:4,p:5},Co=1e3;se("smart-ls",Hy)});var oc=b(()=>{"use strict";Xt();He();se("smart-read",e=>Ln(e))});function Uy(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 zy(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 Gy(e){let t=e.filter(c=>c.trim()!=="");if(t.length===0||t.filter(c=>!/\s/.test(c.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let c of t){let f=c.trim();if(f.startsWith("find:")){s.push(f);continue}let u=f.replace(/^\.\//,"").replace(/\/+$/,""),d=u.lastIndexOf("/"),m=d>=0?u.slice(0,d):"",p=d>=0?u.slice(d+1):u;if(!p)continue;let k=r.get(m)??[];k.push(/\s/.test(p)?`"${p}"`:p),r.set(m,k),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")?Uy(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let f=a?c.slice(a.length).replace(/^\//,""):c,u=r.get(c),d=zy(u),m=d?u.map(p=>p.slice(0,-d.length)):u;l.push(`${f?`${f}/`:"./"} (${u.length}${d?`, *${d}`:""}): ${m.join(" ")}`)}if(l.length+s.length>ic){let c=Math.max(0,ic-s.length),f=l.length-c;return[...l.slice(0,c),`\u2026 ${f} more lines omitted`,...s]}return[...l,...s]}var ic,ac=b(()=>{"use strict";He();ic=1e3;se("smart-find",Gy)});function uc(e){let t=e.trim();return t.length>lc?`${t.slice(0,lc)}\u2026`:t}function Yy(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Jy&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function qy(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 Xy(e){let t=e.filter(m=>m.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,o=0,i=0;for(let m of t){if(m==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let p=Vy.exec(m),k=Wy.exec(m);if(p&&k)return e;let y=p||k?null:Ky.exec(m),C=(p??k??y)?.[1];if(!C)return e;let x=p?{line:p[2],content:p[3],context:!1}:k?{line:k[2],content:k[3],context:!0}:{line:"",content:y[2],context:!1},E=n.get(C)??[];E.push(x),n.set(C,E),x.context||(o+=1,r.set(C,(r.get(C)??0)+1)),i+=1,s=C}if(n.size===i)return e;let a=[...n.keys()].sort((m,p)=>{let k=cc.test(m)?1:0,y=cc.test(p)?1:0;return k-y||(m<p?-1:m>p?1:0)}),l=a.length>1?qy(a):"",c=m=>l?m.slice(l.length+1):m,f=[];for(let m of a){f.push(`${c(m)} (${r.get(m)??0}):`);for(let p of n.get(m))"separator"in p?f.push(" --"):p.line?f.push(` ${p.line}${p.context?"-":":"} ${uc(p.content)}`):f.push(` ${uc(p.content)}`)}let u=a.length>1&&f.length>Zy?Yy(a.map(m=>`${c(m)} (${r.get(m)??0})`)):[],d=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...u,"",...f];if(d.length>Io){let m=d.length-Io;return[...d.slice(0,Io),`\u2026 ${m} more lines omitted`]}return d}var Io,lc,Zy,Jy,Vy,Wy,Ky,cc,fc=b(()=>{"use strict";He();Io=1e3,lc=200,Zy=60,Jy=190,Vy=/^([^\s:]+):(\d+):(.*)$/,Wy=/^([^:]+?)-(\d+)-(.*)$/,Ky=/^([^\s:]+):(.*)$/,cc=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;se("smart-grep",Xy)});function n0(e){if(!e.some(c=>dc.test(c)))return e;let t=[],n=0,r=0,s=0,o="",i=!1,a=!1,l=()=>{r>0&&t.push(`${o} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let c of e){let f=c.slice(0,s),u=Qy.test(f),d=u?c.slice(s):c,m=e0.test(d),p=i&&m?null:dc.exec(c);if(p){l(),n=0,s=p[1]?.length??0,i=!0,a=!1,t.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(d)&&(a=!0),m&&!a&&!(s>0&&d.trim().length===0)){n+=1,n<=t0?t.push(c):(r+=1,o=u?f:"");continue}l(),t.push(c)}return l(),t}var dc,Qy,e0,t0,mc=b(()=>{"use strict";He();dc=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,Qy=/^[|\\/* ._-]*$/,e0=/^ {4}/,t0=2;se("smart-log",n0)});var r0,s0,o0,pc=b(()=>{"use strict";He();r0=/^[\s=]+$/,s0=/^\s*=+\s+(.*?)\s+=+\s*$/,o0=512;se("strip-banners",e=>{let t=[];for(let n of e){if(r0.test(n))continue;let r=n.length<=o0?s0.exec(n):null;t.push(r?r[1]:n)}return t})});function i0(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 hc=b(()=>{"use strict";He();se("squeeze-output",i0)});function a0(e){return e==="compact"?.6:e==="minimal"?.3:1}function c0(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 u0(e){let t=gc.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r={def:e,stripRegexes:n};return gc.set(e,r),r}function Br(e,t,n={}){return Oo(e,t,n).text}function Oo(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_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=u0(t),o=e;t.strip_ansi&&(o=Ce(o));let i=o.endsWith(`
28
29
  `),a=(i?o.slice(0,-1):o).split(`
29
- `);s.stripRegexes.length&&(a=e.keep_failures?a.filter(u=>Ae.test(u)||!s.stripRegexes.some(h=>h.test(u))):Ki(a,s.stripRegexes)),n!=="normal"&&!e.preserve_exact&&(a=ta(a),a=ra(a)),n==="minimal"&&!e.preserve_exact&&(a=ea(a),(e.slug==="vitest"||e.slug==="npm-test")&&(a=Lm(a)));let c=e.transform==="smart-read"&&r.smartCode!==!0?n==="compact"?8:n==="minimal"?6:3:3;if(!e.preserve_exact&&(r.smartCode||r.smartCode===void 0&&n!=="normal"&&Tr(o))&&(a=zt(a,c)),e.transform){let u=sa(e.transform);e.transform==="smart-read"?a=zt(a,c):u&&(a=u(a))}let d=e.slug==="read-tool";if(!d){let u=Un(a);u.some(Boolean)&&(a=a.filter((h,m)=>!u[m]))}e.mask_abs_paths&&(a=Xi(a)),e.fold_passing&&(a=Yi(a,e.fold_passing_threshold??5)),e.truncate_lines_at&&(a=qi(a,e.truncate_lines_at));let l=null;if(e.max_lines){let u=e.scale_with_level?Nm(r.verbosity):1,h=Math.min(e.max_lines,Math.max(Mm,Math.round(e.max_lines*u))),m=d?Un(a):null,w=m?m.filter(_=>!_).length:a.length;if(w>h){let _=h;if(m){let k=0;for(_=0;_<a.length&&k<h;)m[_]||(k+=1),_+=1}let I=w-h;if(e.keep_failures){let k=a.slice(_),T=k.filter(D=>!Ae.test(D)),O=k.reduce((D,N,z)=>D+(!Ae.test(N)&&!m?.[_+z]?1:0),0);l=T.length>0?T.join(`
30
- `):null,a=[...a.slice(0,_),...O>0?[kr(O)]:[],...k.filter(D=>Ae.test(D))]}else if(d)l=a.slice(_).join(`
31
- `),a=[...a.slice(0,_),kr(I)];else{let{kept:k,dropped:T}=Ji(a,h);l=T.length>0?T.join(`
32
- `):null,a=k}}}let f=a.join(`
33
- `);return i&&f.length>0&&(f+=`
34
- `),f.trim().length===0&&e.on_empty&&(f=e.on_empty),{text:f,droppedTail:l}}var Bm=[/\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 fa(t){if(!t)return!1;for(let e of qe(t).split(`
35
- `))if(!/^\s*[✓✔√]\s/.test(e)&&Bm.some(r=>r.test(e)))return!0;return!1}var jm=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Um=/^[A-Za-z_][A-Za-z0-9_]*=/,Vn=/^([a-z]+)-tool(?::\s|$)/;function _t(t){let e=t.trim(),r=e.split(/\s+/),n=0;for(;n<r.length;){let a=r[n];if(Um.test(a)){n++;continue}if(jm.has(a)){for(n++,a==="timeout"&&n<r.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(r[n])&&n++;(a==="stdbuf"||a==="nice")&&n<r.length&&r[n].startsWith("-");)n++;continue}break}if(n>=r.length)return e;let s=r[n],o=s.includes("/")?s.slice(s.lastIndexOf("/")+1):s,i=r.slice(n+1);return i.length?`${o} ${i.join(" ")}`:o}var zm=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function ma(t,e){let r=!1,n=!1,s=0,o=[];for(let i=0;i<t.length;i++){let a=t[i];if(a==="\\"&&!r){i++;continue}a==="'"&&!n?r=!r:a==='"'&&!r?n=!n:!r&&!n&&(a===";"?(o.push(t.slice(s,i)),s=i+1):a==="|"&&t[i+1]==="|"?(o.push(t.slice(s,i)),i++,s=i+1):a==="|"?e||(o.push(t.slice(s,i)),s=i+1):a==="&"&&t[i+1]==="&"&&(o.push(t.slice(s,i)),i++,s=i+1))}return o.push(t.slice(s)),o}function Hm(t){let e=ma(t,!1);for(let r=e.length-1;r>=0;r--){let n=e[r].trim();if(n)return n}return t.trim()}function Gn(t){let e=ma(t,!0).map(r=>r.trim()).filter(Boolean);if(e.length===0)return null;for(let r of e.slice(0,-1)){let n=_t(r).split(/\s+/)[0]??"";if(!zm.has(n))return null}return Hm(e[e.length-1])}function pa(t){let e=!1,r=!1,n=0,s=[];for(let o=0;o<t.length;o++){let i=t[o];if(i==="\\"&&!e){o++;continue}i==="'"&&!r?e=!e:i==='"'&&!e?r=!r:!e&&!r&&(i==="|"||i===";"?(s.push(t.slice(n,o)),i==="|"&&t[o+1]==="|"&&o++,n=o+1):i==="&"&&t[o+1]==="&"&&(s.push(t.slice(n,o)),o++,n=o+1))}s.push(t.slice(n));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return t.trim()}function ha(t){let e=Vn.exec(t),r=t;if(e){if(e[1]!=="bash")return[t];let o=t.indexOf(": ");if(o<0)return[t];r=t.slice(o+2)}let n=Gn(r),s=n?_t(n):null;return s&&s!==t?[s,t]:[t]}var ga=`
30
+ `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Qe.test(d)||!s.stripRegexes.some(m=>m.test(d))):Ll(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Lr(a),a=tc(a)),r==="minimal"&&!t.preserve_exact&&(a=Ql(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=c0(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"&&Fr(o))&&(a=Ln(a,l)),t.transform){let d=rc(t.transform);t.transform==="smart-read"?a=Ln(a,l,t.slug==="read-tool"):d&&(a=d(a))}let c=t.slug==="read-tool";if(!c){let d=$o(a);d.some(Boolean)&&(a=a.filter((m,p)=>!d[p]))}t.mask_abs_paths&&(a=Gl(a)),t.fold_passing&&(a=zl(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Bl(a,t.truncate_lines_at));let f=null;if(t.max_lines){let d=t.scale_with_level?a0(n.verbosity):1,m=Math.min(t.max_lines,Math.max(l0,Math.round(t.max_lines*d))),p=c?$o(a):null,k=p?p.filter(y=>!y).length:a.length;if(k>m){let y=m;if(p){let x=0;for(y=0;y<a.length&&x<m;)p[y]||(x+=1),y+=1}let C=k-m;if(t.keep_failures){let x=a.slice(y),E=x.filter(O=>!Qe.test(O)),I=x.reduce((O,F,W)=>O+(!Qe.test(F)&&!p?.[y+W]?1:0),0);f=E.length>0?E.join(`
31
+ `):null,a=[...a.slice(0,y),...I>0?[qt(I)]:[],...x.filter(O=>Qe.test(O))]}else if(c)f=a.slice(y).join(`
32
+ `),a=[...a.slice(0,y),qt(C)];else{let{kept:x,dropped:E}=Ul(a,m);f=E.length>0?E.join(`
33
+ `):null,a=x}}}let u=a.join(`
34
+ `);return i&&u.length>0&&(u+=`
35
+ `),u.trim().length===0&&t.on_empty&&(u=t.on_empty),{text:u,droppedTail:f}}var l0,gc,Po=b(()=>{"use strict";Fn();jl();Hl();Ro();Ao();Zl();Xt();jr();He();sc();oc();ac();fc();mc();pc();hc();l0=20;gc=new WeakMap});function f0(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function d0(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+=`
36
+ `,i===t&&(s+=" ".repeat(o+n+2),s+=`^
37
+ `))}return s}var A,vt=b(()=>{A=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=f0(n.toml,n.ptr),o=d0(n.toml,r,s);super(`Invalid TOML document: ${t}
38
+
39
+ ${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 Hr(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 c=e.s.slice(a,e.p);i=i?i+c:c}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 c=e.p++-1,f=0,u=n===120?2:n===117?4:8;for(let d=0;d<u;d++,e.p++){let m=e.s.charCodeAt(e.p),p=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;p<0&&A.x("invalid non-hex character in unicode escape",e),f=f<<4|p}(f<0||f>1114111||f>=55296&&f<=57343)&&A.x("invalid unicode escape",e,c),i+=String.fromCodePoint(f),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
40
+ `: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 No=b(()=>{vt();});var m0,xt,Do=b(()=>{m0=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,xt=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(m0);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 le(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Fo(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Bn(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?kc(e):bc(e);return e.d++,s}return r===34||r===39?Hr(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?p0(e,r,t):e.s.charCodeAt(e.p+2)===58?h0(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||Fo(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Mo(e,t,16,s);if(o===98)return Mo(e,t,2,s);if(o===111)return Mo(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:A.x("illegal leading zero",e,t)}else le(o)||A.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Fo(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)||(le(o)?i>9?i-=11:i&1||i++:A.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}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):yc(e,l,10,t)}function Mo(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Fo(s,r));)s===95?(o&1&&A.x("illegal underscore",e),o=3):le(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("_","")),yc(e,i,n,t)}function yc(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 p0(e,t,n){let r=e.p++,s;if(!le(t)||!le(e.s.charCodeAt(e.p++))||!le(e.s.charCodeAt(e.p++))||!le(e.s.charCodeAt(e.p++)))return Ur(e,e.p=r,t,0,n);if(e.p+=5,le(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,!le(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return jn(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(;le(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 jn(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return jn(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return jn(e,o,2,s,r)}function h0(e,t,n){let r=e.p;if(!le(t)||!le(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(;le(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return jn(e,s,4,!1,r)}function jn(e,t,n,r,s,o){if(e.ld){let i=new xt(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 Lo=b(()=>{No();jo();vt();Do();});function g0(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;g0(e)}}var Bo=b(()=>{vt();});function zr(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(Hr(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 bc(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,c=zr(e);for(let u=0;u<c.length;u++){u&&(i=a?i[o]:i[o]=Object.create(null)),o=c[u],(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 f=Bn(e,125);if(i&&typeof(i[o]=f)=="object"&&r.add(f),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 kc(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(Bn(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 jo=b(()=>{No();Lo();Bo();vt();});function wc(e,t,n,r,s){let o=n,i=r,a,l=!1,c;for(let f=0;f<t.length;f++){if(f){if(o=l?o[a]:o[a]=Object.create(null),i=(c=i[a]).c,s===0&&(c.t===1||c.t===2))return null;if(c.t===2){let u=o.length-1;o=o[u],i=i[u].c}}if(a=t[f],(l=Object.hasOwn(o,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let u=a==="__proto__";if(e.uk&&(u||a==="constructor"))return!1;u&&(Object.defineProperty(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:f<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==s&&!(s===1&&c.t===3)||(s===2&&(c.d||(c.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),c.c[c.i++]=c={t:1,d:!1,i:0,c:Object.create(null)}),c.d))return null;if(c.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,c.c]}function _c(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 Ho(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 c=e.charCodeAt(++n.p)===91;o=n.p+=+c,i=!1;let f=zr(n,93);c&&(e.charCodeAt(n.p)!==93&&A.x("expected end of table array declaration",n),n.p++);let u=wc(n,f,r,s,c?2:1);u?(l=u[2],a=u[1]):(_c(n,u,o),i=!0)}else{o=n.p;let c=zr(n),f=wc(n,c,a,l,0);!f&&!i&&_c(n,f,o),we(n,!0,!0);let u=Bn(n,void 0);f&&!i&&(f[1][f[0]]=u)}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 Sc=b(()=>{jo();Lo();Bo();vt();});function Hn(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 b0(e){for(let t=0;t<e.length;t++)if(Hn(e[t])!=="object")return!1;return e.length!=0}function xc(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function k0(e){return xc(vc?e.toWellFormed():e)}function Ec(e){if(y0.test(e))return e;if(vc&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return xc(e)}function Uo(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 k0(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return w0(e,n,r,s);case"array":return _0(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 w0(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+=Ec(a)+" = "+Uo(e[a],Hn(e[a]),t-1,n,r)}return o+" }"}function _0(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+=Uo(e[o],Hn(e[o]),t-1,n,r)}return s+" ]"}function S0(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&&`
41
+ `}[[${t}]]
42
+ `,o+=zo(0,e[i],t,n,r,s);return o}function zo(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 c=0;c<l.length;c++){let f=l[c];if(t[f]!==null&&t[f]!==void 0){let u=Hn(t[f]);if(u==="symbol"||u==="function")throw new TypeError(`cannot serialize values of type '${u}'`);let d=Ec(f);if(u==="array"&&b0(t[f]))a+=(a&&`
43
+ `)+S0(t[f],n?`${n}.${d}`:d,r-1,s,o);else if(u==="object"){let m=n?`${n}.${d}`:d;a+=(a&&`
44
+ `)+zo(m,t[f],m,r-1,s,o)}else i+=d,i+=" = ",i+=Uo(t[f],u,r,s,o),i+=`
45
+ `}}return e&&(i||!a)&&(i=i?`[${e}]
46
+ ${i}`:`[${e}]`),i&&a?`${i}
47
+ ${a}`:i||a}function Go(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Hn(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=zo(0,e,"",t,n,r);return s[s.length-1]!==`
48
+ `?s+`
49
+ `:s}var y0,vc,Tc=b(()=>{y0=/^[a-z0-9-_]+$/i,vc=!!"".isWellFormed});var Zo={};Pe(Zo,{TomlDate:()=>xt,TomlError:()=>A,default:()=>v0,parse:()=>Ho,stringify:()=>Go});var v0,Jo=b(()=>{Sc();Tc();Do();vt();v0={parse:Ho,stringify:Go,TomlDate:xt,TomlError:A}});import{readdir as x0,readFile as Cc,writeFile as hA,mkdir as gA,rename as yA}from"node:fs/promises";import{readdirSync as E0,statSync as Rc}from"node:fs";import{createHash as T0}from"node:crypto";import{basename as _A,join as Vr}from"node:path";function Jr(){return Vr(_(),"filters")}function Oc(){return Vr(_(),"filters-trust.json")}function Pc(e){return typeof e=="string"&&e.startsWith(Ic)}function A0(e){return T0("sha256").update(e).digest("hex")}async function $0(){try{let e=JSON.parse(await Cc(Oc(),"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 C0(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 I0(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=C0(e,r);if("message"in o)return o;let i=Ve.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(c=>`${c.path.join(".")||"rule"}: ${c.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:`${Ic}${i.data.slug}`,matchRegex:a},tests:o.tests}}function O0(e){return e===void 0||e===Gr?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Gr}. Update tkr, or write the file for version ${Gr}`:`schema_version must be the number ${Gr}`}async function P0(e){try{return(await x0(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function N0(e={}){let t=e.requireTrust!==!1,n=Jr(),r=new Map,s=new Map,o=[],i=await P0(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await $0():null;for(let l of i){let c;try{c=await Cc(Vr(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let u=a.files[l];if(!u){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(u!==A0(c)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let f=await D0(c,l);for(let[u,d]of f.filters)r.set(u,d);for(let[u,d]of f.tests)s.set(u,d);o.push(...f.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function D0(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(Jo(),Zo)),i;try{i=o(e)}catch(c){return s.push({file:t,message:`not valid TOML (${String(c.message).split(`
50
+ `)[0]})`}),{filters:n,tests:r,issues:s}}let a=O0(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[c,f]of Object.entries(l)){let u=I0(c,f);if("message"in u){s.push({file:t,message:u.message});continue}n.set(u.filter.slug,u.filter),u.tests.length>0&&r.set(u.filter.slug,{file:t,tests:u.tests})}return{filters:n,tests:r,issues:s}}function M0(){let e=[];for(let t of[Oc(),Jr()])try{let n=Rc(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of E0(Jr()).filter(n=>n.endsWith(".toml")).sort()){let n=Rc(Vr(Jr(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function F0(){let e=Date.now();if(!Zr||e-$c>=R0){$c=e;let t=M0();(!Zr||t!==Ac)&&(Ac=t,Zr=N0())}return Zr}async function L0(e){let{filters:t}=await F0();return t.size===0?null:Bt(e,t.values(),null,t)}function Nc(e){return async(t,n)=>await L0(t)??e(t,n)}var Ic,Gr,Zr,Ac,$c,R0,Vo=b(()=>{"use strict";bn();pr();Po();H();Ic="user/",Gr=1,Zr=null,Ac="",$c=0,R0=1e3});var Dc={};Pe(Dc,{flush:()=>Wo,recordEvent:()=>Un});async function Un(e){if(e.plan!=="pro"||Pc(e.filterId)||!(await re()).telemetryOptIn)return;let t=Dr(e.cmd);!t||Pn(t)!==t||Pr("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}async function Wo(e){return Nr("learn","/api/v1/learn",{baseUrl:e,requirePro:!0})}var zn=b(()=>{"use strict";Yt();ho();Eo();je();Vo();wt()});var Jc=ae((s1,Zc)=>{Zc.exports=Gc;Gc.sync=G0;var Uc=Ue("fs");function z0(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 zc(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:z0(t,n)}function Gc(e,t,n){Uc.stat(e,function(r,s){n(r,r?!1:zc(s,e,t))})}function G0(e,t){return zc(Uc.statSync(e),e,t)}});var qc=ae((o1,Yc)=>{Yc.exports=Wc;Wc.sync=Z0;var Vc=Ue("fs");function Wc(e,t,n){Vc.stat(e,function(r,s){n(r,r?!1:Kc(s,t))})}function Z0(e,t){return Kc(Vc.statSync(e),t)}function Kc(e,t){return e.isFile()&&J0(e,t)}function J0(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),c=parseInt("001",8),f=a|l,u=n&c||n&l&&s===i||n&a&&r===o||n&f&&o===0;return u}});var Qc=ae((a1,Xc)=>{var i1=Ue("fs"),Wr;process.platform==="win32"||global.TESTING_WINDOWS?Wr=Jc():Wr=qc();Xc.exports=Ko;Ko.sync=V0;function Ko(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){Ko(e,t||{},function(o,i){o?s(o):r(i)})})}Wr(e,t||{},function(r,s){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,s=!1),n(r,s)})}function V0(e,t){try{return Wr.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var iu=ae((l1,ou)=>{var en=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",eu=Ue("path"),W0=en?";":":",tu=Qc(),nu=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),ru=(e,t)=>{let n=t.colon||W0,r=e.match(/\//)||en&&e.match(/\\/)?[""]:[...en?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],s=en?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=en?s.split(n):[""];return en&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:s}},su=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:s,pathExtExe:o}=ru(e,t),i=[],a=c=>new Promise((f,u)=>{if(c===r.length)return t.all&&i.length?f(i):u(nu(e));let d=r[c],m=/^".*"$/.test(d)?d.slice(1,-1):d,p=eu.join(m,e),k=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;f(l(k,c,0))}),l=(c,f,u)=>new Promise((d,m)=>{if(u===s.length)return d(a(f+1));let p=s[u];tu(c+p,{pathExt:o},(k,y)=>{if(!k&&y)if(t.all)i.push(c+p);else return d(c+p);return d(l(c,f,u+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},K0=(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,c=eu.join(l,e),f=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let u=0;u<r.length;u++){let d=f+r[u];try{if(tu.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 nu(e)};ou.exports=su;su.sync=K0});var lu=ae((c1,Yo)=>{"use strict";var au=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};Yo.exports=au;Yo.exports.default=au});var du=ae((u1,fu)=>{"use strict";var cu=Ue("path"),Y0=iu(),q0=lu();function uu(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=Y0.sync(e.command,{path:n[q0({env:n})],pathExt:t?cu.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=cu.resolve(s?e.options.cwd:"",i)),i}function X0(e){return uu(e)||uu(e,!0)}fu.exports=X0});var mu=ae((f1,Xo)=>{"use strict";var qo=/([()\][%!^"`<>&|;, *?])/g;function Q0(e){return e=e.replace(qo,"^$1"),e}function eb(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(qo,"^$1"),t&&(e=e.replace(qo,"^$1")),e}Xo.exports.command=Q0;Xo.exports.argument=eb});var hu=ae((d1,pu)=>{"use strict";pu.exports=/^#!(.*)/});var yu=ae((m1,gu)=>{"use strict";var tb=hu();gu.exports=(e="")=>{let t=e.match(tb);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),s=n.split("/").pop();return s==="env"?r:r?`${s} ${r}`:s}});var ku=ae((p1,bu)=>{"use strict";var Qo=Ue("fs"),nb=yu();function rb(e){let n=Buffer.alloc(150),r;try{r=Qo.openSync(e,"r"),Qo.readSync(r,n,0,150,0),Qo.closeSync(r)}catch{}return nb(n.toString())}bu.exports=rb});var vu=ae((h1,Su)=>{"use strict";var sb=Ue("path"),wu=du(),_u=mu(),ob=ku(),ib=process.platform==="win32",ab=/\.(?:com|exe)$/i,lb=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function cb(e){e.file=wu(e);let t=e.file&&ob(e.file);return t?(e.args.unshift(e.file),e.command=t,wu(e)):e.file}function ub(e){if(!ib)return e;let t=cb(e),n=!ab.test(t);if(e.options.forceShell||n){let r=lb.test(t);e.command=sb.normalize(e.command),e.command=_u.command(e.command),e.args=e.args.map(o=>_u.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 fb(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)}Su.exports=fb});var Tu=ae((g1,Eu)=>{"use strict";var ei=process.platform==="win32";function ti(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 db(e,t){if(!ei)return;let n=e.emit;e.emit=function(r,s){if(r==="exit"){let o=xu(s,t);if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function xu(e,t){return ei&&e===1&&!t.file?ti(t.original,"spawn"):null}function mb(e,t){return ei&&e===1&&!t.file?ti(t.original,"spawnSync"):null}Eu.exports={hookChildProcess:db,verifyENOENT:xu,verifyENOENTSync:mb,notFoundError:ti}});var $u=ae((y1,tn)=>{"use strict";var Ru=Ue("child_process"),ni=vu(),ri=Tu();function Au(e,t,n){let r=ni(e,t,n),s=Ru.spawn(r.command,r.args,r.options);return ri.hookChildProcess(s,r),s}function pb(e,t,n){let r=ni(e,t,n),s=Ru.spawnSync(r.command,r.args,r.options);return s.error=s.error||ri.verifyENOENTSync(s.status,r),s}tn.exports=Au;tn.exports.spawn=Au;tn.exports.sync=pb;tn.exports._parse=ni;tn.exports._enoent=ri});import{readdir as hb,readFile as gb}from"node:fs/promises";import{join as Iu,dirname as yb}from"node:path";import{fileURLToPath as bb}from"node:url";function _b(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function Ou(){return nn||(_b()?(nn=await Sb(wb),nn):(!Cu&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
51
+ `),Cu=!0),nn=new Map,nn))}async function Sb(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Jo(),Zo))).parse,r=(await hb(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await gb(Iu(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,c]of Object.entries(a)){let f=Ve.parse({slug:l,...c});t.set(l,{...f,matchRegex:new RegExp(f.match_command)})}}return t}var kb,wb,nn,Cu,Pu=b(()=>{"use strict";bn();kb=yb(bb(import.meta.url)),wb=process.env.TOKMIZER_FILTERS_DIR||Iu(kb,"..","..","filters"),nn=null,Cu=!1});function Nu(e){if(!e)return!1;for(let t of Ce(e).split(`
52
+ `))if(!/^\s*[✓✔√]\s/.test(t)&&vb.some(n=>n.test(t)))return!0;return!1}var vb,Du=b(()=>{"use strict";Fn();vb=[/\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 Et(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let a=n[r];if(Eb.test(a)){r++;continue}if(xb.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 Mu(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 Rb(e){let t=Mu(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function oi(e){let t=Mu(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Et(n).split(/\s+/)[0]??"";if(!Tb.has(r))return null}return Rb(t[t.length-1])}function Fu(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 ii(e){let t=Ab.exec(e);return t?Et(e.slice(t[0].length)):null}function Lu(e){let t=si.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=oi(n),s=r?Et(r):null,i=[s?ii(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var xb,Eb,si,Tb,Ab,ju=b(()=>{"use strict";xb=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Eb=/^[A-Za-z_][A-Za-z0-9_]*=/,si=/^([a-z]+)-tool(?::\s|$)/;Tb=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);Ab=/^(?: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 ai(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(Bu,"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")+Bu+t.subarray(s).toString("utf8")}var Bu,Hu=b(()=>{"use strict";Bu=`
36
53
  [YOLO: omitted]
37
- `;function Wn(t){let e=Buffer.from(t,"utf8");if(e.length<=256)return t;let r=256-Buffer.byteLength(ga,"utf8"),n=Math.floor(r/2);for(;(e[n]&192)===128;)n-=1;let s=e.length-(r-n);for(;(e[s]&192)===128;)s+=1;return e.subarray(0,n).toString("utf8")+ga+e.subarray(s).toString("utf8")}var Zm=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Vm=/^… \([1-9]\d* more lines omitted\)$/,Kn=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function Gm(t,e){if(!e)return t.split(`
54
+ `});function Ib(e,t){if(!t)return e.split(`
38
55
  `).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
39
- `);let r="",n=!1,s=!1;for(let o of t)n?(r+=o,s?s=!1:o==="\\"?s=!0:o==='"'&&(n=!1)):o==='"'?(n=!0,r+=o):o!==" "&&o!==" "&&o!=="\r"&&o!==`
40
- `&&(r+=o);return r+(t.endsWith(`
56
+ `);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!==`
57
+ `&&(n+=o);return n+(e.endsWith(`
41
58
  `)?`
42
- `:"")}function Wm(t,e){if(/@(?:p)?\d|\r/.test(t))return t;let r=t.endsWith(`
59
+ `:"")}function Ob(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
43
60
  `)?`
44
- `:"",n=(r?t.slice(0,-1):t).split(`
45
- `),s=n.findIndex(_=>Zm.test(_));if(s>=0&&n.slice(0,s).some(_=>_!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(_)))return t;let o=s>=0?[...n[s].matchAll(/\S+/g)].map(_=>_.index):[],i=[];for(let _=s+1;_<n.length;_+=1){let I=n[_];if(Vm.test(I))continue;if(/…|\.\.\./.test(I))return t;let k;if(s>=0){if(/[^\x20-\x7e]/.test(I))return t;let T=o.map((O,D)=>I.slice(O,o[D+1]));if(T.slice(0,-1).some(O=>O[0]===" "||!O.endsWith(" "))||(k=T.map(O=>O.replace(/ +$/,"")),!/^#\d+$/.test(k[0])||!/^\S+$/.test(k[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(k[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(k[4])))return t}else if(k=I.split(" "),k.length!==5||!/^\d+$/.test(k[0])||!k[1]||!k[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(k[3])||!Kn.test(k[4])||!Number.isFinite(Date.parse(k[4])))return t;if(k.some(T=>/[\u0000-\u001f\u007f]/.test(T)))return t;i.push({index:_,cells:k})}if(i.length===0)return t;s>=0&&(n[s]="ID TITLE BRANCH STATE CREATED");for(let _ of i)n[_.index]=_.cells.join(" ");let a=n.join(`
46
- `)+r;if(!e)return a;let c=new Map;for(let{cells:_}of i)c.set(_[1],(c.get(_[1])??0)+1);let d=new Map,l=[];for(let[_,I]of c){if(_.length<40||I<3||_.trim().split(/\s+/).length<8)continue;let k=`@${d.size+1}`,T=JSON.stringify(_).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),O=`TITLE ${k} = ${T}`;I*(Buffer.byteLength(_)-Buffer.byteLength(k))<=Buffer.byteLength(O)+1||(d.set(_,k),l.push(O))}let f=new Map;for(let{cells:_}of i){if(d.has(_[1]))continue;let I=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1];I&&I.length>=24&&f.set(I,(f.get(I)??0)+1)}let u=new Map;for(let[_,I]of f){if(I<3)continue;let k=`@p${u.size+1}`,T=`TITLE prefix ${k} = ${JSON.stringify(_).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;I*(Buffer.byteLength(_)-Buffer.byteLength(k)-1)<=Buffer.byteLength(T)+1||(u.set(_,k),l.push(T))}let h=i[0].cells[4].slice(10),m=i.length>=3&&Kn.test(i[0].cells[4])&&i.every(({cells:_})=>Kn.test(_[4])&&_[4].slice(10)===h)&&i.length*h.length>`CREATED suffix = ${JSON.stringify(h)}`.length+1;if(m&&l.push(`CREATED suffix = ${JSON.stringify(h)}`),l.length===0)return a;for(let{index:_,cells:I}of i){let k=d.get(I[1]),T=/^((?:\S+\s+){4})\S/.exec(I[1])?.[1],O=T?u.get(T):void 0;n[_]=I.map((D,N)=>N===1?k??(O?`${O}:${D.slice(T.length)}`:D):N===4&&m?D.slice(0,10):D).join(" ")}let w=[...n,"",...l].join(`
47
- `)+r;return Buffer.byteLength(w)<Buffer.byteLength(a)?w:a}function qn(t,e,r){if(e!=="compact"&&e!=="minimal")return t;let n=t;if(/^[ \t\r\n]*[\[{]/.test(t)){try{JSON.parse(t)}catch{return t}n=Gm(t,e==="minimal")}else r==="gh"&&(n=Wm(t,e==="minimal"));return Buffer.byteLength(n)<Buffer.byteLength(t)?n:t}var Km=/^(?:\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|$)/,qm=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function ya(t){if(Buffer.byteLength(t)<2048||Tr(t)||qm.test(t))return t;let e=t.split(`
48
- `),r=[];for(let n=0;n<e.length;){let s=e[n],o=n+1;if(Km.test(s))for(;o<e.length&&e[o]===s;)o+=1;let i=o-n,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))r.push(s,a);else for(let c=n;c<o;c+=1)r.push(s);n=o}return r.join(`
49
- `)}var _a=null;function Jn(t){_a=t}async function Jm(t,e){let r=await Wi();return sr(t,r.values(),e,r)}var Ym=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,Xm=2048;async function Yn(t,e,r,n={}){let s=Buffer.byteLength(e,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...c}=n,d=_t(pa(t.startsWith("bash-tool: ")?t.slice(11):t)),l=o!=null&&o!==0&&!(o===1&&Ym.test(d)),f=a??_a??Jm,u=null;for(let P of ha(t))if(u=await f(P,r),u)break;!u&&s>=Xm&&!Vn.test(t)&&(u=await f(`bash-tool: ${t}`,r));let h=Gn(t.startsWith("bash-tool: ")?t.slice(11):t),m=u?.slug==="git-log"&&h!=null&&/^git\s+log(?:\s|$)/.test(_t(h)),w=o==null&&(m?/^(?:fatal|error):/im.test(qe(e)):fa(e)),_=u?.transform==="smart-read"&&s<=2048&&(e.endsWith(`
50
- `)?e.slice(0,-1):e).split(`
51
- `).length<=60,I=s<=16384&&h!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(_t(h)),k=u?.transform==="smart-read"&&s<=16384&&(c.verbosity??"normal")==="normal"&&c.smartCode!==!0;if(!i&&(k||I||_&&c.smartCode!==!0))return{output:e,filterId:u?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:l||w,droppedTail:null};if(!u||(l||w)&&u.preserve_exact&&!i)return{output:e,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:l||w,...i?{droppedTail:null}:{}};let T=P=>{if(!i)return P;let _e=P.filteredBytes>s||s>0&&P.output.length===0?e:P.output,se=!P.debugBypass&&!u?.preserve_exact?qn(_e,"minimal",P.filterId??""):_e,be=Wn(se)===se?se:Wn(_e);return{...P,output:be,filteredBytes:Buffer.byteLength(be,"utf8"),droppedTail:null}};if(l||w){let P=i?da(e,{...u,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):u.strip_ansi&&!u.preserve_exact?qe(e):e;return!i&&c.verbosity==="minimal"&&u.transform!=="smart-read"&&(P=ya(P)),!i&&u.slug==="pytest"&&(c.verbosity==="compact"||c.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3")),T({output:P,filterId:u.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!0})}let{text:O,droppedTail:D}=Zn(e,u,i?{...c,verbosity:"minimal",...u.transform==="smart-read"?{smartCode:!0}:{}}:c),N=!i&&!u.preserve_exact?qn(O,c.verbosity,u.slug):O,z=Buffer.byteLength(N,"utf8");return e.trim().length>0&&z>=s?T({output:e,filterId:u.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):T({output:N,filterId:u.slug,rawBytes:s,filteredBytes:z,debugBypass:!1,droppedTail:D})}Ge();he();M();function Qm(){let t=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(t)&&t>0?t:6048e5}function ba(t,e=Date.now()){let r=t.lastHeartbeatOkAt;if(typeof r=="number"&&e-r>Qm())return!0;if(t.subEndsAt){let n=Date.parse(t.subEndsAt);if(Number.isFinite(n)&&e>n)return!0}return!1}function wa(t,e=Date.now()){return t.plan}Er();Bt();M();import{appendFileSync as tp,chmodSync as rp,mkdirSync as np,readFileSync as ka,renameSync as Ta,rmSync as Ra,statSync as Aa,writeFileSync as Xn}from"node:fs";import{dirname as sp,join as Ia}from"node:path";var ep={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function va(t){return t?ep[t]??"anthropic":"anthropic"}var op="stats.jsonl",ip="stats-ledger.json",xa=2*1024*1024,ap=3e4;function Ca(){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,t0:null,t1:null,cmds:{},prov:{}}}function cp(t){let e=t.trim();if(!e)return null;try{let r=JSON.parse(e);return typeof r.t!="number"||!Number.isFinite(r.t)||r.t<0||r.t>864e10||typeof r.r!="number"||!Number.isSafeInteger(r.r)||r.r<0||typeof r.f!="number"||!Number.isSafeInteger(r.f)||r.f<0||r.r+r.f===0?null:{t:r.t,r:r.r,f:r.f,m:r.m===1,...typeof r.h=="string"?{h:r.h}:{},...typeof r.k=="string"?{k:r.k}:{},...typeof r.c=="string"&&r.c?{c:r.c}:{}}}catch{return null}}function up(t,e){if(e.m){t.mr+=e.r,t.mf+=e.f;return}if(e.k==="restore"&&(t.rn+=1,t.rb+=e.f),t.n+=1,t.or+=e.r,t.of+=e.f,e.f>e.r&&(t.x+=1),e.h==="shell"&&(t.tn+=1,t.tr+=e.r,t.tf+=e.f),t.t0=t.t0==null?e.t:Math.min(t.t0,e.t),t.t1=t.t1==null?e.t:Math.max(t.t1,e.t),e.c){let r=t.cmds[e.c]??{n:0,nc:0,r:0,f:0,sh:!1};r.n+=1,e.f<e.r&&(r.nc+=1,r.rr=(r.rr??0)+e.r,r.rf=(r.rf??0)+e.f),(e.k==="sh"||e.k==="restore")&&(r.sh=!0),r.r+=e.r,r.f+=e.f,t.cmds[e.c]=r}if(e.f<e.r){t.nc+=1,t.r+=e.r,t.f+=e.f,e.k==="sh"&&(t.sn+=1,t.sr+=e.r,t.sf+=e.f);let r=va(e.h),n=t.prov[r]??{r:0,f:0};n.r+=e.r,n.f+=e.f,t.prov[r]=n}}function lp(t){let e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function Pa(t){return Ia(sp(t),ip)}function dp(t){let e=Pa(t),r;try{r=ka(e,"utf8")}catch{return{}}try{let n=JSON.parse(r);if(!n.days||typeof n.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(n.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Ca(),...i});return s}catch{try{Ta(e,`${e}.corrupt-${Date.now()}`)}catch{}return{}}}function Ea(t,e){let r=`${t}.tmp-${process.pid}`;Xn(r,e,{mode:384}),Ta(r,t)}function fp(t){try{return Xn(t,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Aa(t).mtimeMs<ap?!1:(Ra(t,{force:!0}),Xn(t,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function mp(t,e=xa,r=xa/2){try{if(Aa(t).size<=e)return}catch{return}let n=`${t}.lock`;if(fp(n))try{let s=ka(t,"utf8").split(`
52
- `).filter(d=>d.trim()!==""),o=s.length,i=0;for(;o>0;){let d=Buffer.byteLength(s[o-1])+1;if(i+d>r)break;i+=d,o-=1}let a=dp(t);for(let d of s.slice(0,o)){let l=cp(d);if(!l)continue;let f=lp(l.t),u=a[f]??Ca();up(u,l),a[f]=u}let c=s.slice(o);Ea(t,c.length?`${c.join(`
61
+ `:"",r=(n?e.slice(0,-1):e).split(`
62
+ `),s=r.findIndex(y=>$b.test(y));if(s>=0&&r.slice(0,s).some(y=>y!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(y)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(y=>y.index):[],i=[];for(let y=s+1;y<r.length;y+=1){let C=r[y];if(Cb.test(C))continue;if(/…|\.\.\./.test(C))return e;let x;if(s>=0){if(/[^\x20-\x7e]/.test(C))return e;let E=o.map((I,O)=>C.slice(I,o[O+1]));if(E.slice(0,-1).some(I=>I[0]===" "||!I.endsWith(" "))||(x=E.map(I=>I.replace(/ +$/,"")),!/^#\d+$/.test(x[0])||!/^\S+$/.test(x[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(x[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(x[4])))return e}else if(x=C.split(" "),x.length!==5||!/^\d+$/.test(x[0])||!x[1]||!x[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(x[3])||!li.test(x[4])||!Number.isFinite(Date.parse(x[4])))return e;if(x.some(E=>/[\u0000-\u001f\u007f]/.test(E)))return e;i.push({index:y,cells:x})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let y of i)r[y.index]=y.cells.join(" ");let a=r.join(`
63
+ `)+n;if(!t)return a;let l=new Map;for(let{cells:y}of i)l.set(y[1],(l.get(y[1])??0)+1);let c=new Map,f=[];for(let[y,C]of l){if(y.length<40||C<3||y.trim().split(/\s+/).length<8)continue;let x=`@${c.size+1}`,E=JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${x} = ${E}`;C*(Buffer.byteLength(y)-Buffer.byteLength(x))<=Buffer.byteLength(I)+1||(c.set(y,x),f.push(I))}let u=new Map;for(let{cells:y}of i){if(c.has(y[1]))continue;let C=/^((?:\S+\s+){4})\S/.exec(y[1])?.[1];C&&C.length>=24&&u.set(C,(u.get(C)??0)+1)}let d=new Map;for(let[y,C]of u){if(C<3)continue;let x=`@p${d.size+1}`,E=`TITLE prefix ${x} = ${JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;C*(Buffer.byteLength(y)-Buffer.byteLength(x)-1)<=Buffer.byteLength(E)+1||(d.set(y,x),f.push(E))}let m=i[0].cells[4].slice(10),p=i.length>=3&&li.test(i[0].cells[4])&&i.every(({cells:y})=>li.test(y[4])&&y[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(p&&f.push(`CREATED suffix = ${JSON.stringify(m)}`),f.length===0)return a;for(let{index:y,cells:C}of i){let x=c.get(C[1]),E=/^((?:\S+\s+){4})\S/.exec(C[1])?.[1],I=E?d.get(E):void 0;r[y]=C.map((O,F)=>F===1?x??(I?`${I}:${O.slice(E.length)}`:O):F===4&&p?O.slice(0,10):O).join(" ")}let k=[...r,"",...f].join(`
64
+ `)+n;return Buffer.byteLength(k)<Buffer.byteLength(a)?k:a}function Fb(e){let t=Db.exec(e[0]??"");if(!t)return e;let n=Mb.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 Lb(e){let t=e.endsWith(`
65
+ `)?`
66
+ `:"",n=Fb((t?e.slice(0,-1):e).split(`
67
+ `)),r=null,s=[];for(let o of n){if(Object.hasOwn(Uu,o)){r=Uu[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?Nb.exec(o):null;if(!i)return e;let a=Pb[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
68
+ `)+t}function Bb(e){let t=e.split(`
69
+ `);for(let n=0;n<t.length;n+=1){if(!jb.test(t[n]))continue;let r=n;for(;r>0&&zu.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(zu," $1 | $2")}return t.join(`
70
+ `)}function Ub(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 zb(e){let t=e.endsWith(`
71
+ `)?`
72
+ `:"",n=(t?e.slice(0,-1):e).split(`
73
+ `),r=[],s=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):s.push(c);let o=s.findIndex(c=>Gu.test(c));if(o<0)return[...r,...s].join(`
74
+ `)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let c of s.slice(o+1)){if(Zu.test(c)){l.push(c);continue}let f=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:Ub(c,a);if(!f)return[...r,...s].join(`
75
+ `)+t;l.push(f.join(" "))}return l.join(`
76
+ `)+t}function Gb(e){let t=e.endsWith(`
77
+ `)?`
78
+ `:"",n=(t?e.slice(0,-1):e).split(`
79
+ `),r=n.findIndex(i=>Gu.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(Zu.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(`
80
+ `)+t}function ci(e,t,n){if(t!=="compact"&&t!=="minimal")return e;let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=Ib(e,t==="minimal")}else n==="gh"?r=Ob(e,t==="minimal"):n==="git-status"?r=Lb(e):n==="gcloud"?r=zb(e):n==="oc"?r=Gb(e):n==="git-diff"?r=Bb(e):n==="tofu-plan"&&(r=e.replace(Hb,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var $b,Cb,li,Uu,Pb,Nb,Db,Mb,zu,jb,Hb,Gu,Zu,Ju=b(()=>{"use strict";$b=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Cb=/^… \([1-9]\d* more lines omitted\)$/,li=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;Uu={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Pb={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Nb=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Db=/^On branch (\S+)$/,Mb=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;zu=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,jb=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;Hb=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,Gu=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,Zu=/^… \(\d+ more lines omitted\)$/});function Vu(e){if(Buffer.byteLength(e)<2048||Fr(e)||Jb.test(e))return e;let t=e.split(`
81
+ `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(Zb.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(`
82
+ `)}var Zb,Jb,Wu=b(()=>{"use strict";Xt();Zb=/^(?:\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|$)/,Jb=/^\[tkr: previous log line repeated \d+ additional times\]$/m});function Ku(e){return Wb.test(e)}function Yu(e){let t=e.endsWith(`
83
+ `),n=(t?e.slice(0,-1):e).split(`
84
+ `),r=0;for(let s of n)if(s.trim()!==""){if(!Vb.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
85
+ `:""}`}var Vb,Wb,qu=b(()=>{"use strict";Vb=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,Wb=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function rn(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 Kr(e){return Kb.test(e)}function Yr(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 ui(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let u of e){let d=u.trimEnd(),m=d.trim();if(!m||Qb.test(d)||/^─+$/.test(m))continue;if(t(m)){o=!0,n.push({kind:"out",text:m.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:m});continue}let p=Yb.exec(d)??qb.exec(d);if(p){s=-1;let y=p[1].replace(/^file:\/\//,"");Kr(y)||(r=Yr(n,`${y}:${p[2]}${p[3]?`:${p[3]}`:""}`,r));continue}let k=Xb.exec(d);if(k){s=-1,n.push({kind:"code",text:m,num:Number(k[2]),pointed:k[1]===">"});continue}if(ek.test(m)){s=n.length,n.push({kind:"legend",text:m});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:m})}let i=n.some(u=>u.kind==="code"&&u.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(u=>{if(u.kind!=="code")return!0;let d=!l&&(i?u.pointed===!0:u.num===a);return d&&(l=!0),d}),f=new Map;for(let u of c){if(u.kind!=="diff")continue;let d=u.text.length-u.text.trimStart().length;f.set(u.segment,Math.min(f.get(u.segment)??d,d))}for(let u of c)u.kind==="diff"&&(u.text=u.text.slice(f.get(u.segment)??0)),u.kind==="code"&&(u.text=u.text.replace(/^>\s*/,""));return{body:c,loc:r}}function oe(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function tk(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=rn(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(oe(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(oe(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:c}=ui(i);for(let f of o)f.body=l,f.loc=c}o=[],i=[]};for(let l of e){let c=l.trim(),f=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(f){i.some(y=>y.trim())&&a();let d=f[1],m=/^(\S+) \[ \S+ \]$/.exec(d),p=d.split(" > "),k=m?{file:m[1],name:"(suite)",loc:null,body:[]}:p.length>1?{file:p[0],name:p.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(s+=1),r.push(k),o.push(k);continue}let u=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(u){a();let d={file:null,name:u[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let c of e){let f=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(f){l=f[1];continue}let u=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);u&&(r.push({file:l,name:u[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function nk(e){if(!e.some(f=>/^\s{2}● (?!Console$)/.test(f))||!e.some(f=>/^Tests:\s/.test(f)||/^(?:FAIL|PASS)\s+\S/.test(f)))return null;let t=rn(e,/^Tests:\s+(\d+) failed/),n=[];for(let f of e)/^Test Suites:\s/.test(f)?n.push(oe(f,!0)):(/^Tests:\s/.test(f)||/^Snapshots:\s/.test(f)&&/failed|obsolete/.test(f))&&n.push(oe(f));let r=[],s=new Set,o=0,i=null,a=null,l=[],c=()=>{if(a){let f=`${a.file}\0${a.name}`;if(!s.has(f)){s.add(f);let{body:u,loc:d}=ui(l);a.body=u,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let f of e){let u=/^(?:FAIL|PASS)\s+(\S+)/.exec(f);if(u){c(),i=u[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(f)){c();continue}let d=/^\s{2}● (.+)$/.exec(f);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(f)}return c(),{failures:r,summary:n,reported:t,counted:o}}function rf(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],f=/^\s{2}\d+\) (.+)$/.exec(c);if(f){let{name:u,used:d}=r(f[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(u)??null,a||(a=[],i.set(u,a),o.push({file:null,name:u,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of o){let{body:c,loc:f}=ui(i.get(l.name),s);l.body=c,l.loc=f}return o}function rk(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=>oe(o.replace(/ \(\S+\)\s*$/,""))),s=rf(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 sk(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=rn(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=>oe(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=rf(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 ok(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=rn(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(oe(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(oe(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(oe(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,c=!1;for(let f of a){let u=f.trimEnd(),d=u.trim();if(!d)continue;let m=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(m){l=!0,i.loc??=`${m[2]}:${m[3]}:${m[4]}`,m[1]&&i.body.push({kind:"msg",text:m[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let p=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);p&&!Kr(p[1])&&(i.loc=Yr(i.body,`${p[1]}:${p[2]}:${p[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:u}:{kind:"out",text:u})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function ik(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 c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let f=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(f&&/\t|\s{2,}|\[/.test(a)){s.push(oe(a.replace(/\s+[\d.]+m?s\s*$/,""),f[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(oe(a,!0));continue}if(i)r.get(i).push(a);else if(o){let u=t.get(o)??[];u.push(a),t.set(o,u)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(oe(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let f=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(f){Kr(f[1])||(a.loc=Yr(a.body,`${f[1]}:${f[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}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 Qu(e,t){let n=[],r=null,s=!1,o=!1;for(let l of e){let c=l.trimEnd(),f=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(f)){s=!0;continue}if(s){f&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let u=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(u){if(!Kr(u[1])){let d=u[3]?.startsWith("in ")?` ${u[3]}`:"";r=Yr(n,`${u[1]}:${u[2]}${r===null?"":d}`,r)}continue}/^>\s/.test(c)&&!o&&(o=!0,n.push({kind:"code",text:f.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 ef(e,t){return t.push(oe(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(rn([e],/(\d+) failed/)??0)+(rn([e],/(\d+) errors?\b/)??0)}function ak(e){if(!e.some(u=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(u)||Xu.test(u)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let u of e){let d=/^={3,} (.+?) ={3,}$/.exec(u);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=ef(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(u.trim())){a=ef(u.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(u)){r.push(oe(u.replace(/^!+ | !+$/g,"")));continue}let m=/^_{3,} (.+?) _{3,}$/.exec(u);if(m&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(m[1],o);continue}let p=Xu.exec(u);if(p&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let k={kind:p[1],id:p[2],msg:p[3]??null,inline:[]};n.push(k),i=k;continue}if(o){o.push(u);continue}i&&/^E(?:\s|$)/.test(u)?i.inline.push(u):i&&u.trim()&&(i=null)}let l=new Set,c=[],f=new Set;for(let u of n){if(f.has(u.id))continue;f.add(u.id);let[d,...m]=u.id.split("::"),p=m.join("."),k=[p,`ERROR collecting ${u.id}`,`ERROR at setup of ${p}`,`ERROR at teardown of ${p}`].find(E=>E&&t.has(E)&&!l.has(E));k&&l.add(k);let{body:y,loc:C}=Qu(k?t.get(k):u.inline,u.msg),x=m.length?m.join("::"):"(collection)";c.push({file:d,name:u.kind==="ERROR"?`${x} [error]`:x,loc:C,body:y})}for(let[u,d]of t){if(l.has(u))continue;let{body:m,loc:p}=Qu(d,null);c.push({file:p?p.replace(/:\d+$/,""):null,name:u,loc:p,body:m})}if(c.length===0)for(let u of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(u);d&&c.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:c,summary:r,reported:a,counted:c.length}}function ck(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 uk(e,t,n){let r=nf[n],s=e.body.filter(d=>d.kind==="msg");if(!t)return s.length?[` ${s[0].text}`]:[];let o=e.body.filter(d=>d.kind==="diff"),i=r.trimDiff&&ck(o,s.map(d=>d.text).join(`
86
+ `)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},f=[];for(let d of e.body){if((d.kind==="diff"||d.kind==="legend")&&i||d.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(d.text.trim()))continue;let m=d.kind==="legend"?"diff":d.kind;if(a[m]>=c[m]&&d.kind!=="legend"){l[m]+=1;continue}d.kind!=="legend"&&(a[m]+=1),f.push(d.kind==="frame"?` at ${d.text}`:` ${d.text}`)}let u=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return u>0&&f.push(` ${qt(u)}`),f}function fk(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 dk(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function mk(e,t){let n=nf[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(c=>{let f=c.body.find(m=>m.kind==="msg")?.text??"",u=(r.get(f)??0)+1;r.set(f,u);let d=f===""||!s||u<=n.repeats;return{f:c,full:d,body:uk(c,d,t).join(`
87
+ `)}}),i=[],a,l=null;for(let c=0;c<o.length;c++){let f=o[c];f.f.file!==a&&(a=f.f.file,a&&i.push(a));let u=c;if(!f.full&&f.f.loc===null)for(;u+1<o.length;){let m=o[u+1];if(m.full||m.f.loc!==null||m.f.file!==f.f.file||m.body!==f.body)break;u+=1}i.push(u>c?`\xD7 ${fk(o.slice(c,u+1).map(m=>m.f.name))}`:dk(f.f)),c=u;let d=o[c+1];d&&d.f.file===f.f.file&&d.body===f.body||f.body&&(f.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(f.body),l=f.body))}for(let c of e.summary)(!c.minor||t==="normal")&&i.push(c.text);return`${i.join(`
88
+ `)}
89
+ `}function sf(e,t="normal"){let n=Ce(e).split(`
90
+ `).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 lk){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:mk(s,t)}return null}var tf,nf,Kb,Yb,qb,Xb,Qb,ek,Xu,lk,of=b(()=>{"use strict";Fn();Ro();tf=/^(?:(?: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|$)/,nf={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},Kb=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,Yb=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,qb=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,Xb=/^\s*(>)?\s*(\d+)\s*\|/,Qb=/^\s*\|\s*[\^~]+\s*$/,ek=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Xu=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;lk=[ok,ik,ak,nk,tk,rk,sk]});function af(){let e="r0GPTdS6_piDwTU716xagvXxcpjjhvOR18YNArkbbMGUBC1WTgdo1DuC2YZeiEndHPCrBNXtuoIWHDVBDPp1lySpaje7_dn68NbJ8qfhkZvHuEB6g4aqNQb4vgpEwapqQ_P8iECE0nXMM-iyi501xKsNsq_kl6PgUhOiEh8w_3WEr9Ferh1p8YlL_7pEdIWv_iltHDXuj_XSCwXpA0YMuWymlnIWcrbij13BthhvSrGlDSjMzFt313ke730IL5JetiV0e2UQX6aG_LMhRBgbW4WtQ4lm-4ZNARzFdMfVvKDmtT5ErVRz_RiJ5usFFTaMmzAhFiGqOw2wRKPF0fWDF3Mc7bFiWlyOZ6SJr0JqMHOxMeP_uhbbopXiSLbL4e2eV1e1tvEsEbW24LVh3WiJs0yF814PKGmCCcwkU-C9RL3Ia9vKeVJ4JZfb7Xf-OLGm6knkw7SQneP3jFpsnwjO4-mzOUovauctU659QeRDJQyvn6dkYMXWUpD8m81aZ6G5USIjwzHHzVRqPGHOGQmu0XbxLz9S0CL2cxP7kN9Rk0cvGP6FwkVVtWjCscxXchFREmbnVhHdcP-3bVOJmrBrRsKXvmUV0rr9LGldiCyCBVVqYSAqXs2PMs8QLVYx6Lccl1-bfyD4EJ0qqAFLwyasF-KDBvFkivAxfx_gesPKiell1az241RH2sTUe7cQPtioLYIrQgLHw_dWLEhSauv3-k5Zsd1vzVvRbyTI6azG-q3_ns3fhQ6pL0ZfEB75rQxmT4ylYVdM1Jq8Q5Zfcl2V4hmoBH6kNFbpN5JYzf3NJ0NGTKuxqxPgYtHqpHy9a5oilJMu94QX8jSANOZOOg06z8oLAP1L1E9kCcWrF4M4YSqfpwax3wlyU1_jepaoOizpgEvu-gWam9twuj74spUxfDND6BOOVzPz35U97cL90vM47UFkyKT39HH2tBKMZaQKMJdAp7x6HGBcMJkcIh0vSJej_gRKmdXsywVIk2j7ZFiMRQw4RoqYII4dAY9naEm777NuKMqwFNb2_m7F14e2RBVay7dXg5vTqdvoZ_wdhcqeccZLuT8I1_5xoToUzKSDSNH70ssVmgAaLbwqhguj2IeWAxhRSqzjFjOR-O9iFVkWTPdbKATyyJxgoLqVpGg0zcnz2A__5l-Z8VNqfj8UbiKcfttOwxWmtLE8tMOKlgixDoOduWUIXwlmkU3rBXZZir-EFdiOmHBTRKWn_eD78GuA9E-HXzInUyBiJ7N9xEoSlMUpzlwTdvWebmKGFZ7lhHC79lk54c5qgIceYFdRw-39vyQe2bwboLX6F19FLJXxaTUjUdiOrnu_eNsR7owt8-we0Qfc9j8i1o0S1rVJDgjCg3esemjN_sW1fb89BRTFVtyaQWdDy01VXUQQ-PC2g0639p3qPlXLKFqyKS_cgd_kSS1tLTRPPpN1qLcmvCjq5nQ3w_od-_G_GOA_w2PCBZzORylwK-SaZ8-b3ApRQomiLCa6mZH5oLqId4SGE_Kf76uv4nD0e-Q93uXOlIbJn35bhRLbgQmQ3jPqRtDN8YRfp9RZDW4_UwjYBNtQLieKAGTqLgPlDS5rSzJCNfQYOZxgfflSMxf5taWuMkbg3_CdShukYkdJT-Wi2lATcPlq8bZV9IWIaBVVeBynkj_gRrTtnG0o4WIlbb1X_DD1A8WcTQ3nWcEic9yoMfdx2Y7mPtxAS5JzCaNT_W9LaoAjf0XIurHSeNJzQMZrw0G2kzCUNH_oZpoiQD1WOP7FiDxIHUNVKdBdbH46Mq3Tzo89_fJ5otD_4nEoi4CEknEkiZ-f0Th3dYCgUSur5CwZynaTqh5GB7XbDMGoEz0eMyOh4u2gwQ_wh8oN524CnueMTLoLM6lLeeZXjwWRx9x6LiM0M6-l2mOg54AZOpkU1jwGJvA7Fc_yGv9cgNE5jjVeMwfEAw14-b_gDE1nvaatUfPFunibR5ZyAT1FBeHMPYgjx74xkhZC7lCTj4rP0ozsjS4F36JahRjlhWHr3ZwGIc8TVDibCPJ5lE4q9sCG1XnCAgW4yypR9LxCTD0VUaUJAMU9Q3PrbGL0n2DkNhNPk7R9h3taXZsIsx_yvZCMdH6OGNl1_tgXaGHcAtQQ3vOVTqWB7ohtetUFl_w8BHqBhXaY4t03ZZwXwEtza6E6phFV2DKFKPL8WGyIyOwEVFWEOWDHe_TDF-dukZGrAF8tTov3UKHx67brcrcnTzZ2aVhhZ4Kvk4rjS2zrw4lA2EsIsUS7M-NxfRd7KNZbo79MMjPodwNuXrmtoAXmmEcshuRhha7Y0xjPGkBfbJs8p75vdbwyj02BFO7Vxy3f4qezLOIaFwSM4ZZ-SglvuPYO8JEnj5Rk6pG0t1R-n3nkPUD8K3CvyYQalFxMKuzFrT0H7tVzvk6HQA0415yAxbxLMQc8HcfugyNb3NrGsKLhMxmaWSjyQqXo0P1xkiTzqTDlhXgP3nbG5W19joIvRYACyHK_9CN1iaYFMkjz1geDwVozXxiP8nHKqAPm1sj2bMfHikMlFrLWajYSuE2NaTdU0FSqxsIcQ7ZC3T0HZbSH5k_IMAPL1c624Wy3bQtPgKjGxJuMBWtNgkXAOzzFqw2YSiM8jVGCezQ1W2ljMujKf0zBOHjjsmWdHKZdErlyXANO2VxxDFFomWAi5_NhgdPQsc5fO5vu87VrVzk-sBwUKXW0v7043OK4Dav0sPYGGJSh-lsKIl63CZX9Q29QoSHgrlI75iIL38q70WVccTquec4EZpBy5NUJiWhmwWv5z8DhFATUh1swaeHwVr772NObQZ-8Fuy-VTh9gKeDKzDK3YLXNAqsBLHrSVpJHZXiwms0hbGPCp-h6ie9y7OZBtIUR0zokwt6rifyZsXOEQk5Ped-eh_8A6Adk6-rJx06oOuTK15Mzr3g_7Y1ynoRCwkhCM6RiWF1Ax1ud2C_n7XjCI60KxnDwZ8J8VeK5ZmUrj-Z7u8bkZ4bIy8qWxPyk4D_ldw8flfC3sYZz1eI_HUsWMEPF2keqfyB0Y_8zg9ZYBoBSp5DEnpUFs521fpbVsJeocEHfajTIYHOxG8z_t3k-fTgfngy6FwUhAz35wdyBzPGK5f_4T1VqrbNTBOhbLWSpXz197ybhMXQvDDguLCg_H3a3My8hZjEKoEySZaUplwzrN6hcyIXwqJQ84bDFMfjVV-BjT4ZclNnOdwSD7WzuYYNcpccb6FRu3gFfND21Z_vW_FLGJxuSM5QPr9JPU7bLCcHOV-pWYW1uMLCEYXxF4P68mhKcgq3Clx14_jzwDMylJMcilNiR5NUmF3DIwmJIfAKCwnCkavcoR-aXY4i_OKKVM37ufUxcEwqv2hN7vLy2XkKU0zhgytEWek60rtqtgZT-LwhtnJoYalIGUQzGpEJ3n1quyDm7fgymyYQk545XIDjF9nREdMKnqejnk_YzL6eWUMilAjDMwWDXBsgzVSufNDTvt6aOF5mbW1UnIfWlTuAyHVBKu3JzMxWGxQ0HSh4WY4G9pmlI54f0I1v0q1ptDCa2QiVbMqd6SS33k6IzZndTATvLyBfL8X4-usZti8lVFTLOjory8d2QzImVj6w0fF4vClQfdK40Ydf22cQynhNT1pG_pBOuSIDIoFhulHDiqBc9nx8VoyzGSv6VAAKfieeyCEk1adpinpt6FSu8-HfXGk0bzZTfbHkW2Gpon1rg7Wgn2z0ydUSLBUfH5quQX5R4oUq9dOItaky2cUkYI-8JkmiR3Wu1BNU7FfLXVPDphacwk_2vPUD9_of-nii36g2L_07Tyfh59NDMCnw0bCGWo0tJ_29YeClqyXQETbNBOTrYr0AL3EOMLNB6ra7IWsUBTnA4KAzJise6UqZQ9atIZ7cN-WTbODGE4gZtixnj1Gam_k09yMZ_0YTZMzboD8J_tqzL-P7czlkdg4HYw1QVvxBA0wbexhGUCkH3mBkLsLVbo6hX9loDrOC7p4SpCovmfiHFrC9vl3p4PGOPpBd9SwY3Vlpes0EJnMIbLF2v1MaW0oV3JII5c-ewG0N2w9IQeW2iSHfpTdsQV4cBLwknAoNFUrVgjCnW8s24cyYmkWIVcOL-8yKzxLm48GMbrC2BKYKl4pbKPmUCyDARvQ2ni6bAwVLkI_edpbE8vbOUxkOCl9H9i2FTDCvc9TwmJFhFp3TV336-2apBD1LO2jLOJVmjXjQRmQgtYjwqzAxlOuVqmUp12c9S20vRKk0PNmb-nJMa4XpoTVTiYloOleXDgxa8ZCc_JVT5Q4A5bxb8R_WlsLXsgZ5NUxHY3hEOl7DN16xEBq8GjQXX_C-DISUEYURoz1imh3hnXj77rmdTYloPe5cU6aIbPrUBs24wUhj-laBZ_sGaG-L1MYrTTniVIndK-vqTG7qBW3uQMu4k2mD_NIJGNo2wo2BuK6fw6_NuFG1273tHt_qRxtaAMjG6mxYwTRZs-veuTB09RQ2R8jmFxtYxSnYAAelwz4RGNRtY00kFZHqQ3KZ5SPgdm7Sj5PXlmmdXvPjMswWmkYu7Hn17X_HHzVZVcImpA44h7CgW8Fq-jx35PFgSpGxJiYD8Pac8gCuQfeKSFgG9rL5oXBydFkErp2m6lJ4wc8GkFORFIEQPVpMmq8clbhT3mwt-cpcxbsa1ro2kvNFurOAjOSj79uqVZkI_ysLuzbJxFvYw12mwIf_xWfbXKEopPeG54gr-zVZj9jOLTwhZ0BmVCbl6i5eylaFBt7058LVVlDlojysmYO8X206baiWFnM7bYRFOrV4Mpsd-GlMY8zX2vthPn1TvlZyc4wVxTPNCKj--7VKVtujqRmmgX_9svT1SNOOGzs5CKpS3se3aYiZ8Ot3K3Vxsk1uFUD3I6QpkF1ejeNmuGtt41EOox0-gux295ZErYj9dtOziOqgP_EEgJmdubh187w7FvQEWJpioSV1QlSsKQzjICJ4dBjxOONaQxcVeqP9EKcrde2Cl7J_ZkkL7wV8iILh_rA0P9XqpG6DYhwmoGKUYWAvoHm7TtrLQoqu20vbqL6-PFJi9p-x0crZUeeeOmGHoel2kVY3wQb9wkhgQjQf9SvF6ePh0f7wQ6YY9CwH46qKQKGx7OpwjWYOB71K7-OGUIgdBFeTCwK4xa9I6e-yO18fr3ipUbQXYA-DVkTZXHfVcVqR3fXnqtA3ONFI1NYO7rmQRB-ioeNoFM6qjWlAdt2cMN3JZmOUcnXSsnQPnqPnyDvhU8wk6wZC7uC2m7msBPBgo2gDdk8JkLL5Y1CMtjZber_YrK1kchOtR_eYdSdwCiqDKBM0la4N6nMInyGquoxNYemIuVXCTjRb8lxErF96KdnWs4W39KUgwZD0PrFd022W7xEq0uUmDLjoeRnJ_CGm5PxAnGgp1zPJET913aRK3uXnweoqzJs8FaVu8Gj8E37bHGQSdqqIVXkrmsJb_tuiecghODnfIUQ9aNsphrpy_Aixpg0yrlwHN0uSkoJMrokz_PtF22rKmiF3KNu5pMfn6fdgeQlakCEid6wuYTwFglwnM3XXXA8VJSKIsgw60-uDMYUwFEOSM8ZajzjJor-Hgl_y2_OaYvc4LPYeWnNOVSTsFB22SN3AGHdUoQa7NTE20zfwF7SJU9UL_hjp_zMFKtB5dHY_d5ADbWvGCt5n8CN8XMB9JMsUm8Rwc5X1MhDD5oSQ8pTDoFPrxKJtuLpXEvVnVCDv5TOHGqxPNpN2dnlnn5WEPpgxdFvcYNOynm-4OKtHCaFLFcI6WiBdtaliWIUOj9uftoLWo5A6fm7zI2nPq8SwFxbntJMVJNPEUA9bJImmDwfDY2J6CfqT9ZEJ1UCs5e38r4dyVTJxjBoGh4yiD1hIkaEoKY5NsyXK86pnt83uIPCz9wgrYsCuuLTifUa5rUM5pLiZfi_u5eeiFqiKaZcNl6_bNV9Kh1Qvh0DAUF2wJw2C0LW9i1TJbZZoKI5MyjefDHCdnXpzWOwy0oLTiFk-Dhyk7u5QoO3Q-hSGF7cyVK3_wlUH6ACIcVShVoQEsillXBsz3Z0ZUzx4huVh57wp9UpyHff9p8HEyfhnv8MeKBCqA1Zwx3bHPBJUaM_FTl28AEYH-_nlmhjpAedliWfT6FsxfgneWAiYBlp_DDscndJSAxlZn1WrtbKE6B6VNBIVI3Al026iGApdf3a7rQc94iBa2yZDx09NzvqguChAmK_JeZ7iidebORgnAG-pkdiXIuoWxqUgA5XrKLMVX-iAWv7fJ3DMDgC7TxRNysd84FpHwBtbeUZpKNDukINwv6Zifxei0jJnpHu6eBfxJMxYkjRYBs8DRAg_9viriUX-Cqjxsa6QD0TAZNMW3BLppWMuPwiElTOgcHzHPHffUHE-99Few7dpmgYu0nl-U1x8sotLLOPn3RwZQ6JEj8xE_ssqmErlcMzlBFSjJpO_vljbsc7BUD7TvL9AT8vwSp_HtbWK1XbQb6wK-uKR2Qvjdv1qxOXKpdaKLJWKknNaWVY9moq3Hm8yoYzOClop46Dqfm-JclAu34RdYwtZ7M7XjxD9iB_ObZLuTLbNu0hr9qXj4yRyOclX9GSjnQvU26V1px22zgwVXRya1-YSkS2gCsbSx18l4M67BN_O-VMFKuIfysS-bbxmZR5R4KieX45mNQYLu2ju1VfI1vSNpin-MhHS7zZmm-pzXdiFMiJeJcDmr7XRPJ66tO53TedfAAVgbKhx2Fl0URz8GgoQ7_NEk-nJj-M_RJO8Aj-jXAblgpG7hu1rgLCowbZDS4Tlbs0Y-BJ45AMSt3XAXUiuRFw1BJnec0PL0V2l5uxA05Tl-TjoUf80xLqm2ABAUw0IsQ9S-lP_d-WhqGHzHvcbJ2unvg4Hwbwh9eAfhjU0DKigZCnTX1WVJpG_UCZnX_jV3F6YVLY69GlLf2dsspVBdOD6d8KA0Iyt5tmYIVFHkd2nEZ2KMT6P9vQD9g0zixy1YQpVIah3kxOR2u2wcRgIKLyWWlp8T-5m-NJRY82tlDhH5gmguOo7gHZEUVNvVd3LAdDF24SlG92_1GMyTOftoG9bFrpixI3jSdipB0qIMOhfvNlVwNFqg4MZz1EKu-JCPMFNf5ckz3kLuSoB1R8v2ddy1x2r8ErDYFos-GxNe8AV1koOhnSy6hNe7dmhfvBRl-eo9cMpm5HYEuH_zWQppc_w9lmqeADCaNGmfc0Fvze0aK6MQqW1MRT9DYES6thS_6iBdPpr7cGwTef5XIa8GB6I3ZSGigbumqjggMp5QCKdPJoWVtBxEfQlyH8gQY0KQXofiEQiiKXGsa-1I8wKggk1e8Xjd_UbtYZZWFmAHPjsPam7whGf8ZcHSwWpWLAWRZzy_lp9WSHzuB01j2p3VlmC0eet10xjWdPkb-m1zNyqvFFAQr40sXmyuTIu4-ZuuUu4FsDQfAKYFRloRS6IE9BwA-Q6TfOtS6Uj3uHPJMgj1vvKVdbC91hAk8NDZYT3xm60SvBJ_KhfNOZyrPFTcH4j-s5dqJOt7lrqoGqIyo3rEJcjeOwqAoGfgxTelAZf4c9_5MRHbXF-azYhAlM4hON2Erxv05J9h9bCRZc-NaxXv1lv4eWaiFk1T5GiLfm5Xw0nRf5FBHv3g6mseVx4n7-Mdj6-vOX0NCSqdFZ2Mwez6bLQ3miDgUUPIKxbxo-kmVAxFFvo5FwWj65X14a5J3JzmguSzOPKjWPHzZDfELXn6EmofwnI3gFQF8m2JgZ79e9dYSQA1Tz3FRkke8Q342Q41mUtg0qasU9-xCZ-BqksQkslBXRgypXT0AsYI1qhpBfOn71M0tc1rSuE5NxUnn_YWA1Oo35T7sgtcpgyC9BGO51A8Cwym27xqN9Y2V43bythPH134iu9_i8BneCB7CAFEDvkM8p2riRWGwqM9guIUa-dpkkbqTRLsoTZc0DNa_rXokgjynoICC9fnLSZ49jsZfKwawfv1-PcFOj-FmxpD-MafdfnCkCuRX-1_PRzwRGXj-q8hkTiT4HUSCWipeb573raDf7ILs4TedWioYr-_R6dVaz12db8nPMF9UB97dMFwf1kSPy8UmKkMYH_7SVltgtx9TvzONYZxIbKkF5Z3R2Rd7cl_cLKO8m413WgxQQnNE3eLNiX1C5Xl2qLHDGnvo7JYezW6D7KOjwlqa-VEw2F3pi2-FMLkWh3NTYY0s0323Ah6k-WezAjW_ErsIQy2n5weyr-Y3_3OkJ3jDAIdRK8aO-kV_EzWbkd4l_V-pFW944MevV-mpNpal23pDIqOru9CDaicNZUS6c1HiIRcl0LF-bU5OmulHQF3HI10a9faAyyRDgD5rRaf6zGsITl8EBvTxpSuMtI8vItWLGs6isIGjYhE5r1NpWFV-oJiMkNDZOyUi1ySeF9h9qTueNUBzSLKsNoEYT8Ck4RfdQXMjXr3JpE9Doc2HS8m2D-qEmPq4lqjk5v3fIrFlVvf1ABtyHah4-fG1C4o2nngbi8tIWi_zevxFVyvsJRa5tM-SnQ2Ruz5mjliOAM9bOy2I82FTYtXVoWZc1GveIYDzfmKn48OfC5DyC6n5MyPMlKltI8CfZJyeYnM35nSMty_paOXq-nwHacpM1wL6ynkpiBS3GT2fbjd74zwFnbjmwmaq3T9nuwacYOkmFwFB5mdsdqxPYtpazPAkdGTvXatDQsC9e_G_pgyIy0ghWPbsfCyPOLjS3FewJfO5al-8Cv71ikIAo4Svm4dGKg2QGMM2ux0r6BLdNXugVnZW3HuGMcM132xhvayI9i2FHqPoQB052ozq_1VAfBOPM_6he3LWHo29V5Ujvk4dXj0q6xuDTPx089eGY7B9OKV3Iwv3leQWoMpXa2mCC1AyqkkK6-uqVEtpZIrsFR5kYpLBGwJnq6Rm7feT1OZGVpOIW62DEqBMNZyr3wFD7g4uPxSSIT-x97jlNRaizquHrBO7Ki_6nr1bn9qdadeTScL1v62RiVSFXmRe_LY3V63hFpesarUpRkwqsB9Cd8FNQHJcwBLnzYt-syOsXtCqo0WUCHtM2n5V1-wazlpTFUR-s2L1eNLPNqX82cPT4UcKZLMGUkYnxlPtzNE-YcdZcxsayOtrSGrmwRZK6uCf3z36s6ETyxiRWfMBy5d2pikz9KwzBR_NmT9PqarfMuAYZTyY0u1m2Cr8RGm4Ml6NOwZxjbATeL8-Rnxk0e1trKwutjsjx_piFOr4Q2Re0P9FtXOO-8mmNz8zxAVn8GwhXDqw231TcDd9XqjZNf3E0DBZxR-fFqKpGDn6SoVOP4o5B5oNIlmY-Vb5SkBhldJkGn0iCRNT0AJGiQ3O-NtaxS7HslxscVLdXF3T-yb5JRcfvRDaBt5-MDeMAEaS8WyOwYrZtnx-M02v_Kzt4gd7MF1Hs_uBoxrobvRS6pWvOCUz0mox-MG7dNtT_Jg_bxv8XYIz5RQrD0Co2aOZsZqvk-d1ylC1nw7VXzWLOhMRZbp55yFeqhY3FEaudCV_L9GTKfm5lae9UySMdsZ4c_cCL8BKFyKVe-MJH7xqu8o6k-a188PHeLz7BDDGObUSbgo37B5sgNfButJktPnzyJJHBZq17l4mlLlVQSwCtMNZGZuKXPxvYKrhvNXGF2pB7UdAoTvLnqynFVEKw0jc-52iWPVwiJVfC7rPFn9CVz8ObvmzjOH5HVfPFFZOOI4TKjQVaaa3P6bjIPX1PfaowLo_e8inoCuOw0dqXeuhPY6mkvwgG1GZveaol5H3OGDM_G3sRMQ7zK3XoMTJKXaFenk6swYtMaQlI48fBrgdjMzlL_IiJA4qRjGSRYO8Bd1z_PypfV1KAypQ8CG0vo7UgFlsPN_4A_1FmiBSFuVdxRwY9LNdbJomVIclYNbqHjQbHu6GiODryTu5HoFmzP1LlXgQTP0GFeVWZBtrkb4TLNhNtaICCQFCP9klr73s49Ob4ensnhNLwZ3Od22HFrJHPZfVRgriaXOX372L7SmDtB-ojRPReuA3tWe7B5Y2J999LPN6Km9BDn8O-KE0vKZKTuR5gbHAtAMltoWzljLwZaISKjbD_2z4mE9bLVCTf9QsITrnwcoUHYgKnFMDTQ9skcorqKjDZFHglsntYNO1oqyRGt_Ge0RvQSlxid-7Au0XZkubPouf0ZGLuUIJ88IPAuVwDPghtCAKKvLuVVMSdTP-ond76D-PcRsxAtKeV5vQ16S3BHzLQNGRJZFuuoUf_6Aa2Wlup7NpuJ5nL2AB05lk0bSKJGTHikTCi2HeB-Ogkv-e796T38fz691s2CukDyDXuX6a_yht6tswTVEJL6Q1hlGvoSNnNzAIDmCnaL4GK_0dYT_TOcTkQuz7KrL4x-CMXhfqKRn-M3umj2zCJWNsC405unGquMeMtqm43RMTIjvS40LLyCXML9TEuq6R6WEOKQ305nNB-HERJKjHe2g31FNmxkvqHkrY4OzFxo7iCPRZ_VCH_Z_vwQOG7Ss0DMzL_N3AXhHPcMh6Sd8RgWh3K1ejrBynlMFRWOWDnWrAgPC5QjtM6PvVI9frcV_pXXooFTyRdQWWoqvGSJPpy_ZFV_TVKE1d4cNx6Bqp8XxOZv2Bz36M__ouELPMOAi-xqGPoNFsVRQXFMCb564-btpHodl9NoP9tNqVp4kFbH8RYTBiRYSfAYyhi7lFs_ZSgYjGygMQhJpCq7vioQfE4Tc8wqB0RWbIIzTXiGWrfJroKSlUlZhTPwWaK6sn1w6l5_n5HVX4uz-Q8sWajjP9EAfGW4tXXt0czWpM5Ql0-6Ye6XxDbkjQTXaMUQ1WY9oZDWuzZkbnD5tsBFrnvqmcJF5bBHTkfdDY9cbJxh5_gTIy0MNvfBS7PlzvRTDfeekZFJsXKtWwjX-Ikz4R_TUP3JYXPKRPgGW1bDV0kLFq0z17ydCNQmUNRxafIKGQYh3s0hzXrfK80WbawgPfgYERyMIBPtqL_8KnBdEFMeRKhOJ2b41vyB7NM1ZN5OjBJx0hyFNkdM3kn4dUZqnhGLKN3tP8WWWu5cPS1wsHZnWENqW5UliBJntjqf_e0oi2dO7Lzwy2yvWbMvfWXJn4fSXfGVk_qk6ZKiYPtp70Xj1QFOd6kpzHxGhgvIFryzZIELCapejkMHUbzMG0HYpw3SWv9P30RRKIOHVDtG2dyvFBehvypHYjNp12MYHnqgaGFCi-_3-ylyxwYw8XkT6lNAcUgrdm-k9aGeIMjrA1n_UFp62AV2r6AXox5kKDZUXEMT185T-xW4MiSb_WtQjmB06AxLmh_taM3rjKXU13sfa7XGcbM6hIIHPCgruRKmW5uvtvvLrL8fwWDNHX3_8Q0F9NXp8EVP9J2O7MZHtk_tnrFh3nLZ29foaIOXWXwrBTftJwOfFzpyOfCKQLGzpoX8lGiJR6OWlZkl_BeLs0GhkJu2oLHspUa8T1QxLDN1v6IrVbT_euyyIHhqEsHw03PZOGvLm-uwFlFRzaR4WqJ7rt4jBkg6NkqTo8MEJY_kCTHKgmJrI-7VEXaB33aWCaVsoB8DoKixEjN99Tm1RU-mZRQAuDvbQGs5TSPeF15IXezwFZLApvznvdlgcHRmR5zxiLidRLIqKhvjblsGDkJC9rjL_TUFxO5ECRfoFPgx-ryBW0ABGc1YrYrqLIGH8mMMBwwDTOAXwWc1Vn-ZE7WWeNvEK-LqMrqs60iDP9P_CpZH2JnIyX4WJ8uN1_PdP23S4ZhGR7eRd3pww2Bu1R-9Py8RryKoIfnXwLyM7iBL-H8S-e3GFLISgbngqf7s_w98K9x3hmlPA9-zZ7yW3UHnCUsrUQ6NF2d6AWIGPknxNFYu87GjSEFBBmu9yXY0qWthIVoaNTIjbpv1BwOLvLtEB9_ijR_8O3FfWwkIZR4GGZpKYHZzhhdkPDdBZZD8l33eIn2dE9QoCFvr75kV1qQh_7t3MvmRE4qM-roWb27OoqaEPXr1efNAUJKnRBQqp_iq7fripCSN879zoblmKjHmR__GWhJ8Q8_IwacK_4VRbjZByDBOadB0DThRpLgDPRCZQckXDvKh3iNgypmubpjvKBzzMpPTnnncbrGPDNzlS7IyGoeCddNkyOVGUZpxAZpdmfwxgautSb2hYBzUWE2nyK5fS4qJ2KfhwiztdLnwekei945MhO4ajxeK1isaTteqHk8Bl7SD_K75mMBPWart8RN6j_m4EYZDsc06F80YKAFrYUvnCdPqIkYkyDhpd2hYbDCEOw4Gn6QNYLGFTBAmsihctdMzjLzR_QC__HDBNzExIxq-TUVUB0d1kW6y0es8ObHQZjXTEhxPrOkYn25iNkZsbNJrnh1NxhrAcpkiySgTjlnk-MtaEObPjIykatpj5zCqpOZSRGm6lEGi96iNKPnzjpL5hukllxTCJDfAvz_hTQkNpGomcwOIctAr136oeSt8Fx-uCfH7RCQKH-VVO0CTG1My3kZaqr3dRdpM3cc8uLvU34mOBtfcS89ES8dQioL2zrpTEg94pcWo-Jao8ZfAwbSwTazPMieH11j447_UR-DGiML8t6Pq22z3lWhtSiVt-Zh98YEPog01mC1eiQ34rBIbhGxgoOL61JKtEFZdN6XDijwAvDf15bRjeuQ9XutDqN9p7QRyejTIaWCc1X7VNwIOMpBUlpNZkLBdXcJySb05pHaHc6rbkG6INspkfYrSpvweMurDbIhScU8HGyJ4y1BYqsdQr5Hmx49_mFIKoxMhUETB8Z35S5o4pKDukjHwj6rCDfJKl35yYYngZlXTCDBTPsUtcH_3E9K-5OAjQZuHhQdIKXhPK1Ja2GBjGj_WAKhM8BXnypF3Yz7bnXR6_ew7q2olLHb0YUMDYJuZRhX_Ne2pSTZvagSxIe06Ox7Ao6_SUtt8SiCWhbtpy5zSje_GsUbq0f9ZWP4JVcBkvNX6tWq-Zpek5c3WnAWhffKR6_4b42GHdA1xMG5_Q1rmyof3UMyYcaWvtsV7SpR2ac6oYhQsmOhy9LItJvkwJmpY6-6PeW-khRx4NN04P90kT5bs7LkjmB0jlDLdyuqBRgpfXIjmaPfTG9kIT2NBeaDRrJmwsqFSry60cJmQpltz_FJAXVAwN4lVIj653d74lmJvmV_7AIuEE1C_jO8VVY8jKjtejHqB0AFG4CAnB8ALQNH_WixJribKWu-70DTVWtdzkHAM9z9fNf8yFH3Ji2VSPZfKpePfH6REqPkfYhpaxahdEsYRqLzhpK9ojZN_1fSYKomCFvwxiygi54s9SLfrdfXg84kfO_NmH6wLenYZe5CLtgl7LVEpnIrRMsn6uEjGpf4n2cyCoRVxzEyLuxrMFQvLFFFenVWVDK3Xpu6tYO_Pu_YdhDCdOq78KETr6doY9rstXpcnrepiztkfdlh9YThX-z4kT43v-WY-Vs0bTxEPCsW6VMhCQhklLbJ7hu-f294KbIPy5ukyvRy3SUcVkAB3WEx8Qr2sC_M-O5T0x3WhDWHYlu_VPn-Ge0BaGD_cwa1bkWYYkpTk6WBdxpCMvUkxYbL-QGdxPkl_K8GMXZKVEuX-DPo6pSvEyO-eFtKFdQAUlunBNGvX7KT4jCwI76eAx9GQZFtUaGVTauy9I37AsC_KLj7HXGVNzbDKWjHwj-lk0Yoj6jiLSeKhexxS712FHou-YHBveeKlm1kVtvAHHxVpqxhamIeoCiwnG6u9Fz8S39HSIp8E5-TAsiLprVKRUeBIq5tKfrScmLic9OTnoCPGNYTUhSGwrvSyA648UVDhE8BVRfiJEM5pLsrYWMuejUJ9ntUWLnY5onkgvo6jhCULiPoFJSkRDGF2Ksd6r3DgEeV3pFtFaK7eGp3N3rYERTAKtHGVXgEyXrGzXGsICzWRMeULe18-G47kEeF4HUPfr9qh0OTUU98g1l4P1WNwFtQLjU7eEJ3qWGTlCP-5_Epo1lvlMA7GOm70PU97U3oal0asIJoBjuukODDskeE2XENmeWXmk7-AjNGKtkv5kL8tNTxeYjPjA1igv5IYimWB8hqTcpsoXLuY5FNnzVpvyQzF5Ts9dg-lwsdsbGrN-Kv4Aj7jHRcT4bYmeLUck2o8XQFsrKW0z8pBMiwetCo60cqUQdrvy33kyXbMFb3CUlyzJEyBxmrvt9JOoWuu1r8oWd6r27p81vmR9cXXjblfU7xUb4j0iwv6-T3CkffeKlZLVW5odHghiuS2janup06LTdKjq0E97cY4dDhqkerjwD0ipBcmnwRGOamh-wNxlDny0lKjhPW-YazRN2GnYkBcJCz4lPYomDuAwwjy18GxGATipkVHrq75n3p-JVck5HcNa9xqio3-LQE1qvTwTOdA1OuIxTLLR5dNdv7X2Oem4R2T5giutqx-ayuvZSYNezlZ9EP1n2bdhJpJUDBGUTYcchecFNM1XqbrrOStdZ2ZAPWuzg0xxNmkkJCHKXVzKALqUJ5uKlDmQoLRAvcSD8QnWfVzQnEE34TGQY7vrX6liTw3Ua-vj7MeJQbcC5mhphREw7mAp79lxrUcZyzBnTRpYE5nPgtuKIyNHBVIiT2tfaBVPLKP5pL5yuCCgO7qdqkmomVmB8EAJX2fKR5LL5O7L3nxcMDc5o9P1HkqQqweAVoNEIrlHLDFfx7EAoVHvOA2QInb3d-vK9wGBNoBgAJguJtXKEe1jn_nflczoB-TZlqxt7xI0EkgxXIEDOZxXl9qvMUw-dHF-WNiwPzhTxx-Gu3pka12n-hKg1h6zR1we80fcsvA4jka2n6DRW12diL3PsxxJafBQSVj6zsqR1KXNMruG35dp2yU6v-1GNCg6pnXZKb3sLNhYpcJCuezkT7IuxK7rbURhqq4CGgy6FzDb_FrBbABiK0BmBSY0N0FnaBVCZy-PeK5nb5nOB1aSYmw190d9PZekQn9NdtlgL3ZI-T_Vo_4XjL27G_U2VIEKnrpyoL1G6FVSS_S__o9z1fVVwU015U_8ibAnnFjKcn8_2D8gvo4alw0E7eEqBXyMgz2g2jxMNTYAnsjEdZPhTrKZLcxfLgt4Kg3xz9fF-y-PBvcxljDyQiaQ8_lJ7cZ1uJEv9bDBhPDxP9sNFLRknjo32CURIM8AjyPppLQZGVe3rnZPA1OKmF6D2qT9OjmBPNpshdVjGYRUci1TAb9eJI1uBbIyGcO2R7V6WMxrf7kPQFR8I_ZrwVgqT1lvwiG_qS2_1IoaK5RLQ-AgXkq4DOaV7D2apXVL0d7RdPJeEJFhuX61Sdz44-toHAVZ38o7a07LDd9UxT0-Y_0crDQdgS0dCMvGAK7Xn26zKyVmgfO3u7JZK2ygYQ2a2qO_zDR7LUQbukyaveqRye7FBzmaDuwCW5fENyN3quW9MTJ-SenUquv8ddGkCCsT3GHdX6EHGhhxogc_apv-HHW61UeI1HWdqeq87OtDbMM50HvjMpGv7DRuxSABdDAC0aEZeRveC2hFR2ufL9JburOaBlpQmw5Ang9L-Esii49olMOG80vCfE_AJ94tNHT5eFu22HYp1HxflpF4WccuD1Wu-AzHtQahz4oely6gWZj6SrTZpmYXDfhlxRF6xspGBPqO2R8D7-kWeOm3D6ULIkIp71_8XXwBzy4l7Rb6TwzH5naA5EzcuiAeEMYbBjeSNZ5rK-xHwWp9__HJzw5mMK0Jh8vDTKWF6cQAZAoUugrwIptC090-qNjgYxU3O0kkLlgbDL9XyLwrnn5CLYLMlOkOixwaQgTNJAtDZxJEU-sfGNx-m3IJPNVbHwTvPeUlCtzGM4Xsso0_2no5EqHJKBQHHNn8ZYsul0Rf5ZUV15O653mx87zESCM1gaqR-x1fE1HHqTfrCMyQELF70-LeoHhWLQj0ZWP-D3LGZJfuosFpCy3Qz37M_WRMkSipMygCg26DT81RJwxp-Y9Sd2Z4A9P0Yx02XsoM8cLV34s0A3P0m5wjoL8aqmZK4-vuAMEhxaAMeFofidz9p3drSoYzNV8IkIBBWh2ggSL1WGxZ-9jLWW77p3Dmg2OzsB3zh-Er1am65Vf6SArhsRi-slkuF53OYtQ3jkrkauPWV-QzVLgS3sy1XPaoBxGAj-HfXSlE9bkhGR1B3WBbvhjfH6S0qHg04_sAMpx9o3nRqRTmHfcTjwdtLqKayipjfz3_OkvPpk4WcYiovd-X7rwgiXGnGFFSZEP9xMe5n0qgaXpOQF5gi-6mFedQ2BZ0vat4KvzzybhBuzw1LVwfG_Nl3myYNoebe5dIXQguzK0ILMpP9ZgquSVrCgwbuFadWbIm-bp5SYs_NTlWoQbNaGmMIBwkUoLz6xaCR76BKuRNOY3juFpB48FNGAkr0z8vusxrzrxcWQdXqoe22u3Ux9gt0sOnD_toILrBLt7w20EsGAYWDo6kmAqZRFesJTrp4rf5oThAsjL7lLNP2e3aCElhlJ-7Nv7pXbBiqEi4ALV0fA4aBd2Dq398f6DIotEVIaE_fQmN9wUd9-GTMWQl1jXzQTU9BZ0-gOx3e2suthpIAbk0UxArkKRUFdm8ZHgaVRx4aibmAVZ1GfqQ0Ug8ltTrID_iGbJneBma6lP4zx3jhmAWTWS9BSZbQgQW_i_LP26nbKPS7yEE4zFGUEtYAJLtJO1Y34vzzNNobNgDuHTzSKcqgtecf8V3msoVeIgy2mrqXfe_RG5XM34RRZI03Nb1sEKuGbWCaAiCQNZbuH9p8nCq-970mOIKzVEMjv6As_t1NLMQfgu36QrRBdRxQ7kofwG9v34CFr4VQiA9R4rI5I6fxgviH8jKt690tREHmfO22IiisGUlHDNJU6GUWm4LwWGAV_UZwZH_aVeDa2RCSiFwpbBLV27e4PLj8Ys4_nCKt1fYerYV2oyhtRbCgl0GhuGDwiMPsj35MNzg-jTTgNpio_zGLfMNb6q91u-fg30GHMl_MafwL56gsdHZn0EkSu7cV-f8PszWal4CoSizJXdazx99TTTJuKki6jEFlu3pQ84nvtY0noGNnTAdNxfng3GSLcDQER0woq_fVcHNReEVfKFNVoWCA2IEycCsPzfW2XnrkwRPc_5emQlcHLc1DqF307BwU6_MpxbyRMcCy1mUnBlnuUVI2mFfT0vQjiSaRw5G-53_SmB99oSRyME7ZB-H9BFjuxKTIkdp_s7kSOiX0ujA-yWwFQYc5okB-4SzIJTPnZs1V8a8j9S8PIervVyEj1JKdRUAnycEeF_KEZzruYVyQFe8EPDUb6rgt-VaBIvWdx-9AOgHeUniQc5thh2ahgyCHUuTjQ2bMsR3FXs-w-JHV10vgafimrnHtr2cRjpoG0oKGpWSliIfpIXxi69cz5VCS-_yWFJmTYitHh9UL0ySwNttjqBUtmoP4KezJmeWGtnpBnhao5YAcooC7UlmRPr41Ui4RQ4l1xCq783bJoXVkuIrOyooviM4J2iL5b84Ods4jfMDa6C1RlYWDsnmWG38nZz9Ul0KeiAgaJzYGR83keLWHF32kVFujloqxgAEO7LIoHOM8IGA9wDuQHzWzPcY4pM0GHnYIP3e00aIGohDs3dRgF-TOrtX2yNd3V-MazAa3DapE5QSLs5c_isry-_-mIAXaCgs57sy-V-_gcz1Q0bBBPgXowVPg6CoDhxGt8SZ2W32K_5j5JOy6a_V-bd8JdoC9m6GFWYURYZjmuQcgM-bjiAJCM6nMmtHcDjkFFDuQkUwswUpuPQeHvhS_Y_KVugC6WV4XB2DawkWu9SA7EfdM34GjkEwrECeCNZKov1XpJPHObgPs64jKvDOjwwCmAXwzX4PrhN7HIDnhYQ1muHL9z4JOne3UrxiH_HFhJiMSpI9MjA_aFcysF7lHOv0wRI0ucy74LhU0jJBfEwumzneid6Qf8Qjk3tac0meMcrOuiMlihUcd79yWS0t7A3moWt6cyZZk_T6ygwuQbrKnyIGWo3Hu0vJoZ1d-S_kXT5DV92r2N7W7Gjr2_3i-rEr-ffGEl3hO7RLCGgpteYUs5cDbAxwNExJYzcMBu1NWdEmfxNjk8dXOsIJkMh6Gy193QokuGReXkAg-6kj9sE7tycjknBT17NpN1B_nFhe04hHngyBVHEL5bRWY2De_gyd5KJhGTPaN5W-SmHB1QKIegWlHxWtNSqR5heOBU4xYDuyrd1v1yNrjOJe5-A8e79cARcTepZGh0fSaw4BK05Kr4XawQSzAamaito1ytKlbCEP9-3PtZIS_WoN3oET98lPhB0ufj0r_ZXccsW7Pwyh2bKOT5owCFc_Ij65xXahapknQKxn-QCp-KEQ3or6WxUTYl1-dqatqvPcWO9cmZBqQ6znakzOk2fCd6zXlL-vsMDByUNicVBgFCVDt7CURwjdVRumdWqR6yxgriwv6I_sOMgRJWp4WmPsT9fggYjNeCx2D9iVeqyQfENjtVF4tBcnmW6ydA6mTpXZFe8jkcwJH2NtTQ2Y7UZPL2JRor_IUSEkHq-F-C1iYpmRTQAdvvAz8SaVj8R7F55iLi18x5x98WURc5O8kTxSojGINglC1ZL5rEG6_oyabVoyMWUJwilYD7BRxq0e0EQP6u7jxAyjqIOCgBrvgWDGxUIbH5qmEm3gtub4mT_Wi3v2dX7OIGOwNJ2bbvw5UXUPUVuGB8E82eEQYzvlhMELKNGXNTbGXvc-kKrW_1plCDr_fumCoRO4Oen5u1Zmj5vLx8UFjs9PD7SdBTpZJNmSIKYNGH7XDPCyLde2UCWE9cuGxa788sMmRzZU8gsNfHfCYQWP-lMb0eQQMlSPix_BgOQqi9rp3qOOJKJLGXYsEJh91JDkxUtuP_vyw08Kxl8ZQPULVSXEdW7YUcoPT2BJS6FhAtDFn-tgg2-0UnxWHCXEfyS027cbtqfpfYqwODmRWGm_4eWS1Wf8tl1M5aIkHs0NCb9xu98pqss_bKPq6-o_kU3X-IpDdwLKOi6qHI6hF7PildAhSVAbwwoIvxJJotCVAGdBZzSQJ54dsa6POSegfwI-R9wjxt83DR_DWIcn7PRG7iMQH8MyrlQB2MIzK4fp2FrZKU7YfLcgTtefi2-bAm_wjEUq08bf_9ZIpRUNqV89kRbD9gL_oTOFcfKzNmTm92v5LSIML3NbAtwZV5WyH17YoR3-8r0XLOZmFMhBUgujeko5UMpZMc5IsLM-2f9YFNPr0U3SLLVUCB-wo3H85j64Bg5JrBPO_MzjhfVDmHU3bQJgd_plw_66EUDymfbBRpxuNIAOoWBrzJ5h_gK1vB8wH2yNfn4w8X7_3RLjQEHF7SwCu4dr4ndqS3Me6EGtghEQMUlfhVJ53ynTyElzp2fcULU4XjBeCED5tBrwZjHGEOMTvxUV4siyngqe7ixkvhFo46C85TRO15B-TnMVVZMVuaXnGew2XMYlQVj6zm0TSyg3xR-Mos7jUtyauvJ1yvfbN13nz7t0lmG70RbnVEXNdmcdmZJA7qZU0Fk19ztkWzk_dgE_dZdnMtvTf2JIiSgGALll3rQKfECJbjxOI8r2F4nYyuEn6hZ2IOnS0Bbxl-SjMGpmUNSS6nLsRgLhtRy47M1F2Pz4W6DWeaEILu9PcMNcr5Kh5pIRki3Nr6lrEpD3QtbEOIn9Drstzen5CslYGAIi-74rUOn76z0Agy8T80WQmBr4T-Hhga7T-0qR81GrTu2za0T6z8E3TR2gVF0c7VxN7OdBLvmQpIqfSEpTuY7ZGOkz9TIcRig6UtkQdz5oB5XcY_mHBeq2rTHzLshaYcS83tVV7yui391gFTjmLaV7k8261f_n5Y_jAHQiL9YWUC44UPtDvGfmBW810mGCBzxcqYY0H-5XVrwk6gKF2ZCR69hW8Uco7bLpKCMPtZId94RHpsVH1788bYaZFJTHSIDgAKdnZ0-UAKgH3atDonqLCZEV7rPM-u6_5ryq2N6x7qNyzMXhwTn0IVZAh8SQZIZTGLkPmZUL71TtgrtA5srm0zoZelNAk6ER9Z7k2c3C9fK6aAlhiegcI4ESTsvdTp9O1_3XvCeMfw-K6pJRH6Cyil4blD6jAFOVFxmgLCyzG-eiA0j4USePYvk6ND6uFwLQl49FIVTQt_F2rcaaKN_mzafRmr2nmOvpR_bwWN8ygf5znl9kTDTq2TdpKM3zyqyfm3NRmB44DLj-yO2Xy8rkn0HsP_vrFatVR4Ff84nGpKKCSwcqbIweZebZ7_yyElwWCkcxf24Eaj2jpWYZ7Mh6LKz50x5S1er8Pt17wQyQjD3k8Tj5DBiAYYrSsBSdEalHvnLBRLfiPfmx_AQ-6N_eBxwaNEdo2sGxpJB24Efoqe04LTwmHHLzDcuIiF2iHPCwUz4B8vEGcihpCE4Q7j8ZHV07z-IbNJw-OLYMhqxly_5BIBSH36NywCyxwtJRB2sRVrNxouLN5RoNJdtj7JaDzJcdebt0hRsAl0YaWNxQG94hPWLu3rXQsE9yN8P1Ch7jfWSk2GTFrsi5ZapSwkIFVogKV3VWYhjZYn3FHJkcQiw7ifQ-Ddm5cWpwYCPuf4JpFYeICfqh9ol6KdIpxB2Ctupfg2I6wdMKcii0tsQaX2FkDxqB3iT67bCffhcA_-Vpb03YDJc4rsx_EXFKmbR-XyDuYSSyiU_yzRkHIFg45QILYtCgeVnIs0EnNVXFiuIJ4zOo79KqnvtyXvbflpb9TGGCY2Vfky0kXmj1Jo_ALzuj7FJlYfpNdANYyDaNYny4QwKaPbz2NvN16ITI_0U1Z1KHMsu2hvkMt4bGFOse6msgOsz4eTKHmR3Fj_T-H6G35QOm6lnubst2CgYMCSdb6gXcYW7rVri1fuxrY7paHJRvS-dIQX3Lwkrki0J9KYVqcf2IO73L-_e7EsttPn1vrMITeI4rMK9yL2PPZZ0aHSSmsI1eRwCgUQgGGnJOrexDB-L2bWDm6L3p4tWnq6XxpPmtIQooHFNj81VkYUi-xVbn2HPqBOnqo5d4_7Nzfdbit2WNJSz4HeSTotk7YpLo7aiDAvj-cHpVh4q_aUJPY4X8AwY1eOavXeKBuNbGxnwTSeiTqSePhOSOHTo8ioavuvOBqU5xZvM_rZwGBmP-m-jC5Y33WKV3qsEOwPNAjwyjxU0uEJJwO5zP81PSaLkHGADfX85Mtaq76Z2bRo4l93MIa78mFP6viJBptCSOXUfuU2cbhxrR98S4cUlBv0yzY7NOJ6m-UzSfXCY1L6MPIYTcIfnr9Z4EVR7u8Qo3G0P0CfPyqbAVHWqKkp8iZxwcwlPYbE4DRGjpMbrve3Vq0GEQTidE2wmL7_UOeIKHl-lmkxUffKEmvWjs6ojQW2lsveplM229afz-c0IsXXLqJa206YrUqzux6nevrqp2oFXNLGrh3VVZRR6_tfiY1k5WkSbphV5eLc9GcLOLa271uLq5Zs8I4Dxl8uEePnsxOxFscCYhnQ23dRDtkr2EvY0x34Xks3SjvFw2-upIxpumqogrZ-pOTi8s6vuqh4iGbqFN5Wg8ljBHIETxmc3RD_zeLqluW-tlEcemXWxiSArQag7od05i-sCXCiSVbWKn4TWw_xy_qns3JBN2ZBAgC27wl6qXpq_D2Wrw8PszKUOY0Bn1K08vwIQXRGLDJc25xSNdUFqvoiGHZpjO_IqwrZEOizt_5lXfYJS8EPD4UUDS60nxAlsV1ijGSdWfcF48yxcADwZx-5hxO6b6UL6fRijlAE650mSScNBGri4cp87yoiiNwOZZLje2m382M511eV2YbOsZDm-qGjvKsHlsN4DIDp-NH4YsGAki7X1lQUm7yAj5RcSiwDBdkaE_tzyjUyJ7oSJCxJyx9R19jLGboBEIptLAiXmT4YvemJcEiaYvovkyTxLPt1pFgkr7s_AfCHf_6eo6yftydWM4aMr8aqeoFwjUG9lHx18tbIozf_MUMF4pcvE7foudDfGmSfawpS_ijOcfVvH3HBQ7DuDmXx_uIB2zXoTb4uSjXE3305gyjOpXx6b_Ulc-hZfLyN4f56KaDKh8nytN2uci3guRkIkQhy3No-5H4uMgbOdNxeIicSAwH4T4VktVou20CVCW9uxA6h5q80CREUs808PnMHTEaD6sf9piJO-XXSKW_pegJ6ukjUTI7O5UQsFVNutIfLq4-7_tiLT98scmpabCIFcroKYbsVCSyWT6iWRlH2SYbiYxeaZJ44ydNvt0dDeLdM2fFYIktyVCIXLMEyjxA76tkawfK7DEjm4g5iXilU0SwpgqvjOVlYa_85FQFD85zF-g7wkGPyahwexWItFfXA63yGgwRBMhpdjrVbJIJJ1YZCaASWupz6_NKRir1AMLmd6qezK7FNRakYLq4nFpEAcRe8BwF5HJosqwfbsqpfyv5aPB3ocWPy8UvVxjnK-Dqb-Y8ybYf2C_skDFRRTNxHP2PqX0minAhcfKf1E42x_zo4_7eBsZx9NEzTBWbj3Eox6oZlgfHZDGOvfsZOOqU_W2YR1JZRe-mERbfkgZPyyOgEVhHBEBi0V6983FXf-1PtBZ9fYSAAD2VmOS2viliX0zPQm0Gcm0vrPw7s_kLI65lB1L-1b5x1aP6W0NaKerbsRtN75i6i8slIYMYZpZrU0qBsWMskgMtgZ0iu4VzvkTF5SwKjQ14zv1ni7cXtH02LD8F6Zwz0YRgaa3TnAOInw2b5K7Lmtj9LcwXcoxGM59t1G1uUg03kls4_eZ9LlADSk4bKoFV8x5ZqicegM0_rCZIA06NhdQOV7uuW3axAr4bDJ5bMUZguqQUTX52QEgC-EhW_x79tcUF4GD9Mlw2buqmwE4GwSrYFFayhfRAdxbDfMsVf4RupTGSVPRn7_e9yFQ6doWbbrEsy0oQKO7TZcSjBhNCT27OUzYqoPlZtzrpWKtoJjdEokijLfDDXkl82IQVNULbnHA9rpqEl1VfoXJ8kpCcXuWz-vHnQt8mWhbv_PFR0Su8ITIRIcGTSin8fwCV1RmjqHstHaK46PocHzvMqbgRovZw-L4PZYlw6PrcJbT85Hx62cwxiB3K4A-WUW_ikyL8LuLK986fhUVM6j5TwrhOa4-a-ycGSl3rmbQoBkP3T4aVATw1NZxb2N-uQdeQIJn7Q3veny99pz6hcLUGAvuPsH3VmGSOsnGbN35h648RkyjEAVabbe_VqlIYT-vDLv6VfJ2Sim0mKkOwfUOPRfsfmeJGTa7lWZQ0wc3wANYIcc5g6v9R6Wl2YrfHWWFWhg4JqQLP44RFxeUelMgHfR2xH1b4-TjklV0JQ4yUGDLYcYi9cchj_OmtgOojBxTA2nxm6h6kcIqp-TkeqbKrX3kVhC48L1pBgaiqz6iHewVqvjAvlR2yIB45HR3HvLRQU0pwmgpYiFHQOrxjMwmqTuR_Qj9_P9DftYanXkRuVkT2__tbmUTHWBNS49f4xWwWFTVv6X5qLDuNfTVHLyHrE4qCbba3jRzsq-xP7eANBSrYeSM2KA4YPpyRUf1OuE3c7qZxv2t-sj8Yg9Pymlleha8sZAt8vk61PSJ7SIfbLuf1cBRORyNa962W9358JPATItrtxnUFDeJT9btzCEoOviOFc1z9HkKMjJQy4PD9XXz58FtWxE7E5Q6RnfbZ1BHsPQ-YLTK2Ms_P8oUWISc9sEJAOlsyXe_PyW6DWVIJGeMBreArTuqucQeA0yxSUIKSrDX_dw2wZRS2XyY4uOGjFc4riJDdLBqQSFeWUWXM98Lf-Fw0H2JyF43xCRpjU3_sR85O73tywUuXEiW6K8IMTo-3KOI3snwzkQcCL6W6g5gLgj9fhc3NlaeWVayRuep9sTX6tlQTbuBKtLeSqeRPD1PD61Oby_1AsJJ5hJF9UUnh0zCX93zx-EX0dunylvtOlF6UkBAszk6nvpdkI485mcpF6jnCtw6Ooz6aOSBPlPm1hnnaj_nAtykKemZ9wOmdgj0f1eXyXLVDbruiN8TKzyGZ2RHw0PiV2E2pT3wSnJGRlu7A88T49DyjN-wabOveb4SWy1TEpGI8Ynuz9MdD2myDllex6vKMSqjizE4Rpl98GNc4UCWH5VIvug5vBo5RFcc7dYGXcGFnFDb2wBJ_cKNKmZyRJGFfiIlRlDjWAZ_zgBjhAv_QGD2qo4v1zUnHpP833SEhCuynXYrF0jczdv9QKpY_SUSRpgFoEp20iyE2tAE_vVQ63k6AEZMSy_-AKWKe42ALQYDgoiWklLs-0ZCixcIBHqobATOAXymbyeNTtnfMt048TgD7FunFpjAolZSDzTZhbOxaGJFgMiqfHsTl7Jve2jVpu3ERXwq21AawfsD4dtVOFc_D6AbHaHhwChSwi2OCyq4I4jfnlsoDiayJk0L-RNCVubqMHFJyisslmDFOkuA3B68yd88iMOiRyn18SxruzpnotwpQTEj0z5Em6WtGUMwdpcCL5OaHqiexePwlHMnS40OpUh9SsRLQ8B0MvdZYKoEnVcu4R4pSlH-_lzHsmykjz4jZE98KmqFEb9sbF9Z_Nc7wPED1_TZj6EtagrNzBDOQlKsF7fuKiiTKYQ5jg9WhiupE2IeSaS1Iwyao98ATkImssbt-rJbJPcUgqAXZ9HPduRDd7AKmgSuq50vod0B5Ff62x0ed4giplPrCx72NfhBsR6JHRQMNGrG0d0O_lGb2KtTgnPUo7TgD4JxfuBoNQysD3wsdxLcfAtwtVV6Gy4aKMAlMZVCdd7KqayYu5POVdG-pqFxn00Phnbor9AiNCdcaa2eKQSK4EjgLJDqDIzR_W2HIdtKfOBHx99TuavlEuZlwo6DypzztvCLjX7nqaZI75KNM4mVInxYZJtkjTeWZKFstwD2k6J-62NaAz8RvQ1R5yxaygxqVPITZdaimt4GUW-dJxlieT-RGEJPDwcYb7nr_iTN47njAZrRiPMYH7OJVoxurJrlenzOQrbtFyKL0BA2bWGzIsqXf4o5NC7c2kVCmVD1SI-XAkZeouulhp_ZWwNIhRMMSyc3eKwq1nNBBh_C5Gghjul6IoNnd5FwFJEefnpgOJurd7u4cf8j_R4suSYB_Ss4I1PgPz-fKnGF66DGUSF-GsSjQFSGJZiXCeK60TN-CM_9xt4vl63Gzds3uI-3cZr6kDaB_KHzmGTZEDstUdPdk-l4bz97tWr380blsg15QsmbRYqOTuMR2KQ2G9msfrrjpNs0sqePKHLzoEczJKymqsUnGMClZ38z2QGrEdUxFd06D8MJO35vhrq-zC6-P69b2aG_FaUzAaftOGdkO-JoWO8-mpi8NkcvuRNK5K379tU964SZ6ioGokMbWskaaPCN2URRDPPl9Yjp2qPFwpnP1VyihwMOnUqRdTe5NuKnMwLvI1Q91CllWWRefzOPkqCuTTObmXBK7_VZtnTM2sHFiQQHd4xvz4VVAWUiOIKYy6FoRGZ1GNiAbkKJ06k7cO1puucPixPn0fc9y84CbzXaXUDcp_QZXAop9ZGoRW3EF5_HPXI_CqQBhndGKm2AZJiQb2LPk-adYQaHaCIKyU7d05YB8uc_xeviQCVGB5YC0J4sIqYusniVxiUwY9FTD6pYdk3j3DVEhiqJddk3DLsr5i1FdZ5lxNX7AJHd6Ie6Rxr57CqSqE0JtwvPLXVjtZXp1r0vMDFCAYY12NZkTOG_fGWLWJLfIwlAtSdJwyuNgD9vGuThyz7N9HLdSzW2ZcbjqUHzfOQ7UI9FovSw2jQJCOcDkQ2WH9ZwWlF5PbK7ErAaFVIIQxGPCbVSSOJKuKgoAgr6j1eUM3ju59U3pm9DMSFCVM14_HfxCzTg1xM_KQEockUB5TISHixrf3wVzMNtkkhl77SFoCpmFhJeK9uj0kE9ijvAzItgk1dga2vPWW1BGxctw7_ofz9DQIIt7OciDGL-h-93blRweOm16Sm9DbPK3jdLvPS-wMADo0U7wkM_FGj1iG9r38c4loIsjhFbRgZPaYjaU6bxarZlLFjA9ceKA75e6q4DwTUD4g4J3t1Y_fFT_E6jRjJXiG5FDtgEw5JGMHkWLmM5dWq3jVMz6K0xg3S8npND7TFJ_GQFg3J-KhIEDfwy80pWtlDGxz_JPmTmQdEKvoHDvUG0vOPTK5mShCpofQQB8qG-sLjP5Bj8LK0pC6kHSpAKpYrp5p62moJT-W6xvEU7_kC2ZeFCk5aLORahWffmDdE9_sHTEJ_0PbAx-o6Lj8oJz1Sp_bI0s46VuZAOrf-Ml7qK_f9CeGj1ORnODbtRH9TxcsQHP8DJJXFbo-AjuD4h2OXUF3bVRKQSE99PSCCBxUln4BQ4fjnM2BP9L6S8GAAUWXdRm-amprthSgevD-ytm49rp1VKQCPiOKRJyYSkHAQ99LpG4NLtxDWnKsHCg1FbPok13AuRnNZgNqxTjyUFUSeYoy4NTk2Gy2Aw5yAwS4Rkp74Qzhv2kNZEH91QjQ2VGXKBDwaOT_tYNdA2wIIlSbsQLk0uvGlu9iRy3ThxWPJeQH1HRt35FZ6RxfLOH1PS7tBRfKQT1oR1mMsTPttDwGqGDnrptL43srkviE-pWH9kcoOUHPTHqmNz7ZzgRHOlPr5uXNv6kn-GgrLrmhYJuei73WLMISOAOHTy3DXmXTbN6iZzivfH6ejt-mjvwUGYyhSXNoDo1GKeVruFbtxyXrvm1IaERgfzmy-2kLnPDneqlFniFzUV3ebGVZOULYJaWZrHLDIzWovqSQjfLqYr-Hle4EPXWqGYy_iVhky05agnA_-m2VOxnSlkgYbokg-z0c8T7b7pg_EhEF0I6BrfRV-T4tzcwOKPseGvAu6Sb-ITooaZU4kvx3xhbogJ6ipkvsa85dR1JTSOcdpjhSvInClLXDx4wcHaJp67BjNJUexHyx83hZCKLYgswMHmk5ALztHsY_nAmgp9UILVjLs6RtfyYhZ4VEal9mspX_vqHrvmpXbI5m_hVR5shQyRx7mswyeVGIQx6cUO3yxyQrjKQMuVHzvO2Lpki5QE19g0UtID3-jzi6OKCUpwp7-paS5659ToNJd_gfrq6R8exLS71rCGPKwncss2xRBwQfBqM5ith7QL4jRZ_eNGfdzwYGgI4QnPExru3swurmYER5gQ_GOOatnwXOMs1NbEj4e_Q0sDRKX8NHgtdBcL0mFfdU2gBqlxexpFk5M46kqupWPgubvXHs9utrcuv82cIOrB1ho3ddSwc1OhLT6VabtrR1k06Uax5w0U01j1vwIFJMajpXYGzejeI8JXK2rWMLzV-vWUAsMymnbcSbA9jUNMvobe1X4lCGRYSFVHTpQuqcGB5ydWukUiycV1SZXD0OPAtcYV9sKbV8eScimKEGsMqc3d1Izh_jkWqnf6_CHZaISVBSdLX4gQ7gc0bsPO9oeXTvz9spvp8RGYRmTMoxP1q4qIxs1q3SzFHJCxBDdYw303Tq5Ecv75I3eRqv62mF9s2Ae_4XSjfQqpvVSEAYyx22aELTiWLpnRCQKOXeKlF7CabvPmEsH51BXZN-6glQH9JhpbQMIGLjeG0Lt0nHZvj6vcKw6D1w7XH7UKucAyAkP9ZhUuG5K6NkCpDM_D78s0vST9afxk6lBwRAQCmsys7E1Cleyqg3BT1f8QOgn7vnKLe0NKUmZzgeoihgdbjxpM6fRut5vw69Ev1Cm8I4Gwz_JqOq2RqJFqQ9CP4ue2sfHueO0AOQIySsO8F5_cBiBycKziDy1kSg-XwItwyBJ2hprq0BAdYgCTQXbuD0Zz9if6qwac5ddoEs_TIX8WucXxiFRF_wlwJTixy7gEkWYM4Gg6w2s6FdYKJ8quxaaeLBExLwwgFXOqyhQH1Y4hECOF6hfcQSwNC27C_IJGlUcFACpiCUoFLFZPazieqD-0Utu3WEaHXCtgcs8TRoutBECSpLwnu6gIBQrkOGruPS1ZiPqKzE4oTjlyQ0v-PBw6oYUA9jIfvEr7VwmwWs7asjX_nz-9oydFZo2rhJLxy1w-1c27VPqstAje5UtHehhHe8ZXzeKoSGHW1fIfLZppaBXc6_Hrffkf2ikljM1RkxPeSqqtIbGFgN9esn90JdWbHdNz-ZTQutL1BGb2Kq3JShqOsmujUPsNkQg3Arny1hmx_LNDLTHw4ly7qsdDLDaex7cwvFiMw3nplQlqXtMeaaFjeV5Y1RuX54iO_btboqLY1Oh9L7_zygT8lPR7ZV4OVc9Txzlf4Cqc46AP8a0YjiIP78Fj9NGRICjZ_s7JAXExewGcsLF0GUXatkMivx3XABN8X4jzeN9QtB9jnszjIpiZaRPAI8Oe9GTqvq7HLP9G1ClE8L1fx9dZlSz2cJyybMq8vYJrL1b7IppqeXRlfak7HmaBoTJukAILFiG-fRs0L1wg6Z2c7AL3vyBn-ncRGxSvLZ0qAGIvyi1a-_LvO7BRgTKaS16Kyo2__8MSrXuXiP0tFQD2MyywNFbwqpF6umUaQZB0V-ovA6UrhM1fKKiDyx-vPHqX6jNzaZgKMwCt3AsBLODlQX7eqXwhC2r7KgVmWXSRtLE2AW5BiGxwquDytZhLSt_GC2MU5q1B3Z3BNHUyF-Bo0NaTe1Vevb-cxzogiOLqmz0rdOV3XldztwbQeqG31l6uuI3b-TrID5twQcRvTCjLT9zEyua8eCCi3p-T7I-rtpsskU-nCheizxt2SjI_PQna69CAEWqAGfPVFiDdee-hoLr8GU85c2WzwWB25WIlTLI26x38tlwSww8UU31_j993_XRoFApjmwGXXOoRl5g8Hzojb2W71NqLLYAOSZeyJvJeaJ62mHepa6S4kPO-yKmR_ixv_H3TKaQ0TFwMvrBIE3lnovMHrSNVoUD0LCfU_h4u44J5N7g-B2j8D4BGX-R5I0mHB20LfDg879VyAW9n1iYHLbVbxS_1KiHxl4x7zSdbRTq2nKjPktDFwHKR5jxr5LhqQmnTk0dFKmEVflzZEzkVZPL-r2rDde-bo--mXeKcRb6k4-bSrOPOmA9PX6qO6t8oi4RDeSsIG5DswlDTuG-g0bexBWlM3S0PShFg4CtdCUFLhHgb-9ap9RqQx1i5nLNgkiKnVm0yh-1LMFv-sY1hqEP6wU9wxahFaX4kUZzlSIppn304JKML-V2foRdpGYYcvvos0t03CfdgQ4CppcGbbBxeKiqYEdzJcJXl3t7LLLJ_bNssJcrXbnaRJqnHldJF9p8DUed_gC4HPTSOLUZqiLO0mBld2Aytt3vozTHuVIY5OFq_rwxmTCrrB-NuSctBYJ5usJB6BH_DtqhlyUpwuzizObTzREqRyk_vSEiF-wexv2RrTSPavek64LP_6xn-M4EUndqURFHggbx366kTMpuGhH9XKRBs_QakuEhqdz4OoYKt-HxA6BcgkZGkxgtvaYYL3E9UA6Utp6lK74CRwPHofqyUrLhfN6dLCh40jWf0aBZsx1hsUfwPyw1_5nmhW5SIwJ7H2w0iLVizBs7Ysl7szgqbIHi3ef5iJzPSlid59njaaUbUPCT_pA2r6Z4QorUItby3eH3OK67XHLoGUJ_ybaMGz3bUU0o-b9bpmje7wimpReocub2mZzlDqsnVffpDC1ty9GLhS0EanWAmJzlxKKkRtSFujEeDssyVlrmqoaWMdxIV3qAoS4cnZBMSlpbtV3oYUPMOJvqCSEvCJnIF6GxixatXOpCn23L7p-f_Ibn-OnVYtp70RUgczWhWp33nmiersTqfEhfbsTZVJzej19-WmOLb-38zhLbO4Gv4CYc4dvowFuqTHz3T8K2azkwcssQJTZn9NmvVLe8-zNitrgbrodqSEEssY3ttHyfmpq-DxDolZynJiOay_2VEyisITUGuzd5vern2lMAX3JP0Je81KLp4xljvg6eal-VZTKV3twZChJhrIk-iL2RHr496s9Jc_q6Vn3W7q2HGLmcjqq0zbcl-OmGnA-XbXAf4ieYQoS-kMqXFmnjfCDoYfApJIoz--G7t0Hm3XSZI6_JwzS8pllQf4gdkXfTQOuurOh5jj0jPximP-fJujXt8FBYgnnMpSgtzH5haMuCUGS5hc5T9SZm-3K91YWQLtpfNrpk07is1BN9mi1QTzaud4M9KUZyB2ktW0PcFzlWPZvvJPVq9DcSHUV9vCXFwJ2G_MP-GquZu04BCDDWZ0x-0qiZB2tp4AYgGopWiGxJmQQDt2YeVaGcU8TPZO9SZBG7LB19aHJeDMhSqdazkACsD_yJr_F1CjkcXPMEZ1FT_ksen3ZEVagz8fL9aGrfuTnBAeFEGmc1xw-RfmLZxR_NcEFWCXhhk-m2hJLFEkQhFlyYrgnU0BY1r70KafVKLSKcG8hrVHcVyJXkwAhX0PG_6oO96iflnYeEsfUAM_-srECB95z6dEAdKhUyWr1zAJfXzarhdj_CiCkYybCD32vQvz0h0StopEw_0wL7gspAWUauUyyZdvOHLIFZ1og8A9jZpNiNeXK7u4PYEFtzmYm_23TN4GuaLuW0eMSe7E3Zl22bsAMd3kLK-vLCvffP2SFsgiw4XNvO4TGqDtQjADeBVPAvf-OugkaTGxUHV7UuZbq3gJhKDoi10rQ5n1EV33WZTaFKSuBrCJlMOVCY65dwTOhfgQvJBYmm4QAEZrcOfPGwGxnrERuXryGZvy6a0_UYad3chjqcR1MygTnYev-rwcaVkWwDYwqwTiEHKDWspkec9OnptTLJvkEBGl8jCWbR5lfhu7U9UNGtypqzRuh_4T_zETr643NacxpFU_AUbDs3qfpqTFwgkFqdvi3dZ4ZQYJPv5w5B0984q05hM87oSpdvdHmljL-wyuHAzSKU5Bza9A_MhuJ2lYJGZXMwCNNmN-DQ5clzLqrKffXFxzpOCYyPUl3PfH_iZmxusFPnUqltg5cLuzF4Bp0PPzBaYWNCgw0cCjiVVeS49_YM2M5fur6m9L_OCVsjTKx1QVGLI85lhgIg5CylcfHIA1MiLr61DYvbNLkSnyQ6bSnV_VvbgulAG0GzPkaeUdumsu6hjgOvzWrVTnJ5M3qlanIlqGYaMyYMEo8sbF2MinCHAUaUsYWThOHpcgG7D2alDBSod4Uw-WYW3vsm5e38nMf6riYmJLrgGwgEYZioQIMVKcq7icJNBcql6LogVRhorMO9lcpPc8u3Y9v1JCGqcepU_ZUuSrVOjclsWr7yIEPMdsyAxVjAPl9d9EIhl8sC83QJHjRYlsAqY5zSh_q4sZzfUFXcTP2wsZcvRliRxt0EnCwPB2iB99jgrC293FTm2ct-CjOoBZRg0qyyNQ4S4qwIm79SmsxnVIJ1qUG7coy8n2KT2Gqt6VTFzZUHiAxi2VywU41ku4VB0Vjn1UC1L2u1cJOdg060ULQakmO-aQ-MMG3e39SPHTiEvAXyQe2IlIXmsktz9gmex6Pl6KklTDsoWrRU_wiMyt3UluVmlUjDfherAXZVgCl7PN2lLs6k6Owvj_Deo5qbTTpI7LgS7_ojAVJsFyQU8Gtu3CGdWiPekvaLPh-33CPnDxRc64ubPSgfuaAz8V3PsJ0S9NwL_F7d0URLYbudEC5XuJHvN6bO0NsfoaeKw_A64kgCDhacosbLQzyM7uAi2QW5IOhMhrV1OjSavzXwTEGZYi30wwAV5tS5ngdi6ZWzTqunG_JPx7mUz33JCDhWA-HSbEHAeyWdsdMoEntXU4B5vrxLVnP1eP3pSUjsecWZBgFp6WhDA4u-_v7HhK2Ha8j75p0gm2c-lDEVN5W2MunT8IuZWYp6Y61eFzAoFQrdwSKuYiJEVbOjWIG8_HDoKaBOtzCs5jIN6DuFMYtDmkTraw9AK0a5IDZ7mEcFpX1q6ZXIjaoziEVW9e_h42jDmRPmg6EURdLLT0w-fPmBefCCLHyosb9A6-eY4nf46JjjFnUw6JN1xWN0j7nAAJtQWKvws0rceh0jVhTS-sLsTfqj1GbpgNXzh4KWWQLwVx-BB7yzV2UOx6o0HRkMcHUVX1xK58cQwlzVNfYQ-VaS2SY1Z6qPtTxHUqy_Lf5ggO8VVWN-4LQo_d-XParEy7rxNuuogGIUxNRN54KEpiVd9k686X4docQI6xnQYQImldxFdPfE6B1RVsIZIB2uyFkcg2y7SNOHgTQ0xC_JdAoxJE46aUqAVJ9DcF5q8l10GGUAWL69d_bqsSA_7gGuB8diWo8C7fAF1etbd4L6vkI8Jf1DwZO17J9ubIvuUZ_XPEpihLBf_ob-s-VVL2df154pWzOVmMo3CFlv_ZFlSUKGBKfnVg2trkpf9Bh_mTrXBTQpjEUdDGrRTERb8efxPqoBx16tO7SlnAYAHIM1CEniCdI04iiStGfoukhmiRpt7yeJG1Yf1F26iArnU9cBJNy1yz02lNIrc-QnWBOw_vvQB5zUl6SoDNnc55uwE4lh_eKAthlJGog8FtwA7UfCAMYwjQ3O0sJHl66taqGbPpz51Mv7vuTF3zV33kwyeiTT_9VXsq2IYf8Y88O9r42F3uoZApUQz0dgVW5ZOPWMAUUyBW9A6si6-meuWyiixbEa4gGE1DLXB1ByBviYmojEPuDwIyRB_oLWY2IAsAksT8CDXU-zA-t8oFPIXbllkmqSW9ZDhPhwT9JYHw-NZ__sn1ykNBa_rXRK_t9LdKsPfd99RpuBOOCgdt3ua8nyTVQfdiuUk2F462GrxFU3lgXxAN2FrstgeLNC98AERuvElI99c8FOpz5JmuIpt9fXWEFwoxd5XWoxQzGhLMxeaHgMCAC1NZkSj6-ZMktcnOU0se2cW6AynMrpd40PrI-6bzIzbDxXkPMNs4y3bmGk3tMVX0DJ1lKhd7Qgz7oU1gOVBVvIeyCunZu5ZS8qJFYnLzZWjyE2CtYEkKfFGhhRrzjIE4BydQhtcIbQfU1e4RwyMclVfoTj814VumoYLOaRItmawGPGJzw2niq0pkdC8jOtKbdzo1mIOBxAf8LG6vVeojMJUEsFTYg4_w5jNPVVYLsBamIG0Swr2SBAdF8dHoWLSaGrTnZaQO-_Gb0YR-mDwXWKki8WLDnLA2IGh44LiVURILf90oFM213X7b2vYkMklOqFOkQQmf0zOxEBTti97elHTC9zV9W5mjNgUAzrxCnBhTrJqtP833aUYa32Il7bNEZ9nNnalX1dSIUfLjk9YDZBshYO2cBzLScz0pOwoVQjjrUCATTQmv7W9ODR0dEs8r8MbO6s_qFts4_A7EEwAyYRXTLffvCnh0EngKwIK_jy1mNVAYtFairYF07BwPw1Uity5hF17yJXKeZn2j_2QPtZ6SjsStntogW05Wj4E5obKybl6TNzi_7ILDYg1FB4ok8uyOStZvQD-rtrp1WpS7q-hw7dKJoZBOZG6LKY4wrE1al0lVzSXwLTMWJdUa7nonplqK53r6pXkjoPg3l0yyGWJqqpzIhMSvWrJmzEi28k0cz-WiAX5Hn9PUJkJoXNi8xEz19Vm_rCOJeN1esQo8ODxUxZcoltgo9uqf9JBgPQzpV8NS8IKNdTCcRcrTqyQUayxWE7ABI2eVuny79WNXlR_tVLRtgDOV-wurXEDo60N43PLm8VUZFtd20s5MNl7ZBVfT6jJuwiKijhMwevJ6OFgxHyFvIFB6D1a3WOcVZ3j_QcMSu8CoSq_Nv8inGyEHNWAM8YC3Rx2FcjH5RzudAZ9njDYiH07UI3j2l2WcVMvRILVtYnIvVFFZ69BhJp3_RF07i2RW5AgojD--2oZVuWssiKUnRTUvqLG7WErt3Kfjt20ow3UhIu6uUkvQiQiGVi_dGGBB60hukFRFn4SOdbeUsZzCD2ypq1Iz3gXWtcHiwvzOmUMse3dMFsEaLjZhsgMVxOKdkGwBOC8bBCibfK_KbNhDkK_LkYpMhqgjxGPgcBJ2fsOFzcuuoYXnd_f91hq9L9n5qXxF6fTS90QfWYBvKHQABMyGTnjZ7B0EMQThuYVIhTFdhkWo4JXKH4FYcNb6CpueyZimOXR2Lpjkfk0GGIk9XoLdg9Xp1UFgmpJj4b57-8qZh-0x3J27FiDoghaR5w3pCGsY6SaQ3re_OrLtnfq04JwMijh7n3dPJYwc93kE9-r8Tnv8QSCnwR7hoN2oc2ujCqgB91Q1EHELmEOswYguol9DCTPgtM3oCncd61Nn8dV7KSGLjTbh0YyU6ZE94j1aWHqXeChMTzekc4H3NEoN6xyuCo63CS8YsfPwoR23laZFJ8iNkW5N5MhR7iTuJpwmIspedHi5pFhcBg3MD25Rk8hM-ySGLai-SJCcWbdCQBOres6_2hjuII3LHZXwkVnr1NpFjGo5bLfx9f2nYrX1KpOOMa_l725al0khj9dbOX0CtSrwkYWMvotUEv8qx1sfhqCTHdc1l174fuR_i74Ofap-xBAyzGLvgywJN1IdRpEhDv-p2045UQfN0Pn-pyUP444qsfFZd5SVt6uPp_UkF2ztF8AfddaEx7hDIbl941NaIutMhZlWy5EuEvcKEq1h6yUWd8C4_e21Mj5TIYHlMJmhLG-I9Ei6ToWzTSM6lFlrG3GLzZKh53-Q9ihZYtHFXf0Feaqlbqto0x6mq7ysgV0hHV1np4TOPh5nbY7n-cw2aLFv4OHwFUbwE9x5lvRGhHnWi1aotzdQ2hVrjbhkQIse4Wz4hnZgPe2bpR6mJgoXp3izYyboXQX1PpBIqT9dM1WsF2uJ8dieMcD9dFZTHklTndj7oI0JZLrUtb9_wqUmAKrD0bVwVwy-4vk_OHj08GEF9xpdEf16L3OPrihkeRMDWbuPzzCf6npnIPxJeF_8uw2urYTTQf-q3LBdb0iSIEdWNU9N4Lfj5osmEgB7jOJyLLMWJbMkCrR6LbmLKyac_RDIldhw9CydoSxR0CqkRKx226IVs-e5r582jbSxavnTJCfeXaCr0f1jSsi-Un1acuC8K3g2rfEvzwPoY1F3EKVL2EdzcOLVAiI_tKebk2i2Vgpx_PnNybcUXJgE_GmZ7NUv4p3jOT3pOCbC7MI4NZ5_p6xTT4hDJaUo92zxzY0SSoW5nwVei6qkaDpJs4fKhpMaxVCZe4uGDhcq_NsabTXNTFnwV-HDYrZt0wzfRh4oVEwrrVMvfV3hqJs1lA2uJFSLjDextel4NCZ1E_SEJ_ePc5ahN39RiHXsnnXdUt7qxhNj0wVyQ6ycMa0ZWmpy96CIACv3-BYHQxBtOhAIINMBz8IkNUJR_QPBQZphWkHQ9htxhp5iPUaKvtfVPykpwBu2b4OQ8jE3DY7aZ8s4nbblGT370zzjWO9wiNIPhpZVzLpnNEfg22dJOwSCp9_LffXsSzu1QCwALKVJLq_dxf_fs4SAC37OY2FIxY-p-WkoFrGzUkqKhbFqdJyMkDDTLUerJksOL_jrGIPWS0Xc9sovHDCYQ3moAz8W0BEw-dEHJSHl88oR_-ROeKZN-R5TDrTeSxodZK_xuibB6p-hJ9tL6zHIdCydJXL9bIOT5Y3VN_KnoANJ_w5Jxbf43n1M-r9Vpu0mCp7UrDlFP9gro_K-TVOM0EyL1KnCfEQf0KaNzbsFZO6qWaP8b6So9pGHMhyFBR5Ri66ciKWYbrqRMWiRLolT4VUgj1AorG5zxGGrCi9hI4qdR5nwju2cXB9FOq385vZxpjWzyCrDEZVQjmXXIj_jIcdmk5ItfaKARZ39O26P8SSq_HbsSDmAugygH2CDKp-hgxfdU5O_jqeUkNOWn7AiokTLXbeXG-sxSHGUJOxYGtYDUVbwWhqocpzT00-uQHppWQZxj8QTLMRUDnMN266HurMOGzMvFjJAziZj2FJb1rVj2SKNrX5aljf_vYWDzms3USlmMYhIoBviUcuCG--XZp_eWR_EL1W1W5wjqqwdiwsSP3LPnuOLWQeN72ZBkOxYW9ee7Lg08-6f9U9uxFa709x4L_pa0jRGY3SBL78ANMb2Clq1khHBOzDVAMk8aQIMLTxhIuJWzgPUIwOyEO6Mtd3STjPNfgsOZZPtOMaDJUq_yhJxfjXsKOXQullzNHD0KXU4WSyvV95ha44GNk4NPVkEZvj4mMjWWGVVeuowu23y4xoxdqIW2KATtSl-WCg0OPXxbPuON94Rr1-Unojzyc3I8tCtY1PRboNnHbBpGyAt-aWGPK5gTx3LJEXTyW9ykqdQ0v7QPik6MCOxsMSDFiE-_TlaYgHD7ffTUg4OmhrYff9UevO1svFleMPz2CUX2X-m-sKAbFmNQ5a9KHVcTji-cqX1HbXG6vhENcxX2CNDts2rXuUcDLGQlAbd9BcO1tzErb67iEjxXIBquusICXH7OOHEpunKbyEJ4Lpx2SMyGKQX-Up8vVByTMC-BM48ocMwsgdl2oVzc001KaJ4KH-mpWQ5hYrOKYZwhnImGCIs0x7-WKYOlpJCSJJj_InryfL1IfTGE-dHJ3N_2DrQTg-29jO1hVBCRJaJYPMxcdMepz-Q8eYp5BOGrHyLmPqa09i9vgF7n1JZstnwpboib017Qe6naOj-V_XJXLFhZB71Y-E6NRX_LhZ_rgSsO0yuy9r18YVgKDdDiOrxgIwvgKu2v9z6obhwVwmQN7CNpCN5KbQDa3ncG9k17bK3zTUNK_BuOH2YLxVh18bHQ61QdfmvkLySyFG2nMli9_GVgDvuF_-xmC-0dOPyCXJSSea7OlB3gSkt8cTpu6mzQ1Kr8qr3kGb2KAz9PPZc8oNCjgjhofuzQEdXY9WkjPyIsnGS0UNuaRUSnKWmAyk3-OqfNPH6qa-Q6L-K10rS5t-qwjyzeB2HlaEbzl8gDpD7m3HFFh5GGfl_z46U4ern26EvAO1CRiRDqKwtIxhqZc2Uv5gzZXTED53b8Bj3m_iZzHFj8XleMvh2wlAbttKP5tgKTt_Sg5BcvdORWJLBBzRg0KFiiC0rd0Ry92vzAdPejy9WKz_Njxr9xgpt69tnfJMnp1Mvy-LwxBh-K1yICnaoc9upsqabyZlW5LJA0aqpNXQNP9_LvjcuXDIo3ZNOP10uqF77Vvwvix0v4HdowSuKG2BxN6ZVUNfzMe3j8wSyLexDfPK8y2mOA0jJIWTpx_1eNQT5VJgyhp60cn-RA6u7_CTT8IHi8fK0Ma0fxFloL9GhYfYguD6E3UAStn1yjqj0eQRSDkIaEphsDg9dGi_phciFiG5ELKhg-QmMD68PmBXVRH5XHYa39Q47sbmCwRnNMSMxGAm9NjX_x1-5Ei9BVaUGASWDkNBJLcxc8zFEhj5eVUwAjh8uLitgJpyqx9aS2SkaWpzfZAZFATAtLH95ELpBflZp2idPfpAqm2DAU4RdnFPynOxCR5Rq40obgRL_uhb9of2qvlIFl6kwV5EC2lf-qcvPCxdEypQMc2xGB29rh_CyJYCjNjc9fTqxx5qb_GRZNmNsc8DE2PPWH_MdQaW-iSVfhWdIO738WKzLfLol5s1sP4rqMsm4UrYiLbFF_rknrAEmjjXweCgmwUCfiLEu7bVIFsecnTG_JTHipUvtiHfdw_RCYn9z1FNAdEeWym3S9MWDaq28BwQApEN0-a7K5Bz7S2HtA-4kade4ZNT5MKit3uQoSB6REjSPyDOKxN97bSsEOSISBeAYtsyToag_oqA_WIg-2H_LpasBHsHQ0RkuPwHwVsP1qC-W9V2YnKlBEGIBWwlttzpeS9V3BFao2qyKj8JKiFsr5WzTIyIwXTX6j4tDHyh5WkoBLakxewXzTM9Uk2oatzT1GfqMCnSB1jz29Ya6qEhuRTvGGZNFMUaKxcoQzob1YCRvVaxLZN9OjyezKppWzt3i8EK60ljpDybuH67QQgprLv1rWfk47ghTgEJMxYMobfatKgnCFJHkjh60LX3ZS4dl1v6HqlEMvCt1F7VQ68x1dGSQwLQNterskKr_3F9At3ocFDb8pxyqNqRg8UA0qH5BR1_wySkKdMyIUczhI4BuYzHb2rI00Hc5dJQT6QxgAh7yafZYcaBKMDTlShvOsaiRh6UK020WsFWee4M7wIVzCaeco_Qu2Jlhkm89LAg6VE2ffxfOyhYuDISzww_12Mc7akwiHmBq7WUEAJD0BY2SP9T7YtO-nJ6mFUNJpIsAyWb0FHXJ-oki58GbuKiY39GFWW8-IZSqtN3zeyRakfgOPaKyOO39I6nLRdd81wUu6A2hjpnfiouuVQE1DChtZMi8LacU_wIS-YmtPUUnioQq8G9756WCQDx3jivb2hcqDdf_JJyjDUsZPwO_KgC9bpH2htL24DkWSBySnRvj9S2A3_X4P3Don5Q12O6JogTHvLexP_0OAIrIUbaao97Y6UcdjEr6cx6H62IQAfLV0ZSmeM0k4E6SjwwTyDm8h7FkhOYInXwwAOjh4HZngoN7RrCJ_a5lZLbB0k7r0eU84N9OpHKGka1fwDgCDzp5kcpL6UdWWX69WwsUjqYhap7tUIShOc-hmuYg2h3QswTth3f9VwoRpChIqBubfoPDR3Y5d3ml2I-Eu9kTOflH5absM3IAfzO3acUC-H1Rakvy_sL9XrE3do1I9paYtYi5bgs4_Oty19k-4vIC25G20nkcchpsILFUUhB-pgq2_3ZNecFXa6gzd1KVzWYg4fe5M1ZxDkH3gLfCBX5wmUmmI7h2tPiii3juZ6lsuydnCfvAj2AeMpT5dkMhJFGoX0OiIjbevR357nFLpI1tsY03PWV-ziMf8QZ9V_Cfs03JnFVaNiMoFLs60eXJyzpA6IDjcA9GN_rtJPRg71_XX7Zo7V8FdiJ-JaI8hxkclA7bI_HOKdyulPmXHhE6NRaLyIrOQPOrFZf_DhKa1Nmv__3rY-Yk2L149LFeqgaMTBoeuT9WSv3NARLI_hvFHjE9x7Tvj6SX7uqN5NbD6SkHrDYMekiTZtzhxyGsm8NMLdIaVOuRd8J4F_U95W4f6QWtcGIJHmmMDY5dw0spMdwy8gxVq6ZjXQfRN5E-bywLh2L7j9zXz3IggcJwWciGIUfUTwqdQqhFewpSuYrWxcr2DmCEZhg7LjaaXXvkD13Tr3stY-UfykjQ6uf3F9rb_5_MUB59FiRVkV9KMQu92nx64Yczd4tgXvRk2SaG7Y98CLHNPWN2ADXWvluqGBtekFxXHja1sqnKfbir6f3ocCFNBiIwuPNL50_vGScPvuDZgoSJeD8bBD5cUEWvsBEyvTaqk5Mr0VGzLkxWbQiRS9fM0uM7Dxj9pnWSwlFRB5T0arUVEtvhzR2MucU4AbMkczSnTcXKJLSTY5eUNNv_g_sZsit6BKLpx7qiZoVRRwcuHjSwWM6ZmiuH0F0ixUxsECRM4GfaGgy6VzHAJicvLl8VkXtvpnWXoEPrE4bwWg9NIuuw4125bKwCpaou6VeNK3n3bWScMvJXPXwuRAnNCodsvE8wYyFObsCryd4MkmY62swXInEEWe0DUx5jq4riZfF0jlsw6o2WCbiCTsicrSXlsvxjEeWbp8RDPqg6S5F4O68EPM3FCvL81Sa00oZrANPqBpSgEP5UOv0M5iM3rtmr7OcS_Y4wFMPRBQNf38U_yDmejE4m-I4RAWZIkPaUCx9MmZlrFYA81zEzOHWPDs3xqA3xpFjBVC23yr6V_-wBixi_ubqd3MWUnn7rxSJV5tI_U9QNnzkdsQoFfnmR-dMQi8HlBwLW1FM6ElxNim903tDuUya8th6YpCVuCbDoJBiyrrw0-tVxmVd9xHG81eerF-hd9-nKy7EHcGVClizAC9LyEODyNHgn6Un6_3iJ2OUe8p7fByx7Z4Z9rCCXBw7oIeGfQMqR8sLHNONlhIdLnfTnHrM0uuMgEel3gJUHQhMF3U1Ip56Cxe1TJHR8KJVfjTdhYu-q-9enCBvByCk-HEAIlbpTqUzoWnBAmy5_JiPguPNQfbu9DWrOJpd4EKYrlaIlDlyBScD0IfZdZIpSrY-14SlvX-Y3k8MhmSp1_Uhtf6dVPW6YiwuBt6f-ldEgOyKF_WiJoQrVbrrr17orrvFTwgNhuc6Q0NmXwWhG8XcqrTMmyQ130t6oLs4Kkv_9BBSBM6fHXZ0zamfXXfC4cF3katA6RrL50hcIqxz3rRdW0eiOV2baIm2Qp0XA7kYDI4LK3A3g_pDadj-MYZLRY5awI7rLHEcdqf0BZoERYm0XF5GAEKV1_X49s_F0GuQJV8F5-9Wh0Sca_Gyfd1wTTq95B30f4NbsS07kZ-rZVxA7N8-gkDjCrtlEy_vndrmTZg35x8IToBvxMEr3AaMH-Qv15_mECCAhfOZ3ttt3PYjSpt4sTyKw-6EdNEOEXuzTpAMJi_Fi0l78KK1m6Ndhw0xRHsMQ1h5WfV5KAvyuyoJ9T4Wwjpq5PdNL97quM2Df7qtKMMqfrCxEYhdthOSMBLXZxBWnlW4R4xdWhHzWfYe_1ISzgw_ebO6WBRGOiz4qHKtYkhb5spIzLwTkvDPQinm_DXZm88hSCiCSzLPNcudQTaGaDcIxEL_Ow5TxCeiXgMWyuh8lf2_eWQFZxrYwT2hENAXC-pnX5tEwWZTAuqHdDLwxYRufX8Zc-EDjl9kYEBjSeNlJFLFSCleYrsMTTLNyX7N9UI8kNb4pQuYbL7vv57xOwYb2Zdbq_CN0_L3sIeKPARx8dmjRKyiiBcrewuxmn1bwKtjDcqf8_EekXqTRwdC4es8-z5n92zsjZkVIHRdt6-zKKUWzmnZhWSaiRrmgRxTZEWt8RUxobklQeSE8CbCNA3dg5apJRtW4ej2RyvQhm4bPIC7VhdSM9Z-P3KWctQvqZ3HtwV5ZLbUAepeAXp4A8RCYioPNE0AS968qb1hJ8EIFma7-6A6qDMwF495izC05_R9k1SKH-u_1XemDzljKHTgezNbKZ5qZWaiLko3qwJUdUcqwQ4z7PprLDy1hEnmvPHV9rJwSKBHLLt8Fg6dGWvbPJfes4q4bdlQFQcyhDqbkza8QmjfSOBqcSF5JXpp6IE2dtmU-G-r-y6Zht-PXfBRZyXC3yEoY1kcFXCAixL0Pi5ysI8tpcS27WiP6yfFhjrwfg51EEsbx61dAVQcxICFWxuFmzquvVZSF8VD9TcuqcT3CtJbHre1q-2ggVMwjxrGDrHRlZvtKsQI34Jc9lRVJytGaymlBLj3EbVKTFMX70t-AmvhVaVfHjjcXjsLEHiac922HMXSLhsqdKLf4vQO4b8UmzcJmMERop94FBpdMMwe7gfHpoo7gyXUzx9Vio3l_I3O6vqv_Hs3ZaJulkymLO0WPdl8-GUFrCbeFT-KZTZeAkirQjwxE5AX80iYUn_4uzF4iojSygccDCodHPSS-UfPC2nRjqSrjgfOO7lKhZIcsMX5QjQj3xlpXsMqK7iFT8iAgnJtOiFlWMTa4QrUNG4MYavFpprReVeYsCwDLydT1MOeBkTbvO0rbvPA734qON9E6sBrQNDE8Ic8_tgoBaA9vYqQLv7mwi16a5TzUT9tKnkD_CCrC6Np-fqBPLjK2slIn_WdjNFx5OcKgqh-A072Q2WG5unECVHWIf01ZapIoKibeEBBbrTrV2oM4-hCowqOQmJ4px8fQn6-_eJgv3N0Vanh-wcndfuGfoMymz_8YSkj0SypbKbCiE-tgzGVYEse29jkD1Ki6MEbS1yN3hD5dmuUJYgFpeSIBZ7WA-wNnadmXCKgOqm2P4XD_pdzA6EE_z55Ny2gisYG9OE5LQmAYcOBn8m6jkEzIEV9B042YCpjPHfDpMbt9pQJr-wohxs__GVL_PaQAD0T7EFirAG03oxvrarwDd3B4SzwvaQpfSMtlXmsCpTpu7iGKwmbKE3IfDyQWFVSLmRnguyPyYiX6NDjg-qxJhXbofmzcTCS-auBxZ0gxuWPPc96YM-wYtg_AFUwsCsHfGOXSZuXc2WICQ2TsAKO3h3Rh_LRvT_inQkZjRA3giff0lQ-3LbieUOqkvsl_vVdlhUQNkY4Rpt-GQybgrosCgNR4er-xvX3wtOs66x6ypxDrc5jmx0eBspd6rSLUp_WdWWEwpnFqeVQ5qEMVgSASu1bSfQalRAj8l80XB3GXOoI9NBXUybexnzQ8V2Tispt_fYcn-lM7kkl_tq5PsrccPASB7oJui_p6HXoZ00KB-wtdlPfoNbOukZYoUCb18mR4nDp8aHYW3Jin989ZD9scpogMkWWsfCecZBeKEkt5CEshGmYzgflycbOC6g992nCEjlz-HRrC_XK1gbQ3MU_XickPdtmI6eaXqcJc6X8jWoJRboiMxExdwDuDlcjTF5cQy8TZ3-3HxqgGpSCd3elasnFYymvq57J_hF351AKrayflMEzoWntRRyQ5kTl6Mk4mUwlJM_peFisFb1q5SFYFd5Nm7EipVObkSfEHZJVdqZ5wSfherbm8lFTjVW_mPaexNHIyb9jUolk7BdimrPCmXzTzWc4GVX2VNSAaGks9SKi2DTPAIBGcuqs1i5uvzROrlWi6pSxxk_HBlAbKOz17cX4y2w3puLfTFV0B9NkOiC165sia4Mf0sdAo71lzgJhIpt5VgdwF6mHDFC-ex1IelcxV_agQoqxQ0iNgi_51QDBUsNNjyYB7VIX_WEwoNFfrdM6ImuGMimIMtWiL63glDbtOiAxZZ36QZltjp4bguzaXSbEX9crxsqE2PbY-YekI3_6aqbp0bqjh3hYVXW5gc1B7gtQqU_y96IBhDCYc-KfuXN-A8ovzIWHRWQXdENZ8QSJX4vWGFSG3ywIu9q4I4JPgMnVrdnQSgjooc7T0bdZ2_AXHlKX1RnY-FR-3Jtv5OtHQvnxJupIiBkBeq0vsyVyV6U2orczf6-zuy68ySbl1V9t8qi5fYkYhdAI09vsGegivSRSl6fjd6usG3hEdmw7faISkR_GL9TP9yY2tASjerLtnuERIOc4hJJP9M3KXn-H2U4lUtWseXeMuxWwZOOqopjA9QH_CBoLEqY_AjqC3gzskESbTwobOtephYwSSCkfraUc501B9dlCqO2QecWDtI4OlhqH-ZIVmvq5X8nmWh3gZhpbfSJkUDK3GJED1B0XRK_3afL2VEfWXHrgceqNwMq0fELR7YyM98G0M6V36J_KHkh8eRQei2qD2uet4IBz4TVhSxGTllPMm0SlOu2Yd61To507mgEwWyT87FQFUj3-fPrwSD_AqUrd-4qGUGaIaj2DfsC5Jw3dwBxEv0SyaFeRTTIGM5PkBb0PyrxOUijkzobMMXOyXQVmu1gYY6ymwsRGYewBMpqI_a0YlQnh9XD8eMexpQMk8OaCFY995fOykKl1WyIWKWbLQz9qXoktTjGL6a4_NfgXSe4HgQJxfEvRtBJHdjVieuKkN6cXRXvalqUvwu2ExEurEFA1c51VYfKK47eJR3XmeGrunKP0nf8xFmMOhH3fEuNawztNzkz3belG8e77f95vuykQomyk94t5zWfjVF4HCsRO9J3H54fysNlqJ9qPzqOZpB8wlGu218KcjusnbQ89wBR9Y1G_sh_6IoInSFh363XeXIknX2sF_pGifn_Gzhs4V-8JjKiwRUxVPhPkDhgBZxRUDp8rzB7drwhvjpdBWUtqM5S7-XfQ9cG2DQndjjS42CndTeTlyX82vjDsvlpZuQGIe5tcg2zAgXfQKV71tjuAfaQXdQXHbMbZ7l4DdJ9iA5V-UITJKLTLYifHi61GH7yhtieuHO9OQMeyBrCqbMdLZsEZH-riwRYIuMQEEsSiLjCXOXpwrWkReC-HCE5IaxwOyjnRJ5q2FU-1HBtIKxfPHqDmNkGUC6W6SJR44_KJLmRFR3pwBtNhTrLwTgN5yFIulcjFb8VV9zGKS5YDjUWW43zkgzc8_TUr4tCKpoWfCd1JUgwFTfFl9AqOe1EGxuSCx6_TYEy2SiKcrU02mrVHh-VBWIOFhR3bdLIP8dRQX52-_C6TuwKDmD_gbn2BKtL7bVA2Eb_NTw9RoxeeJsKj4hTVIQP1IKDPRZiqD60rp9o3Lg3UTZXQnyAGDjK7SgdDqX66N1GqOfY9xgOZLYFQSDHi9cGke7Y2knA57lMz__UZXDAdHkHm_IQJnzVBOac9UqpN5foH87YmeU-UDrX90Yr9p0fRKG4khnfqpx7XtBHnSuO-P0dz1TIkDRyonL8uChU25LOxNx8FCL1BatExRMNvwtTlXNMwl-OY0PLbOcLhVVKSMmmGjTAjrC_addhpKo9_zNo247zeJ6vwFZbJseQiBHYKsJDl0l2ziM5XK2asB8UNQaFxuZ79bal-rjNq32hh1zrgbHReYTyzYiwuKQYE8Qw0_Tg261lA7m9J8trkd1ly7bIZ8PnFmtMqCnR_k0eT0PjEjrl2aFTitXf-sQE-KpvFAYqGgwpEkIA4SL5NY2h0ELBA5lP9U2Q95nr3hfiIohh93rKyXm00zcdD8k2i-_2bJ7GSHpNBU2UPlAZ6IgfcoBMHzYjlXtEBSYxp9F2H8tmbWM-B-OVn-EU1QZ3B3mguEPOdcVbHgJusrpML9YxEG-r3DuQwsxSjBSlWkcq__iRoL6NI_TN6zkwxZ6qcsI4WdRrlyhy2ItGfsoz9l7voFwNfGPIzAslzDvvY3KwUwickEFlEAZsZHqEJ7HYtIdZReXukytZL5r2aqFzlzNhzQNF4sbdfe6YFt0esh4a7tGvfYz3-YnmibwiaA_SDNMDDh1jybCcYdn5ekUvJX_QTebasFRCVQsFMLJTZ_Oi6iglCr3-bayBv_zlqF-k9oS-NO4op3HyM2XrtnMedwfD3p3wxlGUavnx_Mf_WUGfuz4zTmDJWFBVWgd92t7eQSHo8bqcUOlTcItkGruN9M1XqY93v8XtkWJy6bXjtK-wlsP_WJPg-15hJRh1cdVTJxbcKre0k7qvj9L-i1lbpRNVp5YdXSCHz-9-kVIEugxGyi1Makc8oh6mV3AAwwWNAJACKX0kkLXVRvsxDZdcXuTpZ9Jg4hj5ADzXSpIIMtqgNokZXX4DYcWSkqqt7N0UpnLq2qfN0LzZS_UeTWyuTjHgtcCfZiP_ss5zBkprDpKBy-CJXDXk5THdrHKncIwLxkBZr4liWwwTVhq5B30Yw3WV62c6IDek7dJ9cgLSn4YNBEcLUiVPM5NbuLC62v8-090A5Bzyt1nWLTOUAaTow9upHdDOI0MFmuTqnCZ0lJ1LD47hiIz3o8OT7L8W1gF_DSj6vwh8Sj_IEq1pcRdwcML7OqsA1FpgMFvNSwARvPkdkqBra53PkIheHoiXO4EX8lvD56VvfYF_uAllbbq8HOrqYXrm53F9lWSQG7jDTipCaGNpKbXSPs2Z7ZSf2PlaqhAP91uvyfIxSOSn4aFadXhyMvJoHIVdKbQ6s7Mm-lqbI3ah_-7nNcWZy1S2T333yeyG2gcoueQn-J80CHc8546LmImvFX7HLEwr9DP-3MOC0s7UVrWr3-EOdJfu3gkzd_DgeaI3PHTw54MYC_-mt3uSJXiAfoih1FV2yO3dMfJBwStYphLUmmYLxbyVqixhcmjXqDd4dVZN8afjZTBujJArsVhjrITNxUvkP4pdjTMXrvrFMgrMT9TyT-yZYnjpb54M9lEHlnqS1cRCxX584uKcXJfvOtcQpR908VsyjHBtzw-FvnAl6FDLBfZ2Q3kjzNENmdE65eBuBGuorQnsNFE31I4hkDnAgquQNzD3js_suE79bK_E5g-4YGA8hphZEcKW6yP5TPV-jbTTIsw2a8kQhoqtZVb6DHuQjg55tI9oUJ4NFXq-Wqc0rRr3vgr7r_6XXGx9TGUKl0yRdMEgNHP0SdA-s0X7RwXrWOwP-I0SOiZrqH088gyhggUT1vKX8XkyT2rbtJWWKvfHsU3y7q8RttRzFmP79kq98pYHagXqCEGCc3j_iOiStw62IVZd7DkGXFrlr55b4tJPNeYiO_GSbAaTZA9vulAaYg4nPQEo0DaguNaeNpcPYtJvJ9JwUfa__3wm4LQc0FJ_PZP8DRHYxOThb3fJAuWA1K2epTTGM76-cat8KQWXVZo-TMEc4IR5DdxdICgSOSHJcs9TEStiGLmYrngbYpyvixSqcxkMJoeDjK43gs8Pv30xR5QH82dp0yRIURIEquLmQpkcjonnozCYPLBxPyb2snGwQNVZihhYgzFAikEBOOUGLjfuGaAbhn2g6vZrheHDpYlslGjRAO5wB1pKD9djUwFWG-ZAOldzp4EIuiXMpOPuzODzlAFqs4PTaonmmEa9VTYwi7o4UaKXxY_Ygr5Nf1ot2NFmX8Vu9Om76tvii-YylLX5MbzRQ9jcRNDDutY74WcXEhVv8mgdh65m8socya67LHN4lur9vCruhFuMMkLJ02tTnxtfVE2a2dQ3jGOrAXqu6UuyHnyMs1hmYvjTnQu8zMUqZJ8lUaOqQADUd8UeD5JK_BWDEsRhIPSoCS7BATpFF-ihoaKboDJjsvu7gD0AVt3Tt0CUwQlT6506P2G7hLNSsY2IH6usx5aj0aNRJRaNudK-1_A7eiY7Ihh6DvUpet-Xp9xE8iebWEoHGcMT5H1oSDr-RDS2karElDcfzKRwCmTDpbvQfu9eNHv-lBzxI8Gy1ZEJIYZ7VhRYubttcIwkrw4DhPzqG6-nlfKnxiiIXGc8YW5rChLFl_W_qbg_sS0UZTwAEKytyzLfXseqa2LfbozmzF1qHFG1Ml-XPSICKS26bmH9kn2_JlR95rv7xANXPjtcaltE5jXo-OyP28xwjQFVBnD4Bj0g6L67tniN4AeY2eLlLE-rzNgM3786-1PyczVijP_bXn74vZB7F7SXTtxgX4LOF39vaCOkAhNYreBWun98wk9JuxsUA5AFrMcHSnLBRSlIvkbJfUwuoWjB-vlnzM9o0lkEW5N23AjQIeq9BqzBgp2WaSJbUsmrnB--Y9XeiqAo844NoS9QhdF0f_91GZaWnKpHA-VSSFH1mtDmi5VXIPQ9Ggo1UO1xXPxz4uafme-Je59QdvpuFxB_p11CoHQ6n8Y8L5vgCiFdbbqTj0nsZg1mg2SZv4kq9P26yi7sI3qq3YRxoFBiAYg3-qVs2tiAiryHZDDAkzd5xg_HdgjRgVpRGbFUG4w5P7uAAwA1CZgi_oIesnUsbTQQ9ByqSnjUzDoAyLGlZRyAtDver5YtRGysN1Q8d6wVRxAgA0vnDVkAAlS4KfwkZKm94klk0ULyBOFYOo2aUquZJ4fBm63Yp3aqsp7iaO5b9724N8s7Csg35Wqncdm1gv1_Wp1qHItAZP3rI2fzmhztrneMDDAlZsmhD_fuyzIe1Y5SuxiDG1LKHa21wiYzAHMRnjjx5k7QqfabBG2KBnqpOOOLVz3M82KpTUT2gCZPS6c4WWfTPMopdcZ5NMybow4B9paghB7iqRELcMP74fLeMsvRt9otiIbo5ti-JyN6sFv-S7vY5Pfvb9625WaiNf2-8g8olLRewWpPF4t_QS0wgOll4nZL8sXQgVGVUF4fl0UuBiENBPbxJFzJYqaKRRpvs3899Ib9KbLt2BXaj3mndRLkrLKYGwGPYsbL21dNbIqei7p1IM0KKLE8JNl5w3rmVmbtf964ffHT7QdzPOSapxoUt3JoyR1ThdIkxJUtZQNTs7bMroSi3mA3gB7TmIMImJvnfMITA8ZKOZSxhrSdnQ43d7-wsk75Q6iQfiS-x-e14dkf8CARtg6LmWiVi5iFPfHO41_ru8LRKu9wdFbWL1Bu2NDsuszck2zWOJp_qqeuwBDpYsPHbOUxD0sNCK2uyI44uft_nmnI6qia_u-_154YymY-LBpHstvnWDjOk0Xf6ohb20hzPszwLNfVmLs7JCYabYNUP1kcakM-kGqI54sqozbOsaGkdViPx0v66lhiGsaTjQIZV3fuR_eyifWY6T4YtC37qINjprjP_G0LAkB9hpROQcTfnzC8Jy00dvm2Dv3KjZKweTCnz-L5izqSNCTHbVtQAjvgPpwQq_iIJykGCWnJEMmqGGIjgjHgqH4T4KzWg5nU4NHW0VA0okzWWWAhB7Q1IK1szTpf1b8C7pyGASkBgGEF_TFew-COiIHtt6YK4iW26uz43FNRyp9qOvZzI_imYAu2s49v3XE_NGDRgsvzRLI1ZYutxdRNus7smePfbNQ9nusfZ3odMVjL8ftUybEjUOWKBpHQcEdFik5MB9bZEdscvVvUM76Wc_YtOdG1ZtHavoOhFTorZHAAtmRkrCVkWJWO3vcg0Jfz65uyS8M4iEtKCzgMohW0aeSpS2ARmgdWySZshCkb94xos9HEgvy7vjFodYclLS7kd0Lzj41clXSU-ky02nHzuN32bYswqpLKDM92RXXC-jSgyYzZ1p80C_v7rLB-sWih7QpP6_dILxotgg1zUr25XcM9qS4HwUIM87nfJh3yX0mFMtKB9IZaUyoYjA8LHjeUrz4FJhfIhAQOIhQlA7e1d3APsNXDp7FEacbAAYhsNpJDpFrSHwEwFpOyQT8uTwGcIzBdR4ZHz-4A3kJVTB_1DgVRrLcpzfalHOXYVRitGsjX-Oi6VLXjUrt2aa7h676mfrNMmR2IZuDMApM4DGgv8A4y4lW7_TOKKnkX83W2bafCQ5y39TgSKcOIvT3i01V-oaLJAW7NLnDO2kenQr7gUILYmVxudE474i0bxN2MVjomrRJ8x0OfPU9f_L3uwie24eGi_d51198W6CbcNceZgiuc4-R7aKz9MHIiTyOniWycjvA3joBxBcCIBvrdewjwSDPwO3Ul2A3qc7vVJRrklPgnkC7JgteP3h6HGrhjrUFykmr4cRmu8BfcTGYUwZTt6LT037aHWYY4I8hj5uBiaKLxn6JvxeiIwNrBt-Z6EYtidLe04i4JhmttmZNvgX1nVpcv5o9_CWsXCcRhOLeDuUzzxPpJypPIIWBiTMNCFnZr4PLlfaPSQ_sXO5tqtAFNJM4pSqpMZTY7BZyAZpJGfjY0GP6ZNiG2gRpSIRF2wB-tK7cChWax6XdL1ifGxDUKXAoR_zY1yNKjFGkuZAHe1yfoicw2G6CD5vuug3ocaxIKOT381nBwullIzTvcDc_HY4TeG4ML07jNzw6bb7Az8T_q3PrSFg0SZIIz4f4DqnvIg8a8lxyYaDvmd_IlHdutKgYUXm78xCvPY2uWJDEwX19VCvwYg4CZVCq-kk76ik_YS3Hnmc-ImYuvRB5krW859_9uj8tN8m3V4EuxR2gav9q6dWGVG8cwEFDwYC4OpKzp-XapSuA9KfUrLEWGdZDNRLt1ZdwKrbm1Vb892TwXCUo0ISttXGkfiBQqjzpCK0SYA8k3sSchuhJZjzZB5U1aLGu9orf5DdSqsgp7j_YHPlFF1kPOa1dLQvNgNZAuzK66cKNogLv4bABE5lEuus47tDJFCIcNYeyjDlzyMEJlgxbRJgT6PSx_m7WJm1gtmiq-AfuClBHcPVbNi-irElI-eR-LK-nfewpqsHz6-LPLBsSBEjuN9uFawGqUc3xsx1dBz04uq6Kn6LfL2YWxKXQQKkZuOLfpCbxOIagmIVjEMEIb9A37b4zI4GnuU8FY84ESDxxAOueyLcnZ8Tjh4ihqEYgeUVE_1B8qRigxB7hAoo9wg40w7Ud5zeublskH1x_9aUFe4hXDOeRgOKvf5CBjrNzLUgYLrEeYqChtDwTI23NGqYm71jkV8ALCBO1X0XF8lBjGVqEBnXqDVy7BLjjeCgw0SPT5jozWBUufv_KySxrU-zTNdriLXMLQLTcMRRb1U1BxT9XMadhKtIA5-US5ASco97911pmWgaKy8fbfFnDD7FASbBnE5ktRNXdpPOsDWNh9pGZ3Lcw5EGzNxBcLRXCt-EHwn2qqkoIFR84I7IzgTcNMXTWvXq3rRerCyw5H8zqfwn8hwB_-JDh3IgBmA_oBdqd8MOVjgl0l3tnQkLq0pfUs8OkkupCuBRaclQpeG4KOX6o_fOjxdzGqyQkmEEVqjRSnZadx8zsAjg3hnFmXcPLOIxwTmX1cYZ7ik6oRwlox3epBHqnCofmK6-szW-vnQxdjycyHM7J4qeD67qji_psrZ-0f3kmIDmaojnvZaT-Pfx8bcgo_PnX2qEUJnk8skCpevhAHdxNUNXuZzZ5fds-3r3yspTWIpTF9nbTpPuiJRfZyYi8lY1a05VGyN8x3wX3hvPGSV93QhXpRpjzogoeMoGsRw57Ew8cwjph3e1tb0wJHy2tln8518qveWc94gqmskfKjoSwCyx0a-5zQy0ETXuxrIdeK9Ds_mWR24dwMH8DXMguuqhUTI24G_0dAoRVo_jS421Q6C_kCY4cE6p-guygRbPJHZKi-0dVz6QYkewNWQ-hdtNcDlN6A3ZW8eHmVBmBA6XEX5ByXxGbpA6hbtAeUkX6_6gR1lsrG5Jr89JQHVFvCS2NTbQtMhjPM1vFoelK6T92mgO0uGewNoHk75UQoDo8CRBQGvZlzlBvFK219OnWkKEdSWojLlyEjzrU8RkJdOGQQ-rdPvY8SYiCTGTDgHtsE2ePIlEjwDUvu3cOIfxzHTPLNpDOAIymSp_mkBwB3vQiLcgBgzfQZDceYL8puZguJ20Cx4rHG1mXkfH12QDGUvor3VLl8lcYqWxk7nM-TrCMYw2o2aXxQxBHWp8idtzYlKV0C05B9s2bnwsfd888m5uj_36qCtPMUjrGVKXGUzfUwOynSk-bXpoXf6dGOGy3n4l3Nxef9nWZYCEtUFSgtEZP4giS8xoo-N9RdHpaXIM9Mvi2sMeUyRLIkeRv-YuNxtTwdAWP5IZXZyTFHgga_lmp5DKef_FkRj9zad6A158GeVvK1H_yq3d_hUEKqrlzA1l0RzxdHk2T7LJsfxabgtOmdexKK3zu5ZiY1r8CGUEPvXDAL89CQW4fQ0rlAOrWjN_HPNS-keJ6tyUjOhs4YKEFXEAJYNOvyOM9frGH54HW3CjBLw2bK7-rP-C7zsylOnc8b8ZRDzOEFz-dSNwlONMBbRJ4rmAnJecoKjGU48Lxxpy7T3hMLVu-NO0ZCFJWQby4MsMSOiCYOz199vGwJkIUX8y0Xde0zIBteuLwY3jQiuzjoVc617fGGKyvzXhpmL-rIAq0I6MRLsGU3ooSTILNhRdvzj1d0XPhqFFevTI3Dtb3gNdLD3ZkmJAmMj6CKyRcVigzqkkRTwSAwexlI0wEvysPWklo7Dd9ZpjvS7LbSDdKDwo3AZJUBC8b1DxtYXFREoauFm6jWPJeTVHNeht_2wAtL6ZglEAzAEBXktWopIF_R3pLuRWrVhV9RMFSEEEDVNkFj0xTTdPXqar8EcjKBsHhCnDQEdnxLjHNddlZ0bcrZDDoGt5DXWNaW4Cne4RkEIo0c-11UTv4bYWAiO8n7cxmtkT9GECYjf0CfyBF-Z-aFRcjAdOA1nWMvdQrAaTVpMYs1xcmWD_GbfhHCL6dF5E5CZSZJFcGiVbNbJaoGUALOIONixOOFdDAumPOSS0pb2EjwRCOvoDx1eSP2TZthOj1G9PO1GKVHobSpb7fD2Sbk6ntUYAGOL8JcPAayJC4YAzFsDlEkWieQBTGEjMoskbVujKYGlFxYzLcQvH78kZ6BEtsP7Tp-7j3r-V-Qka077-RqIDs2SQXUMwtFmrrwD8LPAiFZ2UcGcK0LQzwY7Waug7bdR22eR0CXUsEOGi8fL0KMXD6VnEK5ABfQ_1Iu2dMPmoWlIrQn_bB0bk4XR8IN7s9mEYkAzq7TvLHzi7w0J05e9PKoZpT0f6dwOjIHJNfOqlKJyTvjjouAahOphFn5-jjEr4eSA4aOs11lOh1pj2x9AuilMt42Bo5vq3rm-8k42kZgxZEG1IxGZ90FW-tdKnkOwD5ttIfyWrgEpw5ymq6fb_iuR_LlPoUKe7P_zvGAevkoTc7qMqzrQKw91tdY6VlEaWuuSXQBJXbaT80ajskSTb2dACv2oDrEpvA8TgXSRI5pxSMBYrHGVEOFFGfSwcgMR-NcX4EPJ5iVuiLPf7Iq3Nru-Kph4B9qafj-lHlMaqeHeE6Pa6DLOse3CIrad2jEqjnCwBQ5H1HHsT9nop9JLkVKrO472E7mxsNNge2umTVGaLSiPTmnyt6Pa1hm_Giuw65HFMO3X-PFpUD9kR5TtPkd4pRwXkQ5vLc7MnK4xx1uK-E1B_wGa-1-27WnH0Bh3ARIZ7OxC95xVP3ReoooeouKPY1e1iDUQXeO_mU56WPbm8zumjaT5DzI5XUIbyrECTrUkhN7pmmFUiuhvKO4M1hPvR42RVJmK5R1QyLJxw3KBbSQN9EoC8H3-TrJYYPn_lJQ_jRbJpjOH721cWm5AQu9m84h4bf0fkKiB4YE4FHfaP9s4A9GIImARynW4kF0CS9l8CCHmcxhX358Upkd5m_2USVJuw2cIc1DhwxfRQTgtJ94UVvbpCWRZUnPbz4gcQ1j7gzaoNGYJ0KaXRmlhzF6dW8m-PvvDZVcmYR6Or0nVBOUx9EWSjKf9L42MHcwk6L8L4E8xdG2u_9MUM1YVlaT1G1UeDWd2ey2S5dzDWqwHATETB4RVNJokrtJL-Cc2noMZO0Cj4z4UzlOmhiLY4YiyUu7BBhGYfxGUuNAm4W3UR_TtiFvr8Urm-YPHpOMtsiVKKSHvLe_JF6wdFSdRl3EoRpA8M6OFUeAUh3snQB4NxaHtJZ_s6eaK3BwYa392FN4WbtwElf6rY4bSp9xTA3OHkWvOKC8PHuaCrnBvzQpFm-RshUlfYAEV1CRpzuXLgZAzEzERo3a57SPYI0YHeMxwNJoqtVZzdfXkR8SP6ZAcqsWd3hVJfe48dkow266UysuJhw4WKKjUEDHfB89SvNxZIprFO7Ja7UJR4F6OSiK3jC3eABoLfkYfmp8GjVGL2kJzJpHxzN7scNGNtdzGUydfKdXEKUlxhcNgc-3HbGlEQdJkHX1uwGZZcvD7YM_5hlHBfUD0N41W2TYaCQx2mZkwf-pKMZ9jJ5hRuw7Y9FmxmfEsDDFlLG_Z6hO1ZuxJdADrX9gtXkZ0_C4CntPIJLmwUXsua7lDTr9CZfwkE4VLlnkJB8LzDmfurlRg7-K9V-pDoDZkx3-Ljj0JIgAP2LlWEe4lVqFRHQ8jgkY9NTbxFfFP2HJGA0sxAE8cD9Zkwv0Acl-z_5gmp4VYWUc4x8vQ_H_v1OuS_JMu7SEf5bKxFXFy-Z6lXVLHWONMeKfgTu33lw5M_PTWJ2YQPHzhj3wBuiaJY9TBg61HG-PVUtha5IJU-RUjtpufLHhMOQ0haYq_TSVWG0a0L4Om5RGvMC1LSaOio8w5GnamUgxDqBqPvDXHiNo_C5hb1jnaGy6q6JHTrmAJXjSjRbaiEXHOZNhpn2M5ud5npNxBzDFVbYCI-P83WBVrRggorWH4J4Rl7fx5UXMCo69-gyaC70bxeMu0fOfScr6XLTSdQsFYCl668Sep-ejYo5S5E9Tdm-LH0j6XxiBYCFEWwb_ATf-aGKkbbHR-0pVAQhE3sGe6-sVe3Aa5wIXyx-yq6T05rAkhZ8usKqt342TfLfPbHPACcDWmR-f5gdGdxFlJioZxi35bPTOUpClOYfr0Xu-gBCBjLYB6iMuXhCH6ALTBoJS2Lotu5SBQljHX4dcYem4J1ISMOyDmP1Lj45BHeKWRiHs999hHxTl_U7IpTcvNhfuFfMsvhio8brLk4qGHFzk-FzagWiJwqMhDKPaQjV6uSfFCwliRnoGlFC--xjFSJP4Jzurm_nULLVJKdWXZQVEcOz0QTZ8c8H8it722Jr-1e1F0Sz8C8LcZDUt0rzlalcbgUUzq3YKMdlyTXrv2Z0Xly9Mpa4HhW6V7O1mFWq9p5C3YzW-6IFoSX2Igmygg54lQQKwai3S6pGf8RdLYw8-fqbFbaYCWemI9AOJ2FkhpqT-UA8eFdddCytfNf5p4M4CC8Vf9So-AcamP0fJtz16vfHmHNfaAvCtW_7OS3Ln2thgyPejqxl3fBREfR7zA9Dji47r-d7NQm806wVLh8t5Nd3WnKNHVFztn7h_B9NWdjFrc0JSsj00N3E1aAs8NHg-DOv_jXyEr116126eqFId9LCYY0C9KaZAyUwnqU-0u1VrOozlDmNZDGMm388TH07kZxKj9VEoIuiwO_fEiCYhSHOs26AjYkxngLCTCgJ3WWeHwdrocKDcFkr8NWE-Lv21QvCD9oL6yc78pc71GFV4xHuGmqbgy-AgwIMBhqR6ZCtySwJBPEOc8Q-8FAW0k2gDkrsFe6FJIpj3Uirfob7e0CSmQUDUElsgc2Q5TdTqITijRJWuJnWq1_2ChYcQNAw6PjlIn6utL_qfImbGTxpxTG0RcG63I-a7My9wvjLZUf9023l5VrLOXJcImgI8AQHNx47ODRXWwCLVTSrhH55lXVF-t9AtGyVWkaZZm31U0IAVY76_3oiu7FoZHphqvhWarFwCu2eBO1vu8RZBy2iHZVi0JKd6rbCRbnNxDJyBBNDUub3KymU54h3OWJBt84KNjrUTFl6ctTF6E1v5SuX4BubUtSqf2DywtzPTAMZJsa9d_htd4R9rDQuEFTgel7PReOWm_E2hKNsJ3sksIDI1QC6lRrQQoVOV_HnP5HmwdibVk9ONdfJdo1Igehx103dBW2cg-xWNFQDP_YoNWEzR_FF1Toa7c6nRTYyX-kHv1nGQb1J2DVBGQGP2ALrXqhk17U9W3LhG3Do0Hir9m958CA0A8Eaq0lttEIxHOIimxo_z5fMIIekQhY09VxvBh2bYaFgiylFV-YkNPrMZFlK8sTxTBKbtT__47UPa6XUwjxUoenarbrZVlRsbcqYSn0gOSXd1TdR2epkpt04IrNJSDecDaBp-SxDmSPCZRah5CuSZG2kTSnnuXYTYmQB3OgLMl9b5iJnSDw5jMrBoNBou9ocX_COc1Gq5JqwzWn5HHzIunoo1B4iG9OQnqfBtaoOQN06vf0AgiEt0nH0yS5xieTG926tMEoRmdJXewyQDiTftwpzejBRyaIMVlK2bM_EQfj8kV068Yw4RCNYEPZND-vyfK7Z8vGcHY3hVRdmiHqQ7JPItqWE_jg9VausCNWckzKUsoyuQMvWlHndHeFjSo0KxigrjbyLI3mF_T_ELNdFNA4aSY5jvxHcF9PW_rrC_EUE-2G0Ububt51F7kx6lKF5EMWo2zNJPS-K2w7Jrv5-tBoRI9uKzDxe3JpURq2xNhc2uOB9JHVGhqC8aaabLfNFRdWVQBq141ObXPXb1JMnZSBjtVwQ5o1kMR-kxq4v1jGd1gWbVv5X5cw27asFFAnpLT8SxuIB8GPMdP4pdyn628nj9PxtsncVEieWnjpQEZuamiEByoNon8F7FmxZ7lDHYiVCtsCf0X1VolE57v20VfvA3Xxh2Lkjx3fqlgANG5WPHMCYwC6htIkg9wH8asv2QnXDjt9534A99Q9gXTDAMs-r42kPg3EyGriy43KTQyOlnmOXIzNA3ytwt6rihS0yHLRaZkI_Lp5y5BF0iYz2zkk1LO3VnqTN-EQ86ueXtc0bupb_PrWW_MDGf_y5nzZeAc6MbGqVBsxeLei-i7eYFHWSfaAvW6x88g1kNCN5lXC7WDw16ASf8xdN_vsEA-BbyWhXpBKnYyLsBkSBaGfGySaUR71BLlP_RvcutUXAetWnEZxUVd-gRLiIyqL7gcZR0UY2AaNNtY9OuPWEtig__MXrR7LOUSVkf6d_lz9dMbiW91SLrvT0uKjgLqokkbmF9Clo1LYsbQj7kZ4v6wqr70WyqwnZ1-CsKK-TdnKokDWlhIAkc-jNwiuQZzDn0HIjt7jpTnX6c-incwFYBewxJ9nKeUqsL0L9Y5r4GHdJICFJm14XMFY-IfNqjN-UVStduQAtWTftLZmie2f0reU7APUDwaa8MeoP9lqhKKC2bpgusEWr4JkoykrWsgSRz25gkarGWWbCxbp4VI5t0RIfaFF_u8NAye7SUYTAHktNNeaSpVNhFczR4FK7M7S544K6ESpnw6evgAphiAxnzan1F-9v3_HFvi9ZkRui9quT7ZmrotA0_kCRCGCA8tLR4rzQIcDSHLqwrPuqUsvwT56NuJdjPZqhIvyl-5QKFz5IG1ZZsajbXj_rpp7Eyf_1Fx_DOXquxhBl8O-Zzwur__32yuBsz7yuD6005Y_9lC1QCq2qSkPCay52hTE_PIN5K3klZR-3cUyKAgwKW79AU-CMUNbSAjUcwIw7_Hy0V2fqHBZIaJvIVi2sQHlnFq0DynxHIthliYN7mG8TEO0YHO3WLm9ikpux4oXniTWbSeB4PQPwSNC7ui43TzewTudr4sfXgl2MgN3unf8g-kUO8QfKJxBQo1DdN7o3EjRQq9onC4pRURBJCon5WTTLObnZ0pwZsQyW86CLh1xsAtxPWvaG-Tbbt8t5EJD117WZtZcdqutZSTeu2iaxo-_WZdbzPW1eTX6a7_j2eEufYXvPuHYFiIsq9lXSUfBTf2KhA6mIS_RPd9qqJrfIEOxqXnJxpQA9xHS0mMP_OkGgRhXGxzHNiC0PwXFZWEzbczFFJVWhWOt_ybEEp2_atAm-slYurbwmm1AuNSmwrIb9zJ6ixheuKvlgzjWcvofk5GS1-q33Bouxsz3-3kv4L_Dj5Exy6SMidRLBl0vpC5lZYJMJE47b6jgMVwaeMeEu70nNImrwC1sROZKX-R7W2rVSuc4GnAuLwOI7yz_sZsIhaskQFEkbGybpwDWxmkWtql0AZZW9Qz0pnR5yatGRoiXoneN5Wg8jBMgUhRj1wMlPtL8MqywFxo43T2OagfJ5HNJ0YcbojW_crx33YDwZrWgtP4NbZ1QnYXLLGTOysf5FNplwg3ykYqi0_7GscA0qui_Pinj8ZP7D85JPFXAbBUJsG0c0yJVa7SiXkmukjL5tO9B3f8HTsY_fF-Sw7b9F9t9AY4-O7IwmhPWM8Sv4uPQwU1vDp24UkpS83avpFay2E441j19N_coM9bFjOpwIDswxEEwdXheO4-DT_ijjQZBIBRvpOxcqXNYKYsRsCuRWpUx2QF9Gq5CL5mQVcG8E0Gl72VCqB2_isP-LexQga22NvgUp9RiBfftr4wMqCh_uIaNZAq16YQFehzMHPuKWBnYnuLRLZ1A5XAbqRaSSw5GIPdnGGQ-UxksChzYDov74WTOgz9FJT1d46egwqUiAJHuCeVJR_WYSMLcQS_weGvhhD010HxhdP9F4-GkCSRqLWcpGmamgBfwjvFYHQ0d586Wo0ldGR8jK17LlnfKD5CpY6DZ8yIGyQ2t4D2X_PXQMzyUukUXkseyWlCBxQYqT81CgU26hITLsiheNSale9BPIf0S8J8J4ak9xWW2VodEtS_VZ0s8gJOiGqtfMcOfO_1oIasGAlqZOmo12iIikD6GljxX6zNBJfjYrtZ0EJHn6rpiEp3Q1ot2_cp1I1Rot3EI3K3JSU4yGen_PW0gbFRUb0snxskMGUJc77DpJJzH6HdaDI5DvVJPglSjU60ejWNioVVYTbh9VwbX4VL5zV13TuvqNAFXwSXqkizx_tALl3sXlBTFy6TMCX2DaLBM8rh6RV8BxSWqVxC3giYHGkPOCmWc9dbFiZ9vI9JPfb-499J7lGmB30p_8iO7j6IaZd6bWRADkJBDB5CaogXWZHS5oW1lgnsFEkc_PdflE3srYOqtqLGkc6ZIvAX8wm117--nqimqZbRxMd5AsixhWUXEBQq-zxYidps0gV1Y0mJ_UEkzY78B0-WL-ZqLh_vuErAViKt-Upx9ZRRxwzwTvLL0-XPOgD0xE-ZEZP5tNcfcja7YRos4xG5D0NdMhzntyjKa5DOExDkaZh5JFs3OfDBdgjRAO1dzDk_a5FgPmf33BTYHQXBA0wnhZA6jugqavQM9vACLcI1HO3IvQMAT_VO_qdOBAzZ97eNrxO6Vc7Ny5cYUK1XuGvDPZ0QtabvE7mIQ9muFdd2UMV4UJyrj2zanKlcmXTCrznpE_ug7fW3UPELLnHc9_Lvxm_T6t-9ai0FBUpwarLn41UUe3HUGml74MOfiQOcnOkJv93dMJxqROh6-pUILrlv_nU1937maWiMoI4k_wl_xyBvcLoUX6KWqUVyfxd6YkitxzvpTB0m2v-yzYFI1Ok35vOeAlQxL5HH7xIXpUXbF02EuerVMMV8CwacEPw1vcqIIXjbZd5tsBiLrvvGJXthBZD5sBE3uzFfyl635CAGANucrIcwLjj-1GCnFX_wTMWrkhcKAbm2AsccRSEkwqGmZKUYl7T4-tISz0RNTon1fi3ipzxb8nyjLsu1Upx0pGA8l83S7gN8oAsjmdQzm4ycOaRI8FdATpSz0VBOLn7l08O4GRJA6_h003YdeGYvjqZYqCeiCt5ubdcHb7P3HG4z_S03X6MmUeTHP7Ru4UIiiC1hpc3fC8kAvh9F3qVsU-WUHshC8_goXaPQcdFwmUscY1ZV9hkA0lPewkQn1WrMo3id7oR3oZyh18mt6XdsHtZbLTGjwfGTTLLLqhpbcMvzjRneXBqA1zT1b1Edmmc2GZaCsQBOamd26gKDcjhTYMpgRr3VGguUlgvwsTikbfkbRswAhnr9NbcueqaKoqQc25w8hL4Ph3by7GPCRjHwfBvMzWFyHBi0cpLCFAG4aUBEF3KSdSMdDxp7fB4nuxi8orPqz6u92CrsFuAkWGLJ6jU6lwO6rh5tmz4eE8_j66-jnrSzTajUt1L9RZJ4ucZzmt_sTeHHyKGSoDHB25HRsDi5o0C2eHnBprm3saYbekbhjelkRF5FXm_gwIBZgCKemKMrFAAPzWk89YsMJpB7s_rZDUCyTIB8WoozPxg73Jl7T-Co7z4jMch_ZfL_EusICa2rDLOHt7lxy_5QS7x0w9pS1CG9M4E3ttYOuHK9VU7K1ko8wXJjci8dghUoJVO6-CjBBL-YEUf8oKXOb6yh5ZWB6LNrd_pSE-z_0uwzr29KqGxbUAACRfLDpQxyhX9tfoUWnjTV91-t2SqUPyBLbDn1ZTTZFxjAzQpHyQ4CfVnceeXBCirE3kzn3qDONlwgMIAwvEC2UHUIWOrCY_oV0VqTcmiT3YHoNy5dfEBtLBx9X8MMwYC8JvFLuOAeSCFzCVTEi3ytE7oz33-X4Wk13qSSplHte6OyAEdE1o5jPxQpiUGeaLkvW9S4iCP5dNvuppe638CPjmjB7PYxZHUS-SbaGiGyTipvPYKLOZTjVy1mNW1_ToD1Vzd6sp99hzjEWvvUg-vIDfsKehZ8Mf9RjEzO5IDTR0cNavtoLRnKNahXvZxh_s0AeMtkg3-of9uLKVXwMAczBW8Uj_nRF7_lj4u8L6G5BekXbpa5Z4OTbrr35OBB-BeZG2ryruxdJM836oo_GY7xm9PqLbySueuPEOVFUuxFBaHmPwnEZCP6QeRavRF1Tw96G2WXESltpGeygEe_snxNDnIbvQFzRZjBwNFQKvGfCwWKE6fhzRDaW86sYBl1J0nRl8l9qmbWonAYI0j7CBQuBFEdR3qHbAnOXN4_RyyoglXS3O8MvViKHM7mDdsHCOQWzVpRDaJvMoS9B1-3b5YDVX_qsu3f-Aq1EbODZp6Nr3oaSQ_V1GZJwKAFxi39hXdTjZK-gxczLmHe0ypzinxrUap1NZih2qPyacvjWOURvQ5xq-Tuk2C00DO8w0zE5x9Bdjv0YnKXcS4X6GS1qHZrtGtD2WX0elgfwjn3dSbqC72tMhlG3eXztpf5vdR5RipGVi5RhSoq1KS4vCmtuzLE0q_ZjWH4wfMRRszCDaAwhsaUYDQcuK6nIHKXma16Ud-6pdaZ7zw2tWcpq9SYs6A-wBWVV-7sjKNnexKMz51Q1LtCF-63QUvM2eRCNPxp7UUk8n7aW3iTTJxmfqg897ixzjSPYILyHv5ywCv824V2lD_VEYRuZ_bD6Pek6eUv22UL2nFAjNoRAPB2O-KEqqAEFvksKxqpnDIBmMU4h7_frHMAsE0eYtbAXYR-bLqzQfYAKvYPKWnpuiUkKe24WfShlW8sxGSz7q33XEdDDwNgfd04go3cGoH1Ykg_bZSZKD1_I-K98pFVI7Mg8If-gajEQr9dWsy5dcZevSF4E_wbAH-uFjpPCuLSKwWWkG90kvdiJ_RpTNnKnqK5kERDIi6ZAoUf9YvMlfMqHTlmdu1MfjzBGu5zNtm_YJo-GaXyXLWSRxrQJ9xSnQiTnNTyJoJ5Zn3omZbmng1UAbLCuI609OasRAYOWLp6od6LH1-BoD9739SzYEEG9Y_UcA2-KOJp26CRJ5Xy-MkfzbCU6_9rcqi3MIxsiME5ye8PiQ-c1LTmPkielmQLU8VVIBmDPfku1fsS12bw1TkoDd8zrZFpuvkSfS2FxbWQbipuGQBCuL7azYIcrumPsZHW5HSSIvS0NsRnuTWWSMlkWVqx2f05S5bLKIIvhVGp75NoUjsjTbf_HvukrtRX_U6YNYNaeGJf-zY-rHAEdTZgX6wPss7z27ZnfxWzFpREWKNPtrxrdtzCcBibaPR6UCzstEfX-jinooHqUrCXgqH6oroxGDAWxc1Vmru0K5lwqbdNSiJFOGJN4LqabHSXM03ZjkEhBypqrLlqAEz69gHzRDe3CSpxO_szGalSn5rTmbtSelcVyN1WaaFjREjP5qruLSJdqfd1IiCIUpY0rHj_MbU38ITZGOhCEJD9iion5ILYIoclEPO2NunCCJDo7fyt51a8d5zxVLWbkBcqwfu4HerEX85I0gqEmt7QyLHaeohFIleYr86vkTHoP6spnlK8MHLoZC1LAI1zQCfGy26QATyNTAU7kwbTxh8V1NxjjADHXkffxhgrkJg3HXLcjBvOaB2cXg9seHTuwso1Rwba-GAoCtWqlKbZy-fTCHNjduh-Co8a2dV-t-ORqzpP5Kt5aYXb4KyItN39UmKslJF_yoDbOz5kfFs5Y7Qnwg39mEd4ZgsKTJPw_ijnijTpzYpWW5dqwuQ2Z0rCNXcszD9Vk3Fxq5MrIRzOY7lr9J3iuDv0mdB7uZcUvDAHyuGjczjwMnBayMI6mb-SHX1YX25wEti0Lvni53xeLPL5hkZPAZAByZyQJ_O6fAcyl0lzfQ3xTBiyLXx3ePQaHidixScVPv3eMRk7oZYqZYiGBG8sUDgwqijwzLBQ3aWyC75nWFF5MXI79SjMOASE-Ehh08p3WktffVJi3wcd4KCgFIE-fTWcHZuxtwsnrCWYbNrHlB6bZDdQWhbm4S_eeThXKHRPbJzsc92SkKc8iIrhVU1psdRLyh-LuU-6cvl5HB24vP4E6tFks2apDc35yrlnXMDOKS4J-_vwIZwe_zm0O3IKBymfJysD_HGsUT_3A8uho8m86zJcny4fdy7tabgpAywt49FvzMSt4wJq1lHOO3u9dhpXQemWFGvGjR_C6gYXfd0eYqzDHFQQ8u7D3INvAFYL2DJvVoUu4HF25zX_7O1MrlI-f3TjDzsFeMYyE8sg-l7QDui7sIDdf6pr_lF9KluAozZmzjV_LXAv0OpZTTBsCwHfUC5Zg3CfH28pi-U8z0N14Xyj5SrmxTPc_ACbmUMoZx8u0-SvVREwcbGNeqmT-ZudY_PyJj_4M70cmk2yUQX3LxiwyI5EwxXk0pHjuapDb7ReBhdaKkEZ8V_QB-4Bl4LJSc63KRfr8Mf26HQ4UUR-Y9MTgjDB5QpeOLZdS7rCaPQHJCTuq-ooklQNDoHhndZbzayDYJe7nxkeyhLbKqFBPUzLDDpZ7ac4xC3KcBDD6oFkSsUINEA0IFDBuHMnQG2yPIVSPGxdd0qEaDSdO7BElgggQ6UEmmUp6R_yFMhTZoPlnn3nUQtWRdjKYA0toTQucgh3qJToLAY78cDUV9uUFv9ETTqlof7KT_bMo0XnZ1fXkvhjWj5pwIIXMVp8c9UOprolEio9MAXYjr_3J3d_hY2GDNETP5qFgVUgrdgLMu1RLIOi_rmkem5DF-t3ThaLO8jbRM5fCHKWSewXeaTYq6-dCgJME-b_rIJx9PqMtS0CpRL0wep_SGQZYG14SOi5SuJwSc98Ihe5xV-1Hq4DvJwwDRGJxKPdgAlqmtrCzZz3yfZVywPDBFaV5p3lkJEUoSzQe1AnxCPdTHCA3Gh2s3zvsEYFdqDmpVpFN8TdQPMkP5uUrTOzgDoD0bxb6ZljQAUDjAg-nxGgdgWGdCTp1Pa9U9wPVTylh2cn2io4hkQ0OyMaZdDcILPpxMOlEkXlm3GMBqrobGSfhgNhkx6WSqsWybUQxo1d74y9lOEMigJJJwvPnRHjJa0mM5kBrG8qY4o8bYuky6PsvTbSg99OoD1Na3Aw5sB-xJy4KFFKwQkrV27pPaXrXG4K9WaZC95vr3kr3zGOfy68XD2swjarz8kiuoOGQiCehvx5d4hx37S_xpJ2XB18ZY5uDxwEhp7ohhycrvLgjjqRPk3_1v2HoLH_ZBVhENuJj5Bz8Of3Y10I_cX5jt3EKXO-keHTsv4IXsO1Yn-P1gM0KeegwKcJuKT-Sjty6aR77OdlJfJU7RDVsXXHkcTUnz_-Kt3aVsAM0JiiPMpwabi0eMxhR6Nx1yu0ssPBvIx5_AkZU0yQ-2Ro5W8WcXI8vpPIh6WddmDNTwF35Ddl7IyVuVnBLpSwy4IEvMdI7UXp_QxQPlb-iN7jjdtB2KwTUzvZAD2_NH0taObUt9-qZ-orHrXsvQC8Q-TXidhQG-pL8YRtLxFiOUzhNSMRMFKkeW7hTq5MEnWFzd4bCSS76w3GZBX0xaA6E0d8vqErl0A5nxMFYmscnEyX8FTPF04Y5szRm5J53GlOdkjZZ41Yu0Neb1FLXqTzjkiugT2HtkioalnFt2zQfaVajdtoGqIK0nDKqhO1uUu4dMrPfDYP8s0x3vYryW3BQclA-8CZBqxiIfUmJ01poStBTE_un9HfgFYeEQzUZCy3t5JsYIb95gDfEk1SOmoRB_xA8z6TKLNNJpExyTeLjEomweptXRMHzooNLgdGAEpEnJGNrKphKIoZPm6JxxFL2rlbLUyMo8GCTgNzfZP29zyda0hOLH9KF6ll2YKlNCNzd2sTGrV44ATC9PYnuCL5f8V4E-YMP224Mmv0bdWlgIzujE7Xgn9pG06oE7NqyOtJ6NJwLOJzr0Kd-A4q7VPWYSmgh39FwaJzJifj_uW-U7frtuLa_nxsnCrAjmZ-2zmW5FfjkHHUDANjESa_Uq4S4hZ7o2oQyB8SsU_K58mcG6LHz1qj5OZNQlI_WoP7g5pxjERmc2zbW-uDxjCWO3GlbaNhqm85Xsz75ZOa2pybGboArO_sJulPaoJVp8IMuIIYFyqvF6JkPc6rarzdrBeN1bsHa8IKEeBIQ5CkOTdan8OE46N_dCBdM8O2n1eynaKyXe6m4k3QOgsY6DUT1oPH94SHI1Qr9oo3TMGj8ScGFG40CWY78zcKM5pgOqn9iWqNbld1aDVu7mrlYHHOtFfulrv4utlu9MseVSu5Chq08kE0i6MS64BS7ha9a6zH8MmY6YxAih_e-X1C9QBngZoy84LnQWjbqBMfx7GgR-XgdYJEApdoYFGOEvTxPZfzQzW5sIJkwKdgFl_uRCc0ZzEv3iAhNwQhJgas0SNGyornH4yC8TwFpk_yulQyuR0EyPAN9ixCkdrnomhAtLFcZFx-zhz_vZP-KMpd67_qI-Sr9MGNaBWDkF3HDg56emNv2tTd_O4YMwSrYgUdjfsiaKlJCfuJk7DK81o8ZuvCEF8Eke831EYeYy6jVM9JnPwQDYhwKy7RyV0g3aW62QMEdLbp3iifZz8L5Hug62CAF3ODlEVMXBnFtEAjmpdtLBIZQR94JC9SxnjObUJAZWRJmMu0ADOdJEnJ5i1wr9Q1M_DKN8gdCRvj32qTdxyL5utV21cT0od0iSqW8AuflnrkAaZYMtZ6hKoHEZCTNTxONVOjWSPj4dzb5kKzLcJZrcJdby6LS5J-bhDNrOruRax8w4sJkzrsacIk87uYajx8I4AUGAzQS3Z0ktkU8odXHaO4wG5MauYbKaOWjzOcpGd89Vt7BmHEuyjLLMTuBR_JxHtDTonFGK-ZP0VG3hRBHq5tUSQbgSYONKc21iPWTyZHgH7zWr-6OxoT47QmSAKaD1UNrbiznV1jxte-wicgIGD7HCMkcY1eM1sZrjL4dKV_2sajsEIcCQMpj-bD_J5x8xGhynDyTPHdSrffSFanrXtqmHY8m-JQl3pCxqumWvjhFitvHvlnfoboh7XH01r191uTeFPPt97ydAfOOgfqY35-6AjPQAr5KXUetCgIyZuyNPtR-swwZaK_vualIjwDGF6KcSVTvAqQgYeOI4E-PJpOrKV_YmDyyt1Zkquu__92tb0MS6YWUBfYmgaYMZdrQDbGvTZxXUoUnRTATSN2RapJVIyaxDBO0KDxJEipjNiaSLYXrq6NTfZj69o0e0zwHcXAt2R89gwjqZQOe714EVlZFkEYnCFTd58S2VB3WqonHZySFSStlfNFMznODAna2mmTLrGOXMe5uJ4eqpLp-qcPYvxzovRpUbSl0h3A2V7JEwo1bPGArlVYbjpwi5lOFVWFuTMrQzJFKelKSGkS_zFdWMOXFa0VWDLCiuuyNmYRCBF6NABljpAxXZP4kB5WRI5zRVVAEonKh-HfpUXO4qmVbcIg4OvrrglPdOWlCEdNJtoGaZnAoRK88HmDxz0Nb8IHIDkNOFvnvzk64zMsIVwCAZEkTh5CPOzIDL0xNkRNofYAAY-Qk5kqhqWGoz5Tg6habNLhXODceLM_fq2uqZ1tczeOelDxZWzhsL8E1cIWzl4gISatQ-Bjo-rDEqvw3jWxR-W0Bjv_5rspYbiGlYHHzT2OzQ8OfsqxnYc1E8QwTetsJhQi03TN7a7lzmxOUuF46ef8KZj6r8ucfJfR4r8OfGAkABEk-PhCMgKlYsEnqNfMITpfOdxNVUHqyUAIrfG4zKctDMq6o08sgTy93Z1XrnJNh6SJIZUvNS2Oas6nsG2d5S7cP0k7_ffdQk721sI5OJ_b-3di_PioQQTb49IIPOCIFHpY7ATe_NH59Ao6sFMRO3axr_0sax-JoBGdFW5aTuUl2GPNNW8g6T9sxTZ4ZHzOysOqGh0TjcD8pXBFKFhQjxHiNuctlGqdQUncziUjOo_IpIK4QKeU7HEdanr62EOZr31Y8vksbsSP38zzivDkVKLHvtLI6u5H3tVWGsQ_4VbND_zJ1R-LgI_S1P6D6j6wUnId78IW9VVn4iDeaDhasd3xSkaPSspEl0r6SKJKStkpOTywVxOuw5n9qPruEjpJR11zTcdtZG6qLnwhDf5ZQL0gOmGvuMAgBYydpkNS6Xw3g1FfTSI47_Hw1jVke0I_gWDzXyf_zqgE4-BFuqfRTxo0T-WsTGrzujs_cf26guxTium7Tb4Ysbb35pD4r5tazI6jbbw1ZGrg2xve0P-RoffLo9mV9xwVDmzh18107t28tTVfhEkL4ZnzBHocr4-178FT2M0seqUryv9r77xEqfCZOJkGahtUiOrJ3cj6p4Fb7u3P98ryO9uywEmPNxn5LUkHaINABf6DkhEXYG7Kc7iqLIBAnEPEZwbxkm6Khh_QYyDUGI1FjcW6IkorJpjslA_UiqRYj8QYuBladA1nfAahq_YmTYdX9sFVRYTIHHu9J1fnb_DSrs2BK0H71RjbEGnHQqRTGCeG9k0lylYWvFNAEwyh2vDzDGXiKg69Lgg1aZkJ1SshEAh1Nza9zLH0QH-nRblHQlTe_AM2gSRtWT3p-zIX3STzALx25QecMXdLrMBhSOC6pkDBv9wqy4hzTemHohf79dM6RLBIcNZc0dQ_Rrv5zruFeFI-RGub4LkYuFOC0BOzMvWeJyK8cYzNqwSJGCHKYArGnLlsUt-kJW_T1Q4DF1pnCt_--ggY9OSCbWua3mB5iC0yY4fZg2KIM55qIPp2PLARhOLqGSTbN8BOWMx2aYkz3iNun7-2oBtdDZV94uqB6sUWLAX9YMrXQKTjXlm3ickQgF2b-3SDszi_xNWeel-f_9djIlXHm0BRdpMYIAchkJ2J9CtOdvVBdjtM6JdcAhdm2N9yeYYp4iSaKb0TeFqZOkf8V6cZI7O2VUkO47CdfT6HlXUwxq0VKOAh5QczreR4MjminhPBk-wA3Fxu9ULiBG03NuLMIho89Tl8vz5sMDyE36VW_atopgVrcFavkYEyCxMmUMs7LED0x6fw9d1pnGrRKUB-yI4yAMAiqOdKVu_pluXc6lmoahJwMA4ey7ToxiZthrb53wvx7ghyfYenj2Pp66x7SdIjqXbM1fPVL1OYEsVKg4xWuS6UlkuJM1W7B54lkbQJsa5ZJzD8fC-2c4RJLtM0ksF0SFnShAxRmYvdACG6GJXVwfdW3PhDWaMSebKfNdCq-0tHKp63XO2KJ72i09DKOn80kDGBL4mz3dqET4U3sV52H3XC8gD3KWm7toFh8Ysd4cfdXbyjWiOzcJc3OwRWEjlHzFe7bSlu6NBng4a8faikj0HBLFKREhwfv0nPbYNrAf6iOtCS6RiVT8_V7B8GA-5OHgD33Dk5nCfEaj_fNOSA1ythYWRppe1qEybTgCy43RDVHJkdQtvtsfcq7EO4Xabmts3vFtQRukVSqlhfq3280-Qxx09lGpwSAVIgt1ksOhvoIGmAmx4rqQY3Rr0TpNjaGH8yeETo4srtUVK5KDUwesAOUEiyG7x-Gr0WeOKuobPVxu4LQ-N4qDm6yb64BEf0dpqz5Li4EPMTRM6Fv6zrms_GMUzXlLW8YmFHhnZAy0fkIRmNzn2CeNvkhN1sQ9DJKNjmFpIt5qUdc_2cMNGpC03wU0CCHf19QKzCVrJQplSdjES-4r4pbjYLOxqQSDfBjYngoxqF4mA-SxhUotxykfAaxyGyZqtzd_HbJnCEIQzsja7GjRlQTs9-3vvdQmgzVzYinvFjn3wZSS5X8hTqCRBuWbSQMcM5M4PC4iVJlXjFsj9F9FAhfcXTS1t6OodPt05gCg3Qlo_om-0afCRNmgzTfiX-oIt6IhWLAqODV0MXKwQ5uL8RS7fQL-KCk6SaAa1jckiiI54rl_zOG4l3JnXOZMAoKU2tiCR-C6jxOIJAoJ5hFJ5k0bi3aEZJn1GKZIjVH1xu6jBZfxoCjCP-TM-nP3JS7hkA5-dL7EHqBMTemyZ_LkDh8PPoXZJojGuwbovjYlEESWAgyFbvw-yR2h2NcP3S2yi47URckrwhCGJVcLoIetF9HOvU7W7eBzl2LVq29T--CWZPzXZ1zRhmYIjEyfWVKyUjvYH5XNGTVURX4_uYOHWtoeojR3Z9O4kRwY-9PfwOA2FcBh7ezzMyo9xMbns_Q4vCFI5hbM58ZwZtUQDttjQxLTpI1cXJfOnpy0hgNWrfaCArgqqI7h6dvZUCqi_-bFtEoj_eeDLyQvVEMABX4t9sp9U6LRmJwkDzm4qM5etNSHZUOfZbRPY3Uzl_BIC2F2L8dg5IMxAok2J1EKfCfmRmhUkd8G677puyhie8D1UsGImqMa6FBQ4i6AO3UtEg3M69RoAV9tg99gdxzBY5gtntO_SgpZEvc-2_P2O3UfymjEsslE2ZNLjToexFkTBcv0O_WbtIVFEIy0xB3CROMFYQcbYWEQ_OlbmRVMLj13hWZGafKj7PZSUyWcL72swJ_9h1dBFmP05nR-cfeyWTbUVKUEWiykeeeZuoGcibri0ZHkvlldikJ96UB44M9YdEI2u_M8SsWThLp9Wq_x7XlDkIpCXlZReb56Ykrt1Ju1uX2whXvPhgH6tyqU9vjjWxROb9KZD19fjGjltnNHL7k6CM0AWaCuab2qAaHWMTwATb1QDdbL5oymYejv_nZV-UxIpejHIHqZeQabbQ303wD2_NPG6kmR4JM5OJfgH71xUM9d5IbF8TLV06WczMb2hhfoxKYaL4ttXBnNnX9pgV8pB-gRqwB2h-lEDnyzQi17Kqo6-AFvcK0Gg8KPCkvuNlFDLDl50VTdFoUa-UBP3zfxQlZj-_tCmglnFq0oc3nibptm4c1pIY4mExnnfouVh320CGojh7yFtiKcXLYlpET7MWFw04Ue0tL1e-oXGM337yykpIa0AaeNjvGY-HRY4u7G00yDx2r_pV9MtMaFYtkPkaA9pH8PTlWHnCPPEvhb_e17uEGeV8vgmvUKB_ylDxIEK7Ef7dSq-01SKckzSTkimbtEuMNo5WEJZgSxkTCClxZqIAj792GHDhHx2Z1xSfe2o1hk079_Mcq-Oi5cs6N0uIOsXiAC2gxiDOtcnANCjtDjb8rDKvKPgdp6Tvre16cfRStDbbi_X5lXcK-UCixbDhOHNULDrsEcRTkeEQSDgkggPmmtYpWIjwGVC4InwuvoNlu_Ef59aFb-H0Km8QblWtdpK7Q2szCwWh8ZHxlWTofLJZ46OZ3bzJSKowmGEoYQJmnd7aSY8LVdpsfz80UCuE8x5GSbFdiNu3-sKWtJ0H9sCx7oEVk86EUFSB7XFoLOrnaXVai7A9VyRDULO7UX5TSKpgPx2TSuB4WvKSOK9cZLyYwtaR8CARanC1ncNu88BOM7Nal2ge1B3mxYV4oFP3YoVQMywZO_uNDcXyBkxTYB_FA8myqRiKlkW3IHtL-X_DUDJES-eJ2500JF0yxV4b4F8Wsd7xqprYbI-NKvs8VrAQHhDNKcWw4OP2FhiuxdoJne6Obm0UaZcMI7Nwc6PuO3TP_yomH8KN3eVJ2Sg9JOso6RgYl8Dy2UyBuaTUlH8bGd5js2eyyhIdIxE07wvgwxjjj8fG-yVJ-hLNf_y44Sdf7Tpy1DX6e_HnAm5CHqUJIydXFcbXwmNbKXbxcoz_CL9OeIDzHODY1dDq4oZwS0jJZAaqbq4-5U07vx5hKu6yljQcSl5XqhgJ-0bdZk3j9sXc8tFeKyhA626LPmPhHgc2ob_D36ZqRIBRaHrlebuYgoRVh-b-FC8M383cyZVyOxUDmZZ7wyoXZHFIP9Hstddao46sOh8gRFiCLxJjzpKtCp8-Mb8cUJIcGuSVQeZUq6zOoYvAEZUJukmSNJ-dHoz4cQSsaPET1UoQiiah-zMzuIQH1llJaihz0JxW9447wjRW5OOlMgSSZ_rLXFOwhe0A3G7V1Xr1Y233xL1eur9O7JIOhJazIy65Caz8ugT1C_ypL3FYwhec-sH2n3bVrjJtOx6kMeu3NV5W5o6AnwRl-XYQmqGXtaSP9pwk4R5YsWpMIMuKrJHnV6XDezhCbExinnXG2twvB0oDnx7cSb7BtzqJw-KBhge1vv08pJ2t7kF2QsOqFmAEpVcBM4hWIjzBQSZUPilOiJi1YfOInZimg-wT5VU0DhmN1T4dUBY6qfDB9FU7KUmrNvBQrlpF8q47JFFCwwDtDG4ibEPU4EjkwN9_o0I_2Ul3HxdP8pAXNokA6fyWVPvgXVdn_bjkRuyD30IMrk2uJHbNv3QCYSI46i0VZEtV-jdIWrthZQ2m0S6A0ej2l34XWRnuqjwA_j5VlOQO4TYM6ueL1PvqWHUykDvHIjotQpMPHDBbUJ5yk8vMAz8JjvHVz4VvGLxOX2i0h2Krvb6QiLSGorfUo1kdUR_lqGbAPhEKFofpW9y0cdQYBaRcTB7qbg6-V88Rvtg0ucNGrkuHhV-1UMTTyPrKCWP_x4ELqg2wEws1TsGgxW6lqkfj4rW_GZc1H6JLtYJT2H1LqdPbDM--0Olre_3QBnaD2aggjmwJPyCisxMb3UMjZwCYIxRp375s5YJopSPjo7BbzhTCECr8AhlVYgyvxBpScI_dVhDUYU-LOiybkT7tZM_REf6cP0DB2hLAt53GLqfaZyzg4UdEpg4YcesZKApbjWhjeXjSp_AmxVLCX0scevIwAgnwA4R7X-DBLVgdqvqsIO2-Q0K1KOT4UXfJKAnF2_1vMR6VilhR1dAHmY7eSisqF7LxNuQxslS3GorY3YA-Hkx1RCFiMe3occHeXvSROn7VGEKD-opw-wpHg7w8N8l6NfmwedjtQ7X6qLNrXOcGoIKVqmxKK77SbPLO4unk_BBl8ps9duUBbSVyAgFL86JBfs-HIzGA6fTfl1l29W5z-p0taGr5LPBPpSBRR0iWa9Q86_aZFclDh5wX3ueLzPC2lAnr2SL9KQnWKfoDMcmn0KtcvW-n1Cj0rnWasM1pDGUMlqDtjt7P8wEHZkI5eMX5RDoJyIW_s22-uyz3vy4QinFpa_7dwbVNDRyDdZoLbYYG7uhgUBFImnB9hkwM3VkReyrdjSyagYoFqrhC6HfWkdoX5iaQA-N-T5Wkw48DUoL7uVwQWAs8fqEYEtZLe3gAa-SkMWnFQv8BTqy-1QWiCZcPWnExOiAcelyWqXs6BJYdhj7LDXQXGgX_KUU1i8V_3fpWuVSDrHBZ4RMHHVFUBbmwlhG02fLr-q6TR6Ift9WDifsYJYGxHAzI3LIKTaVt_WhfNISkrffBBLibwKifCvl8px3r0JfJUIG33Gs4Ka-qHWgaNI5eWXbbZOmtG-2VmtXMKfUm2gUWcmvCdqyHA_vjKzz4G1H5UsK9vEV8chPZsH618xk6VyEnCYA0C_1mBjRF1dULUdKzGrtH2b8g1z0GGHM4GM8dkjGuRgq42kZQV98_WQEg-9SuEacPNCmXdhuyH2zoyRDef_fx4onEBOGCvOqY43z9OeURB1KrmYJzyPR8xMa9kZDr8qfa1jhlo2xX08AeFb19FSb2Icgl6kcEJDv63C3c0ivSbaYC_Zx8UBiyF5en8NYS5PTruWoR7W4kZYLVsshrk7GtqPH4PGJKceKp58wL3fcV5lcQFqGq40yRkxJmUamDkssELN7oztZ1AoW6A38Yml1DhRvHvi3EmMkWzs4XWeDZLBzKigJNXO-6RYD_84jS-zSOEDNSdIKzWo5BQXDibkGJ8_nTSlit7IvYkvQLuL8pH40Y2er-nIL9xGa1MmoGh6QFcWF_9p7avsXzSD8ADMHEIxNESfQ3PfE0TaWO8kte-TW5WfERZdbmSoED-p6EG4vrIrlU3aYWK5i91Jgd_TawoSW-5TZY-HbI2AljghIUaDuh6bso689-Nv9x6I2-o0fh-APlVKJnwuN0-M3SXSgCfkpHR6uaSRqJlseTCmbihvENKyI9G03tLnkB67xYe_Xbc47X4WzFLrlEBrHtlbt1JO9f5c8JXTLv8Rd6rrDnMTuGfjt5O91UewaQKxcmpxouuLOVxwtS_EoQ92x3p_VDK_m9ZpI23qxj541Edl-QYCUCA_eTKvqX09UcM_qpbL7Whno4Yk_vs2Byvf3MOQq1QMmULzXM10E8ZjVJQT8ypgcyEXAyYUsjYT0s1-azyXtwwB3Ox5VMDOFWTUnKlSNeTdCY26_mfpzH4FMX6jZ0d0Io94AR4sZC5mf0iyUIr_fFPtMC1OrKv4bAwOqP1ux22qtCaF9mj8Jc7XyDwXFg60WXGb6SjIUJTbQ6vblM5wuvss_4blEXarESfd3s7wx8gZOI54DAfPW95ezARv0LtcUj_U-z6x6PUpUUAFAY-SuhyGiplUIumxg2N_PJGiG1EyMlxrpAbs3AZm3w8UmcgMBbGz5oeIaD82O3_OSwj84nlcV5ilDvhObqfS1HO5o7DA171h5Ps8Bki92rJRwztHl5H2j4lAFw-ZMoM9mhTTjKIMacQYWAKjBxFaBTzKyaqVT7jgfibgQ-GcfZZoX-8EJC2pzhDOw7jGhi4b-39ruZClHp8WeCMK5Dphjqt8fvC6ObLIzHUrFrADmCh_xPxnSQ6htFQLgnAyxIRxU9DWmUQbKFCJjuOKZSnpJ3LpOqoo-spSQDx-5mAls8g9amcAt6Gl2G1N2uUoiCJtZFzkycJd9QRsblWqGjKTGrWBWgmijQDqa-1oMyeePqXwGKUBNTAio_KIyLhNkuM23O6Ec_5x5WtolAfHeu_XeaQJXJlJBl7lsOykComfU4pjarlkghnVi13sh2efZq4I5ohRXAXBTlR36tLlWPGWKNK3r9ZrdKWhqhWLSCnda7UlaM81IQzVPfTYQ5keC9gmxUEtz2c3of9CA5MvYWDTBHYNxl1GdgZ2-WmTVyJdBZiA5ERAPt7S5aQyxbmaYnZwTH4xji5Y0je3HboObLtg4kUW47iM_i-7zigrSM1_ciDMOz83K8AWN6I2RJ0y5XDI9mtdl1FCcntOCu0XjMW2OmFhroNH2Irg8uYO47bUOKvVWqKprIhqe3hYhfb47T5MWmjodYWAG5jmSeEXgG03ErjwzsDBhx2HWkvyjQUuFNsdDZ8cJBRsCBarOS1mhpYVF9FuVKAVpjvX0QcEp3Pcx9ZbpCI7cB6bmjj9X3BUs8eUc8cnGXvrQWvj133z41VZL5xMTgR_qYdW8ladpAmAyABUhN0YXQVdw84V8gPzs5nPIDEwUycg4qZw5pulUzHbf9KiEHZoXDvUSfyw0z0EfTBwpfUt0czXtqCvE4d0fUQjF1gG4HuETh9yn0R1ONgkfmCRQyBEkrhno-kxLbAzV6FIgM3C70nBiQNQu_Tx_BO4JfAxLLDc7w19sg3DW_BPw18i1pRaOd9Vmwop4EFnf9CBCYWWJUoZrQ9naWX1AVo-bKT4x288qjgDZQPNr0AvLl6n8d_x8zuACt7g2qg46ZNSDddWDCxzYY2QLN7eCUCe_4EKZ4Khyr_vVn917bShl5tlsvVvUbJ6QflGtJ05W31ramnCh7LD5G1kPiCHqIBme6N11UCGcyE8liwG3EWA6sXk_a_6IyRvjxsNbosJwAmddHJ0diGNLpnd8WZQAXovNs1jeRUMWvdgdmsG6oPrbYnLGPawFQKJP-JGCJGSYbAuLRcqDgZgwzznvfOGIJjsiRl4MfUsshtztcYY76AaXpsI3iDbP30PX2AIkc9arJrZN8DcukMXSS6Y7QMp6_3u8TGOL9XDfbDVVBCg2F7JSgZ0LuisyVNw4Fd2FyGn3Vj0WkVrviTGmAbFJxp847vjxaI6K1ZEYd7-WE9frfT1ifv_yAOzJNvb8ZS0JZTS_bkGS6aaRU4ZKiAqlTDF_DhrC93-3pJVcty8jQCaecQhZPDezU0fh_dbMhSsG8QGnPFl_9_kcKAKlrs3be5Bucz_lgMGSnx2b5pbQY--R-iZkGjb-zqxI67ph80F56uojUCc6tTfjbeohCC0bemkBQZFbt2Lj5u3_PCNZg1MivfT89ea5vGFqIorheP3ayoczi5i6OT-Lor9Ds4m9NF_DzKfyLW7jDPKkQbvVveXKHHrdl-NmFdA2NuUmbUf4uBAkUh9eCdDPGd2EhtXN1eHUEzu0tQ7HznlFRQexoia8xvy1Zidd9Ajk06lw5RWplqkXzSZRjsu0zEwbZKNNW-rAojZcFTZQeukQW8Nzjsh18ZpfP2EqaGaLe9F2UwFTQP5pYwPY6pIJmSeQs8B4jYUfoGeB7twlOh1fqLwK8jMxmtwID5wTvz3vnOzasX7h0lqTxFvT6eodl3EEBAmyl4npjxrq7b6mEX6TTtLG1goABpn7sGMDrMO8RG7BhXAMVTiBtyhD1eP8A_4NME-iszaYwf_2spfBu5rNIx37fLGY038P81O3ZJ376EpsHBvIi3nzXUIknyF0y6p4515IGRhKhmLhFhtUF8T13MSi3S4DrNzN4W7bNp6Y7BsGExNNjwclYaOP4tkBqGM2c1AaoDyZpm6SYiEA4TFDVRG4_J3hraxHAnoChLQ96tNjfwc2kin8QpQqvf7YYJH1u_Tdax_W1JZ0WOTZ9IDL42Gnv6VG4ZsjM4VXHOqt1E45ZEznE1kSffWVK4cXHfWZzHmP-h3pKl0XOZ2OEfqcgBJk43O1ZIqs4Gxumok44HFffQlAEPXhyvBohybSjqT9J6IHc_jepaeXghXSi7qe4-cgRll-spe9-MhwqnPcD5vsouGdDzHA67ExPvjg475st6Dd1CFGFZnJKOXCzPaAbuDny__yoLYOZLfA3ZDWrIyAcwCtTz58fvL-_GFBQsFc4iNeq074u-MwpPqlULFejrt3ItWUUF18nDsAPTuomZG8gh31WmBfAKUjSwfoXjIzFNBI2BeYvNUfV6fI6zi56VLd4v4kqrNBPiz78LPDgMGUqem4NlbiU8batlg2iVr9g41bu5mD_Q9BdfQWEw0Rpb3T8SdQ1SqCrJatVJcLKuYAAbhDTyn47j-JrjU4btYiD7QgslyYz4AjlyVAx4sXOzjKJXAZYNf9LyIJ_dFHpcka0Le8a6OhG2Q0_Y16E2MhtNNH9-tyNIvaC0h4ppDrA049yVMvs1y6hdVzjVGVB1qwkRHf8-EavF3awT_xeJHvmJzGoELW0_VGxUO-f35yynz06mk71_3QP2r8nVCNYyj9KkUANYdjokbtzyFdcoYRwqnaWzVRt1Q8AlFXdLmuQmKy9RPMVoP0IPuLsfaWn4iGk5TT7qukp6VQSHY79kzt1FuPyaNJJoLQDANQpllMzFvYEb85vw_A_xPHuK0nn6VtUBUrIhOFu07K9isTdcC3StoRC-tPck-a5AVyQ9b1C_P7xYMQZ_nHIF2rBZ0BwbXOiNchuuYHVXgGev3tZaTS74HZmNyR9dOyez5kMh-GN0MWS7dxFxyk_TcDD6OEHhEJIfQUzbwGavJM-o4_qqr-mq3OSCDHFXjhyGYKoBdYczCqe0P2Qzgdts1kO9cSgpw3SdgJWOR1pcn6GZBQea5PMMirZLNG9X2EzMz3KsRc3QZMgAoIQd-EMI7EIa4UVWvD4go5fxkasa7e5tbf4zZ0v8rLnhsc-8ED8jz2DW5URO51u-fKtqjp2KvG6htc4jU1lkg04Rxg2o8EBmRE8om0lgpZarQKc1QqTCp5UQAbrr5G-dVkUS_WziQLvIPZ-YBmrPx6nHlmwWW7wnqd6wa_OO3DwaUXWlTVP7AQKQKZCp2uSzZpQmYx0m0KJqM1BMe1bzNQGBp4G0DtJ_rOu2MqE53ZZ9bXRg7KMQK-M3UfYXtDOs6Vursl4iqe3mvj_l7E8_2F729Gi9nBbKhj2vFAmnC-WJbeuz19IiCnw844-XqDfwz5uvtRk6dSJxtaE_pxStwf_AmVmcEMwFlYyjRVTdj89b83V9PF5pU6bzvKo9Kr0ntGXG3ZronWP9Ud-LQxlh3CQZLD92kzNGytjUVbdC94u4HiuvV-nTXG7Up5_SktVC8j0rQ41jJSj1fot1VV8jcNm7zdBylqp6qkUiGAH1r-gz-CUvS01sXKDz0Xl30PGqPDfg_4PG3T5cy0ZKyAdGejfayMR02GIu5ny4-FEQ2E1mbwJijOQ-pt1BfdJzm15mlaAm7P_1lcSqi8rceBa7KPYMn2ONMRd7jzDjm7ZoC8RzKYkfJl1cGm2onLk8wnDzJsGgEAZ1_EpLzY3WadAcRZB_QXoaYczKgRtBOc41SlwvGxRsTm-x6lnUno9gL4ePtc5yBRGzq5k6nA7iVKjlzZcvyec_9HMhMJBgPKblWfbF-7oARzS-Bw7BOsm9V9LrlbtAA_OEJ7uLxoLnQhdViC1r0zFnRyZ3fvZd6IVWyX8y80S16-vsTBix7NMo5F2kfk5a2aujnasl72HL48p9SkXkje64aog0qK0R_tKOc0I6nY26uyYj9Hic7D0ws-XAeM6EiQu5D6byItxsdPXOaKC5spHTQ1nR7u780uxoHIpaPHu2sWOCUxudjgw7iHPEykarM7HjJONPdhfIwWZf2lNncsxn6oH9a-1Zj4YuSIH72PCu4-1Z7ddcZAhlxYhkkg4cAkF-tcZkbR_vnungSyd8Qju5ZOZsz2PwAAHZSC7SIcARcBnE_29aqN1Jh-xb5DGXuWZ8UaeRzF9G5rK8BpYQtcnYV4QARiSpPGLsBa_a5OXEmy5K37xU2Fxasb0r0xNKabECSVfGKqRiEv2aU3W5KG7FTFIZ01KGONnPKQd0TP4G8RWKyHDGRj5HQM-rRmSoWxYzoxSoz94OboBgmFmyMngtKmFRNsJ0Y_gcyhiRTQgljpAJrkBNQ_WyO7Uhnclferv18JS9ztkT8S7yptebO48_nvBPGYFLiPfPkFWf1VgWtViG250zeTRo-lHEJsfNVFNnjfJ9PUPg8zsCxpZahrCbPmiLQQ0phTfOIjrAPmWd_Lik33WmNwxRe-1H090dy6c-A9J9of7SFgFP88pAd_7ct_XAaFSu_G7m9wAfN2lO08LAFR7MokjinXlYOUTWC3Bb48oEOYpdKURihYnLRR6D-3fd3eh2wO1knz7T0pWFnvF5Sp5C_eTqOxzf-z3JSARhK6Ir7vzjQfACrlrL5UG9EacCQcdYnrmF7-LUaV5f7isNcUSA4Q1R9SahKMtMkekgthXuiOj9sidRHVIkU2934PEKsACSrWrZxxxCZhCiMVOgNXbtinb6HKoH3OOKP_8tMTFytSTJ1Yr77fpqiBMNLUuEflj3yCPD8UomXir4AXfQWmw9cAahCFBQUn-6Bwmkgj2tK84dBgn1zy-eZNplbERZJJWVSIRGi1wJBOSKoVCqbxTNeEpZ2AmgO21B0x5rj8ZYzVrHFvXMhEYq-ihpSBhS-mrVLVBJslinLawqhTHArxJsftsuPlF_aRjNU7Khc0KQpRsrAWzc42rgqJn40rHfZ78CVS_5PyCnSNQ9h5wEiqtGaEeL5vM9RmLJ4oJ9g0wUXYbwYYs6Cg6_u_njXFTVk0mxcTlegUoV3UXZmXAJ6HRJN3AfViifmrePxV4XvfN9D4KKI72zDRyVHFK-8OwUZFCKo8DwXjiWnhC9PCwSh66kpvmVABiyQLBqGSzN7TUmMAVpSVxcxLCp3EPu5TI3ps7R-WkOx0FCdxUX8qqtWtgtfds8Dbwjav-56LcQZhmfePwIs7bt3efFrr9vOazPmi3gySMlCCgYOE6Jie7EbT7EjAGbnGm122VVHQ4pGqejAVpIYjHlidYUd1L8uVdNb-chUawyC9U-U8Pdt3GBWAyhRnLnC4BU8okPIhmAUYSvNkBEoCXCtVxZqFOF8-r0EpmMcDdGhsiaBTXkE-TOPNx2BLnI3vrLzKT5_b4UFIH7TdtPc9GIfz-RHXak1rQTzsvxtcXM5hv7eIubWunBZUVj4NN1ApdC_J-lX7M1YctZJ5NMTEPV4H2cUZYrW_Ja6Ttc2W0jL3m94xpIcAOUp6cx8Eg_ZploW6euaDK5JjBiz-yQKZ2EgXLfoIf0XPUr4GsiNyCgak_tO0p44ot56B52Aa0r844d5RiwkPa4XN9XG9jTFLArOeGsH2fT1z6uQK7_Zfqf0-2aAeENIYHtVq8mNUukgcLLSnom3BNjSxkr-DS9Swc3FSQscxmPc-7Trwjp5M92lbxu1MflmcxussNGlwbSUfWiLiso-CI37DVYxx6AbaTAk_mBsQnzJK1w2ktnHpqcOnhsGGcS9n2JGVkY4ZJovZImHkIhYO65no_H3bh_ahw4EpFRwnrgwiuB1My2JXYhB0MRRHuXeiK5RLVnk0arXCuc6plZMVXawZ9WRQS469R-NVbyhj-g-ev-RbDTg1Gvjpzjx_gOZ3GNfEHxRGN1RgWTPSN_a4zDjBE_sLV8W3VNkoUo8QPIdVbVHHV7REmsUp1BpFYsSZbDYCwkddLHmtwr4ptuEJDGboiw9fl6a6556W3Cufb47GAwRWf__eO2WdEVa4HscjzcZuHXKzOeSEOyNk79SLIg8HngAEFpv9gQmrO9FWlPVIActiHo9YLjRipfLq8xEwnDV_KTvDGBpPlIYCVjxcJDphL1pIWv4f6IbOwLbn-353krpsbLwS1bwfzm4w7qN1A0gkc1Pjx5UrgcdpoxnSAdRnXshu7Q7HflBQfVYoV97kkOLbvbnTjTldDbiYsH6AN2GpEQe5xQcIqLe2Zh_vrPc-nQXDvjf3ImPZkw8eu8iNjeBrnT2OsNBqEFE_i-n-E5XlqXS21tdce8hqLZ4eo6_ghqKV5EQCywblt9SfEQfeCMBF_xIKQmvBWDFukmJ9T1TH-ptxmf_oFLZhrwvs4D3UwKIOhetgtw1rnmeMLt-4iIZlzAo5WyZwU3QlStHcq7ifuu-0bw9J_TsoR2uXcnKyzlsD5U6BPGN_VBrlFFjqsRwXsEfBry3vSS-Q3zl_HtdCa3l5At_jddLKNPx2gbMaXLMoAnrMdt5yVmKCGl665RDznuJp3UuPGieV217iLB2Cx0EqV8odkVsbwJvzFNOShbzo_thr6ySt05lCKmosrcvEnm2Buqc8xrAj3KTXR0VPgM2SYNTHMDKA9N5L3btVJIelrIRrjQbSnJpHSznDBrRhM5l5zZl13Clfo3nYJF-QsxkdCqQZYdF1jN9aXx5qGVyz6hgXzAF2o_G7U7qUTiFeQ5YPFWac_29yaOF1xO0a_wrLyJfHg82dvuhlvDu28QZV0UiQyP17sDIWRupnof0x4OUsAhIhL9KamZQ8IqpqoTA5Ap5RpGvQ30LXm26CtFfjQe5kum1LZ-MbtVD8RpbeeikgmqhA5klaqR3BCNmIpmyOXOoB4RVP9UVugX6h5UQOj-oklnmq6PrFHD-UQta5g87ntoukTNcrsIdndX5cUohVn0qWlsfrEL6tKCTkUw5kTA6w9GjfclctNUdEdbkiA-XaUACHQaqhJkHkW-Q0_H1IcIeMe8E3v1iYLVPPMNKD4LCuhuBy9oXyaR1Ph72TwoFNhaPzdGrtDFbaBzYhx_y1dSik4yi5PNVrWrJ1HsYT8EZJ8d32eQVGYUsycL4qS_DWUQNrxLI1m_NyZKOkPbX4FXubei7rt2zXENqkYXK2O7k5oijJBPBJV1QF07RTQ5PGj8zTwyvT3bfNsdsmkcZzS4fHXq71UOHC5DelVcM8I1ytScWiN5CW4C7lt8ZLgf0tdl6_JULmJ94etLerOy0LUPe6khSR8WqgY1TQ7p9bWYo2rTSEgx_Lyc4DeH4LgSLEtVB_JCWneCqtp1mA6hWPp0-bLyL1hjCaNDU3XsyGEyQj3a88w7aKViOjIXwuugdU7r6BSF21ffICBbKvBYLT07s_ifxYIXFWRfGsbKFzwSYf-ZtpG6cEYgZEHTUJFFb3_B-HtSvz6kEnILa6aw51DQHlN6uMUvDthw61APCZzn-btHE_9vZG_6p_3frsL32Vkyz4SbdSRODe7RElVTIa3Kn2-ipyq0QcAF_o6cP6TIo-aMqp6B3h9TMxpf6SnDfjT5dHT7pAkXlFZHZfjW4YAJF3mcHZ24bcCssFhpO0NNdWaws4ELewmYqGzm65ZAP5xgJzucqom5J9RoNGSp_xXxm-_Un0vUJZmBMS5BSAwP4zLuorWMwtU_IXRdRV235vKKihqrVFz4KZqUXnqWx-oq8XErUJv2Dfhg-xOR7go9VQwlN0W-HkHKqOUr4Qv4BOPvJf_BjoI-NlRn7QH902I3I5BGViodqMavPrfd0xm2hWHrarCxWkR_7r-leaRBWPP9bKob4IZDCrQ8e4Chf92OpfU7ieNGaIH9RTngo-iVrnkuVVVd-7N1tkDQuFoDRyc5IVpB_PlLxrwCp7uiC6fc_hQGCsd28q17xDsndjDN4O1e47ppAX2iwg4cdxNcWRf3oNursj4eU1U1KffXtYo6-abwHk9BEAbRIC5DqFijQtrSsWbPJt2cWietN6dsa5YKbcu4nOV-PhlNkow8I8Vtlq4Dnfzgvj5NbODD03RMdU7NpOEhqccQO3Ym8vs8UQhOL1yyzM-w723wd2gAkXLIy_roxqOu1N5lKxi3u36keJrbu_FZlce3yrZ3PQq1grVL1Cn2NDv7GGmUtzf6QnYCJpac1Ynl2b80D3QUBTjkcXyDMBR_C2nKTMYRo7Mq62iNtwVd1Q3kokS38ERojXlwPb7C0-DLyeC0WfEquDNymzhspbB_LlKwQFjinrUlnd9DQkIFR_xfX5XvkyS32I5RddDYuiHiO50zCoDTvow_icUYXhaxPfDqlcXFWNrMymlWrogc3Tk4qoqYdIZxQInUX2RZAIsC5W-ZcP8aOPYAukVTF-EoyH8yv5Ue4GIK1jVJ-IbxZK2mB8io4KwTKFE61g-Cv3z7_l_I6224P8o3N6dm7qnDt6Dj6-v66oDe8MKQPN3dbUcOnfxeL42CgJjVaYQsnUIwjIgrcxzjTVALqcZvA0MhlHBgqqQOj9wkpYL4YYHjOCNIJns8fBCRb46gYpON8IYV1m_YoVpJDTbQsB9SewWvLws1B_92LZQ_9PDxnMSg3cvYVvjx2W3CL2dKVUZmvlz_CdaRXwCHetyU3ALMwRLT5-UylT1cMz18aI-RJzYJO7q25FefRH66KvUOhPW8UuGEPIRK9VfVw__o10ivCTqoII43p48h5DuJU4clj97nSZmjrCsCI-rhy17VI3mtD5o7EggRCCKl56z80z1BXHYQ5TPs4juDYQ_18-rxPydCjbL_rKbl1gIwCEBW8uLBsfkvYDsQGg4vvx2tzCjNTLQqw13BHOnPryN5kF0yZutmTo3uK8lBG-Zh6ufVDmQxl4lzC82zCx6iiSuSJ8ob-8gyuPE7dZv8DN92-gPpFSSZnkn_Ulma_zPpkSvXhPC-UwgYLE2Ds7ZSzRshU11K7Fc3v8cPgTDpgps1kTUMfOWYzUz4udEL5SCf7KQuZbZz5V5OCscMj6OjHFW88M8V_tBdPGzZd54-4YQJSrbu8TvMSWV5sf7_jgTTBQ5MYqvGyEFXrFwj2QTy73DT32mvZa5CiT9TqK83ShQ3JNKKqfkT8h79tz2qwHrkzMSAmxxWE1sTkMl9EgQx70q2c62lMFtFvcN-dheMKWTcQKNxEm8Z8uMFmylX3H8OQDUJpE_8HYNkfoHKs_wbcCo1R3jNX6Osks13TPPeJO_dsFQskM0D2nyGFNAco-d_7FmuululYzwyHo1dVtcUqBCj5nU4StSIvxRSu4mF89zpep35HrVcj5JUddCdjNRk58ocIOA3zOBJRn9AWZwGaD6AsQ_3ATRX9--2Kbty2nz3CBBBsEQgjbBKIQdmXT0Oi3T4M0H7Dw2Lu-j9AzeChcVCePPzWPJ9PAXGZJElQizJ7VNTQGfAp18oDTVGgwrVZV9Jcxn8f0ItwmeBJDbOwyHny7211tW1s0i-GUUIaKxXcqCoe9ggmCuzbwIRdjf0vdC-4RH7L0kHgMx3PfXmjQJIWYR6NysutcxgYJLPA1D-iOthxwdZ2ukwmY7domKE5TeKtzEgk2qPLZhpPet08DYSsIjMNZc9Rt_4ysgmOYD-k7n6MH3L7---GWQtnusB0u-upJm9qz9324yqvpfQjnvq32KvSqqlzb6rIWPuEF-ICVzqpBuRB2nlvUgfQuz7aTreNw2kKaB-q6P-Rckhy82QTtmFjSgoOp0l1qAgSa4zi5Bd4ZXAL8xfv8TT91P391yn8fr_139APVjWoNhbQ0hi71vxiIInbSfS4uUMeDfReqfeTQtwIGtCLa6YfVU-lK_Yw0qEBZp1I5Ikpc_TWWJOjGZJdd3Dz1MPqSIZXMNb86ZZlct335GU6icPSHhRYYmZ5tLXRev7ZM1aV3bzQX4OFUhL0NJEhbGpsGoVrbfvrUKjK11sSHJY7X8BqWdW6uNiZrILODVQYlJHOyzTs1yJ4VLbinSVxA4eSEduFVJGKLbzHWBfGOTtRbk2-l_z7Y1h6asylOl22WUj0bCP0Od4zLPqcZpmEzK8THoDP54ID0S8gRL55zFCPqGz6D98ctPsRU7qSHx9ZMI6rsw-DxKAPEWOJYC2gBldTPON9BS1F1iWzjb4Izr7yLMCtyquOGyAh5ZbPaZGfDycapxKazd1TXno5a5Y3LqpTNuFvIYcc47-w6Ox0";if(!e)return null;if(Jn&&Jn.sealed===e)return Jn;let t=null;try{t=js.parse(JSON.parse(gr(e,pk)))}catch{t=null}return Jn={sealed:e,bundle:t},Jn}function Tt(){let e=af();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Hs(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function gk(){let e=af();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function sn(e,t=!1){if(t||!e||e.length===0){let n=gk();return n?new Set(n):null}return new Set(e.map(n=>hk.test(n)?n:X(n)))}var pk,hk,Jn,on=b(()=>{"use strict";Fs();je();Gt();pk="tokmizer-default-rules-v1",hk=/^[0-9a-f]{16}$/,Jn=null});function fi(e){lf=e}async function yk(e,t){let n=await Ou();if(n.size>0)return Bt(e,n.values(),t,n);let r=Tt();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function Sk(e,t,n){let r=Br(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 Ce(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
91
+ `)?`
92
+ `:"";return Lr((s?r.slice(0,-1):r).split(`
93
+ `)).join(`
94
+ `)+s}async function an(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,c=Et(Fu(e.startsWith("bash-tool: ")?e.slice(11):e)),f=o!=null&&o!==0&&!(o===1&&bk.test(ii(c)??c)),u=Nc(a??lf??yk),d=null;for(let M of Lu(e))if(d=await u(M,n),d)break;!d&&s>=kk&&!si.test(e)&&(d=await u(`bash-tool: ${e}`,n));let m=oi(e.startsWith("bash-tool: ")?e.slice(11):e),p=d?.slug==="git-log"&&m!=null&&/^git\s+log(?:\s|$)/.test(Et(m)),k=o==null&&(p?/^(?:fatal|error):/im.test(Ce(t)):Nu(t)),y=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
95
+ `)?t.slice(0,-1):t).split(`
96
+ `).length<=60,C=s<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Et(m)),x=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,E=d?.slug==="read-tool"&&s<_k;if(!i&&(x||E||C||y&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:f||k,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(f||k)&&tf.test(c)){let M=sf(t,l.verbosity??"normal"),J=M===null?s:Buffer.byteLength(M,"utf8");if(M!==null&&J<s)return{output:M,filterId:d.slug,rawBytes:s,filteredBytes:J,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(f||k)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:f||k,...i?{droppedTail:null}:{}};let I=M=>{if(!i)return M;let J=M.filteredBytes>s||s>0&&M.output.length===0?t:M.output,V=!M.debugBypass&&!d?.preserve_exact?ci(J,"minimal",M.filterId??""):J,me=ai(V)===V?V:ai(J);return{...M,output:me,filteredBytes:Buffer.byteLength(me,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!f&&!k&&!Ku(e)){let M=Yu(t);if(M!==null)return I({output:M,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(M,"utf8"),debugBypass:!1,droppedTail:null})}if(f||k){let M=i?Br(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?Sk(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?Ce(t):t;!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(M=Vu(M)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(M)&&/^={3,} FAILURES ={3,}\r?$/m.test(M)&&(M=M.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let J=!i&&!d.preserve_exact&&s>=wk?ec(M.split(`
97
+ `)).join(`
98
+ `):M,V=J.length<M.length;return I({output:J,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(J,"utf8"),debugBypass:!0,...V?{droppedTail:t}:{}})}let{text:O,droppedTail:F}=Oo(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),W=!i&&!d.preserve_exact?ci(O,l.verbosity,d.slug):O,j=Buffer.byteLength(W,"utf8");return t.trim().length>0&&j>=s?I({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):I({output:W,filterId:d.slug,rawBytes:s,filteredBytes:j,debugBypass:!1,droppedTail:F})}var lf,bk,kk,wk,_k,qr=b(()=>{"use strict";Pu();pr();Vo();Po();Du();ju();Hu();Fn();jr();Ju();Wu();jr();qu();of();on();lf=null;bk=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,kk=2048,wk=8192,_k=32*1024});function vk(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Xr(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>vk())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function Qr(e,t=Date.now()){return e.plan}var di=b(()=>{"use strict"});function cf(e){return e?xk[e]??"anthropic":"anthropic"}var xk,uf=b(()=>{"use strict";xk={"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 hf,realpathSync as Ak,renameSync as gf,rmSync as yf,statSync as bf,writeFileSync as mi}from"node:fs";import{basename as ff,dirname as kf,join as es,resolve as $k,sep as s$}from"node:path";function wf(){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 Fk(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),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function Lk(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=Lk(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 Bk(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(Fk(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=cf(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function Hk(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function _f(e){return es(kf(e),Ik)}function Uk(e){let t=_f(e),n;try{n=hf(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]={...wf(),...i});return s}catch{try{gf(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function mf(e,t){let n=`${e}.tmp-${process.pid}`;mi(n,t,{mode:384}),gf(n,e)}function zk(e){try{return mi(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-bf(e).mtimeMs<Ok?!1:(yf(e,{force:!0}),mi(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function Gk(e,t=df,n=df/2){try{if(bf(e).size<=t)return}catch{return}let r=`${e}.lock`;if(zk(r))try{let s=hf(e,"utf8").split(`
99
+ `).filter(c=>c.trim()!==""),o=s.length,i=0;for(;o>0;){let c=Buffer.byteLength(s[o-1])+1;if(i+c>n)break;i+=c,o-=1}let a=Uk(e);for(let c of s.slice(0,o)){let f=Mk(c);if(!f)continue;let u=Hk(f.t),d=a[u]??wf();Bk(d,f),a[u]=d}let l=s.slice(o);mf(e,l.length?`${l.join(`
53
100
  `)}
54
- `:""),Ea(Pa(t),JSON.stringify({v:1,days:a}))}catch{return}finally{Ra(n,{force:!0})}}var pp=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),hp=new Set(["-u","-g","-n","-s","-k"]),gp=/^[a-z0-9][a-z0-9._-]*$/i,yp=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"]),Oa=/^[A-Za-z_][A-Za-z0-9_]*=/;function Sa(t){return t.length===0||t[0]==="cd"||t.every(e=>Oa.test(e))}function _p(t){let e=[],r="",n=!1,s=null,o=()=>{n&&e.push(r),r="",n=!1};for(let i of t){if(s){i===s?s=null:r+=i;continue}if(i==="'"||i==='"'){s=i,n=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
55
- `.includes(i)){if(o(),Sa(e)){e=[];continue}return e}r+=i,n=!0}return o(),Sa(e)?[]:e}function Da(t){let e=_p(t).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),r=0;for(;r<e.length;){let a=e[r];if(Oa.test(a)){r+=1;continue}if(pp.has(a)){for(r+=1;r<e.length;){let c=e[r];if(c.startsWith("-")){r+=hp.has(c)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(c)){r+=1;continue}break}continue}break}if(r>=e.length)return"";let n=e[r],s=n.includes("/")?n.slice(n.lastIndexOf("/")+1):n,o=e[r+1];return(o&&!o.startsWith("-")&&gp.test(o)&&yp.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function bp(){return Ia(x(),op)}function $a(t,e,r=bp(),n=!1,s,o,i){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(e)||t<0||e<0||t+e===0)return;let a=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",d=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",l=`{"t":${Math.floor(Date.now()/1e3)},"r":${t},"f":${e}${n?',"m":1':""}${a}${c}${d}}
56
- `;try{np(x(),{recursive:!0,mode:448}),tp(r,l,{mode:384}),rp(r,384),mp(r)}catch{return}}function Na(t,e,r){let n=r!=null?Math.min(t,r):t,s=r!=null?Math.min(e,r):e;return{raw:n,filtered:s}}M();import{appendFileSync as wp,mkdirSync as vp,readFileSync as xp,writeFileSync as Ep,renameSync as Sp,statSync as kp,readdirSync as Ob,rmSync as Db,chmodSync as Tp}from"node:fs";import{join as Ma}from"node:path";var Rp=96*1024,Ap=500,Mb=168*3600*1e3,Ip=120;function La(){return Ma(x(),"sessions")}function Cp(t){let e=t.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Ma(La(),`${e}.jsonl`)}function Fa(t,e){try{let r=Cp(t);vp(La(),{recursive:!0,mode:448});let n=JSON.stringify({t:e.t??Math.floor(Date.now()/1e3),tool:e.tool,target:e.target.slice(0,Ip),...e.fail?{fail:1}:{}});if(wp(r,`${n}
57
- `,{mode:384}),Tp(r,384),kp(r).size>Rp){let s=xp(r,"utf8").split(`
58
- `).filter(a=>a.trim()!==""),o=s.slice(s.length-Ap),i=`${r}.tmp-${process.pid}`;Ep(i,`${o.join(`
101
+ `:""),mf(_f(e),JSON.stringify({v:1,days:a}))}catch{return}finally{yf(r,{force:!0})}}function Zk(e){let t=$k(e),n=t,r="";for(;;){try{return es(Ak(n),r)}catch{}let s=kf(n);if(s===n)return t;r=r?es(ff(n),r):ff(n),n=s}}function pf(e){return e.length===0||e[0]==="cd"||e.every(t=>Sf.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(`|;&<>
102
+ `.includes(i)){if(o(),pf(t)){t=[];continue}return t}n+=i,r=!0}return o(),pf(t)?[]:t}function ln(e){let t=Yk(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Sf.test(a)){n+=1;continue}if(Jk.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=Vk.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)&&Kk.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function qk(){return es(_(),Ck)}function ts(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 c=s?`,"h":${JSON.stringify(s)}`:"",f=o?`,"k":${JSON.stringify(o)}`:"",u=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?Zk(a):"",m=d&&d.length<=Dk?`,"p":${JSON.stringify(d)}`:"",p=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",k=l.o?`,"o":${JSON.stringify(l.o)}`:"",y=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${f}${u}${m}${p}${k}}
103
+ `;try{Rk(_(),{recursive:!0,mode:448}),Ek(n,y,{mode:384}),Tk(n,384),Gk(n)}catch{return}}function ns(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 rs(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 Ck,Ik,df,Ok,Pk,Nk,Dk,Jk,Vk,Wk,Kk,Sf,pi=b(()=>{"use strict";H();uf();Ck="stats.jsonl",Ik="stats-ledger.json",df=2*1024*1024,Ok=3e4,Pk=3e4,Nk=new Set(["n","g","e"]),Dk=256;Jk=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Vk=new Set(["-u","-g","-n","-s","-k"]),Wk=/^[a-z0-9][a-z0-9._-]*$/i,Kk=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"]),Sf=/^[A-Za-z_][A-Za-z0-9_]*=/});async function c_(){if(cn)return cn;if(Qn)return Qn;let e=Ar().then(t=>{if(Qn===e)return cn=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Qn=e,e}async function u_(){return Ti||(Ti=!0,Ei=await Tn()??Tt()),Ei}async function nd(e,t,n){let r=await u_();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function f_(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function cs(e){fi(async(t,n)=>{let r=e==="free"?"trial":e,s=n??sn(void 0),o=await c_();if(!o)return nd(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(X(i.slug))?null:f_(i)}catch{return nd(t,r,s)}})}function us(){if(fi(null),cn)try{cn.close()}catch{}cn=null,Qn=null,Ei=null,Ti=!1}var cn,Qn,Ei,Ti,Ri=b(()=>{"use strict";io();qr();je();Gt();on();cn=null,Qn=null;Ei=null,Ti=!1});var Cd={};Pe(Cd,{FOLD_MARKER_RE:()=>Mr,captureForRestore:()=>$n,captureOriginalForRestore:()=>vr,closeDaemonResolver:()=>us,countedSaving:()=>rs,gatingPlan:()=>Qr,graceExceeded:()=>Xr,installDaemonResolver:()=>cs,loadSettingsCache:()=>re,processOutput:()=>an,recordEvent:()=>Un,recordStat:()=>ts,recordTelemetry:()=>Mn,resolveAllowedFilters:()=>sn,statCmdLabel:()=>ln,statOutcome:()=>ns});var Id=b(()=>{"use strict";qr();xr();Xt();on();di();zn();Yt();pi();Ri();wt()});Rs();mr();Gt();Ye();import{createServer as sh}from"node:net";import{chmodSync as oh}from"node:fs";async function Ia(e,t={}){await vn();let{path:n,isPipe:r}=t.socketPath?{path:t.socketPath,isPipe:process.platform==="win32"}:Le(),s=e,o=null,i=Date.now(),a=t.idleTimeoutMs??ma,l=process.env.TOKMIZER_DAEMON_INSTALL_ID??"",c=async p=>{if(i=Date.now(),p.op==="ping")return{id:p.id,ok:!0,data:{pid:process.pid,uptimeMs:s?Date.now()-s.startedAt:0,ruleCount:s?.ruleCount??0,bundleVersion:s?.bundleVersion??0,version:ee}};if(p.op==="shutdown")return!l||p.installId!==l?{id:p.id,ok:!1,err:"forbidden"}:(setTimeout(()=>t.onShutdown?.(),10),{id:p.id,ok:!0,data:{stopping:!0}});if(p.op==="reload"){if(!l||p.installId!==l)return{id:p.id,ok:!1,err:"forbidden"};if(!t.onWarming)return{id:p.id,ok:!1,err:"no_warming_handler"};try{return s=await t.onWarming(),{id:p.id,ok:!0,data:{ruleCount:s.ruleCount,bundleVersion:s.bundleVersion}}}catch(k){return{id:p.id,ok:!1,err:k.message,retryAfterMs:1e3}}}if(p.op==="filter"){if(l&&p.installId!==l)return{id:p.id,ok:!1,err:"forbidden"};if(s&&Aa(s))if(t.onWarming)o||(o=t.onWarming(),o.then(y=>{s=y}).catch(()=>{}).finally(()=>{o=null}));else return{id:p.id,ok:!0,data:{filter:null,cacheHit:!0}};if(!s)if(t.onWarming){o||(o=t.onWarming());try{s=await o}catch(y){return o=null,{id:p.id,ok:!1,err:y.message,retryAfterMs:1e3}}o=null}else return{id:p.id,ok:!1,err:"warming",retryAfterMs:250};let k=s.selectFor(p.cmd,p.plan,p.allowed);return{id:p.id,ok:!0,data:{filter:k??null,cacheHit:!0}}}return{id:p.id,ok:!1,err:"unknown_op"}},f=sh(p=>{let k="";p.setEncoding("utf8"),p.on("data",y=>{if(k+=y,Buffer.byteLength(k,"utf8")>aa){p.write(We({id:"?",ok:!1,err:"frame_too_large"})),k="";return}let C=-1;for(let E=0;E<k.length;E++)k[E]===Lt&&(C=E);if(C<0)return;let x=[];for(let E of fr(k.slice(0,C+1)))x.push(E);k=k.slice(C+1);for(let E of x){if(!E)continue;let I="?";try{let O=JSON.parse(E);typeof O.id=="string"&&O.id.length<=64&&(I=O.id);let F=oa.parse(O);c(F).then(W=>{p.write(We(W))}).catch(W=>{p.write(We({id:F.id,ok:!1,err:`internal:${W.message?.slice(0,80)??"error"}`}))})}catch(O){p.write(We({id:I,ok:!1,err:`bad_request:${O.message.slice(0,80)}`}))}}}),p.on("error",()=>{try{p.destroy()}catch{}})}),u=!1,d=setInterval(()=>{if(u)return;if(t.isActive?.()){i=Date.now();return}let p=Date.now()-i;(!pa()&&p>a||p>a*2)&&(u=!0,t.onShutdown?.())},da);return d.unref(),await new Promise((p,k)=>{f.once("error",k),f.listen(n,()=>{if(f.off("error",k),!r)try{oh(n,384)}catch{}p()})}),{server:f,close:async()=>{clearInterval(d),await new Promise(p=>f.close(()=>p()))},touch:()=>{i=Date.now()}}}Gt();function Oa(e){let t=0,n=0,r=null;return async function(){let o=Date.now();if(n>o&&r)throw new Error(`bundle fetch cooling down for ${n-o}ms (last: ${r.message})`);try{let i=await e();return t=0,n=0,r=null,i}catch(i){if(t+=1,r=i,t>=3){let a=Math.min(6e4,500*2**(t-3));n=Date.now()+a}throw i}}}je();Jt();Ee();zt();H();import{readFile as MA,writeFile as j0,mkdir as FA}from"node:fs/promises";zt();Ee();Jt();ye();import{createPublicKey as uh,verify as fh}from"node:crypto";function dh(e,t){let n=En();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("Tokmizer plugin: no valid signing public key. Set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM or rebuild plugin against a prod key.");let r=uh({key:n,format:"pem"});try{let s=Buffer.from(t,"base64url");return fh(null,Buffer.from(e,"utf8"),r,s)}catch{return!1}}var mh=/^[a-z0-9][a-z0-9-]*$/;async function Da(e){Ut();let t=await G();if(!t)throw new Error("Plugin not activated.");let n=await Be(),r=await be("GET","/api/v1/skills/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:n.fingerprint,installId:n.installId,timeoutMs:8e3});if(!r.ok)throw new Error(`bundle fetch failed ${r.status}`);let s=await kt(r),o=[];for(let i of s.bundles){if(!mh.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((l,c)=>l.position-c.position);for(let l of a)if(!dh(l.body,l.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${l.position}]`);o.push({slug:i.slug,version:i.version,body:a.map(l=>l.body).join(`
104
+
105
+ `)})}return o}H();import{chmod as zs,mkdir as wr,readFile as Gs,writeFile as _r,stat as ph,readdir as hh,rm as Fa}from"node:fs/promises";var La="managed-by: tokmizer",gh=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],yh=["power","tkr-reducer"];async function ja(){try{let e=JSON.parse(await Gs(Cs(),"utf8"));return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}catch{return[]}}async function Ba(e){try{await wr(_(),{recursive:!0}),await _r(Cs(),JSON.stringify(e),{mode:384})}catch{}}var bh=3600*1e3,Ma=10080*60*1e3;function kh(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?Math.min(e,Ma):Ma}async function Ha(e){try{let t=await ph(_n(e)),n=Date.now()-t.mtimeMs;return n<bh&&n<=kh()}catch{return!1}}async function Ua(e,t){await wr(dr(),{recursive:!0}),await _r(_n(e),t,{mode:384}),await zs(_n(e),384)}async function Zs(e){let t=new Set(e),n;try{n=await hh(dr())}catch{return}for(let r of n){if(!r.endsWith(".md"))continue;let s=r.slice(0,-3);if(!t.has(s))try{await Fa(_n(s))}catch{}}}async function za(e,t){await wr(Is(),{recursive:!0});try{if(!(await Gs(jt(e),"utf8")).includes(La))return}catch{}await _r(jt(e),t,{mode:384}),await zs(jt(e),384);let n=await ja();n.includes(e)||await Ba([...n,e])}async function Js(e){let t=new Set([...e,...gh]),n=await ja(),r=new Set([...n,...yh]);for(let s of r)if(!t.has(s))try{if(!(await Gs(jt(s),"utf8")).includes(La))continue;await Fa(jt(s))}catch{}await Ba(n.filter(s=>t.has(s)))}async function Vs(e){try{await wr(_(),{recursive:!0}),await _r(As(),JSON.stringify({at:Date.now(),error:e}),{mode:384}),await zs(As(),384)}catch{}}xr();Ee();Jt();zt();wt();ye();async function Hh(e,t){let n=await G();if(!K()||!n||n.linked===!1){let a=n?.plan??"free";if(e==="GET")return{plan:a,settings:await re()};let l=await rl(t);return{plan:a,settings:l}}let r=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await Be(),o=await be(e,"/api/v1/settings",t,{baseUrl:r,bearer:n.jwt,signingSecret:n.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:8e3});if(!o.ok)throw new Error(`Settings ${e} failed: ${o.status}`);let i=await kt(o);return await Ys(i.settings),i}async function sl(){return Hh("GET")}ye();Ye();var Mc="-command",Fc=3;async function Lc(){try{let{connectDaemon:e}=await Promise.resolve().then(()=>(io(),fl)),t=await e();try{await t.reload()}finally{t.close()}}catch{}}async function jc(e,t){if(!(!t&&await Ha("power"))){try{let n=await Da(e),r=[],s=[];for(let o of n)if(o.slug.endsWith(Mc)){let i=o.slug.slice(0,-Mc.length);await za(i,o.body),s.push(i)}else await Ua(o.slug,o.body),r.push(o.slug);await Zs(r),await Js(s),await Vs(null)}catch(n){await Vs(n instanceof Error?n.message:String(n))}try{await Wa()}catch{}}}function B0(e){try{return new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}function Zn(e,t=0){let n=e.split(".")[1];if(!n)return!0;try{let r=Number(JSON.parse(Buffer.from(n,"base64url").toString("utf8")).exp);return!Number.isFinite(r)||r*1e3<=Date.now()+t}catch{return!0}}async function Gn(e,t){let n=await G();return n&&n.token!==e.token?!1:(await Ms(t),!0)}async function Qt(e){let t=await G();if(!t)return null;if(!K())return t;let n=await Be(),r=t.timeZone??hr(),s={ts:Date.now(),localDate:B0(r),timeZone:r},o;try{o=await be("POST","/api/v1/license/heartbeat",s,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:n.fingerprint,installId:n.installId,timeoutMs:5e3})}catch{return t}if(o.status===401){let d=(t.heartbeatAuthFails??0)+1,m={...t,heartbeatAuthFails:d},p=t.linked??(!!t.email||t.plan==="smart"||t.plan==="pro");if(d>=Fc&&p&&(m.relinkRequired=!0),!await Gn(t,m))return null;if(d>=Fc&&!p){try{await j0(`${_()}/state.replaced.json`,JSON.stringify(t),{mode:384})}catch{}try{return await H0(e)}catch{return null}}return null}if(o.status===451){let d=await G();if(d&&d.token!==t.token)return null;await _a();try{await Zs([]),await Js([])}catch{}return null}if(o.status===426)return await Gn(t,{...t,updateRequired:!0}),null;if(o.status===423)return await Gn(t,{...t,relinkRequired:!0}),null;if(!o.ok){if(o.status===400)try{(await o.json())?.code==="stale_ts"&&await Gn(t,{...t,clockSkewDetected:!0})}catch{}return t}let i;try{i=await kt(o)}catch{return t}let a=i.settingsRevision??0,l=t.lastSettingsRevision??0,c=a>l,f=i.plan!==t.plan,u={...t,jwt:i.jwt,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,lastSettingsRevision:l,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:r,bonusActive:i.bonusActive??!1,...i.bonusResetAt!==void 0?{bonusResetAt:i.bonusResetAt}:{},...i.latestPluginVersion?{latestPluginVersion:i.latestPluginVersion}:{},...Array.isArray(i.allowedFilters)?{allowedFilters:i.allowedFilters.map(X)}:{}};if(c)try{await sl(),u.lastSettingsRevision=a}catch{}if(!await Gn(t,u))return G();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:d}=await Promise.resolve().then(()=>(Rl(),Tl));d()}catch{}(c||f)&&await Lc(),await jc(e,c||f);try{let{flushTelemetry:d}=await Promise.resolve().then(()=>(Yt(),Fl)),{flush:m}=await Promise.resolve().then(()=>(zn(),Dc));await d(e),await m(e)}catch{}return u}var YA=5*6e4;async function H0(e){Ut();let t=await Be(),n=hr(),r={pluginVersion:ee,timeZone:n,...t},s=await be("POST","/api/v1/license/enroll",r,{baseUrl:e,fingerprint:t.fingerprint,installId:t.installId,timeoutMs:4e3});if(!s.ok)throw new Error(`enroll failed ${s.status}`);let o=await kt(s),i={token:o.token,jwt:o.jwt,signingSecret:o.signingSecret,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,installId:t.installId,fingerprint:t.fingerprint,pluginVersion:ee,email:"",timeZone:n,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(o.allowedFilters)&&o.allowedFilters.length>0?{allowedFilters:o.allowedFilters.map(X)}:{}};return await Ms(i),await Lc(),await jc(e,!0),i}Ee();Ee();zn();Yt();ye();var U0=10*6e4,Bc=6e4;function Hc(e){let t=0,n=async()=>{let r=Date.now();if(r-t<U0)return;let s;try{s=await Qt(e)}catch{t=r;return}s&&!Zn(s.jwt,Bc)&&(t=r)};return async()=>{if(!K())return;let r=await G();if(!r)return;if(Zn(r.jwt,Bc)){await n();return}(await Promise.all([Wo(e),To(e)])).includes("auth")&&await n()}}mr();H();Ye();import{randomBytes as iv,randomUUID as Bd}from"node:crypto";import{lstatSync as av,mkdirSync as lv,realpathSync as cv,renameSync as uv,rmSync as fv,writeFileSync as dv}from"node:fs";import{dirname as mv,join as ys}from"node:path";yt();Gt();H();Rn();import{timingSafeEqual as ji}from"node:crypto";import{chmodSync as qS,lstatSync as XS,realpathSync as QS}from"node:fs";import{dirname as ev}from"node:path";import{createServer as tv}from"node:net";var od=qd($u(),1);import{existsSync as d_,readFileSync as m_,writeFileSync as p_,mkdirSync as h_}from"node:fs";import{join as g_}from"node:path";import{fileURLToPath as y_}from"node:url";qr();je();on();Ee();H();di();zn();Yt();pi();H();import{appendFileSync as Xk,mkdirSync as Qk,readFileSync as ew,writeFileSync as tw,renameSync as nw,statSync as rw,readdirSync as c$,rmSync as u$,chmodSync as sw}from"node:fs";import{join as vf}from"node:path";var ow=96*1024,iw=500,m$=168*3600*1e3,aw=120;function xf(){return vf(_(),"sessions")}function lw(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return vf(xf(),`${t}.jsonl`)}function ss(e,t){try{let n=lw(e);Qk(xf(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:t.target.slice(0,aw),...t.fail?{fail:1}:{}});if(Xk(n,`${r}
106
+ `,{mode:384}),sw(n,384),rw(n).size>ow){let s=ew(n,"utf8").split(`
107
+ `).filter(a=>a.trim()!==""),o=s.slice(s.length-iw),i=`${n}.tmp-${process.pid}`;tw(i,`${o.join(`
59
108
  `)}
60
- `,{mode:384}),Sp(i,r)}}catch{}}$t();var Ba=[{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_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"gemini-cli",vars:["GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]}],Fb=[...Ba.map(t=>t.host),"shell"],Pp=new Set(["claude-code","codex"]);function ja(t){return null}function Ua(t=process.env){let e=process.platform,r=e==="darwin"||e==="linux"||e==="win32"?e:"other",n=process.arch;for(let s of Ba)if(s.vars.some(o=>t[o]))return{host:s.host,source:"env",os:r,arch:n,shimRecommended:!Pp.has(s.host)};return{host:"shell",source:"fallback",os:r,arch:n,shimRecommended:!0}}M();dn();Ge();var bt=null,Ht=null;async function Op(){if(bt)return bt;if(Ht)return Ht;let t=pr().then(e=>{if(Ht===t)return bt=e,e;try{e.close()}catch{}return null}).catch(()=>null);return Ht=t,t}var Qn=null,es=!1;async function Dp(){return es||(es=!0,Qn=await Ot()),Qn}async function za(t,e,r){let n=await Dp();if(!n)return null;let s=n.selectFor(t,e,[...r]);return!s||!r.has(V(s.slug))?null:s}function $p(t){return t?{...t,matchRegex:new RegExp(t.match_command)}:null}function Ha(t){Jn(async(e,r)=>{let n=t==="free"?"trial":t,s=r??nr(void 0),o=await Op();if(!o)return za(e,n,s);try{let i=await o.filter(e,n,[...s]);return!i||!s.has(V(i.slug))?null:$p(i)}catch{return za(e,n,s)}})}function Za(){if(Jn(null),bt)try{bt.close()}catch{}bt=null,Ht=null,Qn=null,es=!1}var Va=10*1024*1024,Mp=1024;function Lp(t){let e=Number(t.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(e)&&e>0)return e;let r=Number(t.BASH_MAX_TIMEOUT_MS);return Number.isFinite(r)&&r>6e5?r:6e5}var fw=Lp(process.env);async function Ga({argv:t,stdout:e,stderr:r,exitCode:n,truncated:s,stderrTruncated:o},{yolo:i,env:a,resolver:c,onMissingState:d,deferAccounting:l}){let f=s?`
61
- \u2026 (output truncated at ${Va/1048576}MB)`:"",u=o?`
62
- \u2026 (stderr truncated at ${Va/(1024*1024)}MB)`:"",h=()=>{let m=e+f,w=Buffer.byteLength(m,"utf8");return{stdout:m,stderr:r+u,code:n,filterId:null,rawBytes:w,filteredBytes:w,truncated:s}};try{let m=await L();m||d?.();let w=await re();if(!w.enabled)return h();let _=a.CLAUDE_CODE_SESSION_ID;_&&m?.token&&Fa(_,{tool:"Bash",target:t.join(" "),...n!==0?{fail:1}:{}});let I=m?wa(m):null,k=m?nr(m.allowedFilters,ba(m)):null,T=new Set(w.filters.disabled.map(V)),O=k&&T.size>0?new Set([...k].filter(W=>!T.has(W))):k,D=t.join(" ");m&&!c&&Ha(I);let N=await Yn(D,e,O,{verbosity:w.outputVerbosity,resolver:c,yolo:i,exitCode:n}),z=r,P=0,_e=0;if((i||n===0)&&Buffer.byteLength(r,"utf8")>=(i?1:Mp)){let W=await Yn(D,r,O,{verbosity:w.outputVerbosity,resolver:c,yolo:i,exitCode:n});z=W.output,P=W.rawBytes,_e=W.filteredBytes}let se=N.output;if(!i&&N.filteredBytes<N.rawBytes)try{se=new RegExp(Qi.source,"m").test(N.output)?await ao(e,N.output,a):await io(N.droppedTail??null,N.output,a)}catch{}let ue=se+f,be=z+u,Je=Ua(a).host,F=Na(N.rawBytes+Buffer.byteLength(r,"utf8"),Buffer.byteLength(ue,"utf8")+Buffer.byteLength(be,"utf8"),ja(Je)),U=!1,J=async()=>{if(!U){U=!0;try{$a(F.raw,F.filtered,void 0,!1,Je,"sh",Da(D)),await Cn({cmd:D,filterId:N.filterId,rawBytes:N.rawBytes,filteredBytes:N.filteredBytes,plan:I}),await An({cmd:D,tokensSaved:Math.max(0,Math.round((F.raw-F.filtered)/4)),rawTokens:Math.round(F.raw/4),optimized:N.filterId!=null,telemetryOptIn:w.telemetryOptIn&&(!l||(await re()).telemetryOptIn),sessionId:_,host:Je})}catch{}}};return l?l(J):await J(),{stdout:ue,stderr:be,code:n,filterId:N.filterId,rawBytes:N.rawBytes+P,filteredBytes:N.filteredBytes+_e,truncated:s}}catch{return h()}finally{c||Za()}}import{existsSync as Ka}from"node:fs";import{fileURLToPath as Gp}from"node:url";import{dirname as Wp,join as qa}from"node:path";M();fn();import{appendFileSync as Fp,chmodSync as Bp,mkdirSync as jp,existsSync as Up,readFileSync as hw,rmSync as gw}from"node:fs";import{dirname as zp,join as Hp}from"node:path";var Zp="usage.jsonl";var Wa=2*1024*1024;function Vp(){return Hp(x(),Zp)}function Rr(t,e,r=Vp()){try{let n=zp(r);Up(n)||jp(n,{recursive:!0,mode:448});let s=t.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";Fp(r,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${e?1:0}}
63
- `,{mode:384}),Bp(r,384),hr(r,Wa,Wa/2)}catch{}}var Kp=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"]),qp=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"]),Ja=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),Ya=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Jp=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function Yp(t,e){let r=ts(e);return r==="tail"||r==="journalctl"?Ya.test(t):r==="stern"?!0:Jp.has(r)?/\blogs?\b/.test(t)&&Ya.test(t):!1}var Xa=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Xp=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Qp=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function ts(t){let e=t.lastIndexOf("/");return e===-1?t:t.slice(e+1)}function eh(t){let e=!1,r=!1,n=!1,s=!1;for(let o=0;o<t.length;o++){let i=t[o];if(s){s=!1;continue}if(i==="\\"&&!e){s=!0;continue}if(!r&&!n&&i==="'"){e=!e;continue}if(!e&&!n&&i==='"'){r=!r;continue}if(!e&&!r&&i==="`"){n=!n;continue}if(!e&&!r&&!n&&i===">")return!0}return!1}function Qa(t){let e=[],r="",n=0,s=!1,o=!1,i=!1,a=!1,c=0,d=0,l=()=>{r.length>0&&(e.push({kind:"cmd",text:r}),r="")},f=u=>{l(),e.push({kind:"sep",text:u})};for(;n<t.length;){let u=t[n];if(a){r+=u,a=!1,n+=1;continue}if(u==="\\"&&!s){r+=u,a=!0,n+=1;continue}if(!o&&!i&&u==="'"){s=!s,r+=u,n+=1;continue}if(!s&&!i&&u==='"'){o=!o,r+=u,n+=1;continue}if(!s&&!o&&u==="`"){i=!i,r+=u,n+=1;continue}if(!(s||o||i)){if(u==="$"&&t[n+1]==="{"){r+="${",d+=1,n+=2;continue}if(d>0){u==="{"?d+=1:u==="}"&&(d-=1),r+=u,n+=1;continue}if(u==="$"&&t[n+1]==="("){r+="$(",c+=1,n+=2;continue}if(u==="("){r+="(",c+=1,n+=1;continue}if(c>0){u==="("?c+=1:u===")"&&(c-=1),r+=u,n+=1;continue}if(u===">"&&t[n+1]==="|"){r+=">|",n+=2;continue}if(u==="&"&&t[n+1]==="&"){f("&&"),n+=2;continue}if(u==="&"&&t[n+1]!==">"){let m=r.replace(/\s+$/,""),w=m[m.length-1];if(w!==">"&&w!=="<"&&w!=="&"){f("&"),n+=1;continue}}if(u==="|"&&t[n+1]==="|"){f("||"),n+=2;continue}if(u==="|"&&t[n+1]==="&"){f("|&"),n+=2;continue}if(u===";"&&t[n+1]===";"){let m=t[n+2]==="&";f(m?";;&":";;"),n+=m?3:2;continue}if(u===";"){f(";"),n+=1;continue}if(u===`
64
- `){f(`
65
- `),n+=1;continue}if(u==="|"){f("|"),n+=1;continue}}r+=u,n+=1}return s||o||i||c!==0||d!==0||a?[{kind:"cmd",text:t,unsafe:!0}]:(l(),e)}function th(t){return t.trim().split(/\s+/)[0]??""}function rs(){try{let t=Wp(Gp(import.meta.url)),e=qa(t,"..","bin","tkr-exec");if(process.platform!=="win32"&&Ka(e))return`'${e.replace(/'/g,"'\\''")}'`;let r=qa(t,"..","bin","tkr-exec.js");return Ka(r)?`node '${r.replace(/'/g,"'\\''")}'`:null}catch{return null}}function rh(t,e="tkr-exec"){if(t.includes("<<")||Qp.test(t))return t;let r=Qa(t),n=[];for(let s=0;s<r.length;s++){let o=r[s];if(o.kind==="sep"||o.unsafe){n.push(o.text);continue}let i=o.text.trim();if(!i){n.push(o.text);continue}let a=th(i),c=r[s+1],d=c?.kind==="sep"&&(c.text==="|"||c.text==="|&"),l=c?.kind==="sep"&&c.text==="&";if(i===e||i.startsWith(e)&&/^\s/.test(i.slice(e.length))||Kp.has(a)||qp.has(a)||Ja.has(a)||Ja.has(ts(a))||Xa.test(a)||a.startsWith("(")||a.startsWith("#")||a.startsWith("<")||a.startsWith(">")||Xp.test(i)||Yp(i,a)||a.endsWith(")")||d||l||eh(o.text)||o.text.includes("<(")||o.text.includes(">(")||a==="node"&&i.includes("tkr-exec.js")){n.push(o.text);continue}let f=o.text.match(/^\s*/)?.[0]??"",u=o.text.match(/\s*$/)?.[0]??"";n.push(`${f}${e} ${i}${u}`)}return n.join("")}var nh=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),sh=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"]),oh=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),ih={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|-[^-]*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)/};function ah(t){if(/\$|`|<\(|>\(|\\\r?\n/.test(t)||/>/.test(t.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let e of Qa(t)){if(e.kind==="sep")continue;if(e.unsafe)return!1;let r=e.text.trim().split(/\s+/).filter(Boolean).map(o=>o.replace(/['"\\]/g,""));if(r.length===0)continue;if(r.some(o=>Xa.test(o)))return!1;let n=ts(r[0]);if(n!==r[0])return!1;let s=ih[n];if(s&&r.slice(1).some(o=>s.test(o)))return!1;if(!(n==="git"?oh.has(r[1]??""):sh.has(n)))return!1}return!0}function ec(t,e,r=rs(),n=Rr){if(t.tool_name!=="Bash")return null;let s=t.tool_input??{};if(s.run_in_background)return null;let o=s.command;if(typeof o!="string"||!o||e==="codex"&&Object.keys(s).some(a=>!nh.has(a))||e==="codex"&&!ah(o)||!r)return null;let i=rh(o,r);return n(t.session_id??"unknown",i!==o),i===o?null:JSON.stringify({hookSpecificOutput:e==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...s,command:i}}:{hookEventName:"PreToolUse",updatedInput:{command:i}}})}var Ar=class{constructor(e,r,n=()=>{}){this.limit=e;this.receive=r;this.reserve=n}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(e){if(this.closed)throw new Error("reader closed");let r=0;try{for(;r<e.length&&!this.closed;){if(!this.body){let s=Math.min(4-this.headerBytes,e.length-r);if(e.copy(this.header,this.headerBytes,r,r+s),this.headerBytes+=s,r+=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 n=Math.min(this.body.length-this.bodyBytes,e.length-r);if(e.copy(this.body,this.bodyBytes,r,r+n),this.bodyBytes+=n,r+=n,this.bodyBytes===this.body.length){let s=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(s)}}}catch(n){throw this.close(),n}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function Zt(t){let e=Buffer.allocUnsafe(4);return e.writeUInt32BE(t.length),Buffer.concat([e,t])}function tc(t){if(t.length<16)throw new Error("incomplete captured header");let e=t.readUInt32BE(0),r=t.readUInt32BE(4),n=t.readUInt32BE(8),s=t.readUInt32BE(12);if(e>255||r>3||n>10485760||s>10485760||t.length!==16+n+s)throw new Error("invalid captured output");return{stdout:t.subarray(16,16+n).toString("utf8"),stderr:t.subarray(16+n).toString("utf8"),exitCode:e,truncated:(r&1)!==0,stderrTruncated:(r&2)!==0}}var ph={"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",shell:""},hh=p.object({protocol:p.literal(2),version:p.string().min(1).max(64),token:p.string().regex(/^[0-9a-f]{64}$/),home:p.string().min(1).max(4096),argv:p.array(p.string().max(32768).refine(t=>!t.includes("\0"))).min(1).max(4096),host:p.enum(["claude-code","codex","cursor","cline","aider","gemini-cli","windsurf","copilot","shell"]),sessionId:p.string().max(256).optional(),restoreDisabled:p.boolean(),restoreMaxBytes:p.number().int().positive().max(10485760).optional(),timeoutMs:p.number().int().positive().max(864e5)}).strict(),gh=p.object({kind:p.literal("pre-tool-use"),protocol:p.literal(2),version:p.string().min(1).max(64),token:p.string().regex(/^[0-9a-f]{64}$/),home:p.string().min(1).max(4096),host:p.enum(["claude-code","codex"]),payload:p.record(p.string(),p.unknown())}).strict();function ss(t){if(!t)return!1;let e=Date.now()-t.signedAt;return e>=0&&e<=ar()}async function nc(t){if(process.platform==="win32")throw new Error("native processing unavailable on this platform");if(!/^[0-9a-f]{64}$/.test(t.token))throw new Error("invalid processing authentication");let e=lh(fh(t.path));if(!e.isDirectory()||e.uid!==process.getuid?.()||(e.mode&63)!==0)throw new Error("unsafe processing directory");let r=dh(x()),n=Buffer.from(t.token,"hex"),s=new Set,o=new Set,i=0,a=!1,c=t.maxConnections??4,d=t.maxBufferedBytes??48*1024*1024,l=mh(f=>{if(a||s.size>=c){f.destroy();return}s.add(f);let u="prepare",h=null,m=!1,w=0,_=!1,I,k,T=()=>{i-=w,w=0},O=()=>{clearTimeout(k),z.close(),_||T(),u="closed",f.destroy()},D=P=>{clearTimeout(k),k=setTimeout(O,P),k.unref()},N=P=>{f.write(Zt(Buffer.from(JSON.stringify(P))))},z=new Ar(()=>u==="prepare"?65536:u==="capture"?20971536:u==="delivery"?1:-1,P=>{if(u==="delivery"){if(P.length!==1||P[0]!==1)throw new Error("invalid delivery receipt");u="accounting",t.onActivity?.(),_=!0;let F=(I?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(Zt(Buffer.from([1])))}).catch(()=>O()).finally(()=>{_=!1,f.destroyed&&(T(),s.delete(f)),o.delete(F)});o.add(F);return}if(u==="prepare"){let F=JSON.parse(P.toString("utf8"));if(F?.kind==="pre-tool-use"){let J=gh.parse(F);if(!rc(n,Buffer.from(J.token,"hex"))||J.version!==t.version||J.home!==r){O();return}t.onActivity?.();let W,ic=ec(J.payload,J.host,rs(),(wt,ac)=>{W={sessionId:wt,routed:ac}})??"",is=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:ic}));if(is.length>1024*1024)throw new Error("hook response limit");I=async()=>{let wt=W;W=void 0,wt&&Rr(wt.sessionId,wt.routed)},T(),u="delivery",D(t.processingTimeoutMs??5e3),f.write(Zt(is));return}let U=hh.parse(F);if(!rc(n,Buffer.from(U.token,"hex"))||U.version!==t.version||U.home!==r||!ss(t.getRuntime())){O();return}h=U,t.onActivity?.(),m=ye(),T(),u="capture",D(U.timeoutMs+5e3),N({ok:!0,protocol:2,yolo:m});return}if(u!=="capture"||!h)throw new Error("unexpected processing frame");let _e=tc(P);t.onActivity?.();let se=t.getRuntime();if(!ss(se)){O();return}u="processing",_=!0,D(t.processingTimeoutMs??5e3);let ue={},be=ph[h.host];be&&(ue[be]="1"),h.sessionId!==void 0&&(ue.CLAUDE_CODE_SESSION_ID=h.sessionId),ue.TOKMIZER_CCR_DISABLED=h.restoreDisabled?"1":"0",h.restoreMaxBytes!==void 0&&(ue.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(h.restoreMaxBytes));let Je=Ga({..._e,argv:h.argv},{env:ue,yolo:m,deferAccounting:F=>{I=F},resolver:async(F,U)=>{if(!ss(se))throw new Error("expired processing rules");return se.selectFor(F,"pro",U?[...U]:void 0)}}).then(F=>{if(f.destroyed)return;let U=Buffer.from(F.stdout),J=Buffer.from(F.stderr);if(U.length>10551296||J.length>10551296)throw new Error("processing response limit");let W=Buffer.allocUnsafe(8);W.writeUInt32BE(U.length,0),W.writeUInt32BE(J.length,4),u="delivery",f.write(Zt(Buffer.concat([W,U,J])))}).catch(()=>O()).finally(()=>{_=!1,f.destroyed&&(T(),s.delete(f)),o.delete(Je)});o.add(Je)},P=>{if(i+P>d)throw new Error("processing capacity exceeded");i+=P,w+=P});D(t.prepareTimeoutMs??1e3),f.on("data",P=>{try{z.push(P)}catch{O()}}),f.on("error",O),f.on("close",()=>{_||s.delete(f),O()})});try{await new Promise((f,u)=>{l.once("error",u),l.listen(t.path,()=>{l.off("error",u),f()})}),uh(t.path,384)}catch(f){throw l.close(),f}return{activeConnections:()=>s.size,close:async()=>{a=!0;for(let f of s)f.destroy();await new Promise(f=>l.close(()=>f())),await Promise.allSettled(o)}}}async function oc(t,e){if(process.platform==="win32")return null;let r=wh(x()),n=Ir(r,"run");bh(n,{recursive:!0,mode:448});let s=_h(n);if(!s.isDirectory()||s.uid!==process.getuid?.()||(s.mode&63)!==0)throw new Error("unsafe processing descriptor directory");let o=Ir(Sh(pe().path),`p${sc().slice(0,8)}`);if(Buffer.byteLength(o)>100)throw new Error("processing socket path too long");let i=yh(32).toString("hex"),a=await nc({path:o,token:i,version:q,getRuntime:t,...e?{onActivity:e}:{}}),c=Ir(n,`processing.json.${sc()}.tmp`);try{return Eh(c,JSON.stringify({protocol:2,version:q,home:r,path:o,token:i}),{mode:384,flag:"wx"}),vh(c,Ir(n,"processing.json")),a}catch(d){throw await a.close(),d}finally{xh(c,{force:!0})}}var Vt=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",kh=360*60*1e3,Th=6e4;function Rh(){let t=ti(Vt),e=()=>{t().catch(()=>{})};setTimeout(e,5e3).unref?.(),setInterval(e,Th).unref?.()}function Ah(){let t=()=>{ht(Vt).catch(()=>{})};setTimeout(t,6e4+Math.floor(Math.random()*6e4)).unref?.(),setInterval(t,kh).unref?.()}function Ih(){if(process.env.TOKMIZER_ALLOW_INSPECT==="1")return;let e=(process.execArgv??[]).find(r=>r.startsWith("--inspect")||r==="--inspect-brk"||r.startsWith("--inspect-port"));e&&(process.stderr.write("tkr-daemon: refusing to start with "+e+` (set TOKMIZER_ALLOW_INSPECT=1 to override for development).
109
+ `,{mode:384}),nw(i,n)}}catch{}}wt();St();import{existsSync as g$,readFileSync as cw}from"node:fs";import{join as uw}from"node:path";import fw from"node:os";var dw="tkr-cursor-hook",Ef="preToolUse";function mw(){return uw(fw.homedir(),".cursor","hooks.json")}function pw(e){return typeof e.command=="string"&&e.command.includes(dw)}function hw(e){let t=Z(e.hooks)?e.hooks:{},n=Array.isArray(t[Ef])?t[Ef]:[];return{hooks:t,entries:n}}function Tf(){try{let e=JSON.parse(cw(mw(),"utf8"));return hw(e).entries.some(pw)}catch{return!1}}St();import{existsSync as S$,readFileSync as gw}from"node:fs";import{join as yw}from"node:path";import bw from"node:os";var kw="tkr-gemini-hook",Rf="BeforeTool";function ww(){return yw(process.env.GEMINI_CLI_HOME||bw.homedir(),".gemini","settings.json")}function _w(e){return typeof e.command=="string"&&e.command.includes(kw)}function Sw(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(_w)}function vw(e){let t=Z(e.hooks)?e.hooks:{},n=Array.isArray(t[Rf])?t[Rf]:[];return{hooks:t,groups:n}}function Af(){try{let e=JSON.parse(gw(ww(),"utf8"));return vw(e).groups.some(t=>Sw(t)!=null)}catch{return!1}}import{dirname as z$,join as de}from"node:path";import Nw from"node:os";import{existsSync as A$,accessSync as $$,constants as C$,readFileSync as xw}from"node:fs";Xe();var Ew='"rewrite", "--host"';function Tw(e){return e.includes(Ew)}function $f(e){try{return Tw(xw(e,"utf8"))}catch{return!1}}St();import{readFile as If,writeFile as Rw,rename as Aw,mkdir as $w,copyFile as Cw}from"node:fs/promises";import{existsSync as Vn,readFileSync as Of}from"node:fs";import{dirname as Iw,join as hi}from"node:path";import Pf from"node:os";var Nf="tokmizer-rewrite",Wn="tokmizer-rewrite";function Yn(){return hi(process.env.VIBE_HOME||hi(Pf.homedir(),".vibe"),"hooks.toml")}function Cf(e){return JSON.stringify(e)}function Ow(e){return["[[hooks]]",`name = ${Cf(Nf)}`,'type = "pre_tool"','match = "bash"',`command = ${Cf(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
110
+ `)}function gi(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 Kn(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Nf}"\\s*$`,"m").test(e)}async function Df(e,t){try{await $w(Iw(e),{recursive:!0}),Vn(e)&&!Vn(`${e}.tkr-bak`)&&await Cw(e,`${e}.tkr-bak`);let n=`${e}.tmp-${process.pid}`;return await Rw(n,t),await Aw(n,e),!0}catch{return!1}}function Mf(){try{return gi(Of(Yn(),"utf8")).some(Kn)}catch{return!1}}async function Ff(e){let t=Yn(),n="";try{Vn(t)&&(n=await If(t,"utf8"))}catch{return"error"}let r=Ow(e),s=gi(n),o=s.filter(Kn);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!Kn(l)).join("").trimEnd(),a=i?`${i}
111
+
112
+ ${r}`:r;return await Df(t,a)?o.length?"updated":"added":"error"}async function Lf(){let e=Yn();if(!Vn(e))return"absent";let t;try{t=await If(e,"utf8")}catch{return"error"}let n=gi(t);if(!n.some(Kn))return"absent";let r=n.filter(o=>!Kn(o)).join("").trimEnd(),s=r?`${r}
113
+ `:"";return await Df(e,s)?"removed":"error"}function qn(){return hi(Pf.homedir(),".gemini","config","hooks.json")}function Pw(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function jf(){try{let e=JSON.parse(Of(qn(),"utf8"));return Z(e)&&Z(e[Wn])}catch{return!1}}async function Bf(e){let t=qn(),n=await Ae(t);if(!n)return"error";let r=Pw(e),s=n[Wn];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Wn]=r,await $e(t,n)?s===void 0?"added":"updated":"error")}async function Hf(){let e=qn();if(!Vn(e))return"absent";let t=await Ae(e);return t?Wn in t?(delete t[Wn],await $e(e,t)?"removed":"error"):"absent":"error"}var Xn=()=>Nw.homedir(),yi=()=>process.env.XDG_CONFIG_HOME||de(Xn(),".config"),Uf=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:de(yi(),"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:de(yi(),"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:de(yi(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:Yn,installed:Mf,ensure:Ff,remove:Lf,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:qn,installed:jf,ensure:Bf,remove:Hf,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=de(Xn(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:de(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:de(process.env.PI_CODING_AGENT_DIR||de(Xn(),".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:de(Xn(),".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=de(process.env.HERMES_HOME||de(Xn(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:de(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function zf(e){return e.kind==="hook"?e.installed():$f(e.files()[0].target)}St();import{existsSync as Si,readFileSync as Bw}from"node:fs";import{join as Q}from"node:path";import Hw from"node:os";St();import{existsSync as Dw,readFileSync as Mw}from"node:fs";function bi(e,t){return Z(e)&&typeof e.command=="string"&&e.command.includes(t)}function Gf(e){return e.path??(e.nested?["hooks"]:[])}function Zf(e,t){let n=e;for(let r of Gf(t))Z(n[r])||(n[r]={}),n=n[r];return n}function Jf(e,t){let n=e;for(let s of Gf(t))n=Z(n)?n[s]:void 0;if(!Z(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Fw(e){return Z(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Vf(e,t){return(t.matcher===void 0?e:e.flatMap(Fw)).filter(r=>bi(r,t.mark))}function Wf(e,t){return Vf(Jf(e,t),t).length>0}function ki(e,t){try{let n=JSON.parse(Mw(e,"utf8"));return Z(n)&&Wf(n,t)}catch{return!1}}function Lw(e,t,n){let r=Zf(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Vf(s,t)[0];if(o)return o.command===n?"present":(o.command=n,"updated");let i=t.entry(n);return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function jw(e,t){if(!Wf(e,t))return!1;let n=Zf(e,t),r=Jf(e,t),s=t.matcher===void 0?r.filter(o=>!bi(o,t.mark)):r.map(o=>Z(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!bi(i,t.mark))}:o).filter(o=>!Z(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function wi(e,t,n){let r=await Ae(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Lw(r,t,n);return s==="present"||await $e(e,r)?s:"error"}async function os(e,t){if(!Dw(e))return"absent";let n=await Ae(e);return n?jw(n,t)?await $e(e,n)?"removed":"error":"absent":"error"}function Ie(){return Hw.homedir()}function Xf(e){return e.version===void 0&&(e.version=1),e.version===1}function Uw(e,t,n){return Promise.all(e.map(r=>wi(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function zw(e,t){return Promise.all(e.map(n=>os(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Rt(e,t){return{...e,installed:()=>e.files().some(n=>ki(n,t)),ensure:n=>Uw(e.files(),t,n),remove:()=>zw(e.files(),t)}}var Gw={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Xf};function Zw(){return Q(process.env.COPILOT_HOME||Q(Ie(),".copilot"),"hooks","tokmizer.json")}var Jw={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Xf};function Vw(){let e=[Q(Ie(),".trae","hooks.json")];return Si(Q(Ie(),".trae-cn"))&&e.push(Q(Ie(),".trae-cn","hooks.json")),e}var Ww={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Kw(){return Q(process.env.QWEN_HOME||Q(Ie(),".qwen"),"settings.json")}var Yw={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function qw(){return Q(process.env.XDG_CONFIG_HOME||Q(Ie(),".config"),"crush","crush.json")}var Xw={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Qw(){return Q(Ie(),".junie","config.json")}var e_={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:e=>(e.hooks===void 0&&(e.hooks={}),Z(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||Z(e.hooks.events)):!1)};function t_(){return Q(Ie(),".zcode","cli","config.json")}var n_={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function r_(){return Q(Ie(),".grok","hooks","tokmizer.json")}var s_="tkr-droid-hook",vi={mark:s_,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},o_={...vi,nested:!0};function _i(){return Q(Ie(),".factory")}function is(){return[{file:Q(_i(),"hooks.json"),spec:vi},{file:Q(_i(),"hooks","hooks.json"),spec:vi},{file:Q(_i(),"settings.json"),spec:o_}]}function Kf(e){try{let t=JSON.parse(Bw(e,"utf8"));return Z(t)?t:null}catch{return null}}function Yf(e,t){let n=t?e?.hooks:e;return Z(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function qf(){let[e,t,n]=is(),r=Si(e.file)?e:Si(t.file)?t:null;return r&&Yf(Kf(r.file),!1)?r:Yf(Kf(n.file),!0)?n:r??e}var i_={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[qf().file],installed:()=>is().some(e=>ki(e.file,e.spec)),ensure:async e=>{let t=qf(),n=await wi(t.file,t.spec,e);return n==="error"||await Promise.all(is().filter(r=>r.file!==t.file).map(r=>os(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(is().map(t=>os(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Qf=[Rt({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:()=>[Zw()]},Gw),i_,Rt({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Vw},Jw),Rt({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Kw()]},Ww),Rt({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[qw()]},Yw),Rt({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Qw()]},Xw),Rt({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[t_()]},e_),Rt({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:()=>[r_()]},n_)];var td=[{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:[]}],xi=[...td.map(e=>e.host),"shell"],a_=new Set(["claude-code","codex"]),l_={cursor:{installed:Tf,setup:"tkr setup-cursor"},"gemini-cli":{installed:Af,setup:"tkr setup-gemini"},...Object.fromEntries(Uf.map(e=>[e.host,{installed:()=>zf(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Qf.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function ed(e){return a_.has(e)||(l_[e]?.installed()??!1)}function as(e){return null}function ls(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&&xi.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!ed(o)}}for(let o of td)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!ed(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}Tr();Xe();H();Ri();xr();Xt();Rn();Xe();ye();var rd=10*1024*1024,sd=1024,b_=6e4;function id(){try{if(!K())return;let e=process.env.TOKMIZER_TKR_BIN||y_(new URL("../bin/tkr.js",import.meta.url));if(!Re()&&!d_(e))return;let t=g_(_(),"enroll-kick");try{let o=Number(m_(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<b_)return}catch{}h_(_(),{recursive:!0}),p_(t,String(Date.now()));let[n,...r]=_t(e);(0,od.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore"}).unref()}catch{}}function k_(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}var zC=k_(process.env);async function ad({argv:e,stdout:t,stderr:n,exitCode:r,truncated:s,stderrTruncated:o},{yolo:i,env:a,resolver:l,onMissingState:c,deferAccounting:f}){let u=s?`
114
+ \u2026 (output truncated at ${rd/1048576}MB)`:"",d=o?`
115
+ \u2026 (stderr truncated at ${rd/(1024*1024)}MB)`:"",m=()=>{let p=t+u,k=Buffer.byteLength(p,"utf8");return{stdout:p,stderr:n+d,code:r,filterId:null,rawBytes:k,filteredBytes:k,truncated:s}};try{let p=await G();p||c?.();let k=await re();if(!k.enabled)return m();let y=a.CLAUDE_CODE_SESSION_ID;y&&p?.token&&ss(y,{tool:"Bash",target:e.join(" "),...r!==0?{fail:1}:{}});let C=p?Qr(p):null,x=p?sn(p.allowedFilters,Xr(p)):null,E=new Set(k.filters.disabled.map(X)),I=x&&E.size>0?new Set([...x].filter(T=>!E.has(T))):x,O=e.join(" ");p&&!l&&cs(C);let F=await an(O,t,I,{verbosity:k.outputVerbosity,resolver:l,yolo:i,exitCode:r}),W=n,j=0,M=0;if((i||r===0)&&Buffer.byteLength(n,"utf8")>=(i?1:sd)){let T=await an(O,n,I,{verbosity:k.outputVerbosity,resolver:l,yolo:i,exitCode:r});W=T.output,j=T.rawBytes,M=T.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=sd){let T=await an(O,n,I,{verbosity:k.outputVerbosity,resolver:l,exitCode:r});if(T.failureSummary){try{W=await $n(T.droppedTail??null,T.output,a)}catch{W=T.output}j=T.rawBytes,M=T.filteredBytes}}let J=F.output;if(!i&&F.filteredBytes<F.rawBytes)try{J=new RegExp(Mr.source,"m").test(F.output)?await vr(t,F.output,a,{label:ln(O)}):await $n(F.droppedTail??null,F.output,a,{raw:s?null:t,label:ln(O)})}catch{}let V=J+u,Oe=W+d,me=ls(a).host,B=rs(F.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(V,"utf8")+Buffer.byteLength(Oe,"utf8"),as(me)),U=!1,z=async()=>{if(!U){U=!0;try{ts(B.raw,B.filtered,void 0,!1,me,"sh",ln(O),process.cwd(),ns(F)),await Un({cmd:O,filterId:F.filterId,rawBytes:F.rawBytes,filteredBytes:F.filteredBytes,plan:C}),await Mn({cmd:O,tokensSaved:Math.max(0,Math.round((B.raw-B.filtered)/4)),rawTokens:Math.round(B.raw/4),optimized:F.filterId!=null,telemetryOptIn:k.telemetryOptIn&&(!f||(await re()).telemetryOptIn),sessionId:y,host:me})}catch{}}};return f?f(z):await z(),{stdout:V,stderr:Oe,code:r,filterId:F.filterId,rawBytes:F.rawBytes+j,filteredBytes:F.filteredBytes+M,truncated:s}}catch{return m()}finally{l||us()}}import{existsSync as ms,readFileSync as $i,readdirSync as Ci}from"node:fs";import{homedir as un}from"node:os";import{fileURLToPath as A_}from"node:url";import{dirname as gd,join as L,resolve as $_}from"node:path";H();ao();import{appendFileSync as w_,chmodSync as __,mkdirSync as S_,existsSync as v_,readFileSync as JC,rmSync as VC}from"node:fs";import{dirname as x_,join as E_}from"node:path";var T_="usage.jsonl";var ld=2*1024*1024;function R_(){return E_(_(),T_)}function fs(e,t,n=R_()){try{let r=x_(n);v_(r)||S_(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";w_(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
116
+ `,{mode:384}),__(n,384),$r(n,ld,ld/2)}catch{}}Xe();var C_=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"]),I_=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"]),cd=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ud="(?:dev|start|serve|watch|preview)",O_=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ud}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ud}(?:\\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)`),P_=/(?:^|\s)--watch(?:\s|=|$)/;function N_(e){return O_.test(e)&&!P_.test(e)}var D_=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,M_=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,yd=3;function bd(e){let t=D_.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&&M_.test(a)?null:{script:a,start:s,end:o,quote:r}}var F_=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function L_(e){return Oi(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=wd(n.text);return r!==""&&!F_.has(r)&&!Ii.test(r)}).length>1}function j_(e,t,n){if(n>=yd)return null;let r=bd(e);if(!r)return null;let{script:s,start:o,end:i,quote:a}=r,l=_d(s,t,n+1);if(l===s||a==='"'&&/["$`]/.test(l))return null;let c=a==="'"?l.replace(/'/g,"'\\''"):l,f=`${e.slice(0,o)}${c}${e.slice(i)}`;return L_(s)?`${t} ${f}`:f}var fd=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,B_=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function H_(e,t){let n=ps(t);return n==="tail"||n==="journalctl"?fd.test(e):n==="stern"?!0:B_.has(n)?/\blogs?\b/.test(e)&&fd.test(e):!1}var Ii=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,U_=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,z_=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function ps(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function kd(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 dd(e){let t=kd(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Oi(e){let t=kd(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 c=r.replace(/\s+$/,""),f=c[c.length-1];if(f!==">"&&f!=="<"&&f!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let c=e[s+2]==="&";i(c?";;&":";;",c?3:2);continue}if(a===";"||a===`
117
+ `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function wd(e){return e.trim().split(/\s+/)[0]??""}function Pi(e,t=process.platform){try{let n=gd(A_(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let a=L(n,"..","bin","tkr-exec.exe");if(ms(a))return`'${a.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`}let o=L(n,"..","bin","tkr-exec");if(!r&&ms(o))return`${s}'${o.replace(/'/g,"'\\''")}'`;if(Re()){let a=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${a.replace(/'/g,"'\\''")}' exec`}let i=L(n,"..","bin","tkr-exec.js");return ms(i)?`${s}node '${i.replace(/'/g,"'\\''")}'`:null}catch{return null}}function G_(e,t="tkr-exec"){return _d(e,t,0)}function _d(e,t,n){if(e.includes("<<")||z_.test(e))return e;let r=Oi(e),s=[];for(let o=0;o<r.length;o++){let i=r[o];if(i.kind==="sep"||i.unsafe){s.push(i.text);continue}let a=i.text.trim();if(!a){s.push(i.text);continue}let l=wd(a),c=r[o+1],f=c?.kind==="sep"&&(c.text==="|"||c.text==="|&"),u=c?.kind==="sep"&&c.text==="&",d=!f&&!u&&!dd(i.text)&&!i.text.includes("<(")&&!i.text.includes(">(")?j_(a,t,n):null;if(d!==null){s.push(`${i.text.match(/^\s*/)?.[0]??""}${d}${i.text.match(/\s*$/)?.[0]??""}`);continue}if(a===t||a.startsWith(t)&&/^\s/.test(a.slice(t.length))||C_.has(l)||I_.has(l)||(cd.has(l)||cd.has(ps(l)))&&!N_(a)||Ii.test(l)||l.startsWith("(")||l.startsWith("#")||l.startsWith("<")||l.startsWith(">")||U_.test(a)||H_(a,l)||l.endsWith(")")||f||u||dd(i.text)||i.text.includes("<(")||i.text.includes(">(")||l==="node"&&a.includes("tkr-exec.js")){s.push(i.text);continue}let m=i.text.match(/^\s*/)?.[0]??"",p=i.text.match(/\s*$/)?.[0]??"";s.push(`${m}${t} ${a}${p}`)}return s.join("")}var Z_=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),J_=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"]),V_=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),W_={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|-[^-]*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/},ds=["test","run test","run build","run lint","run typecheck"],K_={npm:new Set(ds),pnpm:new Set([...ds,"build","lint","typecheck"]),yarn:new Set([...ds,"build","lint","typecheck"]),bun:new Set(ds),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"])},Y_=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Sd(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 Oi(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<yd?bd(r.text.trim()):null;if(s){if(!Sd(s.script,t,n+1))return!1;continue}let o=r.text.trim().split(/\s+/).filter(Boolean).map(c=>c.replace(/['"\\]/g,""));if(o.length===0)continue;if(o.some(c=>Ii.test(c)))return!1;let i=ps(o[0]);if(i!==o[0])return!1;let a=W_[i];if(a&&o.slice(1).some(c=>a.test(c)))return!1;if((i==="git"?V_.has(o[1]??""):J_.has(i))||t&&Y_.has(i))continue;let l=t?K_[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function vd(e,t,n=Pi(t),r=fs,s=Ni()){if(e.tool_name!=="Bash")return null;let o=e.tool_input??{};if(o.run_in_background)return null;let i=o.command;if(typeof i!="string"||!i||t==="codex"&&Object.keys(o).some(f=>!Z_.has(f)))return null;let a=typeof e.cwd=="string"&&e.cwd?e.cwd:o.workdir,l=typeof a=="string"&&a?a:void 0,c=gS(i,{host:t,sessionId:e.session_id??"unknown",cwd:l,claudeDirs:s},n,r);return c?JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...o,command:c}}:{hookEventName:"PreToolUse",updatedInput:{command:c}}}):null}function q_(e,t){if(!ms(e))return"missing";try{let n=$i(e,"utf8");return JSON.parse(t?xd(n):n)}catch{return"unreadable"}}function xd(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]!==`
118
+ `;)r++;t+=`
119
+ `}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 hs(e){let t=[],n=$_(e);for(;;){t.push(n);let r=gd(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=[L(e,"managed-settings.json")];try{for(let n of Ci(L(e,"managed-settings.d")))n.endsWith(".json")&&t.push(L(e,"managed-settings.d",n))}catch{return t}return t}function tr(e,t,n,r){let s=[];for(let o of e){let i=q_(o,t);if(i!=="missing"&&(i==="unreadable"||!_e(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function er(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Ni(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Q_(e,t){let n=[L(un(),".claude"),t.configDir].filter(o=>!!o),r=[t.projectDir,...hs(e)].filter(o=>!!o),s=[...X_(),...n.flatMap(o=>[L(o,"settings.json"),L(o,"settings.local.json")]),...r.flatMap(o=>[L(o,".claude","settings.json"),L(o,".claude","settings.local.json")])];return tr(s,!1,(o,i)=>{let a=o.permissions;if(a===void 0)return!0;if(!_e(a))return!1;for(let l of["deny","ask"]){let c=er(a[l]);if(!c)return!1;for(let f of c){let u=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(f);u&&i.push(fn((u[1]??"*").replace(/:\*$/," *")))}}return!0},!0)}function eS(e){let t=[L(un(),".cursor","cli-config.json"),...hs(e).map(n=>L(n,".cursor","cli.json"))];return tr(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!_e(s))return!1;let o=er(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]??"*",c=l.indexOf(":");r.push(fn(c===-1?`${l} *`:`${l.slice(0,c)} ${l.slice(c+1)}`))}return!0},!1)}function tS(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Ed=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function nS(e,t){let n=e.tools;if(n!==void 0&&!_e(n))return!1;let r=[er(e.excludeTools),er(_e(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Ed.exec(o);i&&t.push(fn(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function md(e){try{return JSON.parse(e)}catch{return null}}function rS(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]??md(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?md(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function sS(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 c=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!c)continue;let f=rS(c[2]);if(f===null)return!1;r[c[1]]=f}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Ed.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(fn(`${l}*`));for(let l of a){let c;try{c=new RegExp(l)}catch{return!1}t.push(f=>c.test(JSON.stringify({command:f}))||Di(c,f))}}return!0}function pd(e){try{return Ci(e).filter(t=>t.endsWith(".toml")).map(t=>L(e,t))}catch{return[]}}function oS(e){let t=tS(),n=[L(t,"system-defaults.json"),L(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,L(un(),".gemini","settings.json"),...hs(e).map(s=>L(s,".gemini","settings.json"))].filter(s=>!!s),r=tr(n,!0,nS,!1);if(r==="unreadable")return r;for(let s of[...pd(L(un(),".gemini","policies")),...pd(L(t,"policies"))]){let o;try{o=$i(s,"utf8")}catch{return"unreadable"}if(!sS(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(!_e(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(!_e(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(fn(s.replace(/\?/g,"*")))}}return!0}function hd(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(!_e(r))return!1;for(let s of Object.values(r))if(_e(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=Ci(L(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test($i(L(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function aS(e){let t=L(process.env.XDG_CONFIG_HOME||L(un(),".config"),"opencode"),n=hs(e),r=[t,...n.map(a=>L(a,".opencode"))];if(iS(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>L(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>L(a,l)),...s.slice(0,2).map(l=>L(a,".opencode",l))])].filter(a=>!!a),i=tr(o,!0,hd,!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(xd(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Ai(l,i.matchers):_e(l)&&hd(l,i.matchers)))return"unreadable"}return i}function lS(){return tr([L(un(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!_e(n))return!1;for(let r of["deny","ask"]){let s=er(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(fn(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(c=>Di(l,c))}}return!0},!1)}function _e(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function cS(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(cS).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var fS=512;function dS(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(ps)]}function Di(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of dS(t)){if(n.length>fS)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function fn(e){let t=uS(e);return n=>Di(t,n)}var mS={"claude-code":Q_,cursor:eS,"gemini-cli":oS,opencode:aS,antigravity:lS},pS=new Set(["codex"]);function hS(e,t,n,r=Ni()){let s=mS[t],o=s?s(n??process.cwd(),r):{matchers:[],complete:!1};return o==="unreadable"||o.matchers.some(i=>i(e))?!1:o.complete||Sd(e,!pS.has(t))}function gS(e,t,n,r){if(!n)return null;let s=hS(e,t.host,t.cwd,t.claudeDirs??Ni())?G_(e,n):e;return r(t.sessionId,s!==e),s===e?null:s}H();Ee();import{existsSync as $S,writeFileSync as CS,appendFileSync as IS,statSync as OS}from"node:fs";import{join as Nd}from"node:path";H();import{readFileSync as yS}from"node:fs";import{join as bS}from"node:path";function Td(){try{return JSON.parse(yS(bS(_(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}H();import{createHash as kS}from"node:crypto";import{appendFileSync as wS,chmodSync as _S,mkdirSync as SS,readFileSync as vS,rmSync as xS,statSync as ES}from"node:fs";import{join as Rd}from"node:path";var TS=256*1024,RS=80;function AS(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Rd(_(),"sessions",`${t}.seen`)}function Mi(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,RS)}function Ad(e,t,n,r){try{let s=AS(e),o=Mi(t),i=kS("sha256").update(n).digest("hex").slice(0,32),a="";try{a=vS(s,"utf8")}catch{}for(let l of a.split(`
120
+ `)){let[c,f,u]=l.split(" ");if(c===o&&f===i)return{cmd:u??""}}SS(Rd(_(),"sessions"),{recursive:!0,mode:448}),wS(s,`${o} ${i} ${Mi(r)}
121
+ `,{mode:384}),_S(s,384),ES(s).size>TS&&xS(s,{force:!0})}catch{}return null}function $d(e,t){return`[same output as \`${Mi(e)}\` earlier in this session, unchanged, ~${Math.round(t/4)} tokens]`}Rn();var PS=new Set(["Read","Grep","Glob","Bash"]),NS=10*1024*1024,DS=1024,MS=40,FS=/^… \(?\d+ more lines omitted\)?$/,LS=/^\[tkr restore [0-9a-f]{8,64}\]$/,jS=/^\d+F \d+D(?: in .+\/)?:$|^\S.*\/ \(\d+(?:, \*\.[^)]+)?\): \S/,BS=/^… \(\d+ more lines omitted\)$/m,HS="[tkr: partial view; folded or omitted lines are not file text. Read with offset/limit for the exact lines before Edit or Write]";function US(e){return FS.test(e)||LS.test(e)||e==="[YOLO: omitted]"}function Dd(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)return{...e,stdout:t,stderr:""};if(Array.isArray(e.filenames)){let r=new Set(e.filenames),s=n==="Glob",o=t.split(`
122
+ `).filter(i=>r.has(i)||US(i)||s&&jS.test(i));return{...e,filenames:o}}return t}function zS(e,t,n){return JSON.stringify({...n?{systemMessage:n}:{},hookSpecificOutput:{hookEventName:"PostToolUse",updatedToolOutput:Dd(e.tool_response,t,e.tool_name)}})}var GS=100,Fi=null;function ZS(){let e=Fi;return Fi=null,e}function Od(e){let t=Math.round(e/4);return t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function JS(e,t){try{if(Math.round((e-t)/4)<GS)return;let n=Nd(_(),"first-save");if($S(n))return;CS(n,String(Date.now())),Fi=`Tokmizer just optimized its first command output here: ~${Od(e)} tokens down to ~${Od(t)}. Watch it add up: /tkr-gain`}catch{}}function Pd(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(`
123
+ `):Array.isArray(e.filenames)?e.filenames.join(`
124
+ `):null:""}var VS=64*1024;function WS(e,t){try{if(!t||typeof t!="object")return;let n=Nd(_(),"drift.jsonl");try{if(OS(n).size>VS)return}catch{}let r=Object.keys(t).slice(0,12);IS(n,`${JSON.stringify({t:Math.floor(Date.now()/1e3),tool:e,keys:r})}
125
+ `)}catch{}}function KS(e){let t=e.tool_name??"tool",n=e.tool_input??{};return n.command?n.command.split(`
126
+ `)[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()}async function YS(e,t={}){let n=Te();if(!e.tool_name||!PS.has(e.tool_name))return null;let r=e.tool_name==="Bash"?e.tool_input?.command??"":"",s=r.includes("tkr-exec");if(/\btkr(?:\.js)?\s+restore\b/.test(r))return null;let o=await G();if(!Td())return null;if(e.session_id&&!s&&o?.token){let T=e.tool_input??{},ie=T.command??T.file_path??T.pattern??T.path??"";ie&&ss(e.session_id,{tool:e.tool_name,target:ie.split(`
127
+ `)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let i=Pd(e.tool_response);if(i==null)return WS(e.tool_name,e.tool_response),null;if(!i)return null;let a=Buffer.byteLength(i,"utf8");if(a>NS||e.tool_name==="Bash"&&a<DS||e.tool_name==="Glob"&&i.split(`
128
+ `).length<MS||s)return null;let{loadSettingsCache:l,processOutput:c,captureForRestore:f,captureOriginalForRestore:u,FOLD_MARKER_RE:d,resolveAllowedFilters:m,gatingPlan:p,graceExceeded:k,recordEvent:y,recordTelemetry:C,recordStat:x,countedSaving:E,statCmdLabel:I,statOutcome:O,installDaemonResolver:F,closeDaemonResolver:W}=await Promise.resolve().then(()=>(Id(),Cd)),j=await l();if(!j.enabled)return null;let{slugKey:M}=await Promise.resolve().then(()=>(je(),ba)),J=o?.token?p(o):null;!t.resolver&&J&&F(J);let V=o?.token?m(o.allowedFilters,k(o)):null,Oe=new Set(j.filters.disabled.map(M)),me=V&&Oe.size>0?new Set([...V].filter(T=>!Oe.has(T))):V,B=KS(e),U=`${e.tool_name.toLowerCase()}-tool`,z=`${U}: ${B}`;try{let T=await c(z,i,me,{verbosity:j.outputVerbosity,resolver:t.resolver,yolo:n,exitCode:e.tool_name==="Bash"?void 0:0});if(T.filterId!=null&&e.tool_name==="Bash"&&e.session_id){let zi=Ad(e.session_id,e.agent_id??"main",i,r.split(`
129
+ `)[0]??"");if(zi){let Gi=$d(zi.cmd,a);return n?Gi:await u(i,Gi)}}let ie=new RegExp(d.source,"m"),At=e.tool_name==="Bash"?I(e.tool_input?.command??""):e.tool_name,rr=e.tool_name==="Read"&&!n&&(ie.test(T.output)||BS.test(T.output))?`${T.output}${T.output.endsWith(`
130
+ `)?"":`
131
+ `}${HS}`:T.output,pe;T.filteredBytes>=T.rawBytes?pe=null:n?pe=T.output:e.tool_name==="Glob"||ie.test(T.output)?pe=await u(i,rr,void 0,{label:At}):pe=await f(T.droppedTail??null,rr,void 0,{raw:i,label:At}),n&&pe!=null&&(pe=Pd(Dd(e.tool_response,pe,e.tool_name)));let Ud=pe==null?T.rawBytes:Buffer.byteLength(pe,"utf8"),bs=ls().host,et=E(T.rawBytes,Ud,as(bs));pe!=null&&JS(et.raw,et.filtered);let zd=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),Gd=e.tool_name==="Bash"?"sh":void 0,ks=t.deferAccounting,Hi=!1,Ui=async()=>{Hi||(Hi=!0,await y({cmd:U,filterId:T.filterId,rawBytes:T.rawBytes,filteredBytes:T.filteredBytes,plan:J}),x(et.raw,et.filtered,void 0,!1,bs,Gd,At,zd,O(T)),await C({cmd:U,tokensSaved:Math.round((et.raw-et.filtered)/4),rawTokens:Math.round(et.raw/4),optimized:T.filterId!=null,telemetryOptIn:j.telemetryOptIn&&(!ks||(await l()).telemetryOptIn),host:bs}))};return ks?ks(Ui):await Ui(),pe}finally{t.resolver||W()}}async function Md(e,t={}){let n=await YS(e,t);return n?zS(e,n,ZS()??void 0):""}var gs=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 dn(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function Fd(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}}var nv={"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:""},rv=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(xi),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(),sv=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()}).strict(),ov=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 mn(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=br()}async function jd(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 u=XS(ev(e.path));if(!u.isDirectory()||u.uid!==process.getuid?.()||(u.mode&63)!==0)throw new Error("unsafe processing directory")}let n=QS(_()),r=Buffer.from(e.token,"hex"),s=new Set,o=new Set,i=0,a=!1,l=e.maxConnections??4,c=e.maxBufferedBytes??48*1024*1024,f=tv(u=>{if(a||s.size>=l){u.destroy();return}s.add(u);let d="prepare",m=null,p=!1,k=0,y=!1,C,x,E=()=>{i-=k,k=0},I=()=>{clearTimeout(x),W.close(),y||E(),d="closed",u.destroy()},O=j=>{clearTimeout(x),x=setTimeout(I,j),x.unref()},F=j=>{u.write(dn(Buffer.from(JSON.stringify(j))))},W=new gs(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,j=>{if(d==="delivery"){if(j.length!==1||j[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),y=!0;let B=(C?.()??Promise.resolve()).then(()=>{u.destroyed||u.end(dn(Buffer.from([1])))}).catch(()=>I()).finally(()=>{y=!1,u.destroyed&&(E(),s.delete(u)),o.delete(B)});o.add(B);return}if(d==="hook-payload"){let B=e.getRuntime();if(!mn(B)){I();return}let U=JSON.parse(j.toString("utf8"));if(!U||typeof U!="object"||Array.isArray(U))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",y=!0,O(e.processingTimeoutMs??5e3);let z=Md(U,{inferCwd:!1,deferAccounting:T=>{C=T},resolver:async(T,ie)=>{if(!mn(B))throw new Error("expired processing rules");return B.selectFor(T,"pro",ie?[...ie]:void 0)}}).then(T=>{if(u.destroyed)return;let ie=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:T}));if(ie.length>20971536)throw new Error("hook response limit");E(),d="delivery",O(e.processingTimeoutMs??5e3),u.write(dn(ie))}).catch(()=>I()).finally(()=>{y=!1,u.destroyed&&(E(),s.delete(u)),o.delete(z)});o.add(z);return}if(d==="prepare"){let B=JSON.parse(j.toString("utf8"));if(B?.kind==="post-tool-use"){let z=ov.parse(B);if(!ji(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n||!mn(e.getRuntime())){I();return}e.onActivity?.(),E(),d="hook-payload",O(e.prepareTimeoutMs??1e3),F({ok:!0,protocol:2});return}if(B?.kind==="pre-tool-use"){let z=sv.parse(B);if(!ji(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n){I();return}e.onActivity?.();let T,ie=vd(z.payload,z.host,Pi(),($t,rr)=>{T={sessionId:$t,routed:rr}},{projectDir:z.claudeProjectDir,configDir:z.claudeConfigDir})??"",At=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:ie}));if(At.length>1024*1024)throw new Error("hook response limit");C=async()=>{let $t=T;T=void 0,$t&&fs($t.sessionId,$t.routed)},E(),d="delivery",O(e.processingTimeoutMs??5e3),u.write(dn(At));return}let U=rv.parse(B);if(!ji(r,Buffer.from(U.token,"hex"))||U.version!==e.version||U.home!==n||!mn(e.getRuntime())){I();return}m=U,e.onActivity?.(),p=Te(),E(),d="capture",O(U.timeoutMs+5e3),F({ok:!0,protocol:2,yolo:p});return}if(d!=="capture"||!m)throw new Error("unexpected processing frame");let M=Fd(j);e.onActivity?.();let J=e.getRuntime();if(!mn(J)){I();return}d="processing",y=!0,O(e.processingTimeoutMs??5e3);let V={},Oe=nv[m.host];Oe?V[Oe]="1":m.host!=="shell"&&(V.TOKMIZER_HOST=m.host),m.sessionId!==void 0&&(V.CLAUDE_CODE_SESSION_ID=m.sessionId),V.TOKMIZER_CCR_DISABLED=m.restoreDisabled?"1":"0",m.restoreMaxBytes!==void 0&&(V.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(m.restoreMaxBytes));let me=ad({...M,argv:m.argv},{env:V,yolo:p,onMissingState:id,deferAccounting:B=>{C=B},resolver:async(B,U)=>{if(!mn(J))throw new Error("expired processing rules");return J.selectFor(B,"pro",U?[...U]:void 0)}}).then(B=>{if(u.destroyed)return;let U=Buffer.from(B.stdout),z=Buffer.from(B.stderr);if(U.length>10551296||z.length>10551296)throw new Error("processing response limit");let T=Buffer.allocUnsafe(8);T.writeUInt32BE(U.length,0),T.writeUInt32BE(z.length,4),d="delivery",O(e.processingTimeoutMs??5e3),u.write(dn(Buffer.concat([T,U,z])))}).catch(()=>I()).finally(()=>{y=!1,u.destroyed&&(E(),s.delete(u)),o.delete(me)});o.add(me)},j=>{if(i+j>c)throw new Error("processing capacity exceeded");i+=j,k+=j});O(e.prepareTimeoutMs??1e3),u.on("data",j=>{try{W.push(j)}catch{I()}}),u.on("error",I),u.on("close",()=>{y||s.delete(u),I()})});try{await new Promise((u,d)=>{f.once("error",d),f.listen(e.path,()=>{f.off("error",d),u()})}),t||qS(e.path,384)}catch(u){throw f.close(),u}return{activeConnections:()=>s.size,close:async()=>{a=!0;for(let u of s)u.destroy();await new Promise(u=>f.close(()=>u())),await Promise.allSettled(o)}}}function pv(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 Hd(e,t,n="processing.json"){let r=process.platform==="win32",s=cv(_()),o=ys(s,"run");lv(o,{recursive:!0,mode:448});let i=av(o);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=Bd().slice(0,8),l=r?pv(process.env.USERNAME??"user",ee,a):ys(mv(Le().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let c=iv(32).toString("hex"),f=await jd({path:l,token:c,version:ee,getRuntime:e,...t?{onActivity:t}:{}}),u=ys(o,`${n}.${Bd()}.tmp`);try{return dv(u,JSON.stringify({protocol:2,version:ee,home:s,path:l,token:c}),{mode:384,flag:"wx"}),uv(u,ys(o,n)),f}catch(d){throw await f.close(),d}finally{fv(u,{force:!0})}}on();ye();var nr=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",hv=360*60*1e3,gv=6e4;function yv(){let e=Hc(nr),t=()=>{e().catch(()=>{})};setTimeout(t,5e3).unref?.(),setInterval(t,gv).unref?.()}function bv(){let e=()=>{Qt(nr).catch(()=>{})};setTimeout(e,6e4+Math.floor(Math.random()*6e4)).unref?.(),setInterval(e,hv).unref?.()}function kv(){if(process.env.TOKMIZER_ALLOW_INSPECT==="1")return;let t=(process.execArgv??[]).find(n=>n.startsWith("--inspect")||n==="--inspect-brk"||n.startsWith("--inspect-port"));t&&(process.stderr.write("tkr-daemon: refusing to start with "+t+` (set TOKMIZER_ALLOW_INSPECT=1 to override for development).
66
132
  `),process.exit(2)),process.env.NODE_OPTIONS&&/--inspect/.test(process.env.NODE_OPTIONS)&&(process.stderr.write(`tkr-daemon: refusing to start with --inspect in NODE_OPTIONS.
67
- `),process.exit(2))}async function Ch(){Ih(),process.title="tkr-daemon";let t=Gs(()=>Wr(Vt)),e=async()=>{try{return await t()}catch(l){let f=await Hs(l,Vt,{heartbeat:ht,fetchBundle:Wr,log:h=>process.stderr.write(`tkr-daemon: ${h}
68
- `)});if(f)return f;let u=await Ot();if(u)return process.stderr.write(`tkr-daemon: serving cached rules while the server is unreachable
69
- `),u;throw l}},r=3e4,n=null,s=null,o=()=>{if(s&&Date.now()-s.at<r)return s.p;let l=e().then(f=>(n=f,f));return s={p:l,at:Date.now()},l.catch(()=>{s?.p===l&&(s=null)}),l},i=null,a=null,c=!1,d=()=>{c||(c=!0,Promise.allSettled([a?.close(),i?.close()]).finally(()=>process.exit(0)))};i=await Vs(null,{onWarming:o,isActive:()=>(a?.activeConnections()??0)>0,onShutdown:d});try{a=await oc(()=>n,i.touch)}catch{process.stderr.write(`tkr-daemon: native processing unavailable
70
- `)}Ot().then(l=>{n||(n=l)}).catch(()=>{}),(async()=>{try{let l=await L();l&&Ut(l.jwt,6e4)&&await ht(Vt)}catch{}try{await o()}catch{}})(),process.on("SIGINT",d),process.on("SIGTERM",d),Ah(),Rh()}Ch().catch(t=>{process.stderr.write(`tkr-daemon: ${t.message}
133
+ `),process.exit(2))}async function wv(){kv(),process.title="tkr-daemon";let e=Oa(()=>Bs(nr)),t=async(u,d)=>{let m=await Tn();if(m)return process.stderr.write(`tkr-daemon: serving cached rules ${d}
134
+ `),m;let p=Tt();if(p)return process.stderr.write(`tkr-daemon: serving built-in rules ${d}
135
+ `),p;throw u},n=async()=>{if(!K())return t(new xn,"because network is off");try{return await e()}catch(u){let d=await $a(u,nr,{heartbeat:Qt,fetchBundle:Bs,log:m=>process.stderr.write(`tkr-daemon: ${m}
136
+ `)});return d||t(u,"while the server is unreachable")}},r=3e4,s=null,o=null,i=()=>{if(o&&Date.now()-o.at<r)return o.p;let u=n().then(d=>(s=d,d));return o={p:u,at:Date.now()},u.catch(()=>{o?.p===u&&(o=null)}),u},a=null,l=null,c=!1,f=()=>{c||(c=!0,Promise.allSettled([l?.close(),a?.close()]).finally(()=>process.exit(0)))};a=await Ia(null,{onWarming:i,isActive:()=>(l?.activeConnections()??0)>0,onShutdown:f});try{l=await Hd(()=>s,a.touch)}catch{process.stderr.write(`tkr-daemon: native processing unavailable
137
+ `)}Tn().then(u=>{s||(s=u??Tt())}).catch(()=>{}),(async()=>{try{let u=await G();u&&Zn(u.jwt,6e4)&&await Qt(nr)}catch{}try{await i()}catch{}})(),process.on("SIGINT",f),process.on("SIGTERM",f),bv(),yv()}wv().catch(e=>{process.stderr.write(`tkr-daemon: ${e.message}
71
138
  `),process.exit(1)});
139
+ /*! Bundled license information:
140
+
141
+ smol-toml/dist/error.js:
142
+ smol-toml/dist/primitive.js:
143
+ smol-toml/dist/date.js:
144
+ smol-toml/dist/extract.js:
145
+ smol-toml/dist/util.js:
146
+ smol-toml/dist/struct.js:
147
+ smol-toml/dist/parse.js:
148
+ smol-toml/dist/stringify.js:
149
+ smol-toml/dist/index.js:
150
+ (*!
151
+ * Copyright (c) Squirrel Chat et al., All rights reserved.
152
+ * SPDX-License-Identifier: BSD-3-Clause
153
+ *
154
+ * Redistribution and use in source and binary forms, with or without
155
+ * modification, are permitted provided that the following conditions are met:
156
+ *
157
+ * 1. Redistributions of source code must retain the above copyright notice, this
158
+ * list of conditions and the following disclaimer.
159
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
160
+ * this list of conditions and the following disclaimer in the
161
+ * documentation and/or other materials provided with the distribution.
162
+ * 3. Neither the name of the copyright holder nor the names of its contributors
163
+ * may be used to endorse or promote products derived from this software without
164
+ * specific prior written permission.
165
+ *
166
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
167
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
168
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
169
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
170
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
171
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
172
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
173
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
174
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
175
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
176
+ *)
177
+ */