pup-recorder 0.3.2 → 0.3.4

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.
@@ -0,0 +1,2 @@
1
+ import'source-map-support/register.js';import {createRequire}from'module';import {dirname,join}from'path';import {Log}from'node-av';import {AV_LOG_ERROR,AV_LOG_WARNING}from'node-av/constants';import {spawn}from'child_process';import Ue from'tree-kill';import b from'zod';import {platform}from'os';import {rmSync,existsSync,closeSync,openSync,readFileSync}from'fs';import Ze from'electron';import {HardwareContext}from'node-av/api';import {EventEmitter}from'events';var xe=Object.create;var C=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var S=(r,e)=>(e=Symbol[r])?e:Symbol.for("Symbol."+r),x=r=>{throw TypeError(r)};var J=(r,e,t)=>e in r?C(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Y=r=>[,,,xe(null)],Q=["class","method","getter","setter","accessor","field","value","get","set"],O=r=>r!==void 0&&typeof r!="function"?x("Function expected"):r,Re=(r,e,t,n,o)=>({kind:Q[r],name:e,metadata:n,addInitializer:i=>t._?x("Already initialized"):o.push(O(i||null))}),N=(r,e)=>J(e,S("metadata"),r[3]),Z=(r,e,t,n)=>{for(var o=0,i=r[e>>1],s=i&&i.length;o<s;o++)i[o].call(t);return n},k=(r,e,t,n,o,i)=>{var a,c,l,R,p=e&7,E=false,m=false,P=2,D=Q[p+5],Pe=r[P]||(r[P]=[]),h=((o=o.prototype),ve(o,t));for(var G=n.length-1;G>=0;G--)l=Re(p,t,c={},r[3],Pe),(l.static=E,l.private=m,R=l.access={has:d=>t in d},(R.get=d=>d[t]),p>2),a=(0, n[G])(h[D],l),c._=1,O(a)&&(h[D]=a);return h&&C(o,t,h),o},ee=(r,e,t)=>J(r,e+"",t);var ir=(r,e,t)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&x("Object expected");var n,o;t&&(n=e[S("asyncDispose")]),n===void 0&&(n=e[S("dispose")],t&&(o=n)),typeof n!="function"&&x("Object not disposable"),o&&(n=function(){try{o.call(this);}catch(i){return Promise.reject(i)}}),r.push([t,n,e]);}else t&&r.push([t]);return e},sr=(r,e,t)=>{var n=typeof SuppressedError=="function"?SuppressedError:function(s,a,c,l){return l=Error(c),l.name="SuppressedError",l.error=s,l.suppressed=a,l},o=s=>e=t?new n(s,e,"An error was suppressed during disposal"):(t=true,s),i=s=>{for(;s=r.pop();)try{var a=s[1]&&s[1].call(s[2]);if(s[0])return Promise.resolve(a).then(i,c=>(o(c),i()))}catch(c){o(c);}if(t)throw e};return i()};function re(r,e,t){try{return e(process.env[r])}catch{return t}}function te(r){if(typeof r=="number")return r;let e=Number(r);if(Number.isNaN(e))throw new Error(`Value ${r} is not a valid number`);return e}function lr(r){return typeof r=="string"?r:String(r)}var Ie=createRequire(import.meta.url),T=process.env,_=re("PUP_LOG_LEVEL",te,2),ne=T.PUP_USE_INNER_PROXY==="1",oe=T.PUP_DISABLE_GPU==="1",ie=T.PUP_DISABLE_HW_CODEC==="1",se=T.PUP_DETERMINISTIC==="1",De=dirname(Ie.resolve("pup-recorder/package.json")),ae=join(De,"dist","app.cjs"),pe=T.PUP_WINDOW_TOLERANT==="1";var F="<pup@debug>",H="<pup@info>",M="<pup@warn>",W="<pup@error>",X="<pup@fatal>";function A(r,e){return function(...t){let n=t.map(o=>o instanceof Error?o.stack??String(o):o);return r.call(this,...n)}}var ce,le,ue,de,me,v;me=[A],de=[A],ue=[A],le=[A],ce=[A];var y=class{constructor(e=_){this._level=e;Z(v,5,this);ee(this,"_impl");this.impl=console;}_level;get level(){return this._level}set level(e){this._level=e,this.impl=this._impl??console;}get impl(){return this._impl}set impl(e){let t=e.debug??console.debug,n=e.info??console.info,o=e.warn??console.warn,i=e.error??console.error,s=this._level;this._impl={debug:s>=3?t:void 0,info:s>=2?n:void 0,warn:s>=1?o:void 0,error:s>=0?i:void 0};}debug(...e){this.impl?.debug?.(F,...e);}info(...e){this.impl?.info?.(H,...e);}warn(...e){this.impl?.warn?.(M,...e);}error(...e){this.impl?.error?.(W,...e);}fatal(...e){this.impl?.error?.(X,...e),process.exit(1);}dispatch(e){let t=e.trimEnd();t.startsWith(F)?this.debug(t.slice(F.length+1)):t.startsWith(H)?this.info(t.slice(H.length+1)):t.startsWith(M)?this.warn(t.slice(M.length+1)):t.startsWith(W)?this.error(t.slice(W.length+1)):this.info(t);}attach(e,t){return new Promise((n,o)=>{this.debug(`${t}.attach`);let i="",s=a=>{let c=a.toString();c.startsWith(X)?i+=c.slice(X.length+1):this.dispatch(c);};e.stderr?.on("data",s),e.stdout?.on("data",s),e.on("error",a=>{i+=a.message,e.kill();}).once("close",(a,c)=>{a||c||i?(i||=`command failed: ${e.spawnargs.join(" ")}`,this.debug(`${t}.close`,{code:a,signal:c,fatal:i}),o(new Error(i))):(this.debug(`${t}.close`),n());}).on("unhandledRejection",a=>{this.error(`${t}.unhandled`,a);}).on("uncaughtExceptionMonitor",a=>{this.error(`${t}.unhandled`,a);});})}};v=Y(),k(v,1,"debug",me,y),k(v,1,"info",de,y),k(v,1,"warn",ue,y),k(v,1,"error",le,y),k(v,1,"fatal",ce,y),N(v,y);var u=new y;Log.setCallback((r,e)=>{let t=e.trimEnd();t&&(r<=AV_LOG_ERROR?u.error(t):r<=AV_LOG_WARNING&&u.warn(t));});function Er(r,e){return (...t)=>{try{let n=r(...t);return n instanceof Promise?n.catch(()=>e):n}catch{return e}}}var V="--pup-priv-args";function Sr(){let r=process.argv,e=r.find(n=>n.startsWith(V));if(!e)return u.debug("procargv",r),process.argv;let t=["exec",...r.slice(-1)];return e=Buffer.from(e.split("=")[1],"base64").toString(),t.push(...JSON.parse(e)),u.debug("pupargs",t),t}function fe(r,e){let t=r.split(" ").filter(a=>a.length),[n,...o]=t;if(!n)throw new Error("empty command");let i=spawn(n,o,{stdio:"inherit",...e}),s=false;return {process:i,wait:u.attach(i,n),get killed(){return s},kill(){if(s)return;s=true;let a=i.pid;a?Ue(a,"SIGKILL"):i.kill("SIGKILL");}}}var Ce=1920,Ne=1080,$e=30,Fe=5,He="output.mp4",Cr=b.object({duration:b.number().describe("Duration in seconds"),width:b.number().describe("Video width"),height:b.number().describe("Video height"),fps:b.number().describe("Frames per second"),withAudio:b.boolean().describe("Capture and encode audio"),outFile:b.string().describe("Output mp4 file path"),useInnerProxy:b.boolean().describe("Use bilibili inner proxy for resource access"),deterministic:b.boolean().describe("Render by frame rather than recording"),disableGpu:b.boolean().describe("Disable GPU rendering, may reduce performance but increase stability"),disableHwCodec:b.boolean().describe("Disable hardware video encoder (NVENC/VideoToolbox), use software x265"),windowTolerant:b.boolean().describe("Fall back to dom-ready if warmup load times out")}),ge={width:Ce,height:Ne,fps:$e,duration:Fe,outFile:He,withAudio:false,useInnerProxy:ne,deterministic:se,disableGpu:oe,disableHwCodec:ie,windowTolerant:pe};function Ke(){for(let r=99;r<900;r++){let e=`/tmp/.X${r}-lock`;if(existsSync(e)){if(!qe(e))continue;rmSync(e,{force:true});}try{return closeSync(openSync(e,"wx")),r}catch{}}throw new Error("no free X display")}function qe(r){try{let e=Number.parseInt(readFileSync(r,"utf8").trim(),10);return Number.isFinite(e)?(process.kill(e,0),!1):!0}catch{return true}}function be(r,e){let t=Ke(),n=spawn("Xvfb",[`:${t}`,"-screen","0",`${r}x${e}x24`,"-nolisten","tcp","-noreset"],{stdio:"ignore"});return {display:t,stop(){n.pid&&Ue(n.pid,"SIGKILL"),rmSync(`/tmp/.X${t}-lock`,{force:true}),rmSync(`/tmp/.X11-unix/X${t}`,{force:true});}}}var Je="[HWAccel]";async function Ye(){let r=HardwareContext.auto(),e=r!==null;return r?.dispose(),e}var he=Ye().then(r=>(u.debug(Je,"gpu:",r),r));async function we(r){let e=["no-sandbox","disable-dev-shm-usage","disable-web-security","disable-site-isolation-trials","ignore-certificate-errors","disable-blink-features=AutomationControlled","mute-audio","autoplay-policy=no-user-gesture-required","disable-extensions","force-device-scale-factor=1","force-color-profile=srgb","ignore-gpu-blocklist","use-gl=angle","deterministic-mode","enable-begin-frame-control","disable-new-content-rendering-timeout","run-all-compositor-stages-before-draw","disable-threaded-animation","disable-threaded-scrolling","disable-checker-imaging","disable-image-animation-resync","enable-surface-synchronization","font-render-hinting=none","disable-background-networking","js-flags=--max-old-space-size=512","renderer-process-limit=1","num-raster-threads=1","disable-background-timer-throttling","disable-renderer-backgrounding","disable-backgrounding-occluded-windows","enable-logging=stderr"];_>=3?e.push("log-level=0","v=1"):e.push("log-level=3");let t=["FontationBackend"];if(!(await he&&!r))e.push("use-angle=swiftshader","enable-unsafe-swiftshader");else {e.push("disable-gpu-sandbox","enable-unsafe-webgpu");let o=platform();o==="darwin"?e.push("use-angle=metal"):o==="win32"?e.push("use-angle=d3d11"):(e.push("use-angle=vulkan","disable-vulkan-surface"),t.push("Vulkan"));}return e.push(`enable-features=${t.join(",")}`),e}async function er(r){return [...await we(r),"headless=new"]}var rr="[Electron]";async function ye({args:r,display:e}){let n=(await er(r.includes("--disable-gpu"))).map(s=>`--${s}`);n.push(`${V}=${Buffer.from(JSON.stringify(r)).toString("base64")}`);let o=[Ze,...n,ae].join(" ");u.debug(rr,o);let i={...process.env,RUST_BACKTRACE:"full"};return e!==void 0&&(i.DISPLAY=`:${e}`),fe(o,{stdio:["ignore","pipe","pipe","ipc"],env:i})}var L=class extends EventEmitter{constructor(e){super(),e.on("message",t=>{let n=t;switch(this.emit("message",n),n.type){case "progress":this.emit("progress",n.value);break;case "done":this.emit("done",n.payload);break;case "error":this.emit("error",new Error(n.error));break}}),e.once("exit",()=>this.emit("close"));}};var I="[pup]";async function or(r,e){u.debug(I,"runPupApp",r,e);let t=[r,"--width",`${e.width}`,"--height",`${e.height}`,"--fps",`${e.fps}`,"--duration",`${e.duration}`,"--out-file",`${e.outFile}`];return e.withAudio&&t.push("--with-audio"),e.useInnerProxy&&t.push("--use-inner-proxy"),e.deterministic&&t.push("--deterministic"),e.disableGpu&&t.push("--disable-gpu"),e.disableHwCodec&&t.push("--disable-hw-codec"),e.windowTolerant&&t.push("--window-tolerant"),ye({args:t,display:e.display})}var w=ge;async function gt(r,e){u.debug(I,"pup",r,e);let{signal:t}=e;t?.throwIfAborted();let n=e.outFile??w.outFile,o={width:e.width??w.width,height:e.height??w.height,fps:e.fps??w.fps,duration:e.duration??w.duration,withAudio:e.withAudio??w.withAudio,useInnerProxy:e.useInnerProxy??w.useInnerProxy,deterministic:e.deterministic??w.deterministic,disableGpu:e.disableGpu??w.disableGpu,disableHwCodec:e.disableHwCodec??w.disableHwCodec,windowTolerant:e.windowTolerant??w.windowTolerant,outFile:n},i=performance.now(),s=0,a=p=>{u.info(I,`${r} progress: ${p}%`),s=p,e.onProgress?.(p);},c=platform()==="linux"?be(o.width,o.height+1):void 0,l=await or(r,{...o,display:c?.display}),R=()=>(u.error(I,"aborted"),l.kill());t?.addEventListener("abort",R,{once:true});try{let p=new Promise((m,P)=>{new L(l.process).on("close",()=>{let D=JSON.stringify({source:r,progress:s,killed:l.killed});P(new Error(`crashed: ${D}`));}).on("message",()=>t?.aborted&&P(t.reason)).on("progress",a).on("done",m).on("error",P);});a(0);let[E]=await Promise.all([p,l.wait]);return a(100),u.info(I,`done ${n} in ${Math.round(performance.now()-i)}ms`),{...E,options:o}}catch(p){throw l.kill(),t?.throwIfAborted(),p}finally{t?.removeEventListener("abort",R),c?.stop();}}export{gt as A,ir as a,sr as b,re as c,te as d,lr as e,_ as f,ne as g,oe as h,ie as i,se as j,De as k,ae as l,pe as m,y as n,u as o,Er as p,V as q,Sr as r,fe as s,Ce as t,Ne as u,$e as v,Fe as w,He as x,Cr as y,ge as z};//# sourceMappingURL=chunk-34MTHEKG.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2Vudi50cyIsIi4uL3NyYy9iYXNlL3BhcnNlci50cyIsIi4uL3NyYy9iYXNlL2NvbnN0YW50cy50cyIsIi4uL3NyYy9iYXNlL2xvZ2dpbmcudHMiLCIuLi9zcmMvYmFzZS9ub2Vyci50cyIsIi4uL3NyYy9iYXNlL3Byb2Nlc3MudHMiLCIuLi9zcmMvcmVuZGVyZXIvc2NoZW1hLnRzIiwiLi4vc3JjL2Jhc2UveHZmYi50cyIsIi4uL3NyYy9iYXNlL2h3YWNjZWwudHMiLCIuLi9zcmMvYmFzZS9jaHJvbWl1bS50cyIsIi4uL3NyYy9yZW5kZXJlci9lbGVjdHJvbi50cyIsIi4uL3NyYy9yZW5kZXJlci9pcGMudHMiLCIuLi9zcmMvcHVwLnRzIl0sIm5hbWVzIjpbInBlbnYiLCJuYW1lIiwicGFyc2VyIiwiZGVmYXVsdFZhbHVlIiwicGFyc2VOdW1iZXIiLCJ4IiwibnVtIiwicGFyc2VTdHJpbmciLCJyZXF1aXJlIiwiY3JlYXRlUmVxdWlyZSIsImVudiIsInB1cExvZ0xldmVsIiwicHVwVXNlSW5uZXJQcm94eSIsInB1cERpc2FibGVHUFUiLCJwdXBEaXNhYmxlSHdDb2RlYyIsInB1cERldGVybWluaXN0aWMiLCJwdXBQa2dSb290IiwiZGlybmFtZSIsInB1cEFwcCIsImpvaW4iLCJwdXBXaW5kb3dUb2xlcmFudCIsIkRFQlVHIiwiSU5GTyIsIldBUk4iLCJFUlJPUiIsIkZBVEFMIiwic3RhY2tIb29rIiwidGFyZ2V0IiwiX2NvbnRleHQiLCJtZXNzYWdlcyIsInByb2Nlc3NlZCIsIm1zZyIsIl9mYXRhbF9kZWMiLCJfZXJyb3JfZGVjIiwiX3dhcm5fZGVjIiwiX2luZm9fZGVjIiwiX2RlYnVnX2RlYyIsIl9pbml0IiwiTG9nZ2VyIiwiX2xldmVsIiwiX19ydW5Jbml0aWFsaXplcnMiLCJfX3B1YmxpY0ZpZWxkIiwidmFsdWUiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJsdiIsIm1lc3NhZ2UiLCJwcm9jIiwicmVzb2x2ZSIsInJlamVjdCIsImZhdGFsIiwiZGlzcGF0Y2giLCJkYXRhIiwiZXJyIiwiY29kZSIsInNpZ25hbCIsInJlYXNvbiIsIl9fZGVjb3JhdG9yU3RhcnQiLCJfX2RlY29yYXRlRWxlbWVudCIsIl9fZGVjb3JhdG9yTWV0YWRhdGEiLCJsb2dnZXIiLCJMb2ciLCJsZXZlbCIsIkFWX0xPR19FUlJPUiIsIkFWX0xPR19XQVJOSU5HIiwibm9lcnIiLCJmbiIsImFyZ3MiLCJyZXQiLCJQVVBfQVJHU19LRVkiLCJwYXJncyIsImFyZ3YiLCJwcml2IiwiYXJnIiwiZXhlYyIsImNtZCIsIm9wdGlvbnMiLCJwYXJ0cyIsInMiLCJjb21tYW5kIiwic3Bhd24iLCJraWxsZWQiLCJwaWQiLCJ0cmVlS2lsbCIsIkRFRkFVTFRfV0lEVEgiLCJERUZBVUxUX0hFSUdIVCIsIkRFRkFVTFRfRlBTIiwiREVGQVVMVF9EVVJBVElPTiIsIkRFRkFVTFRfT1VUX0ZJTEUiLCJSZW5kZXJTY2hlbWEiLCJ6IiwiZGVmYXVsdFJlbmRlck9wdGlvbnMiLCJhY3F1aXJlRGlzcGxheSIsIm4iLCJsb2NrIiwiZXhpc3RzU3luYyIsInN0YWxlTG9jayIsInJtU3luYyIsImNsb3NlU3luYyIsIm9wZW5TeW5jIiwicmVhZEZpbGVTeW5jIiwic3RhcnRYdmZiIiwid2lkdGgiLCJoZWlnaHQiLCJkaXNwbGF5IiwiVEFHIiwiZGV0ZWN0R1BVRHJpdmVyIiwiaHciLCJIYXJkd2FyZUNvbnRleHQiLCJyZXN1bHQiLCJjYW5JVXNlR1BVIiwiY2hyb21pdW1PcHRpb25zIiwiZGlzYWJsZUdwdSIsIm9wdHMiLCJmZWF0dXJlcyIsInBsYXQiLCJwbGF0Zm9ybSIsImVsZWN0cm9uT3B0cyIsInJ1bkVsZWN0cm9uQXBwIiwiZWxlY3Ryb25BcmdzIiwiYSIsImVsZWN0cm9uIiwiSXBjUmVhZGVyIiwiRXZlbnRFbWl0dGVyIiwiY2hpbGQiLCJyYXciLCJydW5QdXBBcHAiLCJzb3VyY2UiLCJkIiwicHVwIiwib3V0RmlsZSIsInJlbmRlck9wdHMiLCJ0MCIsInByb2dy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QUMsQ0FBQSxDQUM1RCxFQUFBLENBQUcsVUFBQSxDQUFZK0UsQ0FBSSxDQUFBLENBQ25CLEVBQUEsQ0FBRyxPQUFRdEYsQ0FBTyxDQUFBLENBQ2xCLEVBQUEsQ0FBRyxPQUFBLENBQVNDLENBQU0sRUFDdkIsQ0FBQyxDQUFBLENBQ0RxRixDQUFBQSxDQUFLLENBQUMsQ0FBQSxDQUNOLEdBQU0sQ0FBQ0ksQ0FBTyxFQUFJLE1BQU0sT0FBQSxDQUFRLEdBQUEsQ0FBSSxDQUFDN0IsQ0FBQUEsQ0FBUTJCLENBQUFBLENBQU8sSUFBSSxDQUFDLENBQUEsQ0FDekQsT0FBQUYsQ0FBQUEsQ0FBSyxHQUFHLENBQUEsQ0FDUjFFLEVBQU8sSUFBQSxDQUFLNkMsQ0FBQUEsQ0FBSyxDQUFBLEtBQUEsRUFBUXlCLENBQU8sQ0FBQSxJQUFBLEVBQU8sSUFBQSxDQUFLLEtBQUEsQ0FBTSxXQUFBLENBQVksR0FBQSxFQUFJLENBQUlFLENBQUUsQ0FBQyxDQUFBLEVBQUEsQ0FBSSxDQUFBLENBQ3RFLENBQUUsR0FBR00sQ0FBQUEsQ0FBUyxPQUFBLENBQVNQLENBQVcsQ0FDM0MsQ0FBQSxNQUFTUSxFQUFHLENBQ1YsTUFBQUgsQ0FBQUEsQ0FBTyxJQUFBLEVBQUssQ0FDWmpGLENBQUFBLEVBQVEsZ0JBQWUsQ0FDakJvRixDQUNSLENBQUEsT0FBRSxDQUNBcEYsQ0FBQUEsRUFBUSxtQkFBQSxDQUFvQixPQUFBLENBQVNrRixDQUFPLENBQUEsQ0FDNUNGLENBQUFBLEVBQU0sSUFBQSxHQUNSLENBQ0YiLCJmaWxlIjoiY2h1bmstMzRNVEhFS0cuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI1LlxuXG5leHBvcnQgdHlwZSBFbnZQYXJzZXI8VD4gPSAodmFsdWU6IHVua25vd24pID0+IFQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBwZW52PFQ+KG5hbWU6IHN0cmluZywgcGFyc2VyOiBFbnZQYXJzZXI8VD4sIGRlZmF1bHRWYWx1ZTogVCk6IFQ7XG5leHBvcnQgZnVuY3Rpb24gcGVudjxUPihuYW1lOiBzdHJpbmcsIHBhcnNlcjogRW52UGFyc2VyPFQ+LCBkZWZhdWx0VmFsdWU/OiBUKTogVCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBwZW52PFQ+KG5hbWU6IHN0cmluZywgcGFyc2VyOiBFbnZQYXJzZXI8VD4sIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VyKHByb2Nlc3MuZW52W25hbWVdKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMS8zMC5cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTnVtYmVyKHg6IHVua25vd24pOiBudW1iZXIge1xuICBpZiAodHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4geDtcbiAgfVxuICBjb25zdCBudW0gPSBOdW1iZXIoeCk7XG4gIGlmIChOdW1iZXIuaXNOYU4obnVtKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgJHt4fSBpcyBub3QgYSB2YWxpZCBudW1iZXJgKTtcbiAgfVxuICByZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdHJpbmcoeDogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHg7XG4gIHJldHVybiBTdHJpbmcoeCk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm1vZHVsZVwiO1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBwZW52IH0gZnJvbSBcIi4vZW52XCI7XG5pbXBvcnQgeyBwYXJzZU51bWJlciB9IGZyb20gXCIuL3BhcnNlclwiO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgZW52ID0gcHJvY2Vzcy5lbnY7XG5cbmV4cG9ydCBjb25zdCBwdXBMb2dMZXZlbCA9IHBlbnYoXCJQVVBfTE9HX0xFVkVMXCIsIHBhcnNlTnVtYmVyLCAyKTtcbmV4cG9ydCBjb25zdCBwdXBVc2VJbm5lclByb3h5ID0gZW52W1wiUFVQX1VTRV9JTk5FUl9QUk9YWVwiXSA9PT0gXCIxXCI7XG5leHBvcnQgY29uc3QgcHVwRGlzYWJsZUdQVSA9IGVudltcIlBVUF9ESVNBQkxFX0dQVVwiXSA9PT0gXCIxXCI7XG5leHBvcnQgY29uc3QgcHVwRGlzYWJsZUh3Q29kZWMgPSBlbnZbXCJQVVBfRElTQUJMRV9IV19DT0RFQ1wiXSA9PT0gXCIxXCI7XG5leHBvcnQgY29uc3QgcHVwRGV0ZXJtaW5pc3RpYyA9IGVudltcIlBVUF9ERVRFUk1JTklTVElDXCJdID09PSBcIjFcIjtcblxuZXhwb3J0IGNvbnN0IHB1cFBrZ1Jvb3QgPSBkaXJuYW1lKHJlcXVpcmUucmVzb2x2ZShcInB1cC1yZWNvcmRlci9wYWNrYWdlLmpzb25cIikpO1xuZXhwb3J0IGNvbnN0IHB1cEFwcCA9IGpvaW4ocHVwUGtnUm9vdCwgXCJkaXN0XCIsIFwiYXBwLmNqc1wiKTtcblxuZXhwb3J0IGNvbnN0IHB1cFdpbmRvd1RvbGVyYW50ID0gZW52W1wiUFVQX1dJTkRPV19UT0xFUkFOVFwiXSA9PT0gXCIxXCI7XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA2LlxuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBMb2cgfSBmcm9tIFwibm9kZS1hdlwiO1xuaW1wb3J0IHsgQVZfTE9HX0VSUk9SLCBBVl9MT0dfV0FSTklORyB9IGZyb20gXCJub2RlLWF2L2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcHVwTG9nTGV2ZWwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dnZXJMaWtlIHtcbiAgZGVidWc/KHRoaXM6IHZvaWQsIC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkO1xuXG4gIGluZm8/KHRoaXM6IHZvaWQsIC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkO1xuXG4gIHdhcm4/KHRoaXM6IHZvaWQsIC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkO1xuXG4gIGVycm9yPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcbn1cblxuY29uc3QgREVCVUcgPSBcIjxwdXBAZGVidWc+XCI7XG5jb25zdCBJTkZPID0gXCI8cHVwQGluZm8+XCI7XG5jb25zdCBXQVJOID0gXCI8cHVwQHdhcm4+XCI7XG5jb25zdCBFUlJPUiA9IFwiPHB1cEBlcnJvcj5cIjtcbmNvbnN0IEZBVEFMID0gXCI8cHVwQGZhdGFsPlwiO1xuXG5mdW5jdGlvbiBzdGFja0hvb2sodGFyZ2V0OiBGdW5jdGlvbiwgX2NvbnRleHQ6IENsYXNzTWV0aG9kRGVjb3JhdG9yQ29udGV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoaXM6IExvZ2dlciwgLi4ubWVzc2FnZXM6IHVua25vd25bXSkge1xuICAgIGNvbnN0IHByb2Nlc3NlZCA9IG1lc3NhZ2VzLm1hcCgobXNnKSA9PiB7XG4gICAgICByZXR1cm4gbXNnIGluc3RhbmNlb2YgRXJyb3IgPyAobXNnLnN0YWNrID8/IFN0cmluZyhtc2cpKSA6IG1zZztcbiAgICB9KTtcbiAgICByZXR1cm4gdGFyZ2V0LmNhbGwodGhpcywgLi4ucHJvY2Vzc2VkKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIExvZ2dlciBpbXBsZW1lbnRzIExvZ2dlckxpa2Uge1xuICBwcml2YXRlIF9pbXBsPzogTG9nZ2VyTGlrZTtcblxuICBnZXQgbGV2ZWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGV2ZWw7XG4gIH1cblxuICBzZXQgbGV2ZWwodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xldmVsID0gdmFsdWU7XG4gICAgdGhpcy5pbXBsID0gdGhpcy5faW1wbCA/PyBjb25zb2xlO1xuICB9XG5cbiAgZ2V0IGltcGwoKTogTG9nZ2VyTGlrZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ltcGw7XG4gIH1cblxuICBzZXQgaW1wbCh2YWx1ZTogTG9nZ2VyTGlrZSkge1xuICAgIGNvbnN0IGRlYnVnID0gdmFsdWUuZGVidWcgPz8gY29uc29sZS5kZWJ1ZztcbiAgICBjb25zdCBpbmZvID0gdmFsdWUuaW5mbyA/PyBjb25zb2xlLmluZm87XG4gICAgY29uc3Qgd2FybiA9IHZhbHVlLndhcm4gPz8gY29uc29sZS53YXJuO1xuICAgIGNvbnN0IGVycm9yID0gdmFsdWUuZXJyb3IgPz8gY29uc29sZS5lcnJvcjtcbiAgICBjb25zdCBsdiA9IHRoaXMuX2xldmVsO1xuICAgIHRoaXMuX2ltcGwgPSB7XG4gICAgICBkZWJ1ZzogbHYgPj0gMyA/IGRlYnVnIDogdW5kZWZpbmVkLFxuICAgICAgaW5mbzogbHYgPj0gMiA/IGluZm8gOiB1bmRlZmluZWQsXG4gICAgICB3YXJuOiBsdiA+PSAxID8gd2FybiA6IHVuZGVmaW5lZCxcbiAgICAgIGVycm9yOiBsdiA+PSAwID8gZXJyb3IgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xldmVsOiBudW1iZXIgPSBwdXBMb2dMZXZlbCkge1xuICAgIHRoaXMuaW1wbCA9IGNvbnNvbGU7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIGRlYnVnKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmRlYnVnPy4oREVCVUcsIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIEBzdGFja0hvb2tcbiAgaW5mbyguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy5pbmZvPy4oSU5GTywgLi4ubWVzc2FnZXMpO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICB3YXJuKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/Lndhcm4/LihXQVJOLCAuLi5tZXNzYWdlcyk7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIGVycm9yKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmVycm9yPy4oRVJST1IsIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIEBzdGFja0hvb2tcbiAgZmF0YWwoLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuaW1wbD8uZXJyb3I/LihGQVRBTCwgLi4ubWVzc2FnZXMpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2gobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbXNnID0gbWVzc2FnZS50cmltRW5kKCk7XG4gICAgaWYgKG1zZy5zdGFydHNXaXRoKERFQlVHKSkge1xuICAgICAgdGhpcy5kZWJ1Zyhtc2cuc2xpY2UoREVCVUcubGVuZ3RoICsgMSkpO1xuICAgIH0gZWxzZSBpZiAobXNnLnN0YXJ0c1dpdGgoSU5GTykpIHtcbiAgICAgIHRoaXMuaW5mbyhtc2cuc2xpY2UoSU5GTy5sZW5ndGggKyAxKSk7XG4gICAgfSBlbHNlIGlmIChtc2cuc3RhcnRzV2l0aChXQVJOKSkge1xuICAgICAgdGhpcy53YXJuKG1zZy5zbGljZShXQVJOLmxlbmd0aCArIDEpKTtcbiAgICB9IGVsc2UgaWYgKG1zZy5zdGFydHNXaXRoKEVSUk9SKSkge1xuICAgICAgdGhpcy5lcnJvcihtc2cuc2xpY2UoRVJST1IubGVuZ3RoICsgMSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluZm8obXNnKTtcbiAgICB9XG4gIH1cblxuICBhdHRhY2gocHJvYzogQ2hpbGRQcm9jZXNzLCBuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5kZWJ1ZyhgJHtuYW1lfS5hdHRhY2hgKTtcbiAgICAgIGxldCBmYXRhbDogc3RyaW5nID0gXCJcIjtcbiAgICAgIGNvbnN0IGRpc3BhdGNoID0gKGRhdGE6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YS50b1N0cmluZygpO1xuICAgICAgICBpZiAobWVzc2FnZS5zdGFydHNXaXRoKEZBVEFMKSkge1xuICAgICAgICAgIGZhdGFsICs9IG1lc3NhZ2Uuc2xpY2UoRkFUQUwubGVuZ3RoICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHByb2Muc3RkZXJyPy5vbihcImRhdGFcIiwgZGlzcGF0Y2gpO1xuICAgICAgcHJvYy5zdGRvdXQ/Lm9uKFwiZGF0YVwiLCBkaXNwYXRjaCk7XG4gICAgICBwcm9jXG4gICAgICAgIC5vbihcImVycm9yXCIsIChlcnIpID0+IHtcbiAgICAgICAgICBmYXRhbCArPSBlcnIubWVzc2FnZTtcbiAgICAgICAgICBwcm9jLmtpbGwoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uY2UoXCJjbG9zZVwiLCAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgICAgICAgaWYgKGNvZGUgfHwgc2lnbmFsIHx8IGZhdGFsKSB7XG4gICAgICAgICAgICBmYXRhbCB8fD0gYGNvbW1hbmQgZmFpbGVkOiAke3Byb2Muc3Bhd25hcmdzLmpvaW4oXCIgXCIpfWA7XG4gICAgICAgICAgICB0aGlzLmRlYnVnKGAke25hbWV9LmNsb3NlYCwgeyBjb2RlLCBzaWduYWwsIGZhdGFsIH0pO1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihmYXRhbCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlYnVnKGAke25hbWV9LmNsb3NlYCk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAub24oXCJ1bmhhbmRsZWRSZWplY3Rpb25cIiwgKHJlYXNvbikgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3IoYCR7bmFtZX0udW5oYW5kbGVkYCwgcmVhc29uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKFwidW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yXCIsIChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yKGAke25hbWV9LnVuaGFuZGxlZGAsIGVycik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoKTtcblxuLy8gUm91dGUgZmZtcGVnIG5hdGl2ZSBsb2dzIHRocm91Z2ggcHVwJ3MgbG9nZ2VyLlxuTG9nLnNldENhbGxiYWNrKChsZXZlbCwgbWVzc2FnZSkgPT4ge1xuICBjb25zdCBtc2cgPSBtZXNzYWdlLnRyaW1FbmQoKTtcbiAgaWYgKCFtc2cpIHJldHVybjtcbiAgaWYgKGxldmVsIDw9IEFWX0xPR19FUlJPUikgbG9nZ2VyLmVycm9yKG1zZyk7XG4gIGVsc2UgaWYgKGxldmVsIDw9IEFWX0xPR19XQVJOSU5HKSBsb2dnZXIud2Fybihtc2cpO1xufSk7XG5cbmV4cG9ydCB7IGxvZ2dlciB9O1xuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8yNC5cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZXJyPEZuIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksIEQ+KFxuICBmbjogRm4sXG4gIGRlZmF1bHRWYWx1ZTogRCxcbik6ICguLi5hcmdzOiBQYXJhbWV0ZXJzPEZuPikgPT4gUmV0dXJuVHlwZTxGbj4gfCBEIHtcbiAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJldCA9IGZuKC4uLmFyZ3MpO1xuICAgICAgaWYgKHJldCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHJldC5jYXRjaCgoKSA9PiBkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9O1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMS8zMC5cblxuaW1wb3J0IHsgc3Bhd24sIHR5cGUgQ2hpbGRQcm9jZXNzLCB0eXBlIFNwYXduT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgdHJlZUtpbGwgZnJvbSBcInRyZWUta2lsbFwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuXG5leHBvcnQgY29uc3QgUFVQX0FSR1NfS0VZID0gXCItLXB1cC1wcml2LWFyZ3NcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmdzKCkge1xuICBjb25zdCBhcmd2ID0gcHJvY2Vzcy5hcmd2O1xuICBsZXQgcHJpdiA9IGFyZ3YuZmluZCgoYXJnKSA9PiBhcmcuc3RhcnRzV2l0aChQVVBfQVJHU19LRVkpKTtcbiAgaWYgKCFwcml2KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwicHJvY2FyZ3ZcIiwgYXJndik7XG4gICAgcmV0dXJuIHByb2Nlc3MuYXJndjtcbiAgfVxuICBjb25zdCBhcmdzID0gW1wiZXhlY1wiLCAuLi5hcmd2LnNsaWNlKC0xKV07XG4gIHByaXYgPSBCdWZmZXIuZnJvbShwcml2LnNwbGl0KFwiPVwiKVsxXSEsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKCk7XG4gIGFyZ3MucHVzaCguLi5KU09OLnBhcnNlKHByaXYpKTtcbiAgbG9nZ2VyLmRlYnVnKFwicHVwYXJnc1wiLCBhcmdzKTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0hhbmRsZSB7XG4gIHByb2Nlc3M6IENoaWxkUHJvY2VzcztcbiAgd2FpdDogUHJvbWlzZTx2b2lkPjtcbiAgZ2V0IGtpbGxlZCgpOiBib29sZWFuO1xuICBraWxsKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjKGNtZDogc3RyaW5nLCBvcHRpb25zPzogU3Bhd25PcHRpb25zKTogUHJvY2Vzc0hhbmRsZSB7XG4gIGNvbnN0IHBhcnRzID0gY21kLnNwbGl0KFwiIFwiKS5maWx0ZXIoKHMpID0+IHMubGVuZ3RoKTtcbiAgY29uc3QgW2NvbW1hbmQsIC4uLmFyZ3NdID0gcGFydHM7XG4gIGlmICghY29tbWFuZCkgdGhyb3cgbmV3IEVycm9yKFwiZW1wdHkgY29tbWFuZFwiKTtcbiAgY29uc3QgcHJvYyA9IHNwYXduKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICBzdGRpbzogXCJpbmhlcml0XCIsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG4gIGxldCBraWxsZWQgPSBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICBwcm9jZXNzOiBwcm9jLFxuICAgIHdhaXQ6IGxvZ2dlci5hdHRhY2gocHJvYywgY29tbWFuZCksXG4gICAgZ2V0IGtpbGxlZCgpIHtcbiAgICAgIHJldHVybiBraWxsZWQ7XG4gICAgfSxcbiAgICBraWxsKCkge1xuICAgICAgaWYgKGtpbGxlZCkgcmV0dXJuO1xuICAgICAga2lsbGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHBpZCA9IHByb2MucGlkO1xuICAgICAgaWYgKHBpZCkgdHJlZUtpbGwocGlkLCBcIlNJR0tJTExcIik7XG4gICAgICBlbHNlIHByb2Mua2lsbChcIlNJR0tJTExcIik7XG4gICAgfSxcbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDYuXG5cbmltcG9ydCB6IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7XG4gIHB1cERldGVybWluaXN0aWMsXG4gIHB1cERpc2FibGVHUFUsXG4gIHB1cERpc2FibGVId0NvZGVjLFxuICBwdXBVc2VJbm5lclByb3h5LFxuICBwdXBXaW5kb3dUb2xlcmFudCxcbn0gZnJvbSBcIi4uL2Jhc2UvY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1dJRFRIID0gMTkyMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hFSUdIVCA9IDEwODA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9GUFMgPSAzMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RVUkFUSU9OID0gNTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVF9GSUxFID0gXCJvdXRwdXQubXA0XCI7XG5cbmV4cG9ydCBjb25zdCBSZW5kZXJTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGR1cmF0aW9uOiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiRHVyYXRpb24gaW4gc2Vjb25kc1wiKSxcbiAgd2lkdGg6IHoubnVtYmVyKCkuZGVzY3JpYmUoXCJWaWRlbyB3aWR0aFwiKSxcbiAgaGVpZ2h0OiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiVmlkZW8gaGVpZ2h0XCIpLFxuICBmcHM6IHoubnVtYmVyKCkuZGVzY3JpYmUoXCJGcmFtZXMgcGVyIHNlY29uZFwiKSxcbiAgd2l0aEF1ZGlvOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIkNhcHR1cmUgYW5kIGVuY29kZSBhdWRpb1wiKSxcbiAgb3V0RmlsZTogei5zdHJpbmcoKS5kZXNjcmliZShcIk91dHB1dCBtcDQgZmlsZSBwYXRoXCIpLFxuICB1c2VJbm5lclByb3h5OiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIlVzZSBiaWxpYmlsaSBpbm5lciBwcm94eSBmb3IgcmVzb3VyY2UgYWNjZXNzXCIpLFxuICBkZXRlcm1pbmlzdGljOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIlJlbmRlciBieSBmcmFtZSByYXRoZXIgdGhhbiByZWNvcmRpbmdcIiksXG4gIGRpc2FibGVHcHU6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiRGlzYWJsZSBHUFUgcmVuZGVyaW5nLCBtYXkgcmVkdWNlIHBlcmZvcm1hbmNlIGJ1dCBpbmNyZWFzZSBzdGFiaWxpdHlcIiksXG4gIGRpc2FibGVId0NvZGVjOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIkRpc2FibGUgaGFyZHdhcmUgdmlkZW8gZW5jb2RlciAoTlZFTkMvVmlkZW9Ub29sYm94KSwgdXNlIHNvZnR3YXJlIHgyNjVcIiksXG4gIHdpbmRvd1RvbGVyYW50OiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIkZhbGwgYmFjayB0byBkb20tcmVhZHkgaWYgd2FybXVwIGxvYWQgdGltZXMgb3V0XCIpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFJlbmRlck9wdGlvbnMgPSB6LmluZmVyPHR5cGVvZiBSZW5kZXJTY2hlbWE+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclJlc3VsdCB7XG4gIG9wdGlvbnM6IFJlbmRlck9wdGlvbnM7XG4gIHdyaXR0ZW46IG51bWJlcjtcbiAgamFuazogbnVtYmVyO1xuICBvdXRGaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmVuZGVyT3B0aW9uczogUmVuZGVyT3B0aW9ucyA9IHtcbiAgd2lkdGg6IERFRkFVTFRfV0lEVEgsXG4gIGhlaWdodDogREVGQVVMVF9IRUlHSFQsXG4gIGZwczogREVGQVVMVF9GUFMsXG4gIGR1cmF0aW9uOiBERUZBVUxUX0RVUkFUSU9OLFxuICBvdXRGaWxlOiBERUZBVUxUX09VVF9GSUxFLFxuICB3aXRoQXVkaW86IGZhbHNlLFxuICB1c2VJbm5lclByb3h5OiBwdXBVc2VJbm5lclByb3h5LFxuICBkZXRlcm1pbmlzdGljOiBwdXBEZXRlcm1pbmlzdGljLFxuICBkaXNhYmxlR3B1OiBwdXBEaXNhYmxlR1BVLFxuICBkaXNhYmxlSHdDb2RlYzogcHVwRGlzYWJsZUh3Q29kZWMsXG4gIHdpbmRvd1RvbGVyYW50OiBwdXBXaW5kb3dUb2xlcmFudCxcbn07XG4iLCIvLyBDcmVhdGVkIGJ5IEx1IEFvIChsdWFvQGJpbGliaWxpLmNvbSkgb24gMjAyNi8wNC8yMS5cblxuaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgY2xvc2VTeW5jLCBleGlzdHNTeW5jLCBvcGVuU3luYywgcmVhZEZpbGVTeW5jLCBybVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB0cmVlS2lsbCBmcm9tIFwidHJlZS1raWxsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgWHZmYkhhbmRsZSB7XG4gIGRpc3BsYXk6IG51bWJlcjtcbiAgc3RvcCgpOiB2b2lkO1xufVxuXG5mdW5jdGlvbiBhY3F1aXJlRGlzcGxheSgpOiBudW1iZXIge1xuICBmb3IgKGxldCBuID0gOTk7IG4gPCA5MDA7IG4rKykge1xuICAgIGNvbnN0IGxvY2sgPSBgL3RtcC8uWCR7bn0tbG9ja2A7XG4gICAgaWYgKGV4aXN0c1N5bmMobG9jaykpIHtcbiAgICAgIGlmICghc3RhbGVMb2NrKGxvY2spKSBjb250aW51ZTtcbiAgICAgIHJtU3luYyhsb2NrLCB7IGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY2xvc2VTeW5jKG9wZW5TeW5jKGxvY2ssIFwid3hcIikpO1xuICAgICAgcmV0dXJuIG47XG4gICAgfSBjYXRjaCB7fVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihcIm5vIGZyZWUgWCBkaXNwbGF5XCIpO1xufVxuXG5mdW5jdGlvbiBzdGFsZUxvY2sobG9jazogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGlkID0gTnVtYmVyLnBhcnNlSW50KHJlYWRGaWxlU3luYyhsb2NrLCBcInV0ZjhcIikudHJpbSgpLCAxMCk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUocGlkKSkgcmV0dXJuIHRydWU7XG4gICAgcHJvY2Vzcy5raWxsKHBpZCwgMCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRYdmZiKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogWHZmYkhhbmRsZSB7XG4gIGNvbnN0IGRpc3BsYXkgPSBhY3F1aXJlRGlzcGxheSgpO1xuICBjb25zdCBwcm9jID0gc3Bhd24oXCJYdmZiXCIsIFtgOiR7ZGlzcGxheX1gLCBcIi1zY3JlZW5cIiwgXCIwXCIsIGAke3dpZHRofXgke2hlaWdodH14MjRgLCBcIi1ub2xpc3RlblwiLCBcInRjcFwiLCBcIi1ub3Jlc2V0XCJdLCB7XG4gICAgc3RkaW86IFwiaWdub3JlXCIsXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGRpc3BsYXksXG4gICAgc3RvcCgpIHtcbiAgICAgIGlmIChwcm9jLnBpZCkgdHJlZUtpbGwocHJvYy5waWQsIFwiU0lHS0lMTFwiKTtcbiAgICAgIHJtU3luYyhgL3RtcC8uWCR7ZGlzcGxheX0tbG9ja2AsIHsgZm9yY2U6IHRydWUgfSk7XG4gICAgICBybVN5bmMoYC90bXAvLlgxMS11bml4L1gke2Rpc3BsYXl9YCwgeyBmb3JjZTogdHJ1ZSB9KTtcbiAgICB9LFxuICB9O1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8yNy5cblxuaW1wb3J0IHsgSGFyZHdhcmVDb250ZXh0IH0gZnJvbSBcIm5vZGUtYXYvYXBpXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5cbmNvbnN0IFRBRyA9IFwiW0hXQWNjZWxdXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIGRldGVjdEdQVURyaXZlcigpIHtcbiAgY29uc3QgaHcgPSBIYXJkd2FyZUNvbnRleHQuYXV0bygpO1xuICBjb25zdCByZXN1bHQgPSBodyAhPT0gbnVsbDtcbiAgaHc/LmRpc3Bvc2UoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGNvbnN0IGNhbklVc2VHUFUgPSBkZXRlY3RHUFVEcml2ZXIoKS50aGVuKChyZXN1bHQpID0+IHtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgXCJncHU6XCIsIHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59KTtcbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDQvMDMuXG5cbmltcG9ydCB7IHBsYXRmb3JtIH0gZnJvbSBcIm9zXCI7XG5pbXBvcnQgeyBwdXBMb2dMZXZlbCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY2FuSVVzZUdQVSB9IGZyb20gXCIuL2h3YWNjZWxcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNocm9taXVtT3B0aW9ucyhkaXNhYmxlR3B1OiBib29sZWFuKSB7XG4gIGNvbnN0IG9wdHMgPSBbXG4gICAgLy8g5a655Zmo5rKZ566xXG4gICAgXCJuby1zYW5kYm94XCIsXG4gICAgXCJkaXNhYmxlLWRldi1zaG0tdXNhZ2VcIixcbiAgICAvLyDot6jln58v5a6J5YWoXG4gICAgXCJkaXNhYmxlLXdlYi1zZWN1cml0eVwiLFxuICAgIFwiZGlzYWJsZS1zaXRlLWlzb2xhdGlvbi10cmlhbHNcIixcbiAgICBcImlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnNcIixcbiAgICAvLyDlvZXliLbooYzkuLpcbiAgICBcImRpc2FibGUtYmxpbmstZmVhdHVyZXM9QXV0b21hdGlvbkNvbnRyb2xsZWRcIixcbiAgICBcIm11dGUtYXVkaW9cIixcbiAgICBcImF1dG9wbGF5LXBvbGljeT1uby11c2VyLWdlc3R1cmUtcmVxdWlyZWRcIixcbiAgICBcImRpc2FibGUtZXh0ZW5zaW9uc1wiLFxuICAgIC8vIOa4suafk1xuICAgIFwiZm9yY2UtZGV2aWNlLXNjYWxlLWZhY3Rvcj0xXCIsXG4gICAgXCJmb3JjZS1jb2xvci1wcm9maWxlPXNyZ2JcIixcbiAgICBcImlnbm9yZS1ncHUtYmxvY2tsaXN0XCIsXG4gICAgXCJ1c2UtZ2w9YW5nbGVcIixcbiAgICBcImRldGVybWluaXN0aWMtbW9kZVwiLFxuICAgIFwiZW5hYmxlLWJlZ2luLWZyYW1lLWNvbnRyb2xcIixcbiAgICBcImRpc2FibGUtbmV3LWNvbnRlbnQtcmVuZGVyaW5nLXRpbWVvdXRcIixcbiAgICBcInJ1bi1hbGwtY29tcG9zaXRvci1zdGFnZXMtYmVmb3JlLWRyYXdcIixcbiAgICBcImRpc2FibGUtdGhyZWFkZWQtYW5pbWF0aW9uXCIsXG4gICAgXCJkaXNhYmxlLXRocmVhZGVkLXNjcm9sbGluZ1wiLFxuICAgIFwiZGlzYWJsZS1jaGVja2VyLWltYWdpbmdcIixcbiAgICBcImRpc2FibGUtaW1hZ2UtYW5pbWF0aW9uLXJlc3luY1wiLFxuICAgIFwiZW5hYmxlLXN1cmZhY2Utc3luY2hyb25pemF0aW9uXCIsXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3B1cHBldGVlci9wdXBwZXRlZXIvaXNzdWVzLzI0MTBcbiAgICBcImZvbnQtcmVuZGVyLWhpbnRpbmc9bm9uZVwiLFxuICAgIC8vIOi1hOa6kOaOp+WItlxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kLW5ldHdvcmtpbmdcIixcbiAgICBcImpzLWZsYWdzPS0tbWF4LW9sZC1zcGFjZS1zaXplPTUxMlwiLFxuICAgIFwicmVuZGVyZXItcHJvY2Vzcy1saW1pdD0xXCIsXG4gICAgXCJudW0tcmFzdGVyLXRocmVhZHM9MVwiLFxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kLXRpbWVyLXRocm90dGxpbmdcIixcbiAgICBcImRpc2FibGUtcmVuZGVyZXItYmFja2dyb3VuZGluZ1wiLFxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kaW5nLW9jY2x1ZGVkLXdpbmRvd3NcIixcbiAgICAvLyDml6Xlv5fov73ouKpcbiAgICBcImVuYWJsZS1sb2dnaW5nPXN0ZGVyclwiLFxuICBdO1xuXG4gIGlmIChwdXBMb2dMZXZlbCA+PSAzKSB7XG4gICAgb3B0cy5wdXNoKFwibG9nLWxldmVsPTBcIiwgXCJ2PTFcIik7XG4gIH0gZWxzZSB7XG4gICAgb3B0cy5wdXNoKFwibG9nLWxldmVsPTNcIik7XG4gIH1cblxuICBjb25zdCBmZWF0dXJlcyA9IFtcIkZvbnRhdGlvbkJhY2tlbmRcIl07XG4gIGNvbnN0IGVuYWJsZUdwdSA9IChhd2FpdCBjYW5JVXNlR1BVKSAmJiAhZGlzYWJsZUdwdTtcbiAgaWYgKCFlbmFibGVHcHUpIHtcbiAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9c3dpZnRzaGFkZXJcIiwgXCJlbmFibGUtdW5zYWZlLXN3aWZ0c2hhZGVyXCIpO1xuICB9IGVsc2Uge1xuICAgIG9wdHMucHVzaChcImRpc2FibGUtZ3B1LXNhbmRib3hcIiwgXCJlbmFibGUtdW5zYWZlLXdlYmdwdVwiKTtcbiAgICBjb25zdCBwbGF0ID0gcGxhdGZvcm0oKTtcbiAgICBpZiAocGxhdCA9PT0gXCJkYXJ3aW5cIikge1xuICAgICAgb3B0cy5wdXNoKFwidXNlLWFuZ2xlPW1ldGFsXCIpO1xuICAgIH0gZWxzZSBpZiAocGxhdCA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9ZDNkMTFcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdHMucHVzaChcInVzZS1hbmdsZT12dWxrYW5cIiwgXCJkaXNhYmxlLXZ1bGthbi1zdXJmYWNlXCIpO1xuICAgICAgZmVhdHVyZXMucHVzaChcIlZ1bGthblwiKTtcbiAgICB9XG4gIH1cblxuICBvcHRzLnB1c2goYGVuYWJsZS1mZWF0dXJlcz0ke2ZlYXR1cmVzLmpvaW4oXCIsXCIpfWApO1xuICByZXR1cm4gb3B0cztcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmltcG9ydCBlbGVjdHJvbiBmcm9tIFwiZWxlY3Ryb25cIjtcbmltcG9ydCB7IGNocm9taXVtT3B0aW9ucyB9IGZyb20gXCIuLi9iYXNlL2Nocm9taXVtXCI7XG5pbXBvcnQgeyBwdXBBcHAgfSBmcm9tIFwiLi4vYmFzZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi9iYXNlL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMsIFBVUF9BUkdTX0tFWSB9IGZyb20gXCIuLi9iYXNlL3Byb2Nlc3NcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVsZWN0cm9uT3B0cyhkaXNhYmxlR3B1OiBib29sZWFuKSB7XG4gIHJldHVybiBbLi4uKGF3YWl0IGNocm9taXVtT3B0aW9ucyhkaXNhYmxlR3B1KSksIFwiaGVhZGxlc3M9bmV3XCJdO1xufVxuXG5jb25zdCBUQUcgPSBcIltFbGVjdHJvbl1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBSdW5FbGVjdHJvbkFwcE9wdGlvbnMge1xuICBhcmdzOiB1bmtub3duW107XG4gIGRpc3BsYXk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5FbGVjdHJvbkFwcCh7IGFyZ3MsIGRpc3BsYXkgfTogUnVuRWxlY3Ryb25BcHBPcHRpb25zKSB7XG4gIGNvbnN0IG9wdHMgPSBhd2FpdCBlbGVjdHJvbk9wdHMoYXJncy5pbmNsdWRlcyhcIi0tZGlzYWJsZS1ncHVcIikpO1xuICBjb25zdCBlbGVjdHJvbkFyZ3MgPSBvcHRzLm1hcCgoYSkgPT4gYC0tJHthfWApO1xuICBlbGVjdHJvbkFyZ3MucHVzaChgJHtQVVBfQVJHU19LRVl9PSR7QnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoYXJncykpLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWApO1xuICBjb25zdCBjbWQgPSBbZWxlY3Ryb24sIC4uLmVsZWN0cm9uQXJncywgcHVwQXBwXS5qb2luKFwiIFwiKTtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgY21kKTtcblxuICBjb25zdCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0geyAuLi5wcm9jZXNzLmVudiwgUlVTVF9CQUNLVFJBQ0U6IFwiZnVsbFwiIH07XG4gIGlmIChkaXNwbGF5ICE9PSB1bmRlZmluZWQpIGVudltcIkRJU1BMQVlcIl0gPSBgOiR7ZGlzcGxheX1gO1xuXG4gIHJldHVybiBleGVjKGNtZCwgeyBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIiwgXCJpcGNcIl0sIGVudiB9KTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDQvMDEuXG5cbmltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJldmVudHNcIjtcblxuZXhwb3J0IGNvbnN0IGVudW0gSXBjTXNnVHlwZSB7XG4gIFBST0dSRVNTID0gXCJwcm9ncmVzc1wiLFxuICBET05FID0gXCJkb25lXCIsXG4gIEVSUk9SID0gXCJlcnJvclwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElwY0RvbmVQYXlsb2FkIHtcbiAgd3JpdHRlbjogbnVtYmVyO1xuICBqYW5rOiBudW1iZXI7XG4gIG91dEZpbGU6IHN0cmluZztcbn1cblxudHlwZSBNc2cgPVxuICB8IHsgdHlwZTogSXBjTXNnVHlwZS5QUk9HUkVTUzsgdmFsdWU6IG51bWJlciB9XG4gIHwgeyB0eXBlOiBJcGNNc2dUeXBlLkRPTkU7IHBheWxvYWQ6IElwY0RvbmVQYXlsb2FkIH1cbiAgfCB7IHR5cGU6IElwY01zZ1R5cGUuRVJST1I7IGVycm9yOiBzdHJpbmcgfTtcblxuZXhwb3J0IGNsYXNzIElwY1dyaXRlciB7XG4gIHdyaXRlUHJvZ3Jlc3ModmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuUFJPR1JFU1MsIHZhbHVlIH0pO1xuICB9XG5cbiAgd3JpdGVFcnJvcihlcnJvcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuRVJST1IsIGVycm9yIH0pO1xuICB9XG5cbiAgd3JpdGVEb25lKHBheWxvYWQ6IElwY0RvbmVQYXlsb2FkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuRE9ORSwgcGF5bG9hZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZChtc2c6IE1zZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKCFwcm9jZXNzLnNlbmQpIHJldHVybiByZXNvbHZlKCk7XG4gICAgICBwcm9jZXNzLnNlbmQobXNnLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJcGNSZWFkZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXI8e1xuICBwcm9ncmVzczogW3ZhbHVlOiBudW1iZXJdO1xuICBtZXNzYWdlOiBbbXNnOiBNc2ddO1xuICBkb25lOiBbcGF5bG9hZDogSXBjRG9uZVBheWxvYWRdO1xuICBlcnJvcjogW2Vycm9yOiBFcnJvcl07XG4gIGNsb3NlOiBbXTtcbn0+IHtcbiAgY29uc3RydWN0b3IoY2hpbGQ6IENoaWxkUHJvY2Vzcykge1xuICAgIHN1cGVyKCk7XG4gICAgY2hpbGQub24oXCJtZXNzYWdlXCIsIChyYXcpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9IHJhdyBhcyBNc2c7XG4gICAgICB0aGlzLmVtaXQoXCJtZXNzYWdlXCIsIG1zZyk7XG4gICAgICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgICAgIGNhc2UgSXBjTXNnVHlwZS5QUk9HUkVTUzpcbiAgICAgICAgICB0aGlzLmVtaXQoXCJwcm9ncmVzc1wiLCBtc2cudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIElwY01zZ1R5cGUuRE9ORTpcbiAgICAgICAgICB0aGlzLmVtaXQoXCJkb25lXCIsIG1zZy5wYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBJcGNNc2dUeXBlLkVSUk9SOlxuICAgICAgICAgIHRoaXMuZW1pdChcImVycm9yXCIsIG5ldyBFcnJvcihtc2cuZXJyb3IpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjaGlsZC5vbmNlKFwiZXhpdFwiLCAoKSA9PiB0aGlzLmVtaXQoXCJjbG9zZVwiKSk7XG4gIH1cbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDkuXG5cbmltcG9ydCB7IHBsYXRmb3JtIH0gZnJvbSBcIm9zXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9iYXNlL2xvZ2dpbmdcIjtcbmltcG9ydCB7IHN0YXJ0WHZmYiB9IGZyb20gXCIuL2Jhc2UveHZmYlwiO1xuaW1wb3J0IHsgcnVuRWxlY3Ryb25BcHAgfSBmcm9tIFwiLi9yZW5kZXJlci9lbGVjdHJvblwiO1xuaW1wb3J0IHsgSXBjUmVhZGVyLCB0eXBlIElwY0RvbmVQYXlsb2FkIH0gZnJvbSBcIi4vcmVuZGVyZXIvaXBjXCI7XG5pbXBvcnQgeyBkZWZhdWx0UmVuZGVyT3B0aW9ucywgdHlwZSBSZW5kZXJPcHRpb25zLCB0eXBlIFJlbmRlclJlc3VsdCB9IGZyb20gXCIuL3JlbmRlcmVyL3NjaGVtYVwiO1xuXG5jb25zdCBUQUcgPSBcIltwdXBdXCI7XG5cbmV4cG9ydCB0eXBlIFB1cFByb2dyZXNzQ2FsbGJhY2sgPSAocHJvZ3Jlc3M6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVwT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8UmVuZGVyT3B0aW9ucz4ge1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgb25Qcm9ncmVzcz86IFB1cFByb2dyZXNzQ2FsbGJhY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVwUmVzdWx0IGV4dGVuZHMgUmVuZGVyUmVzdWx0IHt9XG5cbmludGVyZmFjZSBBcHBPcHRpb25zIGV4dGVuZHMgUmVuZGVyT3B0aW9ucyB7XG4gIGRpc3BsYXk/OiBudW1iZXI7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1blB1cEFwcChzb3VyY2U6IHN0cmluZywgb3B0aW9uczogQXBwT3B0aW9ucykge1xuICBsb2dnZXIuZGVidWcoVEFHLCBgcnVuUHVwQXBwYCwgc291cmNlLCBvcHRpb25zKTtcblxuICBjb25zdCBhcmdzOiBzdHJpbmdbXSA9IFtcbiAgICBzb3VyY2UsXG4gICAgYC0td2lkdGhgLFxuICAgIGAke29wdGlvbnMud2lkdGh9YCxcbiAgICBgLS1oZWlnaHRgLFxuICAgIGAke29wdGlvbnMuaGVpZ2h0fWAsXG4gICAgYC0tZnBzYCxcbiAgICBgJHtvcHRpb25zLmZwc31gLFxuICAgIGAtLWR1cmF0aW9uYCxcbiAgICBgJHtvcHRpb25zLmR1cmF0aW9ufWAsXG4gICAgYC0tb3V0LWZpbGVgLFxuICAgIGAke29wdGlvbnMub3V0RmlsZX1gLFxuICBdO1xuICBpZiAob3B0aW9ucy53aXRoQXVkaW8pIGFyZ3MucHVzaChgLS13aXRoLWF1ZGlvYCk7XG4gIGlmIChvcHRpb25zLnVzZUlubmVyUHJveHkpIGFyZ3MucHVzaChgLS11c2UtaW5uZXItcHJveHlgKTtcbiAgaWYgKG9wdGlvbnMuZGV0ZXJtaW5pc3RpYykgYXJncy5wdXNoKGAtLWRldGVybWluaXN0aWNgKTtcbiAgaWYgKG9wdGlvbnMuZGlzYWJsZUdwdSkgYXJncy5wdXNoKGAtLWRpc2FibGUtZ3B1YCk7XG4gIGlmIChvcHRpb25zLmRpc2FibGVId0NvZGVjKSBhcmdzLnB1c2goYC0tZGlzYWJsZS1ody1jb2RlY2ApO1xuICBpZiAob3B0aW9ucy53aW5kb3dUb2xlcmFudCkgYXJncy5wdXNoKGAtLXdpbmRvdy10b2xlcmFudGApO1xuXG4gIHJldHVybiBydW5FbGVjdHJvbkFwcCh7IGFyZ3MsIGRpc3BsYXk6IG9wdGlvbnMuZGlzcGxheSB9KTtcbn1cblxuY29uc3QgZCA9IGRlZmF1bHRSZW5kZXJPcHRpb25zO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVwKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPFB1cE9wdGlvbnM+KTogUHJvbWlzZTxQdXBSZXN1bHQ+IHtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgYHB1cGAsIHNvdXJjZSwgb3B0aW9ucyk7XG5cbiAgY29uc3QgeyBzaWduYWwgfSA9IG9wdGlvbnM7XG4gIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcblxuICBjb25zdCBvdXRGaWxlID0gb3B0aW9ucy5vdXRGaWxlID8/IGQub3V0RmlsZTtcbiAgY29uc3QgcmVuZGVyT3B0czogUmVuZGVyT3B0aW9ucyA9IHtcbiAgICB3aWR0aDogb3B0aW9ucy53aWR0aCA/PyBkLndpZHRoLFxuICAgIGhlaWdodDogb3B0aW9ucy5oZWlnaHQgPz8gZC5oZWlnaHQsXG4gICAgZnBzOiBvcHRpb25zLmZwcyA/PyBkLmZwcyxcbiAgICBkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbiA/PyBkLmR1cmF0aW9uLFxuICAgIHdpdGhBdWRpbzogb3B0aW9ucy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgdXNlSW5uZXJQcm94eTogb3B0aW9ucy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICBkZXRlcm1pbmlzdGljOiBvcHRpb25zLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgIGRpc2FibGVHcHU6IG9wdGlvbnMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgZGlzYWJsZUh3Q29kZWM6IG9wdGlvbnMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICB3aW5kb3dUb2xlcmFudDogb3B0aW9ucy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgIG91dEZpbGUsXG4gIH07XG5cbiAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICBsZXQgcHJvZ3Jlc3MgPSAwO1xuICBjb25zdCB0aWNrID0gKHA6IG51bWJlcikgPT4ge1xuICAgIGxvZ2dlci5pbmZvKFRBRywgYCR7c291cmNlfSBwcm9ncmVzczogJHtwfSVgKTtcbiAgICBwcm9ncmVzcyA9IHA7XG4gICAgb3B0aW9ucy5vblByb2dyZXNzPy4ocCk7XG4gIH07XG5cbiAgY29uc3QgeHZmYiA9IHBsYXRmb3JtKCkgPT09IFwibGludXhcIiA/IHN0YXJ0WHZmYihyZW5kZXJPcHRzLndpZHRoLCByZW5kZXJPcHRzLmhlaWdodCArIDEpIDogdW5kZWZpbmVkO1xuICBjb25zdCBoYW5kbGUgPSBhd2FpdCBydW5QdXBBcHAoc291cmNlLCB7IC4uLnJlbmRlck9wdHMsIGRpc3BsYXk6IHh2ZmI/LmRpc3BsYXkgfSk7XG5cbiAgY29uc3Qgb25BYm9ydCA9ICgpID0+IChsb2dnZXIuZXJyb3IoVEFHLCBgYWJvcnRlZGApLCBoYW5kbGUua2lsbCgpKTtcbiAgc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFByb21pc2U8SXBjRG9uZVBheWxvYWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG5ldyBJcGNSZWFkZXIoaGFuZGxlLnByb2Nlc3MpXG4gICAgICAgIC5vbihcImNsb3NlXCIsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBtc2cgPSBKU09OLnN0cmluZ2lmeSh7IHNvdXJjZSwgcHJvZ3Jlc3MsIGtpbGxlZDogaGFuZGxlLmtpbGxlZCB9KTtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBjcmFzaGVkOiAke21zZ31gKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbihcIm1lc3NhZ2VcIiwgKCkgPT4gc2lnbmFsPy5hYm9ydGVkICYmIHJlamVjdChzaWduYWwucmVhc29uKSlcbiAgICAgICAgLm9uKFwicHJvZ3Jlc3NcIiwgdGljaylcbiAgICAgICAgLm9uKFwiZG9uZVwiLCByZXNvbHZlKVxuICAgICAgICAub24oXCJlcnJvclwiLCByZWplY3QpO1xuICAgIH0pO1xuICAgIHRpY2soMCk7XG4gICAgY29uc3QgW3N1bW1hcnldID0gYXdhaXQgUHJvbWlzZS5hbGwoW3Jlc3VsdCwgaGFuZGxlLndhaXRdKTtcbiAgICB0aWNrKDEwMCk7XG4gICAgbG9nZ2VyLmluZm8oVEFHLCBgZG9uZSAke291dEZpbGV9IGluICR7TWF0aC5yb3VuZChwZXJmb3JtYW5jZS5ub3coKSAtIHQwKX1tc2ApO1xuICAgIHJldHVybiB7IC4uLnN1bW1hcnksIG9wdGlvbnM6IHJlbmRlck9wdHMgfTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhbmRsZS5raWxsKCk7XG4gICAgc2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuICAgIHRocm93IGU7XG4gIH0gZmluYWxseSB7XG4gICAgc2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCk7XG4gICAgeHZmYj8uc3RvcCgpO1xuICB9XG59XG4iXX0=
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
- import'source-map-support/register.js';import {z,q,d,p,s,A,B}from'./chunk-NKXGLDTD.js';import {program}from'commander';async function m(n){let e=z.shape,i=n.defaults;program.name(n.name).argument("<source>","file://, http(s)://, or data: URI").option("-W, --width <number>",e.width.description,`${i.width}`).option("-H, --height <number>",e.height.description,`${i.height}`).option("-f, --fps <number>",e.fps.description,`${i.fps}`).option("-t, --duration <number>",e.duration.description,`${i.duration}`).option("-o, --out-file <path>",e.outFile.description,i.outFile).option("-a, --with-audio",e.withAudio.description,i.withAudio).option("-d, --deterministic",e.deterministic.description,i.deterministic).option("--use-inner-proxy",e.useInnerProxy.description,i.useInnerProxy).option("--disable-gpu",e.disableGpu.description,i.disableGpu).option("--disable-hw-codec",e.disableHwCodec.description,i.disableHwCodec).option("--window-tolerant",e.windowTolerant.description,i.windowTolerant).action(async(t,o)=>{try{await n.run(t,{width:q(d,i.width)(o.width),height:q(d,i.height)(o.height),fps:q(d,i.fps)(o.fps),duration:q(d,i.duration)(o.duration),outFile:o.outFile??i.outFile,withAudio:o.withAudio??i.withAudio,useInnerProxy:o.useInnerProxy??i.useInnerProxy,deterministic:o.deterministic??i.deterministic,disableGpu:o.disableGpu??i.disableGpu,disableHwCodec:o.disableHwCodec??i.disableHwCodec,windowTolerant:o.windowTolerant??i.windowTolerant});}catch(w){p.fatal(w);}}),await program.parseAsync(s());}m({name:"pup",defaults:A,run:async(n,e)=>{let i=new AbortController,t=0;process.once("SIGTERM",()=>(t=143,i.abort())),process.once("SIGINT",()=>(t=130,i.abort())),process.once("exit",o=>(t=o,i.abort()));try{await B(n,{...e,signal:i.signal});}finally{t&&process.exit(t);}}});//# sourceMappingURL=cli.js.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm1ha2VDTEkiLCJvcHRpb25zIiwic2hhcGUiLCJSZW5kZXJTY2hlbWEiLCJkIiwicHJvZ3JhbSIsInNvdXJjZSIsIm9wdHMiLCJub2VyciIsInBhcnNlTnVtYmVyIiwiZSIsImxvZ2dlciIsInBhcmdzIiwiZGVmYXVsdFJlbmRlck9wdGlvbnMiLCJjdHJsIiwiZXhpdENvZGUiLCJjIiwicHVwIl0sIm1hcHBpbmdzIjoidUhBZUEsZUFBc0JBLEVBQVFDLENBQUFBLENBQXFCLENBQ2pELElBQU1DLENBQUFBLENBQVFDLENBQUFBLENBQWEsS0FBQSxDQUNyQkMsQ0FBQUEsQ0FBSUgsQ0FBQUEsQ0FBUSxTQUNsQkksT0FBQUEsQ0FDRyxJQUFBLENBQUtKLENBQUFBLENBQVEsSUFBSSxDQUFBLENBQ2pCLFFBQUEsQ0FBUyxVQUFBLENBQVksbUNBQW1DLEVBQ3hELE1BQUEsQ0FBTyxzQkFBQSxDQUF3QkMsQ0FBQUEsQ0FBTSxLQUFBLENBQU0sV0FBQSxDQUFhLENBQUEsRUFBR0UsQ0FBQUEsQ0FBRSxLQUFLLEVBQUUsQ0FBQSxDQUNwRSxNQUFBLENBQU8sdUJBQUEsQ0FBeUJGLENBQUFBLENBQU0sTUFBQSxDQUFPLFdBQUEsQ0FBYSxDQUFBLEVBQUdFLENBQUFBLENBQUUsTUFBTSxDQUFBLENBQUUsQ0FBQSxDQUN2RSxNQUFBLENBQU8sb0JBQUEsQ0FBc0JGLENBQUFBLENBQU0sR0FBQSxDQUFJLFdBQUEsQ0FBYSxDQUFBLEVBQUdFLEVBQUUsR0FBRyxDQUFBLENBQUUsQ0FBQSxDQUM5RCxNQUFBLENBQU8seUJBQUEsQ0FBMkJGLENBQUFBLENBQU0sUUFBQSxDQUFTLFdBQUEsQ0FBYSxHQUFHRSxDQUFBQSxDQUFFLFFBQVEsQ0FBQSxDQUFFLENBQUEsQ0FDN0UsT0FBTyx1QkFBQSxDQUF5QkYsQ0FBQUEsQ0FBTSxPQUFBLENBQVEsV0FBQSxDQUFhRSxFQUFFLE9BQU8sQ0FBQSxDQUNw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Q0FDMUQsR0FBSSxDQUNGLE1BQU1HLENBQUFBLENBQUlYLENBQUFBLENBQVEsQ0FBRSxHQUFHTCxDQUFBQSxDQUFTLE1BQUEsQ0FBUWEsQ0FBQUEsQ0FBSyxNQUFPLENBQUMsRUFDdkQsQ0FBQSxPQUFFLENBQ0FDLENBQUFBLEVBQVksUUFBUSxJQUFBLENBQUtBLENBQVEsRUFDbkMsQ0FDRixDQUNGLENBQUMsQ0FBQSIsImZpbGUiOiJjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyBwcm9ncmFtIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBub2VyciB9IGZyb20gXCIuL2Jhc2Uvbm9lcnJcIjtcbmltcG9ydCB7IHBhcnNlTnVtYmVyIH0gZnJvbSBcIi4vYmFzZS9wYXJzZXJcIjtcbmltcG9ydCB7IHBhcmdzIH0gZnJvbSBcIi4vYmFzZS9wcm9jZXNzXCI7XG5pbXBvcnQgeyBSZW5kZXJTY2hlbWEsIHR5cGUgUmVuZGVyT3B0aW9ucyB9IGZyb20gXCIuL3JlbmRlcmVyL3NjaGVtYVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENMSU9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlZmF1bHRzOiBSZW5kZXJPcHRpb25zO1xuICBydW46IChzb3VyY2U6IHN0cmluZywgb3B0aW9uczogUmVuZGVyT3B0aW9ucykgPT4gUHJvbWlzZTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1ha2VDTEkob3B0aW9uczogQ0xJT3B0aW9ucykge1xuICBjb25zdCBzaGFwZSA9IFJlbmRlclNjaGVtYS5zaGFwZTtcbiAgY29uc3QgZCA9IG9wdGlvbnMuZGVmYXVsdHM7XG4gIHByb2dyYW1cbiAgICAubmFtZShvcHRpb25zLm5hbWUpXG4gICAgLmFyZ3VtZW50KFwiPHNvdXJjZT5cIiwgXCJmaWxlOi8vLCBodHRwKHMpOi8vLCBvciBkYXRhOiBVUklcIilcbiAgICAub3B0aW9uKFwiLVcsIC0td2lkdGggPG51bWJlcj5cIiwgc2hhcGUud2lkdGguZGVzY3JpcHRpb24sIGAke2Qud2lkdGh9YClcbiAgICAub3B0aW9uKFwiLUgsIC0taGVpZ2h0IDxudW1iZXI+XCIsIHNoYXBlLmhlaWdodC5kZXNjcmlwdGlvbiwgYCR7ZC5oZWlnaHR9YClcbiAgICAub3B0aW9uKFwiLWYsIC0tZnBzIDxudW1iZXI+XCIsIHNoYXBlLmZwcy5kZXNjcmlwdGlvbiwgYCR7ZC5mcHN9YClcbiAgICAub3B0aW9uKFwiLXQsIC0tZHVyYXRpb24gPG51bWJlcj5cIiwgc2hhcGUuZHVyYXRpb24uZGVzY3JpcHRpb24sIGAke2QuZHVyYXRpb259YClcbiAgICAub3B0aW9uKFwiLW8sIC0tb3V0LWZpbGUgPHBhdGg+XCIsIHNoYXBlLm91dEZpbGUuZGVzY3JpcHRpb24sIGQub3V0RmlsZSlcbiAgICAub3B0aW9uKFwiLWEsIC0td2l0aC1hdWRpb1wiLCBzaGFwZS53aXRoQXVkaW8uZGVzY3JpcHRpb24sIGQud2l0aEF1ZGlvKVxuICAgIC5vcHRpb24oXCItZCwgLS1kZXRlcm1pbmlzdGljXCIsIHNoYXBlLmRldGVybWluaXN0aWMuZGVzY3JpcHRpb24sIGQuZGV0ZXJtaW5pc3RpYylcbiAgICAub3B0aW9uKFwiLS11c2UtaW5uZXItcHJveHlcIiwgc2hhcGUudXNlSW5uZXJQcm94eS5kZXNjcmlwdGlvbiwgZC51c2VJbm5lclByb3h5KVxuICAgIC5vcHRpb24oXCItLWRpc2FibGUtZ3B1XCIsIHNoYXBlLmRpc2FibGVHcHUuZGVzY3JpcHRpb24sIGQuZGlzYWJsZUdwdSlcbiAgICAub3B0aW9uKFwiLS1kaXNhYmxlLWh3LWNvZGVjXCIsIHNoYXBlLmRpc2FibGVId0NvZGVjLmRlc2NyaXB0aW9uLCBkLmRpc2FibGVId0NvZGVjKVxuICAgIC5vcHRpb24oXCItLXdpbmRvdy10b2xlcmFudFwiLCBzaGFwZS53aW5kb3dUb2xlcmFudC5kZXNjcmlwdGlvbiwgZC53aW5kb3dUb2xlcmFudClcbiAgICAuYWN0aW9uKGFzeW5jIChzb3VyY2U6IHN0cmluZywgb3B0cykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgb3B0aW9ucy5ydW4oc291cmNlLCB7XG4gICAgICAgICAgd2lkdGg6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpZHRoKShvcHRzLndpZHRoKSxcbiAgICAgICAgICBoZWlnaHQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmhlaWdodCkob3B0cy5oZWlnaHQpLFxuICAgICAgICAgIGZwczogbm9lcnIocGFyc2VOdW1iZXIsIGQuZnBzKShvcHRzLmZwcyksXG4gICAgICAgICAgZHVyYXRpb246IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmR1cmF0aW9uKShvcHRzLmR1cmF0aW9uKSxcbiAgICAgICAgICBvdXRGaWxlOiBvcHRzLm91dEZpbGUgPz8gZC5vdXRGaWxlLFxuICAgICAgICAgIHdpdGhBdWRpbzogb3B0cy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgICAgICAgdXNlSW5uZXJQcm94eTogb3B0cy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICAgICAgICBkZXRlcm1pbmlzdGljOiBvcHRzLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgICAgICAgIGRpc2FibGVHcHU6IG9wdHMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgICAgICAgZGlzYWJsZUh3Q29kZWM6IG9wdHMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICAgICAgICB3aW5kb3dUb2xlcmFudDogb3B0cy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nZ2VyLmZhdGFsKGUpO1xuICAgICAgfVxuICAgIH0pO1xuICBhd2FpdCBwcm9ncmFtLnBhcnNlQXN5bmMocGFyZ3MoKSk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI1LlxuXG5pbXBvcnQgeyBtYWtlQ0xJIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBwdXAgfSBmcm9tIFwiLi9wdXBcIjtcbmltcG9ydCB7IGRlZmF1bHRSZW5kZXJPcHRpb25zIH0gZnJvbSBcIi4vcmVuZGVyZXIvc2NoZW1hXCI7XG5cbm1ha2VDTEkoe1xuICBuYW1lOiBcInB1cFwiLFxuICBkZWZhdWx0czogZGVmYXVsdFJlbmRlck9wdGlvbnMsXG4gIHJ1bjogYXN5bmMgKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGN0cmwgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgbGV0IGV4aXRDb2RlID0gMDtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+ICgoZXhpdENvZGUgPSAxNDMpLCBjdHJsLmFib3J0KCkpKTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgKCkgPT4gKChleGl0Q29kZSA9IDEzMCksIGN0cmwuYWJvcnQoKSkpO1xuICAgIHByb2Nlc3Mub25jZShcImV4aXRcIiwgKGMpID0+ICgoZXhpdENvZGUgPSBjKSwgY3RybC5hYm9ydCgpKSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHB1cChzb3VyY2UsIHsgLi4ub3B0aW9ucywgc2lnbmFsOiBjdHJsLnNpZ25hbCB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZXhpdENvZGUgJiYgcHJvY2Vzcy5leGl0KGV4aXRDb2RlKTtcbiAgICB9XG4gIH0sXG59KTtcbiJdfQ==
1
+ import'source-map-support/register.js';import {y,p,d,o,r,z,A}from'./chunk-34MTHEKG.js';import {program}from'commander';async function m(n){let e=y.shape,i=n.defaults;program.name(n.name).argument("<source>","file://, http(s)://, or data: URI").option("-W, --width <number>",e.width.description,`${i.width}`).option("-H, --height <number>",e.height.description,`${i.height}`).option("-f, --fps <number>",e.fps.description,`${i.fps}`).option("-t, --duration <number>",e.duration.description,`${i.duration}`).option("-o, --out-file <path>",e.outFile.description,i.outFile).option("-a, --with-audio",e.withAudio.description,i.withAudio).option("-d, --deterministic",e.deterministic.description,i.deterministic).option("--use-inner-proxy",e.useInnerProxy.description,i.useInnerProxy).option("--disable-gpu",e.disableGpu.description,i.disableGpu).option("--disable-hw-codec",e.disableHwCodec.description,i.disableHwCodec).option("--window-tolerant",e.windowTolerant.description,i.windowTolerant).action(async(t,o$1)=>{try{await n.run(t,{width:p(d,i.width)(o$1.width),height:p(d,i.height)(o$1.height),fps:p(d,i.fps)(o$1.fps),duration:p(d,i.duration)(o$1.duration),outFile:o$1.outFile??i.outFile,withAudio:o$1.withAudio??i.withAudio,useInnerProxy:o$1.useInnerProxy??i.useInnerProxy,deterministic:o$1.deterministic??i.deterministic,disableGpu:o$1.disableGpu??i.disableGpu,disableHwCodec:o$1.disableHwCodec??i.disableHwCodec,windowTolerant:o$1.windowTolerant??i.windowTolerant});}catch(w){o.fatal(w);}}),await program.parseAsync(r());}m({name:"pup",defaults:z,run:async(n,e)=>{let i=new AbortController,t=0;process.once("SIGTERM",()=>(t=143,i.abort())),process.once("SIGINT",()=>(t=130,i.abort())),process.once("exit",o=>(t=o,i.abort()));try{await A(n,{...e,signal:i.signal});}finally{t&&process.exit(t);}}});//# sourceMappingURL=cli.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm1ha2VDTEkiLCJvcHRpb25zIiwic2hhcGUiLCJSZW5kZXJTY2hlbWEiLCJkIiwicHJvZ3JhbSIsInNvdXJjZSIsIm9wdHMiLCJub2VyciIsInBhcnNlTnVtYmVyIiwiZSIsImxvZ2dlciIsInBhcmdzIiwiZGVmYXVsdFJlbmRlck9wdGlvbnMiLCJjdHJsIiwiZXhpdENvZGUiLCJjIiwicHVwIl0sIm1hcHBpbmdzIjoidUhBZUEsZUFBc0JBLEVBQVFDLENBQUFBLENBQXFCLENBQ2pELElBQU1DLENBQUFBLENBQVFDLENBQUFBLENBQWEsS0FBQSxDQUNyQkMsQ0FBQUEsQ0FBSUgsQ0FBQUEsQ0FBUSxTQUNsQkksT0FBQUEsQ0FDRyxJQUFBLENBQUtKLENBQUFBLENBQVEsSUFBSSxDQUFBLENBQ2pCLFFBQUEsQ0FBUyxVQUFBLENBQVksbUNBQW1DLEVBQ3hELE1BQUEsQ0FBTyxzQkFBQSxDQUF3QkMsQ0FBQUEsQ0FBTSxLQUFBLENBQU0sV0FBQSxDQUFhLENBQUEsRUFBR0UsQ0FBQUEsQ0FBRSxLQUFLLEVBQUUsQ0FBQSxDQUNwRSxNQUFBLENBQU8sdUJBQUEsQ0FBeUJGLENBQUFBLENBQU0sTUFBQSxDQUFPLFdBQUEsQ0FBYSxDQUFBLEVBQUdFLENBQUFBLENBQUUsTUFBTSxDQUFBLENBQUUsQ0FBQSxDQUN2RSxNQUFBLENBQU8sb0JBQUEsQ0FBc0JGLENBQUFBLENBQU0sR0FBQSxDQUFJLFdBQUEsQ0FBYSxDQUFBLEVBQUdFLEVBQUUsR0FBRyxDQUFBLENBQUUsQ0FBQSxDQUM5RCxNQUFBLENBQU8seUJBQUEsQ0FBMkJGLENBQUFBLENBQU0sUUFBQSxDQUFTLFdBQUEsQ0FBYSxHQUFHRSxDQUFBQSxDQUFFLFFBQVEsQ0FBQSxDQUFFLENBQUEsQ0FDN0UsT0FBTyx1QkFBQSxDQUF5QkYsQ0FBQUEsQ0FBTSxPQUFBLENBQVEsV0FBQSxDQUFhRSxFQUFFLE9BQU8sQ0FBQSxDQUNwRSxNQUFBLENBQU8sa0JBQUEsQ0FBb0JGLENBQUFBLENBQU0sU0FBQSxDQUFVLFdBQUEsQ0FBYUUsQ0FBQUEsQ0FBRSxTQUFTLENBQUEsQ0FDbkUsTUFBQSxDQUFPLHFCQUFBLENBQXVCRixDQUFBQSxDQUFNLGFBQUEsQ0FBYyxXQUFBLENBQWFFLENBQUFBLENBQUUsYUFBYSxFQUM5RSxNQUFBLENBQU8sbUJBQUEsQ0FBcUJGLENBQUFBLENBQU0sYUFBQSxDQUFjLFdBQUEsQ0FBYUUsQ0FBQUEsQ0FBRSxhQUFhLENBQUEsQ0FDNUUsT0FBTyxlQUFBLENBQWlCRixDQUFBQSxDQUFNLFVBQUEsQ0FBVyxXQUFBLENBQWFFLEVBQUUsVUFBVSxDQUFBLENBQ2xFLE1BQUEsQ0FBTyxvQkFBQSxDQUFzQkYsRUFBTSxjQUFBLENBQWUsV0FBQSxDQUFhRSxDQUFBQSxDQUFFLGNBQWMsQ0FBQSxDQUMvRSxNQUFBLENBQU8sbUJBQUEsQ0FBcUJGLENBQUFBLENBQU0sZUFBZSxXQUFBLENBQWFFLENBQUFBLENBQUUsY0FBYyxDQUFBLENBQzlFLE1BQUEsQ0FBTyxNQUFPRSxDQUFBQSxDQUFnQkMsR0FBQUEsR0FBUyxDQUN0QyxHQUFJLENBQ0YsTUFBTU4sQ0FBQUEsQ0FBUSxHQUFBLENBQUlLLENBQUFBLENBQVEsQ0FDeEIsS0FBQSxDQUFPRSxFQUFNQyxDQUFBQSxDQUFhTCxDQUFBQSxDQUFFLEtBQUssQ0FBQSxDQUFFRyxJQUFLLEtBQUssQ0FBQSxDQUM3QyxNQUFBLENBQVFDLENBQUFBLENBQU1DLEVBQWFMLENBQUFBLENBQUUsTUFBTSxDQUFBLENBQUVHLEdBQUFBLENBQUssTUFBTSxDQUFBLENBQ2hELEdBQUEsQ0FBS0MsQ0FBQUEsQ0FBTUMsRUFBYUwsQ0FBQUEsQ0FBRSxHQUFHLENBQUEsQ0FBRUcsR0FBQUEsQ0FBSyxHQUFHLENBQUEsQ0FDdkMsUUFBQSxDQUFVQyxDQUFBQSxDQUFNQyxFQUFhTCxDQUFBQSxDQUFFLFFBQVEsQ0FBQSxDQUFFRyxHQUFBQSxDQUFLLFFBQVEsQ0FBQSxDQUN0RCxPQUFBLENBQVNBLEdBQUFBLENBQUssU0FBV0gsQ0FBQUEsQ0FBRSxPQUFBLENBQzNCLFNBQUEsQ0FBV0csR0FBQUEsQ0FBSyxTQUFBLEVBQWFILENBQUFBLENBQUUsU0FBQSxDQUMvQixhQUFBLENBQWVHLElBQUssYUFBQSxFQUFpQkgsQ0FBQUEsQ0FBRSxhQUFBLENBQ3ZDLGFBQUEsQ0FBZUcsR0FBQUEsQ0FBSyxhQUFBLEVBQWlCSCxDQUFBQSxDQUFFLGFBQUEsQ0FDdkMsV0FBWUcsR0FBQUEsQ0FBSyxVQUFBLEVBQWNILENBQUFBLENBQUUsVUFBQSxDQUNqQyxjQUFBLENBQWdCRyxHQUFBQSxDQUFLLGNBQUEsRUFBa0JILENBQUFBLENBQUUsZUFDekMsY0FBQSxDQUFnQkcsR0FBQUEsQ0FBSyxjQUFBLEVBQWtCSCxDQUFBQSxDQUFFLGNBQzNDLENBQUMsRUFDSCxDQUFBLE1BQVNNLEVBQUcsQ0FDVkMsQ0FBQUEsQ0FBTyxLQUFBLENBQU1ELENBQUMsRUFDaEIsQ0FDRixDQUFDLENBQUEsQ0FDSCxNQUFNTCxRQUFRLFVBQUEsQ0FBV08sQ0FBQUEsRUFBTyxFQUNsQyxDQzlDQVosQ0FBQUEsQ0FBUSxDQUNOLElBQUEsQ0FBTSxNQUNOLFFBQUEsQ0FBVWEsQ0FBQUEsQ0FDVixHQUFBLENBQUssTUFBT1AsQ0FBQUEsQ0FBUUwsQ0FBQUEsR0FBWSxDQUM5QixJQUFNYSxFQUFPLElBQUksZUFBQSxDQUNiQyxDQUFBQSxDQUFXLENBQUEsQ0FDZixPQUFBLENBQVEsSUFBQSxDQUFLLFNBQUEsQ0FBVyxLQUFRQSxFQUFXLEdBQUEsQ0FBTUQsQ0FBQUEsQ0FBSyxLQUFBLEVBQU0sQ0FBRSxFQUM5RCxPQUFBLENBQVEsSUFBQSxDQUFLLFFBQUEsQ0FBVSxLQUFRQyxFQUFXLEdBQUEsQ0FBTUQsQ0FBQUEsQ0FBSyxLQUFBLEVBQU0sQ0FBRSxDQUFBLENBQzdELE9BQUEsQ0FBUSxJQUFBLENBQUssTUFBQSxDQUFTRSxJQUFRRCxDQUFBQSxDQUFXQyxDQUFBQSxDQUFJRixDQUFBQSxDQUFLLEtBQUEsRUFBTSxDQUFFLENBQUEsQ0FDMUQsR0FBSSxDQUNGLE1BQU1HLENBQUFBLENBQUlYLENBQUFBLENBQVEsQ0FBRSxHQUFHTCxDQUFBQSxDQUFTLE1BQUEsQ0FBUWEsQ0FBQUEsQ0FBSyxNQUFPLENBQUMsRUFDdkQsQ0FBQSxPQUFFLENBQ0FDLENBQUFBLEVBQVksUUFBUSxJQUFBLENBQUtBLENBQVEsRUFDbkMsQ0FDRixDQUNGLENBQUMsQ0FBQSIsImZpbGUiOiJjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyBwcm9ncmFtIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBub2VyciB9IGZyb20gXCIuL2Jhc2Uvbm9lcnJcIjtcbmltcG9ydCB7IHBhcnNlTnVtYmVyIH0gZnJvbSBcIi4vYmFzZS9wYXJzZXJcIjtcbmltcG9ydCB7IHBhcmdzIH0gZnJvbSBcIi4vYmFzZS9wcm9jZXNzXCI7XG5pbXBvcnQgeyBSZW5kZXJTY2hlbWEsIHR5cGUgUmVuZGVyT3B0aW9ucyB9IGZyb20gXCIuL3JlbmRlcmVyL3NjaGVtYVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENMSU9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlZmF1bHRzOiBSZW5kZXJPcHRpb25zO1xuICBydW46IChzb3VyY2U6IHN0cmluZywgb3B0aW9uczogUmVuZGVyT3B0aW9ucykgPT4gUHJvbWlzZTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1ha2VDTEkob3B0aW9uczogQ0xJT3B0aW9ucykge1xuICBjb25zdCBzaGFwZSA9IFJlbmRlclNjaGVtYS5zaGFwZTtcbiAgY29uc3QgZCA9IG9wdGlvbnMuZGVmYXVsdHM7XG4gIHByb2dyYW1cbiAgICAubmFtZShvcHRpb25zLm5hbWUpXG4gICAgLmFyZ3VtZW50KFwiPHNvdXJjZT5cIiwgXCJmaWxlOi8vLCBodHRwKHMpOi8vLCBvciBkYXRhOiBVUklcIilcbiAgICAub3B0aW9uKFwiLVcsIC0td2lkdGggPG51bWJlcj5cIiwgc2hhcGUud2lkdGguZGVzY3JpcHRpb24sIGAke2Qud2lkdGh9YClcbiAgICAub3B0aW9uKFwiLUgsIC0taGVpZ2h0IDxudW1iZXI+XCIsIHNoYXBlLmhlaWdodC5kZXNjcmlwdGlvbiwgYCR7ZC5oZWlnaHR9YClcbiAgICAub3B0aW9uKFwiLWYsIC0tZnBzIDxudW1iZXI+XCIsIHNoYXBlLmZwcy5kZXNjcmlwdGlvbiwgYCR7ZC5mcHN9YClcbiAgICAub3B0aW9uKFwiLXQsIC0tZHVyYXRpb24gPG51bWJlcj5cIiwgc2hhcGUuZHVyYXRpb24uZGVzY3JpcHRpb24sIGAke2QuZHVyYXRpb259YClcbiAgICAub3B0aW9uKFwiLW8sIC0tb3V0LWZpbGUgPHBhdGg+XCIsIHNoYXBlLm91dEZpbGUuZGVzY3JpcHRpb24sIGQub3V0RmlsZSlcbiAgICAub3B0aW9uKFwiLWEsIC0td2l0aC1hdWRpb1wiLCBzaGFwZS53aXRoQXVkaW8uZGVzY3JpcHRpb24sIGQud2l0aEF1ZGlvKVxuICAgIC5vcHRpb24oXCItZCwgLS1kZXRlcm1pbmlzdGljXCIsIHNoYXBlLmRldGVybWluaXN0aWMuZGVzY3JpcHRpb24sIGQuZGV0ZXJtaW5pc3RpYylcbiAgICAub3B0aW9uKFwiLS11c2UtaW5uZXItcHJveHlcIiwgc2hhcGUudXNlSW5uZXJQcm94eS5kZXNjcmlwdGlvbiwgZC51c2VJbm5lclByb3h5KVxuICAgIC5vcHRpb24oXCItLWRpc2FibGUtZ3B1XCIsIHNoYXBlLmRpc2FibGVHcHUuZGVzY3JpcHRpb24sIGQuZGlzYWJsZUdwdSlcbiAgICAub3B0aW9uKFwiLS1kaXNhYmxlLWh3LWNvZGVjXCIsIHNoYXBlLmRpc2FibGVId0NvZGVjLmRlc2NyaXB0aW9uLCBkLmRpc2FibGVId0NvZGVjKVxuICAgIC5vcHRpb24oXCItLXdpbmRvdy10b2xlcmFudFwiLCBzaGFwZS53aW5kb3dUb2xlcmFudC5kZXNjcmlwdGlvbiwgZC53aW5kb3dUb2xlcmFudClcbiAgICAuYWN0aW9uKGFzeW5jIChzb3VyY2U6IHN0cmluZywgb3B0cykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgb3B0aW9ucy5ydW4oc291cmNlLCB7XG4gICAgICAgICAgd2lkdGg6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpZHRoKShvcHRzLndpZHRoKSxcbiAgICAgICAgICBoZWlnaHQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmhlaWdodCkob3B0cy5oZWlnaHQpLFxuICAgICAgICAgIGZwczogbm9lcnIocGFyc2VOdW1iZXIsIGQuZnBzKShvcHRzLmZwcyksXG4gICAgICAgICAgZHVyYXRpb246IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmR1cmF0aW9uKShvcHRzLmR1cmF0aW9uKSxcbiAgICAgICAgICBvdXRGaWxlOiBvcHRzLm91dEZpbGUgPz8gZC5vdXRGaWxlLFxuICAgICAgICAgIHdpdGhBdWRpbzogb3B0cy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgICAgICAgdXNlSW5uZXJQcm94eTogb3B0cy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICAgICAgICBkZXRlcm1pbmlzdGljOiBvcHRzLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgICAgICAgIGRpc2FibGVHcHU6IG9wdHMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgICAgICAgZGlzYWJsZUh3Q29kZWM6IG9wdHMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICAgICAgICB3aW5kb3dUb2xlcmFudDogb3B0cy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nZ2VyLmZhdGFsKGUpO1xuICAgICAgfVxuICAgIH0pO1xuICBhd2FpdCBwcm9ncmFtLnBhcnNlQXN5bmMocGFyZ3MoKSk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI1LlxuXG5pbXBvcnQgeyBtYWtlQ0xJIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBwdXAgfSBmcm9tIFwiLi9wdXBcIjtcbmltcG9ydCB7IGRlZmF1bHRSZW5kZXJPcHRpb25zIH0gZnJvbSBcIi4vcmVuZGVyZXIvc2NoZW1hXCI7XG5cbm1ha2VDTEkoe1xuICBuYW1lOiBcInB1cFwiLFxuICBkZWZhdWx0czogZGVmYXVsdFJlbmRlck9wdGlvbnMsXG4gIHJ1bjogYXN5bmMgKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGN0cmwgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgbGV0IGV4aXRDb2RlID0gMDtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+ICgoZXhpdENvZGUgPSAxNDMpLCBjdHJsLmFib3J0KCkpKTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgKCkgPT4gKChleGl0Q29kZSA9IDEzMCksIGN0cmwuYWJvcnQoKSkpO1xuICAgIHByb2Nlc3Mub25jZShcImV4aXRcIiwgKGMpID0+ICgoZXhpdENvZGUgPSBjKSwgY3RybC5hYm9ydCgpKSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHB1cChzb3VyY2UsIHsgLi4ub3B0aW9ucywgc2lnbmFsOiBjdHJsLnNpZ25hbCB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZXhpdENvZGUgJiYgcHJvY2Vzcy5leGl0KGV4aXRDb2RlKTtcbiAgICB9XG4gIH0sXG59KTtcbiJdfQ==
package/dist/index.d.ts CHANGED
@@ -5,7 +5,6 @@ export { pupDisableHwCodec } from './_tsup-dts-rollup.js';
5
5
  export { pupDeterministic } from './_tsup-dts-rollup.js';
6
6
  export { pupPkgRoot } from './_tsup-dts-rollup.js';
7
7
  export { pupApp } from './_tsup-dts-rollup.js';
8
- export { pupIpcSocket } from './_tsup-dts-rollup.js';
9
8
  export { pupWindowTolerant } from './_tsup-dts-rollup.js';
10
9
  export { penv } from './_tsup-dts-rollup.js';
11
10
  export { EnvParser } from './_tsup-dts-rollup.js';