Repository: foliojs/pdfkit Branch: master Commit: ac41e3a9cc80 Files: 199 Total size: 7.4 MB Directory structure: gitextract_v7gupig1/ ├── .babelrc ├── .git-blame-ignore-revs ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ ├── feature-request.md │ │ └── question.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ └── lint-test.yml ├── .gitignore ├── .npmignore ├── .prettierignore ├── .prettierrc ├── .yarn/ │ └── releases/ │ └── yarn-4.10.3.cjs ├── .yarnrc.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── docs/ │ ├── .gitignore │ ├── README.md │ ├── accessibility.md │ ├── annotations.md │ ├── attachments.md │ ├── destinations.md │ ├── fonts/ │ │ └── Chalkboard.ttc │ ├── forms.md │ ├── generate.js │ ├── generate_website.js │ ├── getting_started.md │ ├── images.md │ ├── outline.md │ ├── paper_sizes.md │ ├── publish_website.js │ ├── table.md │ ├── template.pug │ ├── text.md │ ├── vector.md │ └── you_made_it.md ├── eslint.config.mjs ├── examples/ │ ├── accessible-links.js │ ├── attachment.js │ ├── browserify/ │ │ ├── browser.html │ │ └── browser.js │ ├── fonts/ │ │ ├── Chalkboard.ttc │ │ ├── Helvetica.dfont │ │ └── Montserrat-Bold.otf │ ├── form.js │ ├── kitchen-sink-accessible.js │ ├── kitchen-sink.js │ ├── png.js │ ├── text-link.js │ ├── tiger.js │ └── webpack/ │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── httpHelpers.js │ │ ├── index.js │ │ ├── pdfkitHelpers.js │ │ └── registerStaticFiles.js │ └── webpack.config.js ├── jsconfig.json ├── lib/ │ ├── abstract_reference.js │ ├── crypto/ │ │ ├── aes.js │ │ ├── md5.js │ │ ├── random.js │ │ ├── rc4.js │ │ └── sha256.js │ ├── data.js │ ├── document.js │ ├── font/ │ │ ├── afm.js │ │ ├── data/ │ │ │ ├── Courier-Bold.afm │ │ │ ├── Courier-BoldOblique.afm │ │ │ ├── Courier-Oblique.afm │ │ │ ├── Courier.afm │ │ │ ├── Helvetica-Bold.afm │ │ │ ├── Helvetica-BoldOblique.afm │ │ │ ├── Helvetica-Oblique.afm │ │ │ ├── Helvetica.afm │ │ │ ├── MustRead.html │ │ │ ├── Symbol.afm │ │ │ ├── Times-Bold.afm │ │ │ ├── Times-BoldItalic.afm │ │ │ ├── Times-Italic.afm │ │ │ ├── Times-Roman.afm │ │ │ └── ZapfDingbats.afm │ │ ├── embedded.js │ │ └── standard.js │ ├── font.js │ ├── font_factory.js │ ├── gradient.js │ ├── image/ │ │ ├── jpeg.js │ │ └── png.js │ ├── image.js │ ├── line_wrapper.js │ ├── metadata.js │ ├── mixins/ │ │ ├── acroform.js │ │ ├── annotations.js │ │ ├── attachments.js │ │ ├── color.js │ │ ├── data/ │ │ │ └── sRGB_IEC61966_2_1.icc │ │ ├── fonts.js │ │ ├── images.js │ │ ├── markings.js │ │ ├── metadata.js │ │ ├── outline.js │ │ ├── pdfa.js │ │ ├── pdfua.js │ │ ├── subsets.js │ │ ├── table.js │ │ ├── text.js │ │ └── vector.js │ ├── name_tree.js │ ├── number_tree.js │ ├── object.js │ ├── outline.js │ ├── page.js │ ├── path.js │ ├── pattern.js │ ├── reference.js │ ├── saslprep/ │ │ ├── index.js │ │ └── lib/ │ │ ├── code-points.js │ │ └── util.js │ ├── security.js │ ├── spotcolor.js │ ├── structure_annotation.js │ ├── structure_content.js │ ├── structure_element.js │ ├── table/ │ │ ├── accessibility.js │ │ ├── index.js │ │ ├── normalize.js │ │ ├── render.js │ │ ├── size.js │ │ ├── style.js │ │ └── utils.js │ ├── tree.js │ ├── utils.js │ └── virtual-fs.js ├── package.json ├── rollup.config.mjs ├── tests/ │ ├── images/ │ │ └── bee.js │ ├── unit/ │ │ ├── acroform.spec.js │ │ ├── annotations.spec.js │ │ ├── attachments.spec.js │ │ ├── color.spec.js │ │ ├── crypto.spec.js │ │ ├── document.spec.js │ │ ├── font.spec.js │ │ ├── gradient.spec.js │ │ ├── helpers.js │ │ ├── helpers.spec.js │ │ ├── image.spec.js │ │ ├── line_wrapper.spec.js │ │ ├── list.spec.js │ │ ├── markings.spec.js │ │ ├── metadata.spec.js │ │ ├── object.spec.js │ │ ├── outline.spec.js │ │ ├── page.spec.js │ │ ├── path.spec.js │ │ ├── pattern.spec.js │ │ ├── pdfa1.spec.js │ │ ├── pdfa2.spec.js │ │ ├── pdfa3.spec.js │ │ ├── pdfua.spec.js │ │ ├── png.spec.js │ │ ├── reference.spec.js │ │ ├── saslprep.spec.js │ │ ├── security.spec.js │ │ ├── setupTests.js │ │ ├── structure_annotation.spec.js │ │ ├── table.spec.js │ │ ├── text.spec.js │ │ ├── toContainChunk/ │ │ │ └── index.js │ │ ├── toContainText/ │ │ │ └── index.js │ │ ├── trailer.spec.js │ │ ├── utils.spec.js │ │ ├── vector.spec.js │ │ └── virtual-fs.spec.js │ └── visual/ │ ├── fonts.spec.js │ ├── helpers.js │ ├── images.spec.js │ ├── interlaced-png.spec.js │ ├── pdf2png.js │ ├── pdfmake/ │ │ ├── absolute.spec.js │ │ ├── background.spec.js │ │ ├── basics.spec.js │ │ ├── columns_simple.spec.js │ │ ├── images.spec.js │ │ ├── lists.spec.js │ │ ├── page_references.spec.js │ │ ├── qrcode.spec.js │ │ ├── tables.spec.js │ │ ├── text_decorations.spec.js │ │ ├── toc.spec.js │ │ └── watermark.spec.js │ ├── table.spec.js │ ├── text.spec.js │ └── vector.spec.js ├── types/ │ └── jest.custom-matchers.d.ts └── vitest.config.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .babelrc ================================================ { "presets": [ [ "@babel/preset-env", { "modules": false, "targets": { "node": "20" } } ] ] } ================================================ FILE: .git-blame-ignore-revs ================================================ a76ab284a8d30c669b5ad2278bbcd050dea13abe ================================================ FILE: .github/ISSUE_TEMPLATE/bug-report.md ================================================ --- name: Bug Report about: Report runtime errors or wrong PDF output --- # Bug Report ## Description of the problem ## Code sample ## Your environment * pdfkit version: * Node version: * Browser version (if applicable): * Operating System: ================================================ FILE: .github/ISSUE_TEMPLATE/feature-request.md ================================================ --- name: Feature Request about: Request new features --- # Feature Request ## Feature description ================================================ FILE: .github/ISSUE_TEMPLATE/question.md ================================================ --- name: Question about: Ask about pdfkit --- # Question ## Description ## Code sample ## Your environment * pdfkit version: * Node version: * Browser version (if applicable): * Operating System: ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================ **What kind of change does this PR introduce?** **Checklist**: - [ ] Unit Tests - [ ] Documentation - [ ] Update CHANGELOG.md - [ ] Ready to be merged ================================================ FILE: .github/workflows/lint-test.yml ================================================ # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: Lint and Test on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: [20.x, 22.x, 24.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: yarn --frozen-lockfile - name: Run Prettier check run: npm run prettier -- --check - name: Run ESLint run: npm run lint - name: Run tests run: npm test ================================================ FILE: .gitignore ================================================ lib/font/tables/.DS_Store .DS_Store /node_modules/ node-zlib/ playground/ build/ js/ .vscode .idea coverage package-lock.json /examples/browserify/bundle.js index.html /.yarn/install-state.gz ================================================ FILE: .npmignore ================================================ .github/ .git-blame-ignore-revs .prettierrc .prettierignore .babelrc node-zlib/ node-modules/ CONTRIBUTING.md examples/ src/ lib/ docs/ playground/ .vscode/ coverage/ tests/ index.js index.html yarn.lock rollup.config.js eslint.config.mjs ================================================ FILE: .prettierignore ================================================ **.html **.md demo/bundle.js tests/images/bee.js tests/visual/pdfmake/*.js ================================================ FILE: .prettierrc ================================================ { "singleQuote": true } ================================================ FILE: .yarn/releases/yarn-4.10.3.cjs ================================================ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore (()=>{var DGe=Object.create;var dU=Object.defineProperty;var PGe=Object.getOwnPropertyDescriptor;var bGe=Object.getOwnPropertyNames;var xGe=Object.getPrototypeOf,kGe=Object.prototype.hasOwnProperty;var Ie=(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 Ze=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)dU(t,r,{get:e[r],enumerable:!0})},QGe=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of bGe(e))!kGe.call(t,a)&&a!==r&&dU(t,a,{get:()=>e[a],enumerable:!(s=PGe(e,a))||s.enumerable});return t};var ut=(t,e,r)=>(r=t!=null?DGe(xGe(t)):{},QGe(e||!t||!t.__esModule?dU(r,"default",{value:t,enumerable:!0}):r,t));var fi={};Vt(fi,{SAFE_TIME:()=>HX,S_IFDIR:()=>Jb,S_IFLNK:()=>Kb,S_IFMT:()=>Mf,S_IFREG:()=>N2});var Mf,Jb,N2,Kb,HX,jX=Ze(()=>{Mf=61440,Jb=16384,N2=32768,Kb=40960,HX=456789e3});var or={};Vt(or,{EBADF:()=>Mo,EBUSY:()=>RGe,EEXIST:()=>MGe,EINVAL:()=>FGe,EISDIR:()=>LGe,ENOENT:()=>NGe,ENOSYS:()=>TGe,ENOTDIR:()=>OGe,ENOTEMPTY:()=>_Ge,EOPNOTSUPP:()=>HGe,EROFS:()=>UGe,ERR_DIR_CLOSED:()=>mU});function Cc(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function RGe(t){return Cc("EBUSY",t)}function TGe(t,e){return Cc("ENOSYS",`${t}, ${e}`)}function FGe(t){return Cc("EINVAL",`invalid argument, ${t}`)}function Mo(t){return Cc("EBADF",`bad file descriptor, ${t}`)}function NGe(t){return Cc("ENOENT",`no such file or directory, ${t}`)}function OGe(t){return Cc("ENOTDIR",`not a directory, ${t}`)}function LGe(t){return Cc("EISDIR",`illegal operation on a directory, ${t}`)}function MGe(t){return Cc("EEXIST",`file already exists, ${t}`)}function UGe(t){return Cc("EROFS",`read-only filesystem, ${t}`)}function _Ge(t){return Cc("ENOTEMPTY",`directory not empty, ${t}`)}function HGe(t){return Cc("EOPNOTSUPP",`operation not supported, ${t}`)}function mU(){return Cc("ERR_DIR_CLOSED","Directory handle was closed")}var zb=Ze(()=>{});var $a={};Vt($a,{BigIntStatsEntry:()=>iE,DEFAULT_MODE:()=>IU,DirEntry:()=>yU,StatEntry:()=>nE,areStatsEqual:()=>CU,clearStats:()=>Zb,convertToBigIntStats:()=>GGe,makeDefaultStats:()=>GX,makeEmptyStats:()=>jGe});function GX(){return new nE}function jGe(){return Zb(GX())}function Zb(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):EU.types.isDate(r)&&(t[e]=new Date(0))}return t}function GGe(t){let e=new iE;for(let r in t)if(Object.hasOwn(t,r)){let s=t[r];typeof s=="number"?e[r]=BigInt(s):EU.types.isDate(s)&&(e[r]=new Date(s))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function CU(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,s=e;return!(r.atimeNs!==s.atimeNs||r.mtimeNs!==s.mtimeNs||r.ctimeNs!==s.ctimeNs||r.birthtimeNs!==s.birthtimeNs)}var EU,IU,yU,nE,iE,wU=Ze(()=>{EU=ut(Ie("util")),IU=33188,yU=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},nE=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=IU;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},iE=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(IU);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function JGe(t){let e,r;if(e=t.match(YGe))t=e[1];else if(r=t.match(VGe))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function KGe(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(qGe))?t=`/${e[1]}`:(r=t.match(WGe))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function Xb(t,e){return t===fe?WX(e):BU(e)}var O2,vt,Er,fe,J,qX,qGe,WGe,YGe,VGe,BU,WX,el=Ze(()=>{O2=ut(Ie("path")),vt={root:"/",dot:".",parent:".."},Er={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},fe=Object.create(O2.default),J=Object.create(O2.default.posix);fe.cwd=()=>process.cwd();J.cwd=process.platform==="win32"?()=>BU(process.cwd()):process.cwd;process.platform==="win32"&&(J.resolve=(...t)=>t.length>0&&J.isAbsolute(t[0])?O2.default.posix.resolve(...t):O2.default.posix.resolve(J.cwd(),...t));qX=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};fe.contains=(t,e)=>qX(fe,t,e);J.contains=(t,e)=>qX(J,t,e);qGe=/^([a-zA-Z]:.*)$/,WGe=/^\/\/(\.\/)?(.*)$/,YGe=/^\/([a-zA-Z]:.*)$/,VGe=/^\/unc\/(\.dot\/)?(.*)$/;BU=process.platform==="win32"?KGe:t=>t,WX=process.platform==="win32"?JGe:t=>t;fe.fromPortablePath=WX;fe.toPortablePath=BU});async function $b(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let s=[];for(let a of r)for(let n of r)s.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(s),e.indexPath}async function YX(t,e,r,s,a){let n=t.pathUtils.normalize(e),c=r.pathUtils.normalize(s),f=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:dd,mtime:dd}:await r.lstatPromise(c);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await vU(f,p,t,n,r,c,{...a,didParentExist:!0});for(let C of f)await C();await Promise.all(p.map(C=>C()))}async function vU(t,e,r,s,a,n,c){let f=c.didParentExist?await VX(r,s):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=c.stableTime?{atime:dd,mtime:dd}:p,C;switch(!0){case p.isDirectory():C=await ZGe(t,e,r,s,f,a,n,p,c);break;case p.isFile():C=await eqe(t,e,r,s,f,a,n,p,c);break;case p.isSymbolicLink():C=await tqe(t,e,r,s,f,a,n,p,c);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(c.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((C||f?.mtime?.getTime()!==E.getTime()||f?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(s,h,E)),C=!0),(f===null||(f.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(s,p.mode&511)),C=!0)),C}async function VX(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function ZGe(t,e,r,s,a,n,c,f,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(s,{mode:f.mode})}catch(S){if(S.code!=="EEXIST")throw S}}),h=!0);let E=await n.readdirPromise(c),C=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let S of E.sort())await vU(t,e,r,r.pathUtils.join(s,S),n,n.pathUtils.join(c,S),C)&&(h=!0);else(await Promise.all(E.map(async b=>{await vU(t,e,r,r.pathUtils.join(s,b),n,n.pathUtils.join(c,b),C)}))).some(b=>b)&&(h=!0);return h}async function XGe(t,e,r,s,a,n,c,f,p,h){let E=await n.checksumFilePromise(c,{algorithm:"sha1"}),C=420,S=f.mode&511,b=`${E}${S!==C?S.toString(8):""}`,I=r.pathUtils.join(h.indexPath,E.slice(0,2),`${b}.dat`),T;(le=>(le[le.Lock=0]="Lock",le[le.Rename=1]="Rename"))(T||={});let N=1,U=await VX(r,I);if(a){let ie=U&&a.dev===U.dev&&a.ino===U.ino,ue=U?.mtimeMs!==zGe;if(ie&&ue&&h.autoRepair&&(N=0,U=null),!ie)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1}let W=!U&&N===1?`${I}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,ee=!1;return t.push(async()=>{if(!U&&(N===0&&await r.lockPromise(I,async()=>{let ie=await n.readFilePromise(c);await r.writeFilePromise(I,ie)}),N===1&&W)){let ie=await n.readFilePromise(c);await r.writeFilePromise(W,ie);try{await r.linkPromise(W,I)}catch(ue){if(ue.code==="EEXIST")ee=!0,await r.unlinkPromise(W);else throw ue}}a||await r.linkPromise(I,s)}),e.push(async()=>{U||(await r.lutimesPromise(I,dd,dd),S!==C&&await r.chmodPromise(I,S)),W&&!ee&&await r.unlinkPromise(W)}),!1}async function $Ge(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(c);await r.writeFilePromise(s,h)}),!0}async function eqe(t,e,r,s,a,n,c,f,p){return p.linkStrategy?.type==="HardlinkFromIndex"?XGe(t,e,r,s,a,n,c,f,p,p.linkStrategy):$Ge(t,e,r,s,a,n,c,f,p)}async function tqe(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(Xb(r.pathUtils,await n.readlinkPromise(c)),s)}),!0}var dd,zGe,SU=Ze(()=>{el();dd=new Date(456789e3*1e3),zGe=dd.getTime()});function ex(t,e,r,s){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let c=t.pathUtils.join(e,n);return Object.assign(t.statSync(c),{name:n,path:void 0})};return new L2(e,a,s)}var L2,JX=Ze(()=>{zb();L2=class{constructor(e,r,s={}){this.path=e;this.nextDirent=r;this.opts=s;this.closed=!1}throwIfClosed(){if(this.closed)throw mU()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function KX(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var zX,tx,ZX=Ze(()=>{zX=Ie("events");wU();tx=class t extends zX.EventEmitter{constructor(r,s,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=s,this.bigint=a,this.lastStats=this.stat()}static create(r,s,a){let n=new t(r,s,a);return n.start(),n}start(){KX(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){KX(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let r=this.bigint?new iE:new nE;return Zb(r)}}makeInterval(r){let s=setInterval(()=>{let a=this.stat(),n=this.lastStats;CU(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?s:s.unref()}registerChangeListener(r,s){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(s))}unregisterChangeListener(r){this.removeListener("change",r);let s=this.changeListeners.get(r);typeof s<"u"&&clearInterval(s),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function sE(t,e,r,s){let a,n,c,f;switch(typeof r){case"function":a=!1,n=!0,c=5007,f=r;break;default:({bigint:a=!1,persistent:n=!0,interval:c=5007}=r),f=s;break}let p=rx.get(t);typeof p>"u"&&rx.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=tx.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(f,{persistent:n,interval:c}),h}function md(t,e,r){let s=rx.get(t);if(typeof s>"u")return;let a=s.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),s.delete(e)))}function yd(t){let e=rx.get(t);if(!(typeof e>"u"))for(let r of e.keys())md(t,r)}var rx,DU=Ze(()=>{ZX();rx=new WeakMap});function rqe(t){let e=t.match(/\r?\n/g);if(e===null)return $X.EOL;let r=e.filter(a=>a===`\r `).length,s=e.length-r;return r>s?`\r `:` `}function Ed(t,e){return e.replace(/\r?\n/g,rqe(t))}var XX,$X,mp,Uf,Id=Ze(()=>{XX=Ie("crypto"),$X=Ie("os");SU();el();mp=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let s=[e];for(;s.length>0;){let a=s.shift();if((await this.lstatPromise(a)).isDirectory()){let c=await this.readdirPromise(a);if(r)for(let f of c.sort())s.push(this.pathUtils.join(a,f));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let s=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,XX.createHash)(r),f=0;for(;(f=await this.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest("hex")}finally{await this.closePromise(s)}}async removePromise(e,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(c=>this.removePromise(this.pathUtils.resolve(e,c))))}for(let n=0;n<=s;n++)try{await this.rmdirPromise(e);break}catch(c){if(c.code!=="EBUSY"&&c.code!=="ENOTEMPTY")throw c;nsetTimeout(f,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let s;try{s=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{await this.mkdirPromise(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&await this.chmodPromise(f,r),s!=null)await this.utimesPromise(f,s[0],s[1]);else{let p=await this.statPromise(this.pathUtils.dirname(f));await this.utimesPromise(f,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{this.mkdirSync(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&this.chmodSync(f,r),s!=null)this.utimesSync(f,s[0],s[1]);else{let p=this.statSync(this.pathUtils.dirname(f));this.utimesSync(f,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stableTime:c=!1,linkStrategy:f=null}={}){return await YX(this,e,s,r,{overwrite:a,stableSort:n,stableTime:c,linkStrategy:f})}copySync(e,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),c=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=s.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),s.pathUtils.join(r,h),{baseFs:s,overwrite:a})}else if(n.isFile()){if(!c||a){c&&this.removeSync(e);let p=s.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!c||a){c&&this.removeSync(e);let p=s.readlinkSync(r);this.symlinkSync(Xb(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let f=n.mode&511;this.chmodSync(e,f)}async changeFilePromise(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,s):this.changeFileTextPromise(e,r,s)}async changeFileBufferPromise(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:s})}async changeFileTextPromise(e,r,{automaticNewlines:s,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let c=s?Ed(n,r):r;n!==c&&await this.writeFilePromise(e,c,{mode:a})}changeFileSync(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,s):this.changeFileTextSync(e,r,s)}changeFileBufferSync(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:s})}changeFileTextSync(e,r,{automaticNewlines:s=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let c=s?Ed(n,r):r;n!==c&&this.writeFileSync(e,c,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(s){if(s.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw s}}moveSync(e,r){try{this.renameSync(e,r)}catch(s){if(s.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw s}}async lockPromise(e,r){let s=`${e}.flock`,a=1e3/60,n=Date.now(),c=null,f=async()=>{let p;try{[p]=await this.readJsonPromise(s)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;c===null;)try{c=await this.openPromise(s,"wx")}catch(p){if(p.code==="EEXIST"){if(!await f())try{await this.unlinkPromise(s);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${s})`)}else throw p}await this.writePromise(c,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(c),await this.unlinkPromise(s)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}async writeJsonPromise(e,r,{compact:s=!1}={}){let a=s?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} `)}writeJsonSync(e,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} `)}async preserveTimePromise(e,r){let s=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,s.atime,s.mtime)}async preserveTimeSync(e,r){let s=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,s.atime,s.mtime)}},Uf=class extends mp{constructor(){super(J)}}});var _s,yp=Ze(()=>{Id();_s=class extends mp{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,s){return this.baseFs.openPromise(this.mapToBase(e),r,s)}openSync(e,r,s){return this.baseFs.openSync(this.mapToBase(e),r,s)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,s,a,n){return await this.baseFs.readPromise(e,r,s,a,n)}readSync(e,r,s,a,n){return this.baseFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,s):await this.baseFs.writePromise(e,r,s,a,n)}writeSync(e,r,s,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,s):this.baseFs.writeSync(e,r,s,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,s){return this.baseFs.fchownPromise(e,r,s)}fchownSync(e,r,s){return this.baseFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return this.baseFs.chownPromise(this.mapToBase(e),r,s)}chownSync(e,r,s){return this.baseFs.chownSync(this.mapToBase(e),r,s)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,s=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),s)}copyFileSync(e,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),s)}async appendFilePromise(e,r,s){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,s)}appendFileSync(e,r,s){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,s)}async writeFilePromise(e,r,s){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,s)}writeFileSync(e,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,s)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,s){return this.baseFs.utimesPromise(this.mapToBase(e),r,s)}utimesSync(e,r,s){return this.baseFs.utimesSync(this.mapToBase(e),r,s)}async lutimesPromise(e,r,s){return this.baseFs.lutimesPromise(this.mapToBase(e),r,s)}lutimesSync(e,r,s){return this.baseFs.lutimesSync(this.mapToBase(e),r,s)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(c,a,s)}symlinkSync(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(c,a,s)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,s){return this.baseFs.watch(this.mapToBase(e),r,s)}watchFile(e,r,s){return this.baseFs.watchFile(this.mapToBase(e),r,s)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var _f,e$=Ze(()=>{yp();_f=class extends _s{constructor(e,{baseFs:r,pathUtils:s}){super(s),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function t$(t){let e=t;return typeof t.path=="string"&&(e.path=fe.toPortablePath(t.path)),e}var r$,Yn,Cd=Ze(()=>{r$=ut(Ie("fs"));Id();el();Yn=class extends Uf{constructor(e=r$.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return vt.root}resolve(e){return J.resolve(e)}async openPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.open(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}openSync(e,r,s){return this.realFs.openSync(fe.fromPortablePath(e),r,s)}async opendirPromise(e,r){return await new Promise((s,a)=>{typeof r<"u"?this.realFs.opendir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.opendir(fe.fromPortablePath(e),this.makeCallback(s,a))}).then(s=>{let a=s;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(fe.fromPortablePath(e),r):this.realFs.opendirSync(fe.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,s=0,a=0,n=-1){return await new Promise((c,f)=>{this.realFs.read(e,r,s,a,n,(p,h)=>{p?f(p):c(h)})})}readSync(e,r,s,a,n){return this.realFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return await new Promise((c,f)=>typeof r=="string"?this.realFs.write(e,r,s,this.makeCallback(c,f)):this.realFs.write(e,r,s,a,n,this.makeCallback(c,f)))}writeSync(e,r,s,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,s):this.realFs.writeSync(e,r,s,a,n)}async closePromise(e){await new Promise((r,s)=>{this.realFs.close(e,this.makeCallback(r,s))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return this.realFs.createReadStream(s,r)}createWriteStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return this.realFs.createWriteStream(s,r)}async realpathPromise(e){return await new Promise((r,s)=>{this.realFs.realpath(fe.fromPortablePath(e),{},this.makeCallback(r,s))}).then(r=>fe.toPortablePath(r))}realpathSync(e){return fe.toPortablePath(this.realFs.realpathSync(fe.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(fe.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(fe.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((s,a)=>{this.realFs.access(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}existsSync(e){return this.realFs.existsSync(fe.fromPortablePath(e))}async statPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.stat(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.stat(fe.fromPortablePath(e),this.makeCallback(s,a))})}statSync(e,r){return r?this.realFs.statSync(fe.fromPortablePath(e),r):this.realFs.statSync(fe.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(s,a)):this.realFs.fstat(e,this.makeCallback(s,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.lstat(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.lstat(fe.fromPortablePath(e),this.makeCallback(s,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(fe.fromPortablePath(e),r):this.realFs.lstatSync(fe.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.fchmod(e,r,this.makeCallback(s,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.chmod(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}chmodSync(e,r){return this.realFs.chmodSync(fe.fromPortablePath(e),r)}async fchownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.fchown(e,r,s,this.makeCallback(a,n))})}fchownSync(e,r,s){return this.realFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.chown(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}chownSync(e,r,s){return this.realFs.chownSync(fe.fromPortablePath(e),r,s)}async renamePromise(e,r){return await new Promise((s,a)=>{this.realFs.rename(fe.fromPortablePath(e),fe.fromPortablePath(r),this.makeCallback(s,a))})}renameSync(e,r){return this.realFs.renameSync(fe.fromPortablePath(e),fe.fromPortablePath(r))}async copyFilePromise(e,r,s=0){return await new Promise((a,n)=>{this.realFs.copyFile(fe.fromPortablePath(e),fe.fromPortablePath(r),s,this.makeCallback(a,n))})}copyFileSync(e,r,s=0){return this.realFs.copyFileSync(fe.fromPortablePath(e),fe.fromPortablePath(r),s)}async appendFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.appendFile(c,r,s,this.makeCallback(a,n)):this.realFs.appendFile(c,r,this.makeCallback(a,n))})}appendFileSync(e,r,s){let a=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.appendFileSync(a,r,s):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.writeFile(c,r,s,this.makeCallback(a,n)):this.realFs.writeFile(c,r,this.makeCallback(a,n))})}writeFileSync(e,r,s){let a=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.writeFileSync(a,r,s):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,s)=>{this.realFs.unlink(fe.fromPortablePath(e),this.makeCallback(r,s))})}unlinkSync(e){return this.realFs.unlinkSync(fe.fromPortablePath(e))}async utimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.utimes(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}utimesSync(e,r,s){this.realFs.utimesSync(fe.fromPortablePath(e),r,s)}async lutimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.lutimes(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}lutimesSync(e,r,s){this.realFs.lutimesSync(fe.fromPortablePath(e),r,s)}async mkdirPromise(e,r){return await new Promise((s,a)=>{this.realFs.mkdir(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(fe.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rmdir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rmdir(fe.fromPortablePath(e),this.makeCallback(s,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(fe.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rm(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rm(fe.fromPortablePath(e),this.makeCallback(s,a))})}rmSync(e,r){return this.realFs.rmSync(fe.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((s,a)=>{this.realFs.link(fe.fromPortablePath(e),fe.fromPortablePath(r),this.makeCallback(s,a))})}linkSync(e,r){return this.realFs.linkSync(fe.fromPortablePath(e),fe.fromPortablePath(r))}async symlinkPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.symlink(fe.fromPortablePath(e.replace(/\/+$/,"")),fe.fromPortablePath(r),s,this.makeCallback(a,n))})}symlinkSync(e,r,s){return this.realFs.symlinkSync(fe.fromPortablePath(e.replace(/\/+$/,"")),fe.fromPortablePath(r),s)}async readFilePromise(e,r){return await new Promise((s,a)=>{let n=typeof e=="string"?fe.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(s,a))})}readFileSync(e,r){let s=typeof e=="string"?fe.fromPortablePath(e):e;return this.realFs.readFileSync(s,r)}async readdirPromise(e,r){return await new Promise((s,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(t$)),a)):this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(fe.toPortablePath)),a)):this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.readdir(fe.fromPortablePath(e),this.makeCallback(s,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(fe.fromPortablePath(e),r).map(t$):this.realFs.readdirSync(fe.fromPortablePath(e),r).map(fe.toPortablePath):this.realFs.readdirSync(fe.fromPortablePath(e),r):this.realFs.readdirSync(fe.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,s)=>{this.realFs.readlink(fe.fromPortablePath(e),this.makeCallback(r,s))}).then(r=>fe.toPortablePath(r))}readlinkSync(e){return fe.toPortablePath(this.realFs.readlinkSync(fe.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.truncate(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}truncateSync(e,r){return this.realFs.truncateSync(fe.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(s,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,s){return this.realFs.watch(fe.fromPortablePath(e),r,s)}watchFile(e,r,s){return this.realFs.watchFile(fe.fromPortablePath(e),r,s)}unwatchFile(e,r){return this.realFs.unwatchFile(fe.fromPortablePath(e),r)}makeCallback(e,r){return(s,a)=>{s?r(s):e(a)}}}});var Sn,n$=Ze(()=>{Cd();yp();el();Sn=class extends _s{constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?J.normalize(e):this.baseFs.resolve(J.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var i$,Hf,s$=Ze(()=>{Cd();yp();el();i$=vt.root,Hf=class extends _s{constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils.resolve(vt.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(vt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(i$,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(i$,this.pathUtils.relative(this.target,e))}}});var oE,o$=Ze(()=>{yp();oE=class extends _s{constructor(r,s){super(s);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var wd,tl,e0,a$=Ze(()=>{wd=Ie("fs");Id();Cd();DU();zb();el();tl=4278190080,e0=class extends Uf{constructor({baseFs:r=new Yn,filter:s=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:c=!0,maxAge:f=5e3,typeCheck:p=wd.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:C}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=c?new Map:null,this.factoryPromise=E,this.factorySync=C,this.filter=s,this.getMountPoint=h,this.magic=a<<24,this.maxAge=f,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,s){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,s]),a}async openPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,s,a),async(n,{subPath:c})=>this.remapFd(n,await n.openPromise(c,s,a)))}openSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,s,a),(n,{subPath:c})=>this.remapFd(n,n.openSync(c,s,a)))}async opendirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,s),async(a,{subPath:n})=>await a.opendirPromise(n,s),{requireSubpath:!1})}opendirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,s),(a,{subPath:n})=>a.opendirSync(n,s),{requireSubpath:!1})}async readPromise(r,s,a,n,c){if((r&tl)!==this.magic)return await this.baseFs.readPromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("read");let[p,h]=f;return await p.readPromise(h,s,a,n,c)}readSync(r,s,a,n,c){if((r&tl)!==this.magic)return this.baseFs.readSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("readSync");let[p,h]=f;return p.readSync(h,s,a,n,c)}async writePromise(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s=="string"?await this.baseFs.writePromise(r,s,a):await this.baseFs.writePromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("write");let[p,h]=f;return typeof s=="string"?await p.writePromise(h,s,a):await p.writePromise(h,s,a,n,c)}writeSync(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s=="string"?this.baseFs.writeSync(r,s,a):this.baseFs.writeSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("writeSync");let[p,h]=f;return typeof s=="string"?p.writeSync(h,s,a):p.writeSync(h,s,a,n,c)}async closePromise(r){if((r&tl)!==this.magic)return await this.baseFs.closePromise(r);let s=this.fdMap.get(r);if(typeof s>"u")throw Mo("close");this.fdMap.delete(r);let[a,n]=s;return await a.closePromise(n)}closeSync(r){if((r&tl)!==this.magic)return this.baseFs.closeSync(r);let s=this.fdMap.get(r);if(typeof s>"u")throw Mo("closeSync");this.fdMap.delete(r);let[a,n]=s;return a.closeSync(n)}createReadStream(r,s){return r===null?this.baseFs.createReadStream(r,s):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,s),(a,{archivePath:n,subPath:c})=>{let f=a.createReadStream(c,s);return f.path=fe.fromPortablePath(this.pathUtils.join(n,c)),f})}createWriteStream(r,s){return r===null?this.baseFs.createWriteStream(r,s):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,s),(a,{subPath:n})=>a.createWriteStream(n,s))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>"u"&&(c=await this.baseFs.realpathPromise(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,await s.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>"u"&&(c=this.baseFs.realpathSync(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,s.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(s,{subPath:a})=>await s.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(s,{subPath:a})=>s.existsSync(a))}async accessPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,s),async(a,{subPath:n})=>await a.accessPromise(n,s))}accessSync(r,s){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,s),(a,{subPath:n})=>a.accessSync(n,s))}async statPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,s),async(a,{subPath:n})=>await a.statPromise(n,s))}statSync(r,s){return this.makeCallSync(r,()=>this.baseFs.statSync(r,s),(a,{subPath:n})=>a.statSync(n,s))}async fstatPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatPromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fstat");let[n,c]=a;return n.fstatPromise(c,s)}fstatSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fstatSync");let[n,c]=a;return n.fstatSync(c,s)}async lstatPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,s),async(a,{subPath:n})=>await a.lstatPromise(n,s))}lstatSync(r,s){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,s),(a,{subPath:n})=>a.lstatSync(n,s))}async fchmodPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodPromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fchmod");let[n,c]=a;return n.fchmodPromise(c,s)}fchmodSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fchmodSync");let[n,c]=a;return n.fchmodSync(c,s)}async chmodPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,s),async(a,{subPath:n})=>await a.chmodPromise(n,s))}chmodSync(r,s){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,s),(a,{subPath:n})=>a.chmodSync(n,s))}async fchownPromise(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownPromise(r,s,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Mo("fchown");let[c,f]=n;return c.fchownPromise(f,s,a)}fchownSync(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownSync(r,s,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Mo("fchownSync");let[c,f]=n;return c.fchownSync(f,s,a)}async chownPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,s,a),async(n,{subPath:c})=>await n.chownPromise(c,s,a))}chownSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,s,a),(n,{subPath:c})=>n.chownSync(c,s,a))}async renamePromise(r,s){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.renamePromise(r,s),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(s,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,f)}))}renameSync(r,s){return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.renameSync(r,s),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(s,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,f)}))}async copyFilePromise(r,s,a=0){let n=async(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:"EXDEV"});if(a&wd.constants.COPYFILE_EXCL&&await this.existsPromise(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await c.readFilePromise(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.copyFilePromise(r,s,a),async(c,{subPath:f})=>await n(this.baseFs,r,c,f)),async(c,{subPath:f})=>await this.makeCallPromise(s,async()=>await n(c,f,this.baseFs,s),async(p,{subPath:h})=>c!==p?await n(c,f,p,h):await c.copyFilePromise(f,h,a)))}copyFileSync(r,s,a=0){let n=(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:"EXDEV"});if(a&wd.constants.COPYFILE_EXCL&&this.existsSync(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:"EEXIST"});let E;try{E=c.readFileSync(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.copyFileSync(r,s,a),(c,{subPath:f})=>n(this.baseFs,r,c,f)),(c,{subPath:f})=>this.makeCallSync(s,()=>n(c,f,this.baseFs,s),(p,{subPath:h})=>c!==p?n(c,f,p,h):c.copyFileSync(f,h,a)))}async appendFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,s,a),async(n,{subPath:c})=>await n.appendFilePromise(c,s,a))}appendFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,s,a),(n,{subPath:c})=>n.appendFileSync(c,s,a))}async writeFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,s,a),async(n,{subPath:c})=>await n.writeFilePromise(c,s,a))}writeFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,s,a),(n,{subPath:c})=>n.writeFileSync(c,s,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(s,{subPath:a})=>await s.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(s,{subPath:a})=>s.unlinkSync(a))}async utimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,s,a),async(n,{subPath:c})=>await n.utimesPromise(c,s,a))}utimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,s,a),(n,{subPath:c})=>n.utimesSync(c,s,a))}async lutimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,s,a),async(n,{subPath:c})=>await n.lutimesPromise(c,s,a))}lutimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,s,a),(n,{subPath:c})=>n.lutimesSync(c,s,a))}async mkdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,s),async(a,{subPath:n})=>await a.mkdirPromise(n,s))}mkdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,s),(a,{subPath:n})=>a.mkdirSync(n,s))}async rmdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,s),async(a,{subPath:n})=>await a.rmdirPromise(n,s))}rmdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,s),(a,{subPath:n})=>a.rmdirSync(n,s))}async rmPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,s),async(a,{subPath:n})=>await a.rmPromise(n,s))}rmSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,s),(a,{subPath:n})=>a.rmSync(n,s))}async linkPromise(r,s){return await this.makeCallPromise(s,async()=>await this.baseFs.linkPromise(r,s),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,s){return this.makeCallSync(s,()=>this.baseFs.linkSync(r,s),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,s,a){return await this.makeCallPromise(s,async()=>await this.baseFs.symlinkPromise(r,s,a),async(n,{subPath:c})=>await n.symlinkPromise(r,c))}symlinkSync(r,s,a){return this.makeCallSync(s,()=>this.baseFs.symlinkSync(r,s,a),(n,{subPath:c})=>n.symlinkSync(r,c))}async readFilePromise(r,s){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,s),async(a,{subPath:n})=>await a.readFilePromise(n,s))}readFileSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,s),(a,{subPath:n})=>a.readFileSync(n,s))}async readdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,s),async(a,{subPath:n})=>await a.readdirPromise(n,s),{requireSubpath:!1})}readdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,s),(a,{subPath:n})=>a.readdirSync(n,s),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(s,{subPath:a})=>await s.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(s,{subPath:a})=>s.readlinkSync(a))}async truncatePromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,s),async(a,{subPath:n})=>await a.truncatePromise(n,s))}truncateSync(r,s){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,s),(a,{subPath:n})=>a.truncateSync(n,s))}async ftruncatePromise(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncatePromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("ftruncate");let[n,c]=a;return n.ftruncatePromise(c,s)}ftruncateSync(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncateSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("ftruncateSync");let[n,c]=a;return n.ftruncateSync(c,s)}watch(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,s,a),(n,{subPath:c})=>n.watch(c,s,a))}watchFile(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,s,a),()=>sE(this,r,s,a))}unwatchFile(r,s){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,s),()=>md(this,r,s))}async makeCallPromise(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await s();let c=this.resolve(r),f=this.findMount(c);return f?n&&f.subPath==="/"?await s():await this.getMountPromise(f.archivePath,async p=>await a(p,f)):await s()}makeCallSync(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return s();let c=this.resolve(r),f=this.findMount(c);return!f||n&&f.subPath==="/"?s():this.getMountSync(f.archivePath,p=>a(p,f))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let s="";for(;;){let a=r.substring(s.length),n=this.getMountPoint(a,s);if(!n)return null;if(s=this.pathUtils.join(s,n),!this.isMount.has(s)){if(this.notMount.has(s))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(s).mode&wd.constants.S_IFMT)!==this.typeCheck){this.notMount.add(s);continue}}catch{return null}this.isMount.add(s)}return{archivePath:s,subPath:this.pathUtils.join(vt.root,r.substring(s.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let s=Date.now(),a=s+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[c,{childFs:f,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||f.hasOpenFileHandles?.())){if(s>=p){f.saveAndClose?.(),this.mountInstances.delete(c),n-=1;continue}else if(r===null||n<=0){a=p;break}f.saveAndClose?.(),this.mountInstances.delete(c),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-s).unref())}async getMountPromise(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await s(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await s(a)}finally{a.saveAndClose?.()}}}getMountSync(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,s(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return s(a)}finally{a.saveAndClose?.()}}}}});var er,nx,l$=Ze(()=>{Id();el();er=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),nx=class t extends mp{static{this.instance=new t}constructor(){super(J)}getExtractHint(){throw er()}getRealPath(){throw er()}resolve(){throw er()}async openPromise(){throw er()}openSync(){throw er()}async opendirPromise(){throw er()}opendirSync(){throw er()}async readPromise(){throw er()}readSync(){throw er()}async writePromise(){throw er()}writeSync(){throw er()}async closePromise(){throw er()}closeSync(){throw er()}createWriteStream(){throw er()}createReadStream(){throw er()}async realpathPromise(){throw er()}realpathSync(){throw er()}async readdirPromise(){throw er()}readdirSync(){throw er()}async existsPromise(e){throw er()}existsSync(e){throw er()}async accessPromise(){throw er()}accessSync(){throw er()}async statPromise(){throw er()}statSync(){throw er()}async fstatPromise(e){throw er()}fstatSync(e){throw er()}async lstatPromise(e){throw er()}lstatSync(e){throw er()}async fchmodPromise(){throw er()}fchmodSync(){throw er()}async chmodPromise(){throw er()}chmodSync(){throw er()}async fchownPromise(){throw er()}fchownSync(){throw er()}async chownPromise(){throw er()}chownSync(){throw er()}async mkdirPromise(){throw er()}mkdirSync(){throw er()}async rmdirPromise(){throw er()}rmdirSync(){throw er()}async rmPromise(){throw er()}rmSync(){throw er()}async linkPromise(){throw er()}linkSync(){throw er()}async symlinkPromise(){throw er()}symlinkSync(){throw er()}async renamePromise(){throw er()}renameSync(){throw er()}async copyFilePromise(){throw er()}copyFileSync(){throw er()}async appendFilePromise(){throw er()}appendFileSync(){throw er()}async writeFilePromise(){throw er()}writeFileSync(){throw er()}async unlinkPromise(){throw er()}unlinkSync(){throw er()}async utimesPromise(){throw er()}utimesSync(){throw er()}async lutimesPromise(){throw er()}lutimesSync(){throw er()}async readFilePromise(){throw er()}readFileSync(){throw er()}async readlinkPromise(){throw er()}readlinkSync(){throw er()}async truncatePromise(){throw er()}truncateSync(){throw er()}async ftruncatePromise(e,r){throw er()}ftruncateSync(e,r){throw er()}watch(){throw er()}watchFile(){throw er()}unwatchFile(){throw er()}}});var t0,c$=Ze(()=>{yp();el();t0=class extends _s{constructor(e){super(fe),this.baseFs=e}mapFromBase(e){return fe.fromPortablePath(e)}mapToBase(e){return fe.toPortablePath(e)}}});var nqe,PU,iqe,uo,u$=Ze(()=>{Cd();yp();el();nqe=/^[0-9]+$/,PU=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,iqe=/^([^/]+-)?[a-f0-9]+$/,uo=class t extends _s{static makeVirtualPath(e,r,s){if(J.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!J.basename(r).match(iqe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=J.relative(J.dirname(e),s).split("/"),c=0;for(;c{bU=ut(Ie("buffer")),f$=Ie("url"),A$=Ie("util");yp();el();ix=class extends _s{constructor(e){super(fe),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,f$.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!sqe(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,A$.inspect)(e)}`)}}});var y$,Uo,Ep,r0,sx,ox,aE,Tu,Fu,h$,g$,d$,m$,M2,E$=Ze(()=>{y$=Ie("readline"),Uo=Symbol("kBaseFs"),Ep=Symbol("kFd"),r0=Symbol("kClosePromise"),sx=Symbol("kCloseResolve"),ox=Symbol("kCloseReject"),aE=Symbol("kRefs"),Tu=Symbol("kRef"),Fu=Symbol("kUnref"),M2=class{constructor(e,r){this[m$]=1;this[d$]=void 0;this[g$]=void 0;this[h$]=void 0;this[Uo]=r,this[Ep]=e}get fd(){return this[Ep]}async appendFile(e,r){try{this[Tu](this.appendFile);let s=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Uo].appendFilePromise(this.fd,e,s?{encoding:s}:void 0)}finally{this[Fu]()}}async chown(e,r){try{return this[Tu](this.chown),await this[Uo].fchownPromise(this.fd,e,r)}finally{this[Fu]()}}async chmod(e){try{return this[Tu](this.chmod),await this[Uo].fchmodPromise(this.fd,e)}finally{this[Fu]()}}createReadStream(e){return this[Uo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Uo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,s,a){try{this[Tu](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,s=e.length??n.byteLength,a=e.position??null),r??=0,s??=0,s===0?{bytesRead:s,buffer:n}:{bytesRead:await this[Uo].readPromise(this.fd,n,r,s,a),buffer:n}}finally{this[Fu]()}}async readFile(e){try{this[Tu](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Uo].readFilePromise(this.fd,r)}finally{this[Fu]()}}readLines(e){return(0,y$.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Tu](this.stat),await this[Uo].fstatPromise(this.fd,e)}finally{this[Fu]()}}async truncate(e){try{return this[Tu](this.truncate),await this[Uo].ftruncatePromise(this.fd,e)}finally{this[Fu]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Tu](this.writeFile);let s=(typeof r=="string"?r:r?.encoding)??void 0;await this[Uo].writeFilePromise(this.fd,e,s)}finally{this[Fu]()}}async write(...e){try{if(this[Tu](this.write),ArrayBuffer.isView(e[0])){let[r,s,a,n]=e;return{bytesWritten:await this[Uo].writePromise(this.fd,r,s??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,s,a]=e;return{bytesWritten:await this[Uo].writePromise(this.fd,r,s,a),buffer:r}}}finally{this[Fu]()}}async writev(e,r){try{this[Tu](this.writev);let s=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);s+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);s+=n.bytesWritten}return{buffers:e,bytesWritten:s}}finally{this[Fu]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[Ep]===-1)return Promise.resolve();if(this[r0])return this[r0];if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[r0]=this[Uo].closePromise(e).finally(()=>{this[r0]=void 0})}else this[r0]=new Promise((e,r)=>{this[sx]=e,this[ox]=r}).finally(()=>{this[r0]=void 0,this[ox]=void 0,this[sx]=void 0});return this[r0]}[(Uo,Ep,m$=aE,d$=r0,g$=sx,h$=ox,Tu)](e){if(this[Ep]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[aE]++}[Fu](){if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[Uo].closePromise(e).then(this[sx],this[ox])}}}});function U2(t,e){e=new ix(e);let r=(s,a,n)=>{let c=s[a];s[a]=n,typeof c?.[lE.promisify.custom]<"u"&&(n[lE.promisify.custom]=c[lE.promisify.custom])};{r(t,"exists",(s,...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(s).then(f=>{c(f)},()=>{c(!1)})})}),r(t,"read",(...s)=>{let[a,n,c,f,p,h]=s;if(s.length<=3){let E={};s.length<3?h=s[1]:(E=s[1],h=s[2]),{buffer:n=Buffer.alloc(16384),offset:c=0,length:f=n.byteLength,position:p}=E}if(c==null&&(c=0),f|=0,f===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,c,f,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let s of I$){let a=s.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[s];if(typeof n>"u")continue;r(t,a,(...f)=>{let h=typeof f[f.length-1]=="function"?f.pop():()=>{};process.nextTick(()=>{n.apply(e,f).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",s=>{try{return e.existsSync(s)}catch{return!1}}),r(t,"readSync",(...s)=>{let[a,n,c,f,p]=s;return s.length<=3&&({offset:c=0,length:f=n.byteLength,position:p}=s[2]||{}),c==null&&(c=0),f|=0,f===0?0:(p==null&&(p=-1),e.readSync(a,n,c,f,p))});for(let s of oqe){let a=s;if(typeof t[a]>"u")continue;let n=e[s];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let s=t.promises;for(let a of I$){let n=a.replace(/Promise$/,"");if(typeof s[n]>"u")continue;let c=e[a];typeof c>"u"||a!=="open"&&r(s,n,(f,...p)=>f instanceof M2?f[n].apply(f,p):c.call(e,f,...p))}r(s,"open",async(...a)=>{let n=await e.openPromise(...a);return new M2(n,e)})}t.read[lE.promisify.custom]=async(s,a,...n)=>({bytesRead:await e.readPromise(s,a,...n),buffer:a}),t.write[lE.promisify.custom]=async(s,a,...n)=>({bytesWritten:await e.writePromise(s,a,...n),buffer:a})}function ax(t,e){let r=Object.create(t);return U2(r,e),r}var lE,oqe,I$,C$=Ze(()=>{lE=Ie("util");p$();E$();oqe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),I$=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function w$(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function B$(){if(xU)return xU;let t=fe.toPortablePath(v$.default.tmpdir()),e=ce.realpathSync(t);return process.once("exit",()=>{ce.rmtempSync()}),xU={tmpdir:t,realTmpdir:e}}var v$,Nu,xU,ce,S$=Ze(()=>{v$=ut(Ie("os"));Cd();el();Nu=new Set,xU=null;ce=Object.assign(new Yn,{detachTemp(t){Nu.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=B$();for(;;){let s=w$("xfs-");try{this.mkdirSync(J.join(e,s))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=J.join(r,s);if(Nu.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Nu.has(a)){Nu.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=B$();for(;;){let s=w$("xfs-");try{await this.mkdirPromise(J.join(e,s))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=J.join(r,s);if(Nu.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Nu.has(a)){Nu.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Nu.values()).map(async t=>{try{await ce.removePromise(t,{maxRetries:0}),Nu.delete(t)}catch{}}))},rmtempSync(){for(let t of Nu)try{ce.removeSync(t),Nu.delete(t)}catch{}}})});var _2={};Vt(_2,{AliasFS:()=>_f,BasePortableFakeFS:()=>Uf,CustomDir:()=>L2,CwdFS:()=>Sn,FakeFS:()=>mp,Filename:()=>Er,JailFS:()=>Hf,LazyFS:()=>oE,MountFS:()=>e0,NoFS:()=>nx,NodeFS:()=>Yn,PortablePath:()=>vt,PosixFS:()=>t0,ProxiedFS:()=>_s,VirtualFS:()=>uo,constants:()=>fi,errors:()=>or,extendFs:()=>ax,normalizeLineEndings:()=>Ed,npath:()=>fe,opendir:()=>ex,patchFs:()=>U2,ppath:()=>J,setupCopyIndex:()=>$b,statUtils:()=>$a,unwatchAllFiles:()=>yd,unwatchFile:()=>md,watchFile:()=>sE,xfs:()=>ce});var Dt=Ze(()=>{jX();zb();wU();SU();JX();DU();Id();el();el();e$();Id();n$();s$();o$();a$();l$();Cd();c$();yp();u$();C$();S$()});var k$=_((mkt,x$)=>{x$.exports=b$;b$.sync=lqe;var D$=Ie("fs");function aqe(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 s=0;s{F$.exports=R$;R$.sync=cqe;var Q$=Ie("fs");function R$(t,e,r){Q$.stat(t,function(s,a){r(s,s?!1:T$(a,e))})}function cqe(t,e){return T$(Q$.statSync(t),e)}function T$(t,e){return t.isFile()&&uqe(t,e)}function uqe(t,e){var r=t.mode,s=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),c=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),f=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=f|p,C=r&h||r&p&&a===c||r&f&&s===n||r&E&&n===0;return C}});var L$=_((Ikt,O$)=>{var Ekt=Ie("fs"),lx;process.platform==="win32"||global.TESTING_WINDOWS?lx=k$():lx=N$();O$.exports=kU;kU.sync=fqe;function kU(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(s,a){kU(t,e||{},function(n,c){n?a(n):s(c)})})}lx(t,e||{},function(s,a){s&&(s.code==="EACCES"||e&&e.ignoreErrors)&&(s=null,a=!1),r(s,a)})}function fqe(t,e){try{return lx.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var q$=_((Ckt,G$)=>{var cE=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",M$=Ie("path"),Aqe=cE?";":":",U$=L$(),_$=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),H$=(t,e)=>{let r=e.colon||Aqe,s=t.match(/\//)||cE&&t.match(/\\/)?[""]:[...cE?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=cE?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=cE?a.split(r):[""];return cE&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:s,pathExt:n,pathExtExe:a}},j$=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:s,pathExt:a,pathExtExe:n}=H$(t,e),c=[],f=h=>new Promise((E,C)=>{if(h===s.length)return e.all&&c.length?E(c):C(_$(t));let S=s[h],b=/^".*"$/.test(S)?S.slice(1,-1):S,I=M$.join(b,t),T=!b&&/^\.[\\\/]/.test(t)?t.slice(0,2)+I:I;E(p(T,h,0))}),p=(h,E,C)=>new Promise((S,b)=>{if(C===a.length)return S(f(E+1));let I=a[C];U$(h+I,{pathExt:n},(T,N)=>{if(!T&&N)if(e.all)c.push(h+I);else return S(h+I);return S(p(h,E,C+1))})});return r?f(0).then(h=>r(null,h),r):f(0)},pqe=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:s,pathExtExe:a}=H$(t,e),n=[];for(let c=0;c{"use strict";var W$=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(s=>s.toUpperCase()==="PATH")||"Path"};QU.exports=W$;QU.exports.default=W$});var z$=_((Bkt,K$)=>{"use strict";var V$=Ie("path"),hqe=q$(),gqe=Y$();function J$(t,e){let r=t.options.env||process.env,s=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let c;try{c=hqe.sync(t.command,{path:r[gqe({env:r})],pathExt:e?V$.delimiter:void 0})}catch{}finally{n&&process.chdir(s)}return c&&(c=V$.resolve(a?t.options.cwd:"",c)),c}function dqe(t){return J$(t)||J$(t,!0)}K$.exports=dqe});var Z$=_((vkt,TU)=>{"use strict";var RU=/([()\][%!^"`<>&|;, *?])/g;function mqe(t){return t=t.replace(RU,"^$1"),t}function yqe(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(RU,"^$1"),e&&(t=t.replace(RU,"^$1")),t}TU.exports.command=mqe;TU.exports.argument=yqe});var $$=_((Skt,X$)=>{"use strict";X$.exports=/^#!(.*)/});var tee=_((Dkt,eee)=>{"use strict";var Eqe=$$();eee.exports=(t="")=>{let e=t.match(Eqe);if(!e)return null;let[r,s]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?s:s?`${a} ${s}`:a}});var nee=_((Pkt,ree)=>{"use strict";var FU=Ie("fs"),Iqe=tee();function Cqe(t){let r=Buffer.alloc(150),s;try{s=FU.openSync(t,"r"),FU.readSync(s,r,0,150,0),FU.closeSync(s)}catch{}return Iqe(r.toString())}ree.exports=Cqe});var aee=_((bkt,oee)=>{"use strict";var wqe=Ie("path"),iee=z$(),see=Z$(),Bqe=nee(),vqe=process.platform==="win32",Sqe=/\.(?:com|exe)$/i,Dqe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Pqe(t){t.file=iee(t);let e=t.file&&Bqe(t.file);return e?(t.args.unshift(t.file),t.command=e,iee(t)):t.file}function bqe(t){if(!vqe)return t;let e=Pqe(t),r=!Sqe.test(e);if(t.options.forceShell||r){let s=Dqe.test(e);t.command=wqe.normalize(t.command),t.command=see.command(t.command),t.args=t.args.map(n=>see.argument(n,s));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function xqe(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let s={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?s:bqe(s)}oee.exports=xqe});var uee=_((xkt,cee)=>{"use strict";var NU=process.platform==="win32";function OU(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 kqe(t,e){if(!NU)return;let r=t.emit;t.emit=function(s,a){if(s==="exit"){let n=lee(a,e);if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function lee(t,e){return NU&&t===1&&!e.file?OU(e.original,"spawn"):null}function Qqe(t,e){return NU&&t===1&&!e.file?OU(e.original,"spawnSync"):null}cee.exports={hookChildProcess:kqe,verifyENOENT:lee,verifyENOENTSync:Qqe,notFoundError:OU}});var UU=_((kkt,uE)=>{"use strict";var fee=Ie("child_process"),LU=aee(),MU=uee();function Aee(t,e,r){let s=LU(t,e,r),a=fee.spawn(s.command,s.args,s.options);return MU.hookChildProcess(a,s),a}function Rqe(t,e,r){let s=LU(t,e,r),a=fee.spawnSync(s.command,s.args,s.options);return a.error=a.error||MU.verifyENOENTSync(a.status,s),a}uE.exports=Aee;uE.exports.spawn=Aee;uE.exports.sync=Rqe;uE.exports._parse=LU;uE.exports._enoent=MU});var hee=_((Qkt,pee)=>{"use strict";function Tqe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Bd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Bd)}Tqe(Bd,Error);Bd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C0){for(C=1,S=1;C>",P=ur(">>",!1),y=">&",F=ur(">&",!1),z=">",Z=ur(">",!1),$="<<<",oe=ur("<<<",!1),xe="<&",Re=ur("<&",!1),lt="<",Ct=ur("<",!1),qt=function(O){return{type:"argument",segments:[].concat(...O)}},ir=function(O){return O},bt="$'",gn=ur("$'",!1),br="'",Ir=ur("'",!1),Or=function(O){return[{type:"text",text:O}]},nn='""',ai=ur('""',!1),Io=function(){return{type:"text",text:""}},ts='"',$s=ur('"',!1),Co=function(O){return O},Hi=function(O){return{type:"arithmetic",arithmetic:O,quoted:!0}},eo=function(O){return{type:"shell",shell:O,quoted:!0}},wo=function(O){return{type:"variable",...O,quoted:!0}},QA=function(O){return{type:"text",text:O}},Af=function(O){return{type:"arithmetic",arithmetic:O,quoted:!1}},dh=function(O){return{type:"shell",shell:O,quoted:!1}},mh=function(O){return{type:"variable",...O,quoted:!1}},to=function(O){return{type:"glob",pattern:O}},jn=/^[^']/,Rs=Ki(["'"],!0,!1),ro=function(O){return O.join("")},ou=/^[^$"]/,au=Ki(["$",'"'],!0,!1),lu=`\\ `,RA=ur(`\\ `,!1),TA=function(){return""},oa="\\",aa=ur("\\",!1),FA=/^[\\$"`]/,gr=Ki(["\\","$",'"',"`"],!1,!1),Bo=function(O){return O},Me="\\a",cu=ur("\\a",!1),Cr=function(){return"a"},pf="\\b",NA=ur("\\b",!1),OA=function(){return"\b"},uu=/^[Ee]/,fu=Ki(["E","e"],!1,!1),oc=function(){return"\x1B"},ve="\\f",Nt=ur("\\f",!1),ac=function(){return"\f"},Oi="\\n",no=ur("\\n",!1),Tt=function(){return` `},xn="\\r",la=ur("\\r",!1),ji=function(){return"\r"},Li="\\t",Na=ur("\\t",!1),dn=function(){return" "},Kn="\\v",Au=ur("\\v",!1),yh=function(){return"\v"},Oa=/^[\\'"?]/,La=Ki(["\\","'",'"',"?"],!1,!1),Ma=function(O){return String.fromCharCode(parseInt(O,16))},$e="\\x",Ua=ur("\\x",!1),hf="\\u",lc=ur("\\u",!1),wn="\\U",ca=ur("\\U",!1),LA=function(O){return String.fromCodePoint(parseInt(O,16))},MA=/^[0-7]/,ua=Ki([["0","7"]],!1,!1),Bl=/^[0-9a-fA-f]/,Mt=Ki([["0","9"],["a","f"],["A","f"]],!1,!1),kn=yf(),fa="{}",Ha=ur("{}",!1),rs=function(){return"{}"},cc="-",pu=ur("-",!1),uc="+",ja=ur("+",!1),Mi=".",Is=ur(".",!1),vl=function(O,K,re){return{type:"number",value:(O==="-"?-1:1)*parseFloat(K.join("")+"."+re.join(""))}},gf=function(O,K){return{type:"number",value:(O==="-"?-1:1)*parseInt(K.join(""))}},fc=function(O){return{type:"variable",...O}},wi=function(O){return{type:"variable",name:O}},Qn=function(O){return O},Ac="*",Ke=ur("*",!1),st="/",St=ur("/",!1),lr=function(O,K,re){return{type:K==="*"?"multiplication":"division",right:re}},te=function(O,K){return K.reduce((re,de)=>({left:re,...de}),O)},Ee=function(O,K,re){return{type:K==="+"?"addition":"subtraction",right:re}},Oe="$((",dt=ur("$((",!1),Et="))",Pt=ur("))",!1),tr=function(O){return O},An="$(",li=ur("$(",!1),Gi=function(O){return O},Rn="${",Ga=ur("${",!1),my=":-",X1=ur(":-",!1),vo=function(O,K){return{name:O,defaultValue:K}},yy=":-}",Eh=ur(":-}",!1),$1=function(O){return{name:O,defaultValue:[]}},So=":+",Ih=ur(":+",!1),Ch=function(O,K){return{name:O,alternativeValue:K}},hu=":+}",wh=ur(":+}",!1),Fg=function(O){return{name:O,alternativeValue:[]}},Ng=function(O){return{name:O}},Og="$",Ey=ur("$",!1),df=function(O){return e.isGlobPattern(O)},Do=function(O){return O},Sl=/^[a-zA-Z0-9_]/,Bh=Ki([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Lg=function(){return By()},Dl=/^[$@*?#a-zA-Z0-9_\-]/,Pl=Ki(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Iy=/^[()}<>$|&; \t"']/,UA=Ki(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Cy=/^[<>&; \t"']/,wy=Ki(["<",">","&",";"," "," ",'"',"'"],!1,!1),_A=/^[ \t]/,HA=Ki([" "," "],!1,!1),Y=0,xt=0,jA=[{line:1,column:1}],Po=0,mf=[],yt=0,gu;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function By(){return t.substring(xt,Y)}function Mg(){return Ef(xt,Y)}function e2(O,K){throw K=K!==void 0?K:Ef(xt,Y),GA([Ug(O)],t.substring(xt,Y),K)}function vh(O,K){throw K=K!==void 0?K:Ef(xt,Y),di(O,K)}function ur(O,K){return{type:"literal",text:O,ignoreCase:K}}function Ki(O,K,re){return{type:"class",parts:O,inverted:K,ignoreCase:re}}function yf(){return{type:"any"}}function qa(){return{type:"end"}}function Ug(O){return{type:"other",description:O}}function du(O){var K=jA[O],re;if(K)return K;for(re=O-1;!jA[re];)re--;for(K=jA[re],K={line:K.line,column:K.column};rePo&&(Po=Y,mf=[]),mf.push(O))}function di(O,K){return new Bd(O,null,null,K)}function GA(O,K,re){return new Bd(Bd.buildMessage(O,K),O,K,re)}function Wa(){var O,K,re;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();return K!==r?(re=Aa(),re===r&&(re=null),re!==r?(xt=O,K=n(re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function Aa(){var O,K,re,de,Je;if(O=Y,K=Sh(),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=_g(),de!==r?(Je=Ya(),Je===r&&(Je=null),Je!==r?(xt=O,K=c(K,de,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;if(O===r)if(O=Y,K=Sh(),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=_g(),de===r&&(de=null),de!==r?(xt=O,K=f(K,de),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;return O}function Ya(){var O,K,re,de,Je;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(re=Aa(),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=p(re),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;return O}function _g(){var O;return t.charCodeAt(Y)===59?(O=h,Y++):(O=r,yt===0&&wt(E)),O===r&&(t.charCodeAt(Y)===38?(O=C,Y++):(O=r,yt===0&&wt(S))),O}function Sh(){var O,K,re;return O=Y,K=qA(),K!==r?(re=Hg(),re===r&&(re=null),re!==r?(xt=O,K=b(K,re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function Hg(){var O,K,re,de,Je,At,dr;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(re=vy(),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=Sh(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();At!==r?(xt=O,K=I(re,Je),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;return O}function vy(){var O;return t.substr(Y,2)===T?(O=T,Y+=2):(O=r,yt===0&&wt(N)),O===r&&(t.substr(Y,2)===U?(O=U,Y+=2):(O=r,yt===0&&wt(W))),O}function qA(){var O,K,re;return O=Y,K=If(),K!==r?(re=jg(),re===r&&(re=null),re!==r?(xt=O,K=ee(K,re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function jg(){var O,K,re,de,Je,At,dr;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(re=mu(),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=qA(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();At!==r?(xt=O,K=ie(re,Je),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;return O}function mu(){var O;return t.substr(Y,2)===ue?(O=ue,Y+=2):(O=r,yt===0&&wt(le)),O===r&&(t.charCodeAt(Y)===124?(O=me,Y++):(O=r,yt===0&&wt(pe))),O}function yu(){var O,K,re,de,Je,At;if(O=Y,K=bh(),K!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,yt===0&&wt(Ce)),re!==r)if(de=WA(),de!==r){for(Je=[],At=kt();At!==r;)Je.push(At),At=kt();Je!==r?(xt=O,K=g(K,de),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;else Y=O,O=r;if(O===r)if(O=Y,K=bh(),K!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,yt===0&&wt(Ce)),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=we(K),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;return O}function If(){var O,K,re,de,Je,At,dr,vr,Un,mi,Cs;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(t.charCodeAt(Y)===40?(re=ye,Y++):(re=r,yt===0&&wt(Ae)),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=Aa(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();if(At!==r)if(t.charCodeAt(Y)===41?(dr=se,Y++):(dr=r,yt===0&&wt(X)),dr!==r){for(vr=[],Un=kt();Un!==r;)vr.push(Un),Un=kt();if(vr!==r){for(Un=[],mi=Gn();mi!==r;)Un.push(mi),mi=Gn();if(Un!==r){for(mi=[],Cs=kt();Cs!==r;)mi.push(Cs),Cs=kt();mi!==r?(xt=O,K=De(Je,Un),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;if(O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(t.charCodeAt(Y)===123?(re=Te,Y++):(re=r,yt===0&&wt(mt)),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=Aa(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();if(At!==r)if(t.charCodeAt(Y)===125?(dr=j,Y++):(dr=r,yt===0&&wt(rt)),dr!==r){for(vr=[],Un=kt();Un!==r;)vr.push(Un),Un=kt();if(vr!==r){for(Un=[],mi=Gn();mi!==r;)Un.push(mi),mi=Gn();if(Un!==r){for(mi=[],Cs=kt();Cs!==r;)mi.push(Cs),Cs=kt();mi!==r?(xt=O,K=Fe(Je,Un),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;if(O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r){for(re=[],de=yu();de!==r;)re.push(de),de=yu();if(re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r){if(Je=[],At=Eu(),At!==r)for(;At!==r;)Je.push(At),At=Eu();else Je=r;if(Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();At!==r?(xt=O,K=Ne(re,Je),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;if(O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r){if(re=[],de=yu(),de!==r)for(;de!==r;)re.push(de),de=yu();else re=r;if(re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=be(re),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}}}return O}function Ts(){var O,K,re,de,Je;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r){if(re=[],de=bi(),de!==r)for(;de!==r;)re.push(de),de=bi();else re=r;if(re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=Ve(re),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r;return O}function Eu(){var O,K,re;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r?(re=Gn(),re!==r?(xt=O,K=ke(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();K!==r?(re=bi(),re!==r?(xt=O,K=ke(re),O=K):(Y=O,O=r)):(Y=O,O=r)}return O}function Gn(){var O,K,re,de,Je;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();return K!==r?(it.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Ue)),re===r&&(re=null),re!==r?(de=ns(),de!==r?(Je=bi(),Je!==r?(xt=O,K=x(re,de,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function ns(){var O;return t.substr(Y,2)===w?(O=w,Y+=2):(O=r,yt===0&&wt(P)),O===r&&(t.substr(Y,2)===y?(O=y,Y+=2):(O=r,yt===0&&wt(F)),O===r&&(t.charCodeAt(Y)===62?(O=z,Y++):(O=r,yt===0&&wt(Z)),O===r&&(t.substr(Y,3)===$?(O=$,Y+=3):(O=r,yt===0&&wt(oe)),O===r&&(t.substr(Y,2)===xe?(O=xe,Y+=2):(O=r,yt===0&&wt(Re)),O===r&&(t.charCodeAt(Y)===60?(O=lt,Y++):(O=r,yt===0&&wt(Ct))))))),O}function bi(){var O,K,re;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();return K!==r?(re=WA(),re!==r?(xt=O,K=ke(re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function WA(){var O,K,re;if(O=Y,K=[],re=Cf(),re!==r)for(;re!==r;)K.push(re),re=Cf();else K=r;return K!==r&&(xt=O,K=qt(K)),O=K,O}function Cf(){var O,K;return O=Y,K=mn(),K!==r&&(xt=O,K=ir(K)),O=K,O===r&&(O=Y,K=Gg(),K!==r&&(xt=O,K=ir(K)),O=K,O===r&&(O=Y,K=qg(),K!==r&&(xt=O,K=ir(K)),O=K,O===r&&(O=Y,K=is(),K!==r&&(xt=O,K=ir(K)),O=K))),O}function mn(){var O,K,re,de;return O=Y,t.substr(Y,2)===bt?(K=bt,Y+=2):(K=r,yt===0&&wt(gn)),K!==r?(re=yn(),re!==r?(t.charCodeAt(Y)===39?(de=br,Y++):(de=r,yt===0&&wt(Ir)),de!==r?(xt=O,K=Or(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function Gg(){var O,K,re,de;return O=Y,t.charCodeAt(Y)===39?(K=br,Y++):(K=r,yt===0&&wt(Ir)),K!==r?(re=wf(),re!==r?(t.charCodeAt(Y)===39?(de=br,Y++):(de=r,yt===0&&wt(Ir)),de!==r?(xt=O,K=Or(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function qg(){var O,K,re,de;if(O=Y,t.substr(Y,2)===nn?(K=nn,Y+=2):(K=r,yt===0&&wt(ai)),K!==r&&(xt=O,K=Io()),O=K,O===r)if(O=Y,t.charCodeAt(Y)===34?(K=ts,Y++):(K=r,yt===0&&wt($s)),K!==r){for(re=[],de=bl();de!==r;)re.push(de),de=bl();re!==r?(t.charCodeAt(Y)===34?(de=ts,Y++):(de=r,yt===0&&wt($s)),de!==r?(xt=O,K=Co(re),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;return O}function is(){var O,K,re;if(O=Y,K=[],re=bo(),re!==r)for(;re!==r;)K.push(re),re=bo();else K=r;return K!==r&&(xt=O,K=Co(K)),O=K,O}function bl(){var O,K;return O=Y,K=Xr(),K!==r&&(xt=O,K=Hi(K)),O=K,O===r&&(O=Y,K=Ph(),K!==r&&(xt=O,K=eo(K)),O=K,O===r&&(O=Y,K=VA(),K!==r&&(xt=O,K=wo(K)),O=K,O===r&&(O=Y,K=Bf(),K!==r&&(xt=O,K=QA(K)),O=K))),O}function bo(){var O,K;return O=Y,K=Xr(),K!==r&&(xt=O,K=Af(K)),O=K,O===r&&(O=Y,K=Ph(),K!==r&&(xt=O,K=dh(K)),O=K,O===r&&(O=Y,K=VA(),K!==r&&(xt=O,K=mh(K)),O=K,O===r&&(O=Y,K=Sy(),K!==r&&(xt=O,K=to(K)),O=K,O===r&&(O=Y,K=Dh(),K!==r&&(xt=O,K=QA(K)),O=K)))),O}function wf(){var O,K,re;for(O=Y,K=[],jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs));re!==r;)K.push(re),jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs));return K!==r&&(xt=O,K=ro(K)),O=K,O}function Bf(){var O,K,re;if(O=Y,K=[],re=xl(),re===r&&(ou.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(au))),re!==r)for(;re!==r;)K.push(re),re=xl(),re===r&&(ou.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(au)));else K=r;return K!==r&&(xt=O,K=ro(K)),O=K,O}function xl(){var O,K,re;return O=Y,t.substr(Y,2)===lu?(K=lu,Y+=2):(K=r,yt===0&&wt(RA)),K!==r&&(xt=O,K=TA()),O=K,O===r&&(O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(FA.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(gr)),re!==r?(xt=O,K=Bo(re),O=K):(Y=O,O=r)):(Y=O,O=r)),O}function yn(){var O,K,re;for(O=Y,K=[],re=xo(),re===r&&(jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs)));re!==r;)K.push(re),re=xo(),re===r&&(jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs)));return K!==r&&(xt=O,K=ro(K)),O=K,O}function xo(){var O,K,re;return O=Y,t.substr(Y,2)===Me?(K=Me,Y+=2):(K=r,yt===0&&wt(cu)),K!==r&&(xt=O,K=Cr()),O=K,O===r&&(O=Y,t.substr(Y,2)===pf?(K=pf,Y+=2):(K=r,yt===0&&wt(NA)),K!==r&&(xt=O,K=OA()),O=K,O===r&&(O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(uu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(fu)),re!==r?(xt=O,K=oc(),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===ve?(K=ve,Y+=2):(K=r,yt===0&&wt(Nt)),K!==r&&(xt=O,K=ac()),O=K,O===r&&(O=Y,t.substr(Y,2)===Oi?(K=Oi,Y+=2):(K=r,yt===0&&wt(no)),K!==r&&(xt=O,K=Tt()),O=K,O===r&&(O=Y,t.substr(Y,2)===xn?(K=xn,Y+=2):(K=r,yt===0&&wt(la)),K!==r&&(xt=O,K=ji()),O=K,O===r&&(O=Y,t.substr(Y,2)===Li?(K=Li,Y+=2):(K=r,yt===0&&wt(Na)),K!==r&&(xt=O,K=dn()),O=K,O===r&&(O=Y,t.substr(Y,2)===Kn?(K=Kn,Y+=2):(K=r,yt===0&&wt(Au)),K!==r&&(xt=O,K=yh()),O=K,O===r&&(O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(Oa.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(La)),re!==r?(xt=O,K=Bo(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Iu()))))))))),O}function Iu(){var O,K,re,de,Je,At,dr,vr,Un,mi,Cs,JA;return O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(re=pa(),re!==r?(xt=O,K=Ma(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===$e?(K=$e,Y+=2):(K=r,yt===0&&wt(Ua)),K!==r?(re=Y,de=Y,Je=pa(),Je!==r?(At=Fs(),At!==r?(Je=[Je,At],de=Je):(Y=de,de=r)):(Y=de,de=r),de===r&&(de=pa()),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,K=Ma(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===hf?(K=hf,Y+=2):(K=r,yt===0&&wt(lc)),K!==r?(re=Y,de=Y,Je=Fs(),Je!==r?(At=Fs(),At!==r?(dr=Fs(),dr!==r?(vr=Fs(),vr!==r?(Je=[Je,At,dr,vr],de=Je):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,K=Ma(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===wn?(K=wn,Y+=2):(K=r,yt===0&&wt(ca)),K!==r?(re=Y,de=Y,Je=Fs(),Je!==r?(At=Fs(),At!==r?(dr=Fs(),dr!==r?(vr=Fs(),vr!==r?(Un=Fs(),Un!==r?(mi=Fs(),mi!==r?(Cs=Fs(),Cs!==r?(JA=Fs(),JA!==r?(Je=[Je,At,dr,vr,Un,mi,Cs,JA],de=Je):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,K=LA(re),O=K):(Y=O,O=r)):(Y=O,O=r)))),O}function pa(){var O;return MA.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(ua)),O}function Fs(){var O;return Bl.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(Mt)),O}function Dh(){var O,K,re,de,Je;if(O=Y,K=[],re=Y,t.charCodeAt(Y)===92?(de=oa,Y++):(de=r,yt===0&&wt(aa)),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===fa?(de=fa,Y+=2):(de=r,yt===0&&wt(Ha)),de!==r&&(xt=re,de=rs()),re=de,re===r&&(re=Y,de=Y,yt++,Je=Dy(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r))),re!==r)for(;re!==r;)K.push(re),re=Y,t.charCodeAt(Y)===92?(de=oa,Y++):(de=r,yt===0&&wt(aa)),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===fa?(de=fa,Y+=2):(de=r,yt===0&&wt(Ha)),de!==r&&(xt=re,de=rs()),re=de,re===r&&(re=Y,de=Y,yt++,Je=Dy(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r)));else K=r;return K!==r&&(xt=O,K=ro(K)),O=K,O}function YA(){var O,K,re,de,Je,At;if(O=Y,t.charCodeAt(Y)===45?(K=cc,Y++):(K=r,yt===0&&wt(pu)),K===r&&(t.charCodeAt(Y)===43?(K=uc,Y++):(K=r,yt===0&&wt(ja))),K===r&&(K=null),K!==r){if(re=[],it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue)),de!==r)for(;de!==r;)re.push(de),it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue));else re=r;if(re!==r)if(t.charCodeAt(Y)===46?(de=Mi,Y++):(de=r,yt===0&&wt(Is)),de!==r){if(Je=[],it.test(t.charAt(Y))?(At=t.charAt(Y),Y++):(At=r,yt===0&&wt(Ue)),At!==r)for(;At!==r;)Je.push(At),it.test(t.charAt(Y))?(At=t.charAt(Y),Y++):(At=r,yt===0&&wt(Ue));else Je=r;Je!==r?(xt=O,K=vl(K,re,Je),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;if(O===r){if(O=Y,t.charCodeAt(Y)===45?(K=cc,Y++):(K=r,yt===0&&wt(pu)),K===r&&(t.charCodeAt(Y)===43?(K=uc,Y++):(K=r,yt===0&&wt(ja))),K===r&&(K=null),K!==r){if(re=[],it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue)),de!==r)for(;de!==r;)re.push(de),it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue));else re=r;re!==r?(xt=O,K=gf(K,re),O=K):(Y=O,O=r)}else Y=O,O=r;if(O===r&&(O=Y,K=VA(),K!==r&&(xt=O,K=fc(K)),O=K,O===r&&(O=Y,K=pc(),K!==r&&(xt=O,K=wi(K)),O=K,O===r)))if(O=Y,t.charCodeAt(Y)===40?(K=ye,Y++):(K=r,yt===0&&wt(Ae)),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();if(re!==r)if(de=io(),de!==r){for(Je=[],At=kt();At!==r;)Je.push(At),At=kt();Je!==r?(t.charCodeAt(Y)===41?(At=se,Y++):(At=r,yt===0&&wt(X)),At!==r?(xt=O,K=Qn(de),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r}return O}function vf(){var O,K,re,de,Je,At,dr,vr;if(O=Y,K=YA(),K!==r){for(re=[],de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===42?(At=Ac,Y++):(At=r,yt===0&&wt(Ke)),At===r&&(t.charCodeAt(Y)===47?(At=st,Y++):(At=r,yt===0&&wt(St))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=YA(),vr!==r?(xt=de,Je=lr(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r;for(;de!==r;){for(re.push(de),de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===42?(At=Ac,Y++):(At=r,yt===0&&wt(Ke)),At===r&&(t.charCodeAt(Y)===47?(At=st,Y++):(At=r,yt===0&&wt(St))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=YA(),vr!==r?(xt=de,Je=lr(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r}re!==r?(xt=O,K=te(K,re),O=K):(Y=O,O=r)}else Y=O,O=r;return O}function io(){var O,K,re,de,Je,At,dr,vr;if(O=Y,K=vf(),K!==r){for(re=[],de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===43?(At=uc,Y++):(At=r,yt===0&&wt(ja)),At===r&&(t.charCodeAt(Y)===45?(At=cc,Y++):(At=r,yt===0&&wt(pu))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=vf(),vr!==r?(xt=de,Je=Ee(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r;for(;de!==r;){for(re.push(de),de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===43?(At=uc,Y++):(At=r,yt===0&&wt(ja)),At===r&&(t.charCodeAt(Y)===45?(At=cc,Y++):(At=r,yt===0&&wt(pu))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=vf(),vr!==r?(xt=de,Je=Ee(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r}re!==r?(xt=O,K=te(K,re),O=K):(Y=O,O=r)}else Y=O,O=r;return O}function Xr(){var O,K,re,de,Je,At;if(O=Y,t.substr(Y,3)===Oe?(K=Oe,Y+=3):(K=r,yt===0&&wt(dt)),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();if(re!==r)if(de=io(),de!==r){for(Je=[],At=kt();At!==r;)Je.push(At),At=kt();Je!==r?(t.substr(Y,2)===Et?(At=Et,Y+=2):(At=r,yt===0&&wt(Pt)),At!==r?(xt=O,K=tr(de),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;return O}function Ph(){var O,K,re,de;return O=Y,t.substr(Y,2)===An?(K=An,Y+=2):(K=r,yt===0&&wt(li)),K!==r?(re=Aa(),re!==r?(t.charCodeAt(Y)===41?(de=se,Y++):(de=r,yt===0&&wt(X)),de!==r?(xt=O,K=Gi(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function VA(){var O,K,re,de,Je,At;return O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,2)===my?(de=my,Y+=2):(de=r,yt===0&&wt(X1)),de!==r?(Je=Ts(),Je!==r?(t.charCodeAt(Y)===125?(At=j,Y++):(At=r,yt===0&&wt(rt)),At!==r?(xt=O,K=vo(re,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,3)===yy?(de=yy,Y+=3):(de=r,yt===0&&wt(Eh)),de!==r?(xt=O,K=$1(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,2)===So?(de=So,Y+=2):(de=r,yt===0&&wt(Ih)),de!==r?(Je=Ts(),Je!==r?(t.charCodeAt(Y)===125?(At=j,Y++):(At=r,yt===0&&wt(rt)),At!==r?(xt=O,K=Ch(re,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,3)===hu?(de=hu,Y+=3):(de=r,yt===0&&wt(wh)),de!==r?(xt=O,K=Fg(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.charCodeAt(Y)===125?(de=j,Y++):(de=r,yt===0&&wt(rt)),de!==r?(xt=O,K=Ng(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.charCodeAt(Y)===36?(K=Og,Y++):(K=r,yt===0&&wt(Ey)),K!==r?(re=pc(),re!==r?(xt=O,K=Ng(re),O=K):(Y=O,O=r)):(Y=O,O=r)))))),O}function Sy(){var O,K,re;return O=Y,K=Wg(),K!==r?(xt=Y,re=df(K),re?re=void 0:re=r,re!==r?(xt=O,K=Do(K),O=K):(Y=O,O=r)):(Y=O,O=r),O}function Wg(){var O,K,re,de,Je;if(O=Y,K=[],re=Y,de=Y,yt++,Je=xh(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r),re!==r)for(;re!==r;)K.push(re),re=Y,de=Y,yt++,Je=xh(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r);else K=r;return K!==r&&(xt=O,K=ro(K)),O=K,O}function bh(){var O,K,re;if(O=Y,K=[],Sl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Bh)),re!==r)for(;re!==r;)K.push(re),Sl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Bh));else K=r;return K!==r&&(xt=O,K=Lg()),O=K,O}function pc(){var O,K,re;if(O=Y,K=[],Dl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Pl)),re!==r)for(;re!==r;)K.push(re),Dl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Pl));else K=r;return K!==r&&(xt=O,K=Lg()),O=K,O}function Dy(){var O;return Iy.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(UA)),O}function xh(){var O;return Cy.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(wy)),O}function kt(){var O,K;if(O=[],_A.test(t.charAt(Y))?(K=t.charAt(Y),Y++):(K=r,yt===0&&wt(HA)),K!==r)for(;K!==r;)O.push(K),_A.test(t.charAt(Y))?(K=t.charAt(Y),Y++):(K=r,yt===0&&wt(HA));else O=r;return O}if(gu=a(),gu!==r&&Y===t.length)return gu;throw gu!==r&&Y!1}){try{return(0,gee.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function fE(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:s},a)=>`${fx(r)}${s===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function fx(t){return`${AE(t.chain)}${t.then?` ${_U(t.then)}`:""}`}function _U(t){return`${t.type} ${fx(t.line)}`}function AE(t){return`${jU(t)}${t.then?` ${HU(t.then)}`:""}`}function HU(t){return`${t.type} ${AE(t.chain)}`}function jU(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>cx(e)).join(" ")} `:""}${t.args.map(e=>GU(e)).join(" ")}`;case"subshell":return`(${fE(t.subshell)})${t.args.length>0?` ${t.args.map(e=>H2(e)).join(" ")}`:""}`;case"group":return`{ ${fE(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>H2(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>cx(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function cx(t){return`${t.name}=${t.args[0]?vd(t.args[0]):""}`}function GU(t){switch(t.type){case"redirection":return H2(t);case"argument":return vd(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function H2(t){return`${t.subtype} ${t.args.map(e=>vd(e)).join(" ")}`}function vd(t){return t.segments.map(e=>qU(e)).join("")}function qU(t){let e=(s,a)=>a?`"${s}"`:s,r=s=>s===""?"''":s.match(/[()}<>$|&;"'\n\t ]/)?s.match(/['\t\p{C}]/u)?s.match(/'/)?`"${s.replace(/["$\t\p{C}]/u,Oqe)}"`:`$'${s.replace(/[\t\p{C}]/u,mee)}'`:`'${s}'`:s;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`$(${fE(t.shell)})`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(s=>vd(s)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(s=>vd(s)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${Ax(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function Ax(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,s=a=>r(Ax(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${s(t.left)} ${e(t.type)} ${s(t.right)}`}}var gee,dee,Nqe,mee,Oqe,yee=Ze(()=>{gee=ut(hee());dee=new Map([["\f","\\f"],[` `,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Nqe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dee,([t,e])=>[t,`"$'${e}'"`])]),mee=t=>dee.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,Oqe=t=>Nqe.get(t)??`"$'${mee(t)}'"`});var Iee=_((Wkt,Eee)=>{"use strict";function Lqe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Sd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Sd)}Lqe(Sd,Error);Sd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C0){for(C=1,S=1;Cue&&(ue=W,le=[]),le.push(Ue))}function rt(Ue,x){return new Sd(Ue,null,null,x)}function Fe(Ue,x,w){return new Sd(Sd.buildMessage(Ue,x),Ue,x,w)}function Ne(){var Ue,x,w,P;return Ue=W,x=be(),x!==r?(t.charCodeAt(W)===47?(w=n,W++):(w=r,me===0&&j(c)),w!==r?(P=be(),P!==r?(ee=Ue,x=f(x,P),Ue=x):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r),Ue===r&&(Ue=W,x=be(),x!==r&&(ee=Ue,x=p(x)),Ue=x),Ue}function be(){var Ue,x,w,P;return Ue=W,x=Ve(),x!==r?(t.charCodeAt(W)===64?(w=h,W++):(w=r,me===0&&j(E)),w!==r?(P=it(),P!==r?(ee=Ue,x=C(x,P),Ue=x):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r),Ue===r&&(Ue=W,x=Ve(),x!==r&&(ee=Ue,x=S(x)),Ue=x),Ue}function Ve(){var Ue,x,w,P,y;return Ue=W,t.charCodeAt(W)===64?(x=h,W++):(x=r,me===0&&j(E)),x!==r?(w=ke(),w!==r?(t.charCodeAt(W)===47?(P=n,W++):(P=r,me===0&&j(c)),P!==r?(y=ke(),y!==r?(ee=Ue,x=b(),Ue=x):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r),Ue===r&&(Ue=W,x=ke(),x!==r&&(ee=Ue,x=b()),Ue=x),Ue}function ke(){var Ue,x,w;if(Ue=W,x=[],I.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(T)),w!==r)for(;w!==r;)x.push(w),I.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(T));else x=r;return x!==r&&(ee=Ue,x=b()),Ue=x,Ue}function it(){var Ue,x,w;if(Ue=W,x=[],N.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(U)),w!==r)for(;w!==r;)x.push(w),N.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(U));else x=r;return x!==r&&(ee=Ue,x=b()),Ue=x,Ue}if(pe=a(),pe!==r&&W===t.length)return pe;throw pe!==r&&W{Cee=ut(Iee())});var Pd=_((Vkt,Dd)=>{"use strict";function Bee(t){return typeof t>"u"||t===null}function Uqe(t){return typeof t=="object"&&t!==null}function _qe(t){return Array.isArray(t)?t:Bee(t)?[]:[t]}function Hqe(t,e){var r,s,a,n;if(e)for(n=Object.keys(e),r=0,s=n.length;r{"use strict";function j2(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}j2.prototype=Object.create(Error.prototype);j2.prototype.constructor=j2;j2.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};vee.exports=j2});var Pee=_((Kkt,Dee)=>{"use strict";var See=Pd();function WU(t,e,r,s,a){this.name=t,this.buffer=e,this.position=r,this.line=s,this.column=a}WU.prototype.getSnippet=function(e,r){var s,a,n,c,f;if(!this.buffer)return null;for(e=e||4,r=r||75,s="",a=this.position;a>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){s=" ... ",a+=5;break}for(n="",c=this.position;cr/2-1){n=" ... ",c-=5;break}return f=this.buffer.slice(a,c),See.repeat(" ",e)+s+f+n+` `+See.repeat(" ",e+this.position-a+s.length)+"^"};WU.prototype.toString=function(e){var r,s="";return this.name&&(s+='in "'+this.name+'" '),s+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(s+=`: `+r)),s};Dee.exports=WU});var Ss=_((zkt,xee)=>{"use strict";var bee=pE(),qqe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Wqe=["scalar","sequence","mapping"];function Yqe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(s){e[String(s)]=r})}),e}function Vqe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(qqe.indexOf(r)===-1)throw new bee('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Yqe(e.styleAliases||null),Wqe.indexOf(this.kind)===-1)throw new bee('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}xee.exports=Vqe});var bd=_((Zkt,Qee)=>{"use strict";var kee=Pd(),gx=pE(),Jqe=Ss();function YU(t,e,r){var s=[];return t.include.forEach(function(a){r=YU(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,c){n.tag===a.tag&&n.kind===a.kind&&s.push(c)}),r.push(a)}),r.filter(function(a,n){return s.indexOf(n)===-1})}function Kqe(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function s(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e{"use strict";var zqe=Ss();Ree.exports=new zqe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var Nee=_(($kt,Fee)=>{"use strict";var Zqe=Ss();Fee.exports=new Zqe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var Lee=_((eQt,Oee)=>{"use strict";var Xqe=Ss();Oee.exports=new Xqe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var dx=_((tQt,Mee)=>{"use strict";var $qe=bd();Mee.exports=new $qe({explicit:[Tee(),Nee(),Lee()]})});var _ee=_((rQt,Uee)=>{"use strict";var e5e=Ss();function t5e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function r5e(){return null}function n5e(t){return t===null}Uee.exports=new e5e("tag:yaml.org,2002:null",{kind:"scalar",resolve:t5e,construct:r5e,predicate:n5e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var jee=_((nQt,Hee)=>{"use strict";var i5e=Ss();function s5e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function o5e(t){return t==="true"||t==="True"||t==="TRUE"}function a5e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}Hee.exports=new i5e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:s5e,construct:o5e,predicate:a5e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var qee=_((iQt,Gee)=>{"use strict";var l5e=Pd(),c5e=Ss();function u5e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function f5e(t){return 48<=t&&t<=55}function A5e(t){return 48<=t&&t<=57}function p5e(t){if(t===null)return!1;var e=t.length,r=0,s=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var Vee=_((sQt,Yee)=>{"use strict";var Wee=Pd(),d5e=Ss(),m5e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function y5e(t){return!(t===null||!m5e.test(t)||t[t.length-1]==="_")}function E5e(t){var e,r,s,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,s=1,a.forEach(function(n){e+=n*s,s*=60}),r*e):r*parseFloat(e,10)}var I5e=/^[-+]?[0-9]+e/;function C5e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Wee.isNegativeZero(t))return"-0.0";return r=t.toString(10),I5e.test(r)?r.replace("e",".e"):r}function w5e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Wee.isNegativeZero(t))}Yee.exports=new d5e("tag:yaml.org,2002:float",{kind:"scalar",resolve:y5e,construct:E5e,predicate:w5e,represent:C5e,defaultStyle:"lowercase"})});var VU=_((oQt,Jee)=>{"use strict";var B5e=bd();Jee.exports=new B5e({include:[dx()],implicit:[_ee(),jee(),qee(),Vee()]})});var JU=_((aQt,Kee)=>{"use strict";var v5e=bd();Kee.exports=new v5e({include:[VU()]})});var $ee=_((lQt,Xee)=>{"use strict";var S5e=Ss(),zee=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Zee=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function D5e(t){return t===null?!1:zee.exec(t)!==null||Zee.exec(t)!==null}function P5e(t){var e,r,s,a,n,c,f,p=0,h=null,E,C,S;if(e=zee.exec(t),e===null&&(e=Zee.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],s=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,s,a));if(n=+e[4],c=+e[5],f=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],C=+(e[11]||0),h=(E*60+C)*6e4,e[9]==="-"&&(h=-h)),S=new Date(Date.UTC(r,s,a,n,c,f,p)),h&&S.setTime(S.getTime()-h),S}function b5e(t){return t.toISOString()}Xee.exports=new S5e("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:D5e,construct:P5e,instanceOf:Date,represent:b5e})});var tte=_((cQt,ete)=>{"use strict";var x5e=Ss();function k5e(t){return t==="<<"||t===null}ete.exports=new x5e("tag:yaml.org,2002:merge",{kind:"scalar",resolve:k5e})});var ite=_((uQt,nte)=>{"use strict";var xd;try{rte=Ie,xd=rte("buffer").Buffer}catch{}var rte,Q5e=Ss(),KU=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= \r`;function R5e(t){if(t===null)return!1;var e,r,s=0,a=t.length,n=KU;for(r=0;r64)){if(e<0)return!1;s+=6}return s%8===0}function T5e(t){var e,r,s=t.replace(/[\r\n=]/g,""),a=s.length,n=KU,c=0,f=[];for(e=0;e>16&255),f.push(c>>8&255),f.push(c&255)),c=c<<6|n.indexOf(s.charAt(e));return r=a%4*6,r===0?(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)):r===18?(f.push(c>>10&255),f.push(c>>2&255)):r===12&&f.push(c>>4&255),xd?xd.from?xd.from(f):new xd(f):f}function F5e(t){var e="",r=0,s,a,n=t.length,c=KU;for(s=0;s>18&63],e+=c[r>>12&63],e+=c[r>>6&63],e+=c[r&63]),r=(r<<8)+t[s];return a=n%3,a===0?(e+=c[r>>18&63],e+=c[r>>12&63],e+=c[r>>6&63],e+=c[r&63]):a===2?(e+=c[r>>10&63],e+=c[r>>4&63],e+=c[r<<2&63],e+=c[64]):a===1&&(e+=c[r>>2&63],e+=c[r<<4&63],e+=c[64],e+=c[64]),e}function N5e(t){return xd&&xd.isBuffer(t)}nte.exports=new Q5e("tag:yaml.org,2002:binary",{kind:"scalar",resolve:R5e,construct:T5e,predicate:N5e,represent:F5e})});var ote=_((AQt,ste)=>{"use strict";var O5e=Ss(),L5e=Object.prototype.hasOwnProperty,M5e=Object.prototype.toString;function U5e(t){if(t===null)return!0;var e=[],r,s,a,n,c,f=t;for(r=0,s=f.length;r{"use strict";var H5e=Ss(),j5e=Object.prototype.toString;function G5e(t){if(t===null)return!0;var e,r,s,a,n,c=t;for(n=new Array(c.length),e=0,r=c.length;e{"use strict";var W5e=Ss(),Y5e=Object.prototype.hasOwnProperty;function V5e(t){if(t===null)return!0;var e,r=t;for(e in r)if(Y5e.call(r,e)&&r[e]!==null)return!1;return!0}function J5e(t){return t!==null?t:{}}cte.exports=new W5e("tag:yaml.org,2002:set",{kind:"mapping",resolve:V5e,construct:J5e})});var gE=_((gQt,fte)=>{"use strict";var K5e=bd();fte.exports=new K5e({include:[JU()],implicit:[$ee(),tte()],explicit:[ite(),ote(),lte(),ute()]})});var pte=_((dQt,Ate)=>{"use strict";var z5e=Ss();function Z5e(){return!0}function X5e(){}function $5e(){return""}function e9e(t){return typeof t>"u"}Ate.exports=new z5e("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Z5e,construct:X5e,predicate:e9e,represent:$5e})});var gte=_((mQt,hte)=>{"use strict";var t9e=Ss();function r9e(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),s="";return!(e[0]==="/"&&(r&&(s=r[1]),s.length>3||e[e.length-s.length-1]!=="/"))}function n9e(t){var e=t,r=/\/([gim]*)$/.exec(t),s="";return e[0]==="/"&&(r&&(s=r[1]),e=e.slice(1,e.length-s.length-1)),new RegExp(e,s)}function i9e(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function s9e(t){return Object.prototype.toString.call(t)==="[object RegExp]"}hte.exports=new t9e("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r9e,construct:n9e,predicate:s9e,represent:i9e})});var yte=_((yQt,mte)=>{"use strict";var mx;try{dte=Ie,mx=dte("esprima")}catch{typeof window<"u"&&(mx=window.esprima)}var dte,o9e=Ss();function a9e(t){if(t===null)return!1;try{var e="("+t+")",r=mx.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function l9e(t){var e="("+t+")",r=mx.parse(e,{range:!0}),s=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){s.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(s,e.slice(a[0]+1,a[1]-1)):new Function(s,"return "+e.slice(a[0],a[1]))}function c9e(t){return t.toString()}function u9e(t){return Object.prototype.toString.call(t)==="[object Function]"}mte.exports=new o9e("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:a9e,construct:l9e,predicate:u9e,represent:c9e})});var G2=_((IQt,Ite)=>{"use strict";var Ete=bd();Ite.exports=Ete.DEFAULT=new Ete({include:[gE()],explicit:[pte(),gte(),yte()]})});var Ute=_((CQt,q2)=>{"use strict";var Ip=Pd(),Pte=pE(),f9e=Pee(),bte=gE(),A9e=G2(),i0=Object.prototype.hasOwnProperty,yx=1,xte=2,kte=3,Ex=4,zU=1,p9e=2,Cte=3,h9e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g9e=/[\x85\u2028\u2029]/,d9e=/[,\[\]\{\}]/,Qte=/^(?:!|!!|![a-z\-]+!)$/i,Rte=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function wte(t){return Object.prototype.toString.call(t)}function jf(t){return t===10||t===13}function Qd(t){return t===9||t===32}function rl(t){return t===9||t===32||t===10||t===13}function dE(t){return t===44||t===91||t===93||t===123||t===125}function m9e(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function y9e(t){return t===120?2:t===117?4:t===85?8:0}function E9e(t){return 48<=t&&t<=57?t-48:-1}function Bte(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function I9e(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var Tte=new Array(256),Fte=new Array(256);for(kd=0;kd<256;kd++)Tte[kd]=Bte(kd)?1:0,Fte[kd]=Bte(kd);var kd;function C9e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||A9e,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Nte(t,e){return new Pte(e,new f9e(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Tr(t,e){throw Nte(t,e)}function Ix(t,e){t.onWarning&&t.onWarning.call(null,Nte(t,e))}var vte={YAML:function(e,r,s){var a,n,c;e.version!==null&&Tr(e,"duplication of %YAML directive"),s.length!==1&&Tr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(s[0]),a===null&&Tr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),c=parseInt(a[2],10),n!==1&&Tr(e,"unacceptable YAML version of the document"),e.version=s[0],e.checkLineBreaks=c<2,c!==1&&c!==2&&Ix(e,"unsupported YAML version of the document")},TAG:function(e,r,s){var a,n;s.length!==2&&Tr(e,"TAG directive accepts exactly two arguments"),a=s[0],n=s[1],Qte.test(a)||Tr(e,"ill-formed tag handle (first argument) of the TAG directive"),i0.call(e.tagMap,a)&&Tr(e,'there is a previously declared suffix for "'+a+'" tag handle'),Rte.test(n)||Tr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function n0(t,e,r,s){var a,n,c,f;if(e1&&(t.result+=Ip.repeat(` `,e-1))}function w9e(t,e,r){var s,a,n,c,f,p,h,E,C=t.kind,S=t.result,b;if(b=t.input.charCodeAt(t.position),rl(b)||dE(b)||b===35||b===38||b===42||b===33||b===124||b===62||b===39||b===34||b===37||b===64||b===96||(b===63||b===45)&&(a=t.input.charCodeAt(t.position+1),rl(a)||r&&dE(a)))return!1;for(t.kind="scalar",t.result="",n=c=t.position,f=!1;b!==0;){if(b===58){if(a=t.input.charCodeAt(t.position+1),rl(a)||r&&dE(a))break}else if(b===35){if(s=t.input.charCodeAt(t.position-1),rl(s))break}else{if(t.position===t.lineStart&&Cx(t)||r&&dE(b))break;if(jf(b))if(p=t.line,h=t.lineStart,E=t.lineIndent,os(t,!1,-1),t.lineIndent>=e){f=!0,b=t.input.charCodeAt(t.position);continue}else{t.position=c,t.line=p,t.lineStart=h,t.lineIndent=E;break}}f&&(n0(t,n,c,!1),XU(t,t.line-p),n=c=t.position,f=!1),Qd(b)||(c=t.position+1),b=t.input.charCodeAt(++t.position)}return n0(t,n,c,!1),t.result?!0:(t.kind=C,t.result=S,!1)}function B9e(t,e){var r,s,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,s=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(n0(t,s,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)s=t.position,t.position++,a=t.position;else return!0;else jf(r)?(n0(t,s,a,!0),XU(t,os(t,!1,e)),s=a=t.position):t.position===t.lineStart&&Cx(t)?Tr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Tr(t,"unexpected end of the stream within a single quoted scalar")}function v9e(t,e){var r,s,a,n,c,f;if(f=t.input.charCodeAt(t.position),f!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=s=t.position;(f=t.input.charCodeAt(t.position))!==0;){if(f===34)return n0(t,r,t.position,!0),t.position++,!0;if(f===92){if(n0(t,r,t.position,!0),f=t.input.charCodeAt(++t.position),jf(f))os(t,!1,e);else if(f<256&&Tte[f])t.result+=Fte[f],t.position++;else if((c=y9e(f))>0){for(a=c,n=0;a>0;a--)f=t.input.charCodeAt(++t.position),(c=m9e(f))>=0?n=(n<<4)+c:Tr(t,"expected hexadecimal character");t.result+=I9e(n),t.position++}else Tr(t,"unknown escape sequence");r=s=t.position}else jf(f)?(n0(t,r,s,!0),XU(t,os(t,!1,e)),r=s=t.position):t.position===t.lineStart&&Cx(t)?Tr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,s=t.position)}Tr(t,"unexpected end of the stream within a double quoted scalar")}function S9e(t,e){var r=!0,s,a=t.tag,n,c=t.anchor,f,p,h,E,C,S={},b,I,T,N;if(N=t.input.charCodeAt(t.position),N===91)p=93,C=!1,n=[];else if(N===123)p=125,C=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),N=t.input.charCodeAt(++t.position);N!==0;){if(os(t,!0,e),N=t.input.charCodeAt(t.position),N===p)return t.position++,t.tag=a,t.anchor=c,t.kind=C?"mapping":"sequence",t.result=n,!0;r||Tr(t,"missed comma between flow collection entries"),I=b=T=null,h=E=!1,N===63&&(f=t.input.charCodeAt(t.position+1),rl(f)&&(h=E=!0,t.position++,os(t,!0,e))),s=t.line,yE(t,e,yx,!1,!0),I=t.tag,b=t.result,os(t,!0,e),N=t.input.charCodeAt(t.position),(E||t.line===s)&&N===58&&(h=!0,N=t.input.charCodeAt(++t.position),os(t,!0,e),yE(t,e,yx,!1,!0),T=t.result),C?mE(t,n,S,I,b,T):h?n.push(mE(t,null,S,I,b,T)):n.push(b),os(t,!0,e),N=t.input.charCodeAt(t.position),N===44?(r=!0,N=t.input.charCodeAt(++t.position)):r=!1}Tr(t,"unexpected end of the stream within a flow collection")}function D9e(t,e){var r,s,a=zU,n=!1,c=!1,f=e,p=0,h=!1,E,C;if(C=t.input.charCodeAt(t.position),C===124)s=!1;else if(C===62)s=!0;else return!1;for(t.kind="scalar",t.result="";C!==0;)if(C=t.input.charCodeAt(++t.position),C===43||C===45)zU===a?a=C===43?Cte:p9e:Tr(t,"repeat of a chomping mode identifier");else if((E=E9e(C))>=0)E===0?Tr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?Tr(t,"repeat of an indentation width identifier"):(f=e+E-1,c=!0);else break;if(Qd(C)){do C=t.input.charCodeAt(++t.position);while(Qd(C));if(C===35)do C=t.input.charCodeAt(++t.position);while(!jf(C)&&C!==0)}for(;C!==0;){for(ZU(t),t.lineIndent=0,C=t.input.charCodeAt(t.position);(!c||t.lineIndentf&&(f=t.lineIndent),jf(C)){p++;continue}if(t.lineIndente)&&p!==0)Tr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(yE(t,e,Ex,!0,a)&&(I?S=t.result:b=t.result),I||(mE(t,h,E,C,S,b,n,c),C=S=b=null),os(t,!0,-1),N=t.input.charCodeAt(t.position)),t.lineIndent>e&&N!==0)Tr(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),C=0,S=t.implicitTypes.length;C tag; it should be "'+b.kind+'", not "'+t.kind+'"'),b.resolve(t.result)?(t.result=b.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Tr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Tr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function Q9e(t){var e=t.position,r,s,a,n=!1,c;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(c=t.input.charCodeAt(t.position))!==0&&(os(t,!0,-1),c=t.input.charCodeAt(t.position),!(t.lineIndent>0||c!==37));){for(n=!0,c=t.input.charCodeAt(++t.position),r=t.position;c!==0&&!rl(c);)c=t.input.charCodeAt(++t.position);for(s=t.input.slice(r,t.position),a=[],s.length<1&&Tr(t,"directive name must not be less than one character in length");c!==0;){for(;Qd(c);)c=t.input.charCodeAt(++t.position);if(c===35){do c=t.input.charCodeAt(++t.position);while(c!==0&&!jf(c));break}if(jf(c))break;for(r=t.position;c!==0&&!rl(c);)c=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}c!==0&&ZU(t),i0.call(vte,s)?vte[s](t,s,a):Ix(t,'unknown document directive "'+s+'"')}if(os(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,os(t,!0,-1)):n&&Tr(t,"directives end mark is expected"),yE(t,t.lineIndent-1,Ex,!1,!0),os(t,!0,-1),t.checkLineBreaks&&g9e.test(t.input.slice(e,t.position))&&Ix(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Cx(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,os(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var s=Ote(t,r);if(typeof e!="function")return s;for(var a=0,n=s.length;a"u"&&(r=e,e=null),Lte(t,e,Ip.extend({schema:bte},r))}function T9e(t,e){return Mte(t,Ip.extend({schema:bte},e))}q2.exports.loadAll=Lte;q2.exports.load=Mte;q2.exports.safeLoadAll=R9e;q2.exports.safeLoad=T9e});var lre=_((wQt,r_)=>{"use strict";var Y2=Pd(),V2=pE(),F9e=G2(),N9e=gE(),Vte=Object.prototype.toString,Jte=Object.prototype.hasOwnProperty,O9e=9,W2=10,L9e=13,M9e=32,U9e=33,_9e=34,Kte=35,H9e=37,j9e=38,G9e=39,q9e=42,zte=44,W9e=45,Zte=58,Y9e=61,V9e=62,J9e=63,K9e=64,Xte=91,$te=93,z9e=96,ere=123,Z9e=124,tre=125,_o={};_o[0]="\\0";_o[7]="\\a";_o[8]="\\b";_o[9]="\\t";_o[10]="\\n";_o[11]="\\v";_o[12]="\\f";_o[13]="\\r";_o[27]="\\e";_o[34]='\\"';_o[92]="\\\\";_o[133]="\\N";_o[160]="\\_";_o[8232]="\\L";_o[8233]="\\P";var X9e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function $9e(t,e){var r,s,a,n,c,f,p;if(e===null)return{};for(r={},s=Object.keys(e),a=0,n=s.length;a0?t.charCodeAt(n-1):null,S=S&&jte(c,f)}else{for(n=0;ns&&t[C+1]!==" ",C=n);else if(!EE(c))return wx;f=n>0?t.charCodeAt(n-1):null,S=S&&jte(c,f)}h=h||E&&n-C-1>s&&t[C+1]!==" "}return!p&&!h?S&&!a(t)?nre:ire:r>9&&rre(t)?wx:h?ore:sre}function sWe(t,e,r,s){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&X9e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),c=s||t.flowLevel>-1&&r>=t.flowLevel;function f(p){return tWe(t,p)}switch(iWe(e,c,t.indent,n,f)){case nre:return e;case ire:return"'"+e.replace(/'/g,"''")+"'";case sre:return"|"+Gte(e,t.indent)+qte(Hte(e,a));case ore:return">"+Gte(e,t.indent)+qte(Hte(oWe(e,n),a));case wx:return'"'+aWe(e,n)+'"';default:throw new V2("impossible error: invalid scalar style")}}()}function Gte(t,e){var r=rre(t)?String(e):"",s=t[t.length-1]===` `,a=s&&(t[t.length-2]===` `||t===` `),n=a?"+":s?"":"-";return r+n+` `}function qte(t){return t[t.length-1]===` `?t.slice(0,-1):t}function oWe(t,e){for(var r=/(\n+)([^\n]*)/g,s=function(){var h=t.indexOf(` `);return h=h!==-1?h:t.length,r.lastIndex=h,Wte(t.slice(0,h),e)}(),a=t[0]===` `||t[0]===" ",n,c;c=r.exec(t);){var f=c[1],p=c[2];n=p[0]===" ",s+=f+(!a&&!n&&p!==""?` `:"")+Wte(p,e),a=n}return s}function Wte(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,s,a=0,n,c=0,f=0,p="";s=r.exec(t);)f=s.index,f-a>e&&(n=c>a?c:f,p+=` `+t.slice(a,n),a=n+1),c=f;return p+=` `,t.length-a>e&&c>a?p+=t.slice(a,c)+` `+t.slice(c+1):p+=t.slice(a),p.slice(1)}function aWe(t){for(var e="",r,s,a,n=0;n=55296&&r<=56319&&(s=t.charCodeAt(n+1),s>=56320&&s<=57343)){e+=_te((r-55296)*1024+s-56320+65536),n++;continue}a=_o[r],e+=!a&&EE(r)?t[n]:a||_te(r)}return e}function lWe(t,e,r){var s="",a=t.tag,n,c;for(n=0,c=r.length;n1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Rd(t,e,h,!1,!1)&&(E+=t.dump,s+=E));t.tag=a,t.dump="{"+s+"}"}function fWe(t,e,r,s){var a="",n=t.tag,c=Object.keys(r),f,p,h,E,C,S;if(t.sortKeys===!0)c.sort();else if(typeof t.sortKeys=="function")c.sort(t.sortKeys);else if(t.sortKeys)throw new V2("sortKeys must be a boolean or a function");for(f=0,p=c.length;f1024,C&&(t.dump&&W2===t.dump.charCodeAt(0)?S+="?":S+="? "),S+=t.dump,C&&(S+=$U(t,e)),Rd(t,e+1,E,!0,C)&&(t.dump&&W2===t.dump.charCodeAt(0)?S+=":":S+=": ",S+=t.dump,a+=S));t.tag=n,t.dump=a||"{}"}function Yte(t,e,r){var s,a,n,c,f,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,c=a.length;n tag resolver accepts not "'+p+'" style');t.dump=s}return!0}return!1}function Rd(t,e,r,s,a,n){t.tag=null,t.dump=r,Yte(t,r,!1)||Yte(t,r,!0);var c=Vte.call(t.dump);s&&(s=t.flowLevel<0||t.flowLevel>e);var f=c==="[object Object]"||c==="[object Array]",p,h;if(f&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(f&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),c==="[object Object]")s&&Object.keys(t.dump).length!==0?(fWe(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(uWe(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(c==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;s&&t.dump.length!==0?(cWe(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(lWe(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(c==="[object String]")t.tag!=="?"&&sWe(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new V2("unacceptable kind of an object to dump "+c)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function AWe(t,e){var r=[],s=[],a,n;for(e_(t,r,s),a=0,n=s.length;a{"use strict";var Bx=Ute(),cre=lre();function vx(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}qi.exports.Type=Ss();qi.exports.Schema=bd();qi.exports.FAILSAFE_SCHEMA=dx();qi.exports.JSON_SCHEMA=VU();qi.exports.CORE_SCHEMA=JU();qi.exports.DEFAULT_SAFE_SCHEMA=gE();qi.exports.DEFAULT_FULL_SCHEMA=G2();qi.exports.load=Bx.load;qi.exports.loadAll=Bx.loadAll;qi.exports.safeLoad=Bx.safeLoad;qi.exports.safeLoadAll=Bx.safeLoadAll;qi.exports.dump=cre.dump;qi.exports.safeDump=cre.safeDump;qi.exports.YAMLException=pE();qi.exports.MINIMAL_SCHEMA=dx();qi.exports.SAFE_SCHEMA=gE();qi.exports.DEFAULT_SCHEMA=G2();qi.exports.scan=vx("scan");qi.exports.parse=vx("parse");qi.exports.compose=vx("compose");qi.exports.addConstructor=vx("addConstructor")});var Are=_((vQt,fre)=>{"use strict";var hWe=ure();fre.exports=hWe});var hre=_((SQt,pre)=>{"use strict";function gWe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Td(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Td)}gWe(Td,Error);Td.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C0){for(C=1,S=1;C({[dt]:Oe})))},ue=function(te){return te},le=function(te){return te},me=Oa("correct indentation"),pe=" ",Be=dn(" ",!1),Ce=function(te){return te.length===lr*St},g=function(te){return te.length===(lr+1)*St},we=function(){return lr++,!0},ye=function(){return lr--,!0},Ae=function(){return la()},se=Oa("pseudostring"),X=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,De=Kn(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Te=/^[^\r\n\t ,\][{}:#"']/,mt=Kn(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),j=function(){return la().replace(/^ *| *$/g,"")},rt="--",Fe=dn("--",!1),Ne=/^[a-zA-Z\/0-9]/,be=Kn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ve=/^[^\r\n\t :,]/,ke=Kn(["\r",` `," "," ",":",","],!0,!1),it="null",Ue=dn("null",!1),x=function(){return null},w="true",P=dn("true",!1),y=function(){return!0},F="false",z=dn("false",!1),Z=function(){return!1},$=Oa("string"),oe='"',xe=dn('"',!1),Re=function(){return""},lt=function(te){return te},Ct=function(te){return te.join("")},qt=/^[^"\\\0-\x1F\x7F]/,ir=Kn(['"',"\\",["\0",""],"\x7F"],!0,!1),bt='\\"',gn=dn('\\"',!1),br=function(){return'"'},Ir="\\\\",Or=dn("\\\\",!1),nn=function(){return"\\"},ai="\\/",Io=dn("\\/",!1),ts=function(){return"/"},$s="\\b",Co=dn("\\b",!1),Hi=function(){return"\b"},eo="\\f",wo=dn("\\f",!1),QA=function(){return"\f"},Af="\\n",dh=dn("\\n",!1),mh=function(){return` `},to="\\r",jn=dn("\\r",!1),Rs=function(){return"\r"},ro="\\t",ou=dn("\\t",!1),au=function(){return" "},lu="\\u",RA=dn("\\u",!1),TA=function(te,Ee,Oe,dt){return String.fromCharCode(parseInt(`0x${te}${Ee}${Oe}${dt}`))},oa=/^[0-9a-fA-F]/,aa=Kn([["0","9"],["a","f"],["A","F"]],!1,!1),FA=Oa("blank space"),gr=/^[ \t]/,Bo=Kn([" "," "],!1,!1),Me=Oa("white space"),cu=/^[ \t\n\r]/,Cr=Kn([" "," ",` `,"\r"],!1,!1),pf=`\r `,NA=dn(`\r `,!1),OA=` `,uu=dn(` `,!1),fu="\r",oc=dn("\r",!1),ve=0,Nt=0,ac=[{line:1,column:1}],Oi=0,no=[],Tt=0,xn;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function la(){return t.substring(Nt,ve)}function ji(){return Ma(Nt,ve)}function Li(te,Ee){throw Ee=Ee!==void 0?Ee:Ma(Nt,ve),hf([Oa(te)],t.substring(Nt,ve),Ee)}function Na(te,Ee){throw Ee=Ee!==void 0?Ee:Ma(Nt,ve),Ua(te,Ee)}function dn(te,Ee){return{type:"literal",text:te,ignoreCase:Ee}}function Kn(te,Ee,Oe){return{type:"class",parts:te,inverted:Ee,ignoreCase:Oe}}function Au(){return{type:"any"}}function yh(){return{type:"end"}}function Oa(te){return{type:"other",description:te}}function La(te){var Ee=ac[te],Oe;if(Ee)return Ee;for(Oe=te-1;!ac[Oe];)Oe--;for(Ee=ac[Oe],Ee={line:Ee.line,column:Ee.column};OeOi&&(Oi=ve,no=[]),no.push(te))}function Ua(te,Ee){return new Td(te,null,null,Ee)}function hf(te,Ee,Oe){return new Td(Td.buildMessage(te,Ee),te,Ee,Oe)}function lc(){var te;return te=LA(),te}function wn(){var te,Ee,Oe;for(te=ve,Ee=[],Oe=ca();Oe!==r;)Ee.push(Oe),Oe=ca();return Ee!==r&&(Nt=te,Ee=n(Ee)),te=Ee,te}function ca(){var te,Ee,Oe,dt,Et;return te=ve,Ee=Bl(),Ee!==r?(t.charCodeAt(ve)===45?(Oe=c,ve++):(Oe=r,Tt===0&&$e(f)),Oe!==r?(dt=Qn(),dt!==r?(Et=ua(),Et!==r?(Nt=te,Ee=p(Et),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te}function LA(){var te,Ee,Oe;for(te=ve,Ee=[],Oe=MA();Oe!==r;)Ee.push(Oe),Oe=MA();return Ee!==r&&(Nt=te,Ee=h(Ee)),te=Ee,te}function MA(){var te,Ee,Oe,dt,Et,Pt,tr,An,li;if(te=ve,Ee=Qn(),Ee===r&&(Ee=null),Ee!==r){if(Oe=ve,t.charCodeAt(ve)===35?(dt=E,ve++):(dt=r,Tt===0&&$e(C)),dt!==r){if(Et=[],Pt=ve,tr=ve,Tt++,An=st(),Tt--,An===r?tr=void 0:(ve=tr,tr=r),tr!==r?(t.length>ve?(An=t.charAt(ve),ve++):(An=r,Tt===0&&$e(S)),An!==r?(tr=[tr,An],Pt=tr):(ve=Pt,Pt=r)):(ve=Pt,Pt=r),Pt!==r)for(;Pt!==r;)Et.push(Pt),Pt=ve,tr=ve,Tt++,An=st(),Tt--,An===r?tr=void 0:(ve=tr,tr=r),tr!==r?(t.length>ve?(An=t.charAt(ve),ve++):(An=r,Tt===0&&$e(S)),An!==r?(tr=[tr,An],Pt=tr):(ve=Pt,Pt=r)):(ve=Pt,Pt=r);else Et=r;Et!==r?(dt=[dt,Et],Oe=dt):(ve=Oe,Oe=r)}else ve=Oe,Oe=r;if(Oe===r&&(Oe=null),Oe!==r){if(dt=[],Et=Ke(),Et!==r)for(;Et!==r;)dt.push(Et),Et=Ke();else dt=r;dt!==r?(Nt=te,Ee=b(),te=Ee):(ve=te,te=r)}else ve=te,te=r}else ve=te,te=r;if(te===r&&(te=ve,Ee=Bl(),Ee!==r?(Oe=Ha(),Oe!==r?(dt=Qn(),dt===r&&(dt=null),dt!==r?(t.charCodeAt(ve)===58?(Et=I,ve++):(Et=r,Tt===0&&$e(T)),Et!==r?(Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(tr=ua(),tr!==r?(Nt=te,Ee=N(Oe,tr),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r&&(te=ve,Ee=Bl(),Ee!==r?(Oe=rs(),Oe!==r?(dt=Qn(),dt===r&&(dt=null),dt!==r?(t.charCodeAt(ve)===58?(Et=I,ve++):(Et=r,Tt===0&&$e(T)),Et!==r?(Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(tr=ua(),tr!==r?(Nt=te,Ee=N(Oe,tr),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r))){if(te=ve,Ee=Bl(),Ee!==r)if(Oe=rs(),Oe!==r)if(dt=Qn(),dt!==r)if(Et=pu(),Et!==r){if(Pt=[],tr=Ke(),tr!==r)for(;tr!==r;)Pt.push(tr),tr=Ke();else Pt=r;Pt!==r?(Nt=te,Ee=N(Oe,Et),te=Ee):(ve=te,te=r)}else ve=te,te=r;else ve=te,te=r;else ve=te,te=r;else ve=te,te=r;if(te===r)if(te=ve,Ee=Bl(),Ee!==r)if(Oe=rs(),Oe!==r){if(dt=[],Et=ve,Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(t.charCodeAt(ve)===44?(tr=U,ve++):(tr=r,Tt===0&&$e(W)),tr!==r?(An=Qn(),An===r&&(An=null),An!==r?(li=rs(),li!==r?(Nt=Et,Pt=ee(Oe,li),Et=Pt):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r),Et!==r)for(;Et!==r;)dt.push(Et),Et=ve,Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(t.charCodeAt(ve)===44?(tr=U,ve++):(tr=r,Tt===0&&$e(W)),tr!==r?(An=Qn(),An===r&&(An=null),An!==r?(li=rs(),li!==r?(Nt=Et,Pt=ee(Oe,li),Et=Pt):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r);else dt=r;dt!==r?(Et=Qn(),Et===r&&(Et=null),Et!==r?(t.charCodeAt(ve)===58?(Pt=I,ve++):(Pt=r,Tt===0&&$e(T)),Pt!==r?(tr=Qn(),tr===r&&(tr=null),tr!==r?(An=ua(),An!==r?(Nt=te,Ee=ie(Oe,dt,An),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)}else ve=te,te=r;else ve=te,te=r}return te}function ua(){var te,Ee,Oe,dt,Et,Pt,tr;if(te=ve,Ee=ve,Tt++,Oe=ve,dt=st(),dt!==r?(Et=Mt(),Et!==r?(t.charCodeAt(ve)===45?(Pt=c,ve++):(Pt=r,Tt===0&&$e(f)),Pt!==r?(tr=Qn(),tr!==r?(dt=[dt,Et,Pt,tr],Oe=dt):(ve=Oe,Oe=r)):(ve=Oe,Oe=r)):(ve=Oe,Oe=r)):(ve=Oe,Oe=r),Tt--,Oe!==r?(ve=Ee,Ee=void 0):Ee=r,Ee!==r?(Oe=Ke(),Oe!==r?(dt=kn(),dt!==r?(Et=wn(),Et!==r?(Pt=fa(),Pt!==r?(Nt=te,Ee=ue(Et),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r&&(te=ve,Ee=st(),Ee!==r?(Oe=kn(),Oe!==r?(dt=LA(),dt!==r?(Et=fa(),Et!==r?(Nt=te,Ee=ue(dt),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r))if(te=ve,Ee=cc(),Ee!==r){if(Oe=[],dt=Ke(),dt!==r)for(;dt!==r;)Oe.push(dt),dt=Ke();else Oe=r;Oe!==r?(Nt=te,Ee=le(Ee),te=Ee):(ve=te,te=r)}else ve=te,te=r;return te}function Bl(){var te,Ee,Oe;for(Tt++,te=ve,Ee=[],t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));Oe!==r;)Ee.push(Oe),t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));return Ee!==r?(Nt=ve,Oe=Ce(Ee),Oe?Oe=void 0:Oe=r,Oe!==r?(Ee=[Ee,Oe],te=Ee):(ve=te,te=r)):(ve=te,te=r),Tt--,te===r&&(Ee=r,Tt===0&&$e(me)),te}function Mt(){var te,Ee,Oe;for(te=ve,Ee=[],t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));Oe!==r;)Ee.push(Oe),t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));return Ee!==r?(Nt=ve,Oe=g(Ee),Oe?Oe=void 0:Oe=r,Oe!==r?(Ee=[Ee,Oe],te=Ee):(ve=te,te=r)):(ve=te,te=r),te}function kn(){var te;return Nt=ve,te=we(),te?te=void 0:te=r,te}function fa(){var te;return Nt=ve,te=ye(),te?te=void 0:te=r,te}function Ha(){var te;return te=vl(),te===r&&(te=uc()),te}function rs(){var te,Ee,Oe;if(te=vl(),te===r){if(te=ve,Ee=[],Oe=ja(),Oe!==r)for(;Oe!==r;)Ee.push(Oe),Oe=ja();else Ee=r;Ee!==r&&(Nt=te,Ee=Ae()),te=Ee}return te}function cc(){var te;return te=Mi(),te===r&&(te=Is(),te===r&&(te=vl(),te===r&&(te=uc()))),te}function pu(){var te;return te=Mi(),te===r&&(te=vl(),te===r&&(te=ja())),te}function uc(){var te,Ee,Oe,dt,Et,Pt;if(Tt++,te=ve,X.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(De)),Ee!==r){for(Oe=[],dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Te.test(t.charAt(ve))?(Pt=t.charAt(ve),ve++):(Pt=r,Tt===0&&$e(mt)),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);dt!==r;)Oe.push(dt),dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Te.test(t.charAt(ve))?(Pt=t.charAt(ve),ve++):(Pt=r,Tt===0&&$e(mt)),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);Oe!==r?(Nt=te,Ee=j(),te=Ee):(ve=te,te=r)}else ve=te,te=r;return Tt--,te===r&&(Ee=r,Tt===0&&$e(se)),te}function ja(){var te,Ee,Oe,dt,Et;if(te=ve,t.substr(ve,2)===rt?(Ee=rt,ve+=2):(Ee=r,Tt===0&&$e(Fe)),Ee===r&&(Ee=null),Ee!==r)if(Ne.test(t.charAt(ve))?(Oe=t.charAt(ve),ve++):(Oe=r,Tt===0&&$e(be)),Oe!==r){for(dt=[],Ve.test(t.charAt(ve))?(Et=t.charAt(ve),ve++):(Et=r,Tt===0&&$e(ke));Et!==r;)dt.push(Et),Ve.test(t.charAt(ve))?(Et=t.charAt(ve),ve++):(Et=r,Tt===0&&$e(ke));dt!==r?(Nt=te,Ee=j(),te=Ee):(ve=te,te=r)}else ve=te,te=r;else ve=te,te=r;return te}function Mi(){var te,Ee;return te=ve,t.substr(ve,4)===it?(Ee=it,ve+=4):(Ee=r,Tt===0&&$e(Ue)),Ee!==r&&(Nt=te,Ee=x()),te=Ee,te}function Is(){var te,Ee;return te=ve,t.substr(ve,4)===w?(Ee=w,ve+=4):(Ee=r,Tt===0&&$e(P)),Ee!==r&&(Nt=te,Ee=y()),te=Ee,te===r&&(te=ve,t.substr(ve,5)===F?(Ee=F,ve+=5):(Ee=r,Tt===0&&$e(z)),Ee!==r&&(Nt=te,Ee=Z()),te=Ee),te}function vl(){var te,Ee,Oe,dt;return Tt++,te=ve,t.charCodeAt(ve)===34?(Ee=oe,ve++):(Ee=r,Tt===0&&$e(xe)),Ee!==r?(t.charCodeAt(ve)===34?(Oe=oe,ve++):(Oe=r,Tt===0&&$e(xe)),Oe!==r?(Nt=te,Ee=Re(),te=Ee):(ve=te,te=r)):(ve=te,te=r),te===r&&(te=ve,t.charCodeAt(ve)===34?(Ee=oe,ve++):(Ee=r,Tt===0&&$e(xe)),Ee!==r?(Oe=gf(),Oe!==r?(t.charCodeAt(ve)===34?(dt=oe,ve++):(dt=r,Tt===0&&$e(xe)),dt!==r?(Nt=te,Ee=lt(Oe),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)),Tt--,te===r&&(Ee=r,Tt===0&&$e($)),te}function gf(){var te,Ee,Oe;if(te=ve,Ee=[],Oe=fc(),Oe!==r)for(;Oe!==r;)Ee.push(Oe),Oe=fc();else Ee=r;return Ee!==r&&(Nt=te,Ee=Ct(Ee)),te=Ee,te}function fc(){var te,Ee,Oe,dt,Et,Pt;return qt.test(t.charAt(ve))?(te=t.charAt(ve),ve++):(te=r,Tt===0&&$e(ir)),te===r&&(te=ve,t.substr(ve,2)===bt?(Ee=bt,ve+=2):(Ee=r,Tt===0&&$e(gn)),Ee!==r&&(Nt=te,Ee=br()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===Ir?(Ee=Ir,ve+=2):(Ee=r,Tt===0&&$e(Or)),Ee!==r&&(Nt=te,Ee=nn()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===ai?(Ee=ai,ve+=2):(Ee=r,Tt===0&&$e(Io)),Ee!==r&&(Nt=te,Ee=ts()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===$s?(Ee=$s,ve+=2):(Ee=r,Tt===0&&$e(Co)),Ee!==r&&(Nt=te,Ee=Hi()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===eo?(Ee=eo,ve+=2):(Ee=r,Tt===0&&$e(wo)),Ee!==r&&(Nt=te,Ee=QA()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===Af?(Ee=Af,ve+=2):(Ee=r,Tt===0&&$e(dh)),Ee!==r&&(Nt=te,Ee=mh()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===to?(Ee=to,ve+=2):(Ee=r,Tt===0&&$e(jn)),Ee!==r&&(Nt=te,Ee=Rs()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===ro?(Ee=ro,ve+=2):(Ee=r,Tt===0&&$e(ou)),Ee!==r&&(Nt=te,Ee=au()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===lu?(Ee=lu,ve+=2):(Ee=r,Tt===0&&$e(RA)),Ee!==r?(Oe=wi(),Oe!==r?(dt=wi(),dt!==r?(Et=wi(),Et!==r?(Pt=wi(),Pt!==r?(Nt=te,Ee=TA(Oe,dt,Et,Pt),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)))))))))),te}function wi(){var te;return oa.test(t.charAt(ve))?(te=t.charAt(ve),ve++):(te=r,Tt===0&&$e(aa)),te}function Qn(){var te,Ee;if(Tt++,te=[],gr.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Bo)),Ee!==r)for(;Ee!==r;)te.push(Ee),gr.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Bo));else te=r;return Tt--,te===r&&(Ee=r,Tt===0&&$e(FA)),te}function Ac(){var te,Ee;if(Tt++,te=[],cu.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Cr)),Ee!==r)for(;Ee!==r;)te.push(Ee),cu.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Cr));else te=r;return Tt--,te===r&&(Ee=r,Tt===0&&$e(Me)),te}function Ke(){var te,Ee,Oe,dt,Et,Pt;if(te=ve,Ee=st(),Ee!==r){for(Oe=[],dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Pt=st(),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);dt!==r;)Oe.push(dt),dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Pt=st(),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);Oe!==r?(Ee=[Ee,Oe],te=Ee):(ve=te,te=r)}else ve=te,te=r;return te}function st(){var te;return t.substr(ve,2)===pf?(te=pf,ve+=2):(te=r,Tt===0&&$e(NA)),te===r&&(t.charCodeAt(ve)===10?(te=OA,ve++):(te=r,Tt===0&&$e(uu)),te===r&&(t.charCodeAt(ve)===13?(te=fu,ve++):(te=r,Tt===0&&$e(oc)))),te}let St=2,lr=0;if(xn=a(),xn!==r&&ve===t.length)return xn;throw xn!==r&&ve"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>yre(t[e])):!1}function n_(t,e,r){if(t===null)return`null `;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} `;if(typeof t=="string")return`${dre(t)} `;if(Array.isArray(t)){if(t.length===0)return`[] `;let s=" ".repeat(e);return` ${t.map(n=>`${s}- ${n_(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[s,a]=t instanceof Sx?[t.data,!1]:[t,!0],n=" ".repeat(e),c=Object.keys(s);a&&c.sort((p,h)=>{let E=gre.indexOf(p),C=gre.indexOf(h);return E===-1&&C===-1?ph?1:0:E!==-1&&C===-1?-1:E===-1&&C!==-1?1:E-C});let f=c.filter(p=>!yre(s[p])).map((p,h)=>{let E=s[p],C=dre(p),S=n_(E,e+1,!0),b=h>0||r?n:"",I=C.length>1024?`? ${C} ${b}:`:`${C}:`,T=S.startsWith(` `)?S:` ${S}`;return`${b}${I}${T}`}).join(e===0?` `:"")||` `;return r?` ${f}`:`${f}`}throw new Error(`Unsupported value type (${t})`)}function nl(t){try{let e=n_(t,0,!1);return e!==` `?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function yWe(t){return t.endsWith(` `)||(t+=` `),(0,mre.parse)(t)}function IWe(t){if(EWe.test(t))return yWe(t);let e=(0,Dx.safeLoad)(t,{schema:Dx.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function as(t){return IWe(t)}var Dx,mre,mWe,gre,Sx,EWe,Ere=Ze(()=>{Dx=ut(Are()),mre=ut(hre()),mWe=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,gre=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],Sx=class{constructor(e){this.data=e}};nl.PreserveOrdering=Sx;EWe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var J2={};Vt(J2,{parseResolution:()=>px,parseShell:()=>ux,parseSyml:()=>as,stringifyArgument:()=>GU,stringifyArgumentSegment:()=>qU,stringifyArithmeticExpression:()=>Ax,stringifyCommand:()=>jU,stringifyCommandChain:()=>AE,stringifyCommandChainThen:()=>HU,stringifyCommandLine:()=>fx,stringifyCommandLineThen:()=>_U,stringifyEnvSegment:()=>cx,stringifyRedirectArgument:()=>H2,stringifyResolution:()=>hx,stringifyShell:()=>fE,stringifyShellLine:()=>fE,stringifySyml:()=>nl,stringifyValueArgument:()=>vd});var wc=Ze(()=>{yee();wee();Ere()});var Cre=_((kQt,i_)=>{"use strict";var CWe=t=>{let e=!1,r=!1,s=!1;for(let a=0;a{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=CWe(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};i_.exports=Ire;i_.exports.default=Ire});var wre=_((QQt,wWe)=>{wWe.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var Fd=_(Ml=>{"use strict";var vre=wre(),Ds=process.env;Object.defineProperty(Ml,"_vendors",{value:vre.map(function(t){return t.constant})});Ml.name=null;Ml.isPR=null;vre.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(s){return Bre(s)});if(Ml[t.constant]=r,!!r)switch(Ml.name=t.name,typeof t.pr){case"string":Ml.isPR=!!Ds[t.pr];break;case"object":"env"in t.pr?Ml.isPR=t.pr.env in Ds&&Ds[t.pr.env]!==t.pr.ne:"any"in t.pr?Ml.isPR=t.pr.any.some(function(s){return!!Ds[s]}):Ml.isPR=Bre(t.pr);break;default:Ml.isPR=null}});Ml.isCI=!!(Ds.CI!=="false"&&(Ds.BUILD_ID||Ds.BUILD_NUMBER||Ds.CI||Ds.CI_APP_ID||Ds.CI_BUILD_ID||Ds.CI_BUILD_NUMBER||Ds.CI_NAME||Ds.CONTINUOUS_INTEGRATION||Ds.RUN_ID||Ml.name));function Bre(t){return typeof t=="string"?!!Ds[t]:"env"in t?Ds[t.env]&&Ds[t.env].includes(t.includes):"any"in t?t.any.some(function(e){return!!Ds[e]}):Object.keys(t).every(function(e){return Ds[e]===t[e]})}});var ei,En,Nd,s_,Px,Sre,o_,a_,bx=Ze(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(ei||(ei={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(En||(En={}));Nd=-1,s_=/^(-h|--help)(?:=([0-9]+))?$/,Px=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,Sre=/^-[a-zA-Z]{2,}$/,o_=/^([^=]+)=([\s\S]*)$/,a_=process.env.DEBUG_CLI==="1"});var nt,IE,xx,l_,kx=Ze(()=>{bx();nt=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},IE=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(s=>s.reason!==null&&s.reason===r[0].reason)){let[{reason:s}]=this.candidates;this.message=`${s} ${this.candidates.map(({usage:a})=>`$ ${a}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:s}]=this.candidates;this.message=`Command not found; did you mean: $ ${s} ${l_(e)}`}else this.message=`Command not found; did you mean one of: ${this.candidates.map(({usage:s},a)=>`${`${a}.`.padStart(4)} ${s}`).join(` `)} ${l_(e)}`}},xx=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: ${this.usages.map((s,a)=>`${`${a}.`.padStart(4)} ${s}`).join(` `)} ${l_(e)}`}},l_=t=>`While running ${t.filter(e=>e!==ei.EndOfInput&&e!==ei.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function BWe(t){let e=t.split(` `),r=e.filter(a=>a.match(/\S/)),s=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(s).trimRight()).join(` `)}function Ho(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` `),t=BWe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),t=t.replace(/\n(\n)?\n*/g,(s,a)=>a||" "),r&&(t=t.split(/\n/).map(s=>{let a=s.match(/^\s*[*-][\t ]+(.*)/);if(!a)return s.match(/(.{1,80})(?: |$)/g).join(` `);let n=s.length-s.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((c,f)=>" ".repeat(n)+(f===0?"- ":" ")+c).join(` `)}).join(` `)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(s,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(s,a,n)=>e.bold(a+n+a)),t?`${t} `:""}var c_,Dre,Pre,u_=Ze(()=>{c_=Array(80).fill("\u2501");for(let t=0;t<=24;++t)c_[c_.length-t]=`\x1B[38;5;${232+t}m\u2501`;Dre={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${c_.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},Pre={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function ya(t){return{...t,[K2]:!0}}function Gf(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function Qx(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,s,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=s!=="."||!e?`${s.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function z2(t,e){return e.length===1?new nt(`${t}${Qx(e[0],{mergeName:!0})}`):new nt(`${t}: ${e.map(r=>` - ${Qx(r)}`).join("")}`)}function Od(t,e,r){if(typeof r>"u")return e;let s=[],a=[],n=f=>{let p=e;return e=f,n.bind(null,p)};if(!r(e,{errors:s,coercions:a,coercion:n}))throw z2(`Invalid value for ${t}`,s);for(let[,f]of a)f();return e}var K2,Cp=Ze(()=>{kx();K2=Symbol("clipanion/isOption")});var Ea={};Vt(Ea,{KeyRelationship:()=>qf,TypeAssertionError:()=>o0,applyCascade:()=>$2,as:()=>jWe,assert:()=>UWe,assertWithErrors:()=>_We,cascade:()=>Nx,fn:()=>GWe,hasAtLeastOneKey:()=>m_,hasExactLength:()=>Rre,hasForbiddenKeys:()=>lYe,hasKeyRelationship:()=>tB,hasMaxLength:()=>WWe,hasMinLength:()=>qWe,hasMutuallyExclusiveKeys:()=>cYe,hasRequiredKeys:()=>aYe,hasUniqueItems:()=>YWe,isArray:()=>Rx,isAtLeast:()=>g_,isAtMost:()=>KWe,isBase64:()=>nYe,isBoolean:()=>QWe,isDate:()=>TWe,isDict:()=>OWe,isEnum:()=>fo,isHexColor:()=>rYe,isISO8601:()=>tYe,isInExclusiveRange:()=>ZWe,isInInclusiveRange:()=>zWe,isInstanceOf:()=>MWe,isInteger:()=>d_,isJSON:()=>iYe,isLiteral:()=>xre,isLowerCase:()=>XWe,isMap:()=>NWe,isNegative:()=>VWe,isNullable:()=>oYe,isNumber:()=>p_,isObject:()=>kre,isOneOf:()=>h_,isOptional:()=>sYe,isPartial:()=>LWe,isPayload:()=>RWe,isPositive:()=>JWe,isRecord:()=>Fx,isSet:()=>FWe,isString:()=>wE,isTuple:()=>Tx,isUUID4:()=>eYe,isUnknown:()=>A_,isUpperCase:()=>$We,makeTrait:()=>Qre,makeValidator:()=>Wr,matchesRegExp:()=>X2,softAssert:()=>HWe});function ti(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function CE(t,e){if(t.length===0)return"nothing";if(t.length===1)return ti(t[0]);let r=t.slice(0,-1),s=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>ti(n)).join(", ")}${a}${ti(s)}`}function s0(t,e){var r,s,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:vWe.test(e)?`${(s=t?.p)!==null&&s!==void 0?s:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function f_(t,e,r){return t===1?e:r}function mr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function xWe(t,e){return r=>{t[e]=r}}function Wf(t,e){return r=>{let s=t[e];return t[e]=r,Wf(t,e).bind(null,s)}}function Z2(t,e,r){let s=()=>(t(r()),a),a=()=>(t(e),s);return s}function A_(){return Wr({test:(t,e)=>!0})}function xre(t){return Wr({test:(e,r)=>e!==t?mr(r,`Expected ${ti(t)} (got ${ti(e)})`):!0})}function wE(){return Wr({test:(t,e)=>typeof t!="string"?mr(e,`Expected a string (got ${ti(t)})`):!0})}function fo(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),s=new Set(e);return s.size===1?xre([...s][0]):Wr({test:(a,n)=>s.has(a)?!0:r?mr(n,`Expected one of ${CE(e,"or")} (got ${ti(a)})`):mr(n,`Expected a valid enumeration value (got ${ti(a)})`)})}function QWe(){return Wr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return mr(e,"Unbound coercion result");let s=kWe.get(t);if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a boolean (got ${ti(t)})`)}return!0}})}function p_(){return Wr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return mr(e,"Unbound coercion result");let s;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)s=a;else return mr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a number (got ${ti(t)})`)}return!0}})}function RWe(t){return Wr({test:(e,r)=>{var s;if(typeof r?.coercions>"u")return mr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return mr(r,"Unbound coercion result");if(typeof e!="string")return mr(r,`Expected a string (got ${ti(e)})`);let a;try{a=JSON.parse(e)}catch{return mr(r,`Expected a JSON string (got ${ti(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Wf(n,"value")}))?(r.coercions.push([(s=r.p)!==null&&s!==void 0?s:".",r.coercion.bind(null,n.value)]),!0):!1}})}function TWe(){return Wr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return mr(e,"Unbound coercion result");let s;if(typeof t=="string"&&bre.test(t))s=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))s=new Date(a*1e3);else return mr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a date (got ${ti(t)})`)}return!0}})}function Rx(t,{delimiter:e}={}){return Wr({test:(r,s)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof s?.coercions<"u"){if(typeof s?.coercion>"u")return mr(s,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return mr(s,`Expected an array (got ${ti(r)})`);let c=!0;for(let f=0,p=r.length;f{var n,c;if(Object.getPrototypeOf(s).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");let f=[...s],p=[...s];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,C)=>E!==f[C])?new Set(p):s;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",Z2(a.coercion,s,h)]),!0}else{let f=!0;for(let p of s)if(f=t(p,Object.assign({},a))&&f,!f&&a?.errors==null)break;return f}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");let f={value:s};return r(s,Object.assign(Object.assign({},a),{coercion:Wf(f,"value")}))?(a.coercions.push([(c=a.p)!==null&&c!==void 0?c:".",Z2(a.coercion,s,()=>new Set(f.value))]),!0):!1}return mr(a,`Expected a set (got ${ti(s)})`)}})}function NWe(t,e){let r=Rx(Tx([t,e])),s=Fx(e,{keys:t});return Wr({test:(a,n)=>{var c,f,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return mr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let C=()=>E.some((S,b)=>S[0]!==h[b][0]||S[1]!==h[b][1])?new Map(E):a;return n.coercions.push([(c=n.p)!==null&&c!==void 0?c:".",Z2(n.coercion,a,C)]),!0}else{let h=!0;for(let[E,C]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(C,Object.assign(Object.assign({},n),{p:s0(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return mr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(f=n.p)!==null&&f!==void 0?f:".",Z2(n.coercion,a,()=>new Map(h.value))]),!0):!1:s(a,Object.assign(Object.assign({},n),{coercion:Wf(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",Z2(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return mr(n,`Expected a map (got ${ti(a)})`)}})}function Tx(t,{delimiter:e}={}){let r=Rre(t.length);return Wr({test:(s,a)=>{var n;if(typeof s=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");s=s.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,s)])}if(!Array.isArray(s))return mr(a,`Expected a tuple (got ${ti(s)})`);let c=r(s,Object.assign({},a));for(let f=0,p=s.length;f{var n;if(Array.isArray(s)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?mr(a,"Unbound coercion result"):r(s,Object.assign(Object.assign({},a),{coercion:void 0}))?(s=Object.fromEntries(s),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,s)]),!0):!1;if(typeof s!="object"||s===null)return mr(a,`Expected an object (got ${ti(s)})`);let c=Object.keys(s),f=!0;for(let p=0,h=c.length;p{if(typeof a!="object"||a===null)return mr(n,`Expected an object (got ${ti(a)})`);let c=new Set([...r,...Object.keys(a)]),f={},p=!0;for(let h of c){if(h==="constructor"||h==="__proto__")p=mr(Object.assign(Object.assign({},n),{p:s0(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,C=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(C,Object.assign(Object.assign({},n),{p:s0(n,h),coercion:Wf(a,h)}))&&p:e===null?p=mr(Object.assign(Object.assign({},n),{p:s0(n,h)}),`Extraneous property (got ${ti(C)})`):Object.defineProperty(f,h,{enumerable:!0,get:()=>C,set:xWe(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(f,n)&&p),p}});return Object.assign(s,{properties:t})}function LWe(t){return kre(t,{extra:Fx(A_())})}function Qre(t){return()=>t}function Wr({test:t}){return Qre(t)()}function UWe(t,e){if(!e(t))throw new o0}function _We(t,e){let r=[];if(!e(t,{errors:r}))throw new o0({errors:r})}function HWe(t,e){}function jWe(t,e,{coerce:r=!1,errors:s,throw:a}={}){let n=s?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new o0({errors:n});return{value:void 0,errors:n??!0}}let c={value:t},f=Wf(c,"value"),p=[];if(!e(t,{errors:n,coercion:f,coercions:p})){if(a)throw new o0({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?c.value:{value:c.value,errors:void 0}}function GWe(t,e){let r=Tx(t);return(...s)=>{if(!r(s))throw new o0;return e(...s)}}function qWe(t){return Wr({test:(e,r)=>e.length>=t?!0:mr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function WWe(t){return Wr({test:(e,r)=>e.length<=t?!0:mr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function Rre(t){return Wr({test:(e,r)=>e.length!==t?mr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function YWe({map:t}={}){return Wr({test:(e,r)=>{let s=new Set,a=new Set;for(let n=0,c=e.length;nt<=0?!0:mr(e,`Expected to be negative (got ${t})`)})}function JWe(){return Wr({test:(t,e)=>t>=0?!0:mr(e,`Expected to be positive (got ${t})`)})}function g_(t){return Wr({test:(e,r)=>e>=t?!0:mr(r,`Expected to be at least ${t} (got ${e})`)})}function KWe(t){return Wr({test:(e,r)=>e<=t?!0:mr(r,`Expected to be at most ${t} (got ${e})`)})}function zWe(t,e){return Wr({test:(r,s)=>r>=t&&r<=e?!0:mr(s,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function ZWe(t,e){return Wr({test:(r,s)=>r>=t&&re!==Math.round(e)?mr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?mr(r,`Expected to be a safe integer (got ${e})`):!0})}function X2(t){return Wr({test:(e,r)=>t.test(e)?!0:mr(r,`Expected to match the pattern ${t.toString()} (got ${ti(e)})`)})}function XWe(){return Wr({test:(t,e)=>t!==t.toLowerCase()?mr(e,`Expected to be all-lowercase (got ${t})`):!0})}function $We(){return Wr({test:(t,e)=>t!==t.toUpperCase()?mr(e,`Expected to be all-uppercase (got ${t})`):!0})}function eYe(){return Wr({test:(t,e)=>bWe.test(t)?!0:mr(e,`Expected to be a valid UUID v4 (got ${ti(t)})`)})}function tYe(){return Wr({test:(t,e)=>bre.test(t)?!0:mr(e,`Expected to be a valid ISO 8601 date string (got ${ti(t)})`)})}function rYe({alpha:t=!1}){return Wr({test:(e,r)=>(t?SWe.test(e):DWe.test(e))?!0:mr(r,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)})}function nYe(){return Wr({test:(t,e)=>PWe.test(t)?!0:mr(e,`Expected to be a valid base 64 string (got ${ti(t)})`)})}function iYe(t=A_()){return Wr({test:(e,r)=>{let s;try{s=JSON.parse(e)}catch{return mr(r,`Expected to be a valid JSON string (got ${ti(e)})`)}return t(s,r)}})}function Nx(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Wr({test:(s,a)=>{var n,c;let f={value:s},p=typeof a?.coercions<"u"?Wf(f,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(s,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,C]of h)E.push(C());try{if(typeof a?.coercions<"u"){if(f.value!==s){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,f.value)])}(c=a?.coercions)===null||c===void 0||c.push(...h)}return r.every(C=>C(f.value,a))}finally{for(let C of E)C()}}})}function $2(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Nx(t,r)}function sYe(t){return Wr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function oYe(t){return Wr({test:(e,r)=>e===null?!0:t(e,r)})}function aYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)||p.push(h);return p.length>0?mr(c,`Missing required ${f_(p.length,"property","properties")} ${CE(p,"and")}`):!0}})}function m_(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>Object.keys(n).some(h=>a(s,h,n))?!0:mr(c,`Missing at least one property from ${CE(Array.from(s),"or")}`)})}function lYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)&&p.push(h);return p.length>0?mr(c,`Forbidden ${f_(p.length,"property","properties")} ${CE(p,"and")}`):!0}})}function cYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)&&p.push(h);return p.length>1?mr(c,`Mutually exclusive properties ${CE(p,"and")}`):!0}})}function tB(t,e,r,s){var a,n;let c=new Set((a=s?.ignore)!==null&&a!==void 0?a:[]),f=eB[(n=s?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=uYe[e],E=e===qf.Forbids?"or":"and";return Wr({test:(C,S)=>{let b=new Set(Object.keys(C));if(!f(b,t,C)||c.has(C[t]))return!0;let I=[];for(let T of p)(f(b,T,C)&&!c.has(C[T]))!==h.expect&&I.push(T);return I.length>=1?mr(S,`Property "${t}" ${h.message} ${f_(I.length,"property","properties")} ${CE(I,E)}`):!0}})}var vWe,SWe,DWe,PWe,bWe,bre,kWe,MWe,h_,o0,eB,qf,uYe,Ul=Ze(()=>{vWe=/^[a-zA-Z_][a-zA-Z0-9_]*$/;SWe=/^#[0-9a-f]{6}$/i,DWe=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,PWe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,bWe=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,bre=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;kWe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);MWe=t=>Wr({test:(e,r)=>e instanceof t?!0:mr(r,`Expected an instance of ${t.name} (got ${ti(e)})`)}),h_=(t,{exclusive:e=!1}={})=>Wr({test:(r,s)=>{var a,n,c;let f=[],p=typeof s?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h1?mr(s,`Expected to match exactly a single predicate (matched ${f.join(", ")})`):(c=s?.errors)===null||c===void 0||c.push(...p),!1}});o0=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` `;for(let s of e)r+=` - ${s}`}super(r)}};eB={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(qf||(qf={}));uYe={[qf.Forbids]:{expect:!1,message:"forbids using"},[qf.Requires]:{expect:!0,message:"requires using"}}});var ot,a0=Ze(()=>{Cp();ot=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:c}=await Promise.resolve().then(()=>(Ul(),Ea)),f=c(a(n()),r),p=[],h=[];if(!f(this,{errors:p,coercions:h}))throw z2("Invalid option schema",p);for(let[,C]of h)C()}else if(r!=null)throw new Error("Invalid command schema");let s=await this.execute();return typeof s<"u"?s:0}};ot.isOption=K2;ot.Default=[]});function il(t){a_&&console.log(t)}function Fre(){let t={nodes:[]};for(let e=0;e{if(e.has(s))return;e.add(s);let a=t.nodes[s];for(let c of Object.values(a.statics))for(let{to:f}of c)r(f);for(let[,{to:c}]of a.dynamics)r(c);for(let{to:c}of a.shortcuts)r(c);let n=new Set(a.shortcuts.map(({to:c})=>c));for(;a.shortcuts.length>0;){let{to:c}=a.shortcuts.shift(),f=t.nodes[c];for(let[p,h]of Object.entries(f.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let C of h)E.some(({to:S})=>C.to===S)||E.push(C)}for(let[p,h]of f.dynamics)a.dynamics.some(([E,{to:C}])=>p===E&&h.to===C)||a.dynamics.push([p,h]);for(let p of f.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(En.InitialNode)}function pYe(t,{prefix:e=""}={}){if(a_){il(`${e}Nodes are:`);for(let r=0;rE!==En.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===En.ErrorNode))throw new IE(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));s=dYe(h)}if(s.length>0){il(" Results:");for(let n of s)il(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else il(" No results");return s}function gYe(t,e,{endToken:r=ei.EndOfInput}={}){let s=hYe(t,[...e,r]);return mYe(e,s.map(({state:a})=>a))}function dYe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function mYe(t,e){let r=e.filter(S=>S.selectedIndex!==null),s=r.filter(S=>!S.partial);if(s.length>0&&(r=s),r.length===0)throw new Error;let a=r.filter(S=>S.selectedIndex===Nd||S.requiredOptions.every(b=>b.some(I=>S.options.find(T=>T.name===I))));if(a.length===0)throw new IE(t,r.map(S=>({usage:S.candidateUsage,reason:null})));let n=0;for(let S of a)S.path.length>n&&(n=S.path.length);let c=a.filter(S=>S.path.length===n),f=S=>S.positionals.filter(({extra:b})=>!b).length+S.options.length,p=c.map(S=>({state:S,positionalCount:f(S)})),h=0;for(let{positionalCount:S}of p)S>h&&(h=S);let E=p.filter(({positionalCount:S})=>S===h).map(({state:S})=>S),C=yYe(E);if(C.length>1)throw new xx(t,C.map(S=>S.candidateUsage));return C[0]}function yYe(t){let e=[],r=[];for(let s of t)s.selectedIndex===Nd?r.push(s):e.push(s);return r.length>0&&e.push({...Tre,path:Nre(...r.map(s=>s.path)),options:r.reduce((s,a)=>s.concat(a.options),[])}),e}function Nre(t,e,...r){return e===void 0?Array.from(t):Nre(t.filter((s,a)=>s===e[a]),...r)}function _l(){return{dynamics:[],shortcuts:[],statics:{}}}function Ore(t){return t===En.SuccessNode||t===En.ErrorNode}function y_(t,e=0){return{to:Ore(t.to)?t.to:t.to>=En.CustomNode?t.to+e-En.CustomNode+1:t.to+e,reducer:t.reducer}}function EYe(t,e=0){let r=_l();for(let[s,a]of t.dynamics)r.dynamics.push([s,y_(a,e)]);for(let s of t.shortcuts)r.shortcuts.push(y_(s,e));for(let[s,a]of Object.entries(t.statics))r.statics[s]=a.map(n=>y_(n,e));return r}function Hs(t,e,r,s,a){t.nodes[e].dynamics.push([r,{to:s,reducer:a}])}function BE(t,e,r,s){t.nodes[e].shortcuts.push({to:r,reducer:s})}function Ia(t,e,r,s,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:s,reducer:a})}function Ox(t,e,r,s,a){if(Array.isArray(e)){let[n,...c]=e;return t[n](r,s,a,...c)}else return t[e](r,s,a)}var Tre,IYe,E_,Hl,I_,Lx,Mx=Ze(()=>{bx();kx();Tre={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Nd,partial:!1,tokens:[]};IYe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,s)=>!t.ignoreOptions&&e===s,isBatchOption:(t,e,r,s)=>!t.ignoreOptions&&Sre.test(e)&&[...e.slice(1)].every(a=>s.has(`-${a}`)),isBoundOption:(t,e,r,s,a)=>{let n=e.match(o_);return!t.ignoreOptions&&!!n&&Px.test(n[1])&&s.has(n[1])&&a.filter(c=>c.nameSet.includes(n[1])).every(c=>c.allowBinding)},isNegatedOption:(t,e,r,s)=>!t.ignoreOptions&&e===`--no-${s.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&s_.test(e),isUnsupportedOption:(t,e,r,s)=>!t.ignoreOptions&&e.startsWith("-")&&Px.test(e)&&!s.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!Px.test(e)},E_={setCandidateState:(t,e,r,s)=>({...t,...s}),setSelectedIndex:(t,e,r,s)=>({...t,selectedIndex:s}),setPartialIndex:(t,e,r,s)=>({...t,selectedIndex:s,partial:!0}),pushBatch:(t,e,r,s)=>{let a=t.options.slice(),n=t.tokens.slice();for(let c=1;c{let[,s,a]=e.match(o_),n=t.options.concat({name:s,value:a}),c=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,s.length],option:s},{segmentIndex:r,type:"assign",slice:[s.length,s.length+1]},{segmentIndex:r,type:"value",slice:[s.length+1,s.length+a.length+1]}]);return{...t,options:n,tokens:c}},pushPath:(t,e,r)=>{let s=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:s,tokens:a}},pushPositional:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:s,tokens:a}},pushExtra:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:s,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:Hl}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:s,tokens:a}},pushTrue:(t,e,r,s)=>{let a=t.options.concat({name:s,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:s});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,s)=>{let a=t.options.concat({name:s,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:s});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,s)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var s;let a=t.options[t.options.length-1],n=t.options.slice(),c=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((s=a.value)!==null&&s!==void 0?s:[]).concat([e]),{...t,options:n,tokens:c}},setStringValue:(t,e,r)=>{let s=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return s.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,s)=>{let[,,a]=e.match(s_);return typeof a<"u"?{...t,options:[{name:"-c",value:String(s)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(s)}]}},setError:(t,e,r,s)=>e===ei.EndOfInput||e===ei.EndOfPartialInput?{...t,errorMessage:`${s}.`}:{...t,errorMessage:`${s} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},Hl=Symbol(),I_=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:s=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:s,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===Hl)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==Hl?this.arity.extra.push(e):this.arity.extra!==Hl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===Hl)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let s=0;s1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(s))throw new Error(`The arity must be an integer, got ${s}`);if(s<0)throw new Error(`The arity must be positive, got ${s}`);let f=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,f);this.options.push({preferredName:f,nameSet:e,description:r,arity:s,hidden:a,required:n,allowBinding:c})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let s=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&s.push(...this.paths[0]),e){for(let{preferredName:c,nameSet:f,arity:p,hidden:h,description:E,required:C}of this.options){if(h)continue;let S=[];for(let I=0;I`:`[${b}]`)}s.push(...this.arity.leading.map(c=>`<${c}>`)),this.arity.extra===Hl?s.push("..."):s.push(...this.arity.extra.map(c=>`[${c}]`)),s.push(...this.arity.trailing.map(c=>`<${c}>`))}return{usage:s.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=Fre(),r=En.InitialNode,s=this.usage().usage,a=this.options.filter(f=>f.required).map(f=>f.nameSet);r=Ou(e,_l()),Ia(e,En.InitialNode,ei.StartOfInput,r,["setCandidateState",{candidateUsage:s,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",c=this.paths.length>0?this.paths:[[]];for(let f of c){let p=r;if(f.length>0){let S=Ou(e,_l());BE(e,p,S),this.registerOptions(e,S),p=S}for(let S=0;S0||!this.arity.proxy){let S=Ou(e,_l());Hs(e,p,"isHelp",S,["useHelp",this.cliIndex]),Hs(e,S,"always",S,"pushExtra"),Ia(e,S,ei.EndOfInput,En.SuccessNode,["setSelectedIndex",Nd]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Ia(e,p,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ia(e,p,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let S=0;S0||S+1!==this.arity.leading.length)&&(Ia(e,b,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ia(e,b,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex])),Hs(e,h,"isNotOptionLike",b,"pushPositional"),h=b}let E=h;if(this.arity.extra===Hl||this.arity.extra.length>0){let S=Ou(e,_l());if(BE(e,h,S),this.arity.extra===Hl){let b=Ou(e,_l());this.arity.proxy||this.registerOptions(e,b),Hs(e,h,n,b,"pushExtraNoLimits"),Hs(e,b,n,b,"pushExtraNoLimits"),BE(e,b,S)}else for(let b=0;b0)&&this.registerOptions(e,I),Hs(e,E,n,I,"pushExtra"),BE(e,I,S),E=I}E=S}this.arity.trailing.length>0&&(Ia(e,E,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ia(e,E,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex]));let C=E;for(let S=0;S=0&&e{let c=n?ei.EndOfPartialInput:ei.EndOfInput;return gYe(s,a,{endToken:c})}}}}});function Mre(){return Ux.default&&"getColorDepth"in Ux.default.WriteStream.prototype?Ux.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function Ure(t){let e=Lre;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=Ie("async_hooks");e=Lre=new r;let s=process.stdout._write;process.stdout._write=function(n,c,f){let p=e.getStore();return typeof p>"u"?s.call(this,n,c,f):p.stdout.write(n,c,f)};let a=process.stderr._write;process.stderr._write=function(n,c,f){let p=e.getStore();return typeof p>"u"?a.call(this,n,c,f):p.stderr.write(n,c,f)}}return r=>e.run(t,r)}var Ux,Lre,_re=Ze(()=>{Ux=ut(Ie("tty"),1)});var _x,Hre=Ze(()=>{a0();_x=class t extends ot{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let s=new t(r);s.path=e.path;for(let a of e.options)switch(a.name){case"-c":s.commands.push(Number(a.value));break;case"-i":s.index=Number(a.value);break}return s}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let r=0;for(let s of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[s].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. `)}}}});async function qre(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Yre(t);return Ca.from(r,e).runExit(s,a)}async function Wre(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Yre(t);return Ca.from(r,e).run(s,a)}function Yre(t){let e,r,s,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(s=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?s=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],s=t[2]):t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],s=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],s=t[2],a=t[3];break}if(typeof s>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}}function Gre(t){return t()}var jre,Ca,Vre=Ze(()=>{bx();Mx();u_();_re();a0();Hre();jre=Symbol("clipanion/errorCommand");Ca=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:s,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new Lx({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=s,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let s=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)s.register(n);return s}register(e){var r;let s=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[ot.isOption]&&s.set(p,h)}let n=this.builder.command(),c=n.cliIndex,f=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof f<"u")for(let p of f)n.addPath(p);this.registrations.set(e,{specs:s,builder:n,index:c});for(let[p,{definition:h}]of s.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:s,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:c,process:f}=this.builder.compile(),p=f(s,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case Nd:{let E=_x.from(p,c);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=c[p.selectedIndex],C=this.registrations.get(E);if(typeof C>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let S=new E;S.context=h,S.tokens=p.tokens,S.path=p.path;try{for(let[b,{transformer:I}]of C.specs.entries())S[b]=I(C.builder,b,p,h);return S}catch(b){throw b[jre]=S,b}}break}}async run(e,r){var s,a;let n,c={...t.defaultContext,...r},f=(s=this.enableColors)!==null&&s!==void 0?s:c.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,c)}catch(E){return c.stdout.write(this.error(E,{colored:f})),1}if(n.help)return c.stdout.write(this.usage(n,{colored:f,detailed:!0})),0;n.context=c,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,C)=>this.error(E,C),format:E=>this.format(E),process:(E,C)=>this.process(E,{...c,...C}),run:(E,C)=>this.run(E,{...c,...C}),usage:(E,C)=>this.usage(E,C)};let p=this.enableCapture&&(a=Ure(c))!==null&&a!==void 0?a:Gre,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return c.stdout.write(this.error(E,{colored:f,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:s}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),c=typeof e.usage.category<"u"?Ho(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,f=typeof e.usage.description<"u"?Ho(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?Ho(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,C])=>[Ho(E,{format:this.format(r),paragraphs:!1}),C.replace(/\$0/g,this.binaryName)]):void 0;return{path:s,usage:a,category:c,description:f,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let s of this.registrations.keys()){let a=this.definition(s,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:s=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(b=>b.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(s=!0)}let c=e!==null&&e instanceof ot?e.constructor:e,f="";if(c)if(s){let{description:p="",details:h="",examples:E=[]}=c.usage||{};p!==""&&(f+=Ho(p,{format:this.format(r),paragraphs:!1}).replace(/^./,b=>b.toUpperCase()),f+=` `),(h!==""||E.length>0)&&(f+=`${this.format(r).header("Usage")} `,f+=` `);let{usage:C,options:S}=this.getUsageByRegistration(c,{inlineOptions:!1});if(f+=`${this.format(r).bold(a)}${C} `,S.length>0){f+=` `,f+=`${this.format(r).header("Options")} `;let b=S.reduce((I,T)=>Math.max(I,T.definition.length),0);f+=` `;for(let{definition:I,description:T}of S)f+=` ${this.format(r).bold(I.padEnd(b))} ${Ho(T,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(f+=` `,f+=`${this.format(r).header("Details")} `,f+=` `,f+=Ho(h,{format:this.format(r),paragraphs:!0})),E.length>0){f+=` `,f+=`${this.format(r).header("Examples")} `;for(let[b,I]of E)f+=` `,f+=Ho(b,{format:this.format(r),paragraphs:!1}),f+=`${I.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} `}}else{let{usage:p}=this.getUsageByRegistration(c);f+=`${this.format(r).bold(a)}${p} `}else{let p=new Map;for(let[S,{index:b}]of this.registrations.entries()){if(typeof S.usage>"u")continue;let I=typeof S.usage.category<"u"?Ho(S.usage.category,{format:this.format(r),paragraphs:!1}):null,T=p.get(I);typeof T>"u"&&p.set(I,T=[]);let{usage:N}=this.getUsageByIndex(b);T.push({commandClass:S,usage:N})}let h=Array.from(p.keys()).sort((S,b)=>S===null?-1:b===null?1:S.localeCompare(b,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",C=typeof this.binaryVersion<"u";E||C?(E&&C?f+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} `:E?f+=`${this.format(r).header(`${this.binaryLabel}`)} `:f+=`${this.format(r).header(`${this.binaryVersion}`)} `,f+=` ${this.format(r).bold(a)}${this.binaryName} `):f+=`${this.format(r).bold(a)}${this.binaryName} `;for(let S of h){let b=p.get(S).slice().sort((T,N)=>T.usage.localeCompare(N.usage,"en",{usage:"sort",caseFirst:"upper"})),I=S!==null?S.trim():"General commands";f+=` `,f+=`${this.format(r).header(`${I}`)} `;for(let{commandClass:T,usage:N}of b){let U=T.usage.description||"undocumented";f+=` `,f+=` ${this.format(r).bold(N)} `,f+=` ${Ho(U,{format:this.format(r),paragraphs:!1})}`}}f+=` `,f+=Ho("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return f}error(e,r){var s,{colored:a,command:n=(s=e[jre])!==null&&s!==void 0?s:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let c="",f=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");f==="Error"&&(f="Internal Error"),c+=`${this.format(a).error(f)}: ${e.message} `;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(c+=` `,c+=this.usage(n)):e.stack&&(c+=`${e.stack.replace(/^.*\n/,"")} `),c}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?Dre:Pre}getUsageByRegistration(e,r){let s=this.registrations.get(e);if(typeof s>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(s.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Ca.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:Mre()}});var rB,Jre=Ze(()=>{a0();rB=class extends ot{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} `)}};rB.paths=[["--clipanion=definitions"]]});var nB,Kre=Ze(()=>{a0();nB=class extends ot{async execute(){this.context.stdout.write(this.cli.usage())}};nB.paths=[["-h"],["--help"]]});function Hx(t={}){return ya({definition(e,r){var s;e.addProxy({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){return s.positionals.map(({value:a})=>a)}})}var C_=Ze(()=>{Cp()});var iB,zre=Ze(()=>{a0();C_();iB=class extends ot{constructor(){super(...arguments),this.args=Hx()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} `)}};iB.paths=[["--clipanion=tokens"]]});var sB,Zre=Ze(()=>{a0();sB=class extends ot{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} `)}};sB.paths=[["-v"],["--version"]]});var w_={};Vt(w_,{DefinitionsCommand:()=>rB,HelpCommand:()=>nB,TokensCommand:()=>iB,VersionCommand:()=>sB});var Xre=Ze(()=>{Jre();Kre();zre();Zre()});function $re(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(","),f=new Set(c);return ya({definition(p){p.addOption({names:c,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let C,S=typeof s<"u"?[...s]:void 0;for(let{name:b,value:I}of E.options)f.has(b)&&(C=b,S=S??[],S.push(I));return typeof S<"u"?Od(C??h,S,a.validator):S}})}var ene=Ze(()=>{Cp()});function tne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(","),c=new Set(n);return ya({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E=S);return E}})}var rne=Ze(()=>{Cp()});function nne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(","),c=new Set(n);return ya({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E??(E=0),S?E+=1:E=0);return E}})}var ine=Ze(()=>{Cp()});function sne(t={}){return ya({definition(e,r){var s;e.addRest({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){let a=c=>{let f=s.positionals[c];return f.extra===Hl||f.extra===!1&&cc)}})}var one=Ze(()=>{Mx();Cp()});function CYe(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(","),f=new Set(c);return ya({definition(p){p.addOption({names:c,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,C){let S,b=s;typeof a.env<"u"&&C.env[a.env]&&(S=a.env,b=C.env[a.env]);for(let{name:I,value:T}of E.options)f.has(I)&&(S=I,b=T);return typeof b=="string"?Od(S??h,b,a.validator):b}})}function wYe(t={}){let{required:e=!0}=t;return ya({definition(r,s){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:s,required:t.required})},transformer(r,s,a){var n;for(let c=0;c{Mx();Cp()});var ge={};Vt(ge,{Array:()=>$re,Boolean:()=>tne,Counter:()=>nne,Proxy:()=>Hx,Rest:()=>sne,String:()=>ane,applyValidator:()=>Od,cleanValidationError:()=>Qx,formatError:()=>z2,isOptionSymbol:()=>K2,makeCommandOption:()=>ya,rerouteArguments:()=>Gf});var cne=Ze(()=>{Cp();C_();ene();rne();ine();one();lne()});var oB={};Vt(oB,{Builtins:()=>w_,Cli:()=>Ca,Command:()=>ot,Option:()=>ge,UsageError:()=>nt,formatMarkdownish:()=>Ho,run:()=>Wre,runExit:()=>qre});var Yt=Ze(()=>{kx();u_();a0();Vre();Xre();cne()});var une=_((MRt,BYe)=>{BYe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var hne=_((URt,wp)=>{var fne=Ie("fs"),v_=Ie("path"),vYe=Ie("os"),SYe=Ie("crypto"),DYe=une(),S_=DYe.version,PYe=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function bYe(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` `);let s;for(;(s=PYe.exec(r))!=null;){let a=s[1],n=s[2]||"";n=n.trim();let c=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),c==='"'&&(n=n.replace(/\\n/g,` `),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function xYe(t){let e=pne(t),r=js.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let s=Ane(t).split(","),a=s.length,n;for(let c=0;c=a)throw f}return js.parse(n)}function kYe(t){console.log(`[dotenv@${S_}][INFO] ${t}`)}function QYe(t){console.log(`[dotenv@${S_}][WARN] ${t}`)}function B_(t){console.log(`[dotenv@${S_}][DEBUG] ${t}`)}function Ane(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function RYe(t,e){let r;try{r=new URL(e)}catch(f){throw f.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):f}let s=r.password;if(!s)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,c=t.parsed[n];if(!c)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:c,key:s}}function pne(t){let e=v_.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function TYe(t){return t[0]==="~"?v_.join(vYe.homedir(),t.slice(1)):t}function FYe(t){kYe("Loading env from encrypted .env.vault");let e=js._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),js.populate(r,e,t),{parsed:e}}function NYe(t){let e=v_.resolve(process.cwd(),".env"),r="utf8",s=!!(t&&t.debug);t&&(t.path!=null&&(e=TYe(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=js.parse(fne.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),js.populate(n,a,t),{parsed:a}}catch(a){return s&&B_(`Failed to load ${e} ${a.message}`),{error:a}}}function OYe(t){let e=pne(t);return Ane(t).length===0?js.configDotenv(t):fne.existsSync(e)?js._configVault(t):(QYe(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),js.configDotenv(t))}function LYe(t,e){let r=Buffer.from(e.slice(-64),"hex"),s=Buffer.from(t,"base64"),a=s.slice(0,12),n=s.slice(-16);s=s.slice(12,-16);try{let c=SYe.createDecipheriv("aes-256-gcm",r,a);return c.setAuthTag(n),`${c.update(s)}${c.final()}`}catch(c){let f=c instanceof RangeError,p=c.message==="Invalid key length",h=c.message==="Unsupported state or unable to authenticate data";if(f||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",c.code),console.error("Error: ",c.message),c}}function MYe(t,e,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),s&&B_(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var js={configDotenv:NYe,_configVault:FYe,_parseVault:xYe,config:OYe,decrypt:LYe,parse:bYe,populate:MYe};wp.exports.configDotenv=js.configDotenv;wp.exports._configVault=js._configVault;wp.exports._parseVault=js._parseVault;wp.exports.config=js.config;wp.exports.decrypt=js.decrypt;wp.exports.parse=js.parse;wp.exports.populate=js.populate;wp.exports=js});var dne=_((_Rt,gne)=>{"use strict";gne.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var Ld=_((HRt,D_)=>{"use strict";var UYe=dne(),mne=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,s=()=>{r--,e.length>0&&e.shift()()},a=(f,p,...h)=>{r++;let E=UYe(f,...h);p(E),E.then(s,s)},n=(f,p,...h)=>{rnew Promise(h=>n(f,h,...p));return Object.defineProperties(c,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),c};D_.exports=mne;D_.exports.default=mne});function Yf(t){return`YN${t.toString(10).padStart(4,"0")}`}function jx(t){let e=Number(t.slice(2));if(typeof Br[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var Br,Gx=Ze(()=>{Br=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Me[Me.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Me[Me.REMOTE_INVALID=15]="REMOTE_INVALID",Me[Me.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Me[Me.RESOLUTION_PACK=17]="RESOLUTION_PACK",Me[Me.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Me[Me.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Me[Me.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Me[Me.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Me[Me.FETCH_FAILED=30]="FETCH_FAILED",Me[Me.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Me[Me.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Me[Me.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Me[Me.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Me[Me.NETWORK_ERROR=35]="NETWORK_ERROR",Me[Me.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Me[Me.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Me[Me.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Me[Me.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Me[Me.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Me[Me.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Me[Me.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Me[Me.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Me[Me.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Me[Me.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Me[Me.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Me[Me.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Me[Me.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Me[Me.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Me[Me.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Me[Me.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Me[Me.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Me[Me.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Me[Me.INVALID_MANIFEST=57]="INVALID_MANIFEST",Me[Me.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Me[Me.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Me[Me.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Me[Me.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Me[Me.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Me[Me.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Me[Me.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Me[Me.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Me[Me.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Me[Me.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Me[Me.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Me[Me.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Me[Me.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Me[Me.NETWORK_DISABLED=80]="NETWORK_DISABLED",Me[Me.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Me[Me.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Me[Me.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Me[Me.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Me[Me.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Me[Me.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Me[Me.VERSION_NOTICE=88]="VERSION_NOTICE",Me[Me.TIPS_NOTICE=89]="TIPS_NOTICE",Me[Me.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Me[Me.INVALID_PROVENANCE_ENVIRONMENT=91]="INVALID_PROVENANCE_ENVIRONMENT",Me))(Br||{})});var aB=_((GRt,yne)=>{var _Ye="2.0.0",HYe=Number.MAX_SAFE_INTEGER||9007199254740991,jYe=16,GYe=250,qYe=["major","premajor","minor","preminor","patch","prepatch","prerelease"];yne.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:jYe,MAX_SAFE_BUILD_LENGTH:GYe,MAX_SAFE_INTEGER:HYe,RELEASE_TYPES:qYe,SEMVER_SPEC_VERSION:_Ye,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var lB=_((qRt,Ene)=>{var WYe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};Ene.exports=WYe});var vE=_((Bp,Ine)=>{var{MAX_SAFE_COMPONENT_LENGTH:P_,MAX_SAFE_BUILD_LENGTH:YYe,MAX_LENGTH:VYe}=aB(),JYe=lB();Bp=Ine.exports={};var KYe=Bp.re=[],zYe=Bp.safeRe=[],rr=Bp.src=[],nr=Bp.t={},ZYe=0,b_="[a-zA-Z0-9-]",XYe=[["\\s",1],["\\d",VYe],[b_,YYe]],$Ye=t=>{for(let[e,r]of XYe)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Jr=(t,e,r)=>{let s=$Ye(e),a=ZYe++;JYe(t,a,e),nr[t]=a,rr[a]=e,KYe[a]=new RegExp(e,r?"g":void 0),zYe[a]=new RegExp(s,r?"g":void 0)};Jr("NUMERICIDENTIFIER","0|[1-9]\\d*");Jr("NUMERICIDENTIFIERLOOSE","\\d+");Jr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${b_}*`);Jr("MAINVERSION",`(${rr[nr.NUMERICIDENTIFIER]})\\.(${rr[nr.NUMERICIDENTIFIER]})\\.(${rr[nr.NUMERICIDENTIFIER]})`);Jr("MAINVERSIONLOOSE",`(${rr[nr.NUMERICIDENTIFIERLOOSE]})\\.(${rr[nr.NUMERICIDENTIFIERLOOSE]})\\.(${rr[nr.NUMERICIDENTIFIERLOOSE]})`);Jr("PRERELEASEIDENTIFIER",`(?:${rr[nr.NUMERICIDENTIFIER]}|${rr[nr.NONNUMERICIDENTIFIER]})`);Jr("PRERELEASEIDENTIFIERLOOSE",`(?:${rr[nr.NUMERICIDENTIFIERLOOSE]}|${rr[nr.NONNUMERICIDENTIFIER]})`);Jr("PRERELEASE",`(?:-(${rr[nr.PRERELEASEIDENTIFIER]}(?:\\.${rr[nr.PRERELEASEIDENTIFIER]})*))`);Jr("PRERELEASELOOSE",`(?:-?(${rr[nr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${rr[nr.PRERELEASEIDENTIFIERLOOSE]})*))`);Jr("BUILDIDENTIFIER",`${b_}+`);Jr("BUILD",`(?:\\+(${rr[nr.BUILDIDENTIFIER]}(?:\\.${rr[nr.BUILDIDENTIFIER]})*))`);Jr("FULLPLAIN",`v?${rr[nr.MAINVERSION]}${rr[nr.PRERELEASE]}?${rr[nr.BUILD]}?`);Jr("FULL",`^${rr[nr.FULLPLAIN]}$`);Jr("LOOSEPLAIN",`[v=\\s]*${rr[nr.MAINVERSIONLOOSE]}${rr[nr.PRERELEASELOOSE]}?${rr[nr.BUILD]}?`);Jr("LOOSE",`^${rr[nr.LOOSEPLAIN]}$`);Jr("GTLT","((?:<|>)?=?)");Jr("XRANGEIDENTIFIERLOOSE",`${rr[nr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Jr("XRANGEIDENTIFIER",`${rr[nr.NUMERICIDENTIFIER]}|x|X|\\*`);Jr("XRANGEPLAIN",`[v=\\s]*(${rr[nr.XRANGEIDENTIFIER]})(?:\\.(${rr[nr.XRANGEIDENTIFIER]})(?:\\.(${rr[nr.XRANGEIDENTIFIER]})(?:${rr[nr.PRERELEASE]})?${rr[nr.BUILD]}?)?)?`);Jr("XRANGEPLAINLOOSE",`[v=\\s]*(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:${rr[nr.PRERELEASELOOSE]})?${rr[nr.BUILD]}?)?)?`);Jr("XRANGE",`^${rr[nr.GTLT]}\\s*${rr[nr.XRANGEPLAIN]}$`);Jr("XRANGELOOSE",`^${rr[nr.GTLT]}\\s*${rr[nr.XRANGEPLAINLOOSE]}$`);Jr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${P_}})(?:\\.(\\d{1,${P_}}))?(?:\\.(\\d{1,${P_}}))?`);Jr("COERCE",`${rr[nr.COERCEPLAIN]}(?:$|[^\\d])`);Jr("COERCEFULL",rr[nr.COERCEPLAIN]+`(?:${rr[nr.PRERELEASE]})?(?:${rr[nr.BUILD]})?(?:$|[^\\d])`);Jr("COERCERTL",rr[nr.COERCE],!0);Jr("COERCERTLFULL",rr[nr.COERCEFULL],!0);Jr("LONETILDE","(?:~>?)");Jr("TILDETRIM",`(\\s*)${rr[nr.LONETILDE]}\\s+`,!0);Bp.tildeTrimReplace="$1~";Jr("TILDE",`^${rr[nr.LONETILDE]}${rr[nr.XRANGEPLAIN]}$`);Jr("TILDELOOSE",`^${rr[nr.LONETILDE]}${rr[nr.XRANGEPLAINLOOSE]}$`);Jr("LONECARET","(?:\\^)");Jr("CARETTRIM",`(\\s*)${rr[nr.LONECARET]}\\s+`,!0);Bp.caretTrimReplace="$1^";Jr("CARET",`^${rr[nr.LONECARET]}${rr[nr.XRANGEPLAIN]}$`);Jr("CARETLOOSE",`^${rr[nr.LONECARET]}${rr[nr.XRANGEPLAINLOOSE]}$`);Jr("COMPARATORLOOSE",`^${rr[nr.GTLT]}\\s*(${rr[nr.LOOSEPLAIN]})$|^$`);Jr("COMPARATOR",`^${rr[nr.GTLT]}\\s*(${rr[nr.FULLPLAIN]})$|^$`);Jr("COMPARATORTRIM",`(\\s*)${rr[nr.GTLT]}\\s*(${rr[nr.LOOSEPLAIN]}|${rr[nr.XRANGEPLAIN]})`,!0);Bp.comparatorTrimReplace="$1$2$3";Jr("HYPHENRANGE",`^\\s*(${rr[nr.XRANGEPLAIN]})\\s+-\\s+(${rr[nr.XRANGEPLAIN]})\\s*$`);Jr("HYPHENRANGELOOSE",`^\\s*(${rr[nr.XRANGEPLAINLOOSE]})\\s+-\\s+(${rr[nr.XRANGEPLAINLOOSE]})\\s*$`);Jr("STAR","(<|>)?=?\\s*\\*");Jr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Jr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var qx=_((WRt,Cne)=>{var eVe=Object.freeze({loose:!0}),tVe=Object.freeze({}),rVe=t=>t?typeof t!="object"?eVe:t:tVe;Cne.exports=rVe});var x_=_((YRt,vne)=>{var wne=/^[0-9]+$/,Bne=(t,e)=>{let r=wne.test(t),s=wne.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:tBne(e,t);vne.exports={compareIdentifiers:Bne,rcompareIdentifiers:nVe}});var jo=_((VRt,bne)=>{var Wx=lB(),{MAX_LENGTH:Sne,MAX_SAFE_INTEGER:Yx}=aB(),{safeRe:Dne,t:Pne}=vE(),iVe=qx(),{compareIdentifiers:SE}=x_(),k_=class t{constructor(e,r){if(r=iVe(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Sne)throw new TypeError(`version is longer than ${Sne} characters`);Wx("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?Dne[Pne.LOOSE]:Dne[Pne.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Yx||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Yx||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Yx||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];s===!1&&(n=[r]),SE(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};bne.exports=k_});var Md=_((JRt,kne)=>{var xne=jo(),sVe=(t,e,r=!1)=>{if(t instanceof xne)return t;try{return new xne(t,e)}catch(s){if(!r)return null;throw s}};kne.exports=sVe});var Rne=_((KRt,Qne)=>{var oVe=Md(),aVe=(t,e)=>{let r=oVe(t,e);return r?r.version:null};Qne.exports=aVe});var Fne=_((zRt,Tne)=>{var lVe=Md(),cVe=(t,e)=>{let r=lVe(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};Tne.exports=cVe});var Lne=_((ZRt,One)=>{var Nne=jo(),uVe=(t,e,r,s,a)=>{typeof r=="string"&&(a=s,s=r,r=void 0);try{return new Nne(t instanceof Nne?t.version:t,r).inc(e,s,a).version}catch{return null}};One.exports=uVe});var _ne=_((XRt,Une)=>{var Mne=Md(),fVe=(t,e)=>{let r=Mne(t,null,!0),s=Mne(e,null,!0),a=r.compare(s);if(a===0)return null;let n=a>0,c=n?r:s,f=n?s:r,p=!!c.prerelease.length;if(!!f.prerelease.length&&!p)return!f.patch&&!f.minor?"major":c.patch?"patch":c.minor?"minor":"major";let E=p?"pre":"";return r.major!==s.major?E+"major":r.minor!==s.minor?E+"minor":r.patch!==s.patch?E+"patch":"prerelease"};Une.exports=fVe});var jne=_(($Rt,Hne)=>{var AVe=jo(),pVe=(t,e)=>new AVe(t,e).major;Hne.exports=pVe});var qne=_((eTt,Gne)=>{var hVe=jo(),gVe=(t,e)=>new hVe(t,e).minor;Gne.exports=gVe});var Yne=_((tTt,Wne)=>{var dVe=jo(),mVe=(t,e)=>new dVe(t,e).patch;Wne.exports=mVe});var Jne=_((rTt,Vne)=>{var yVe=Md(),EVe=(t,e)=>{let r=yVe(t,e);return r&&r.prerelease.length?r.prerelease:null};Vne.exports=EVe});var Bc=_((nTt,zne)=>{var Kne=jo(),IVe=(t,e,r)=>new Kne(t,r).compare(new Kne(e,r));zne.exports=IVe});var Xne=_((iTt,Zne)=>{var CVe=Bc(),wVe=(t,e,r)=>CVe(e,t,r);Zne.exports=wVe});var eie=_((sTt,$ne)=>{var BVe=Bc(),vVe=(t,e)=>BVe(t,e,!0);$ne.exports=vVe});var Vx=_((oTt,rie)=>{var tie=jo(),SVe=(t,e,r)=>{let s=new tie(t,r),a=new tie(e,r);return s.compare(a)||s.compareBuild(a)};rie.exports=SVe});var iie=_((aTt,nie)=>{var DVe=Vx(),PVe=(t,e)=>t.sort((r,s)=>DVe(r,s,e));nie.exports=PVe});var oie=_((lTt,sie)=>{var bVe=Vx(),xVe=(t,e)=>t.sort((r,s)=>bVe(s,r,e));sie.exports=xVe});var cB=_((cTt,aie)=>{var kVe=Bc(),QVe=(t,e,r)=>kVe(t,e,r)>0;aie.exports=QVe});var Jx=_((uTt,lie)=>{var RVe=Bc(),TVe=(t,e,r)=>RVe(t,e,r)<0;lie.exports=TVe});var Q_=_((fTt,cie)=>{var FVe=Bc(),NVe=(t,e,r)=>FVe(t,e,r)===0;cie.exports=NVe});var R_=_((ATt,uie)=>{var OVe=Bc(),LVe=(t,e,r)=>OVe(t,e,r)!==0;uie.exports=LVe});var Kx=_((pTt,fie)=>{var MVe=Bc(),UVe=(t,e,r)=>MVe(t,e,r)>=0;fie.exports=UVe});var zx=_((hTt,Aie)=>{var _Ve=Bc(),HVe=(t,e,r)=>_Ve(t,e,r)<=0;Aie.exports=HVe});var T_=_((gTt,pie)=>{var jVe=Q_(),GVe=R_(),qVe=cB(),WVe=Kx(),YVe=Jx(),VVe=zx(),JVe=(t,e,r,s)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return jVe(t,r,s);case"!=":return GVe(t,r,s);case">":return qVe(t,r,s);case">=":return WVe(t,r,s);case"<":return YVe(t,r,s);case"<=":return VVe(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};pie.exports=JVe});var gie=_((dTt,hie)=>{var KVe=jo(),zVe=Md(),{safeRe:Zx,t:Xx}=vE(),ZVe=(t,e)=>{if(t instanceof KVe)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?Zx[Xx.COERCEFULL]:Zx[Xx.COERCE]);else{let p=e.includePrerelease?Zx[Xx.COERCERTLFULL]:Zx[Xx.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let s=r[2],a=r[3]||"0",n=r[4]||"0",c=e.includePrerelease&&r[5]?`-${r[5]}`:"",f=e.includePrerelease&&r[6]?`+${r[6]}`:"";return zVe(`${s}.${a}.${n}${c}${f}`,e)};hie.exports=ZVe});var mie=_((mTt,die)=>{"use strict";die.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var $x=_((yTt,yie)=>{"use strict";yie.exports=Fn;Fn.Node=Ud;Fn.create=Fn;function Fn(t){var e=this;if(e instanceof Fn||(e=new Fn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,s=arguments.length;r1)r=e;else if(this.head)s=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;s!==null;a++)r=t(r,s.value,a),s=s.next;return r};Fn.prototype.reduceReverse=function(t,e){var r,s=this.tail;if(arguments.length>1)r=e;else if(this.tail)s=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;s!==null;a--)r=t(r,s.value,a),s=s.prev;return r};Fn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Fn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Fn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Fn;if(ethis.length&&(e=this.length);for(var s=0,a=this.head;a!==null&&sthis.length&&(e=this.length);for(var s=this.length,a=this.tail;a!==null&&s>e;s--)a=a.prev;for(;a!==null&&s>t;s--,a=a.prev)r.push(a.value);return r};Fn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var s=0,a=this.head;a!==null&&s{"use strict";var t7e=$x(),_d=Symbol("max"),Sp=Symbol("length"),DE=Symbol("lengthCalculator"),fB=Symbol("allowStale"),Hd=Symbol("maxAge"),vp=Symbol("dispose"),Eie=Symbol("noDisposeOnSet"),Gs=Symbol("lruList"),Lu=Symbol("cache"),Cie=Symbol("updateAgeOnGet"),F_=()=>1,O_=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[_d]=e.max||1/0,s=e.length||F_;if(this[DE]=typeof s!="function"?F_:s,this[fB]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Hd]=e.maxAge||0,this[vp]=e.dispose,this[Eie]=e.noDisposeOnSet||!1,this[Cie]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[_d]=e||1/0,uB(this)}get max(){return this[_d]}set allowStale(e){this[fB]=!!e}get allowStale(){return this[fB]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Hd]=e,uB(this)}get maxAge(){return this[Hd]}set lengthCalculator(e){typeof e!="function"&&(e=F_),e!==this[DE]&&(this[DE]=e,this[Sp]=0,this[Gs].forEach(r=>{r.length=this[DE](r.value,r.key),this[Sp]+=r.length})),uB(this)}get lengthCalculator(){return this[DE]}get length(){return this[Sp]}get itemCount(){return this[Gs].length}rforEach(e,r){r=r||this;for(let s=this[Gs].tail;s!==null;){let a=s.prev;Iie(this,e,s,r),s=a}}forEach(e,r){r=r||this;for(let s=this[Gs].head;s!==null;){let a=s.next;Iie(this,e,s,r),s=a}}keys(){return this[Gs].toArray().map(e=>e.key)}values(){return this[Gs].toArray().map(e=>e.value)}reset(){this[vp]&&this[Gs]&&this[Gs].length&&this[Gs].forEach(e=>this[vp](e.key,e.value)),this[Lu]=new Map,this[Gs]=new t7e,this[Sp]=0}dump(){return this[Gs].map(e=>ek(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Gs]}set(e,r,s){if(s=s||this[Hd],s&&typeof s!="number")throw new TypeError("maxAge must be a number");let a=s?Date.now():0,n=this[DE](r,e);if(this[Lu].has(e)){if(n>this[_d])return PE(this,this[Lu].get(e)),!1;let p=this[Lu].get(e).value;return this[vp]&&(this[Eie]||this[vp](e,p.value)),p.now=a,p.maxAge=s,p.value=r,this[Sp]+=n-p.length,p.length=n,this.get(e),uB(this),!0}let c=new L_(e,r,n,a,s);return c.length>this[_d]?(this[vp]&&this[vp](e,r),!1):(this[Sp]+=c.length,this[Gs].unshift(c),this[Lu].set(e,this[Gs].head),uB(this),!0)}has(e){if(!this[Lu].has(e))return!1;let r=this[Lu].get(e).value;return!ek(this,r)}get(e){return N_(this,e,!0)}peek(e){return N_(this,e,!1)}pop(){let e=this[Gs].tail;return e?(PE(this,e),e.value):null}del(e){PE(this,this[Lu].get(e))}load(e){this.reset();let r=Date.now();for(let s=e.length-1;s>=0;s--){let a=e[s],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let c=n-r;c>0&&this.set(a.k,a.v,c)}}}prune(){this[Lu].forEach((e,r)=>N_(this,r,!1))}},N_=(t,e,r)=>{let s=t[Lu].get(e);if(s){let a=s.value;if(ek(t,a)){if(PE(t,s),!t[fB])return}else r&&(t[Cie]&&(s.value.now=Date.now()),t[Gs].unshiftNode(s));return a.value}},ek=(t,e)=>{if(!e||!e.maxAge&&!t[Hd])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[Hd]&&r>t[Hd]},uB=t=>{if(t[Sp]>t[_d])for(let e=t[Gs].tail;t[Sp]>t[_d]&&e!==null;){let r=e.prev;PE(t,e),e=r}},PE=(t,e)=>{if(e){let r=e.value;t[vp]&&t[vp](r.key,r.value),t[Sp]-=r.length,t[Lu].delete(r.key),t[Gs].removeNode(e)}},L_=class{constructor(e,r,s,a,n){this.key=e,this.value=r,this.length=s,this.now=a,this.maxAge=n||0}},Iie=(t,e,r,s)=>{let a=r.value;ek(t,a)&&(PE(t,r),t[fB]||(a=void 0)),a&&e.call(s,a.value,a.key,t)};wie.exports=O_});var vc=_((ITt,Pie)=>{var M_=class t{constructor(e,r){if(r=n7e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof U_)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(a=>!Sie(a[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&u7e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&l7e)|(this.options.loose&&c7e))+":"+e,a=vie.get(s);if(a)return a;let n=this.options.loose,c=n?sl[wa.HYPHENRANGELOOSE]:sl[wa.HYPHENRANGE];e=e.replace(c,I7e(this.options.includePrerelease)),vi("hyphen replace",e),e=e.replace(sl[wa.COMPARATORTRIM],s7e),vi("comparator trim",e),e=e.replace(sl[wa.TILDETRIM],o7e),vi("tilde trim",e),e=e.replace(sl[wa.CARETTRIM],a7e),vi("caret trim",e);let f=e.split(" ").map(C=>f7e(C,this.options)).join(" ").split(/\s+/).map(C=>E7e(C,this.options));n&&(f=f.filter(C=>(vi("loose invalid filter",C,this.options),!!C.match(sl[wa.COMPARATORLOOSE])))),vi("range list",f);let p=new Map,h=f.map(C=>new U_(C,this.options));for(let C of h){if(Sie(C))return[C];p.set(C.value,C)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return vie.set(s,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(s=>Die(s,r)&&e.set.some(a=>Die(a,r)&&s.every(n=>a.every(c=>n.intersects(c,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new i7e(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",u7e=t=>t.value==="",Die=(t,e)=>{let r=!0,s=t.slice(),a=s.pop();for(;r&&s.length;)r=s.every(n=>a.intersects(n,e)),a=s.pop();return r},f7e=(t,e)=>(vi("comp",t,e),t=h7e(t,e),vi("caret",t),t=A7e(t,e),vi("tildes",t),t=d7e(t,e),vi("xrange",t),t=y7e(t,e),vi("stars",t),t),Ba=t=>!t||t.toLowerCase()==="x"||t==="*",A7e=(t,e)=>t.trim().split(/\s+/).map(r=>p7e(r,e)).join(" "),p7e=(t,e)=>{let r=e.loose?sl[wa.TILDELOOSE]:sl[wa.TILDE];return t.replace(r,(s,a,n,c,f)=>{vi("tilde",t,s,a,n,c,f);let p;return Ba(a)?p="":Ba(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Ba(c)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:f?(vi("replaceTilde pr",f),p=`>=${a}.${n}.${c}-${f} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${c} <${a}.${+n+1}.0-0`,vi("tilde return",p),p})},h7e=(t,e)=>t.trim().split(/\s+/).map(r=>g7e(r,e)).join(" "),g7e=(t,e)=>{vi("caret",t,e);let r=e.loose?sl[wa.CARETLOOSE]:sl[wa.CARET],s=e.includePrerelease?"-0":"";return t.replace(r,(a,n,c,f,p)=>{vi("caret",t,a,n,c,f,p);let h;return Ba(n)?h="":Ba(c)?h=`>=${n}.0.0${s} <${+n+1}.0.0-0`:Ba(f)?n==="0"?h=`>=${n}.${c}.0${s} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.0${s} <${+n+1}.0.0-0`:p?(vi("replaceCaret pr",p),n==="0"?c==="0"?h=`>=${n}.${c}.${f}-${p} <${n}.${c}.${+f+1}-0`:h=`>=${n}.${c}.${f}-${p} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.${f}-${p} <${+n+1}.0.0-0`):(vi("no pr"),n==="0"?c==="0"?h=`>=${n}.${c}.${f}${s} <${n}.${c}.${+f+1}-0`:h=`>=${n}.${c}.${f}${s} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.${f} <${+n+1}.0.0-0`),vi("caret return",h),h})},d7e=(t,e)=>(vi("replaceXRanges",t,e),t.split(/\s+/).map(r=>m7e(r,e)).join(" ")),m7e=(t,e)=>{t=t.trim();let r=e.loose?sl[wa.XRANGELOOSE]:sl[wa.XRANGE];return t.replace(r,(s,a,n,c,f,p)=>{vi("xRange",t,s,a,n,c,f,p);let h=Ba(n),E=h||Ba(c),C=E||Ba(f),S=C;return a==="="&&S&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?s="<0.0.0-0":s="*":a&&S?(E&&(c=0),f=0,a===">"?(a=">=",E?(n=+n+1,c=0,f=0):(c=+c+1,f=0)):a==="<="&&(a="<",E?n=+n+1:c=+c+1),a==="<"&&(p="-0"),s=`${a+n}.${c}.${f}${p}`):E?s=`>=${n}.0.0${p} <${+n+1}.0.0-0`:C&&(s=`>=${n}.${c}.0${p} <${n}.${+c+1}.0-0`),vi("xRange return",s),s})},y7e=(t,e)=>(vi("replaceStars",t,e),t.trim().replace(sl[wa.STAR],"")),E7e=(t,e)=>(vi("replaceGTE0",t,e),t.trim().replace(sl[e.includePrerelease?wa.GTE0PRE:wa.GTE0],"")),I7e=t=>(e,r,s,a,n,c,f,p,h,E,C,S,b)=>(Ba(s)?r="":Ba(a)?r=`>=${s}.0.0${t?"-0":""}`:Ba(n)?r=`>=${s}.${a}.0${t?"-0":""}`:c?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Ba(h)?p="":Ba(E)?p=`<${+h+1}.0.0-0`:Ba(C)?p=`<${h}.${+E+1}.0-0`:S?p=`<=${h}.${E}.${C}-${S}`:t?p=`<${h}.${E}.${+C+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),C7e=(t,e,r)=>{for(let s=0;s0){let a=t[s].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var AB=_((CTt,Tie)=>{var pB=Symbol("SemVer ANY"),j_=class t{static get ANY(){return pB}constructor(e,r){if(r=bie(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),H_("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===pB?this.value="":this.value=this.operator+this.semver.version,H_("comp",this)}parse(e){let r=this.options.loose?xie[kie.COMPARATORLOOSE]:xie[kie.COMPARATOR],s=e.match(r);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new Qie(s[2],this.options.loose):this.semver=pB}toString(){return this.value}test(e){if(H_("Comparator.test",e,this.options.loose),this.semver===pB||e===pB)return!0;if(typeof e=="string")try{e=new Qie(e,this.options)}catch{return!1}return __(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Rie(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new Rie(this.value,r).test(e.semver):(r=bie(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||__(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||__(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Tie.exports=j_;var bie=qx(),{safeRe:xie,t:kie}=vE(),__=T_(),H_=lB(),Qie=jo(),Rie=vc()});var hB=_((wTt,Fie)=>{var w7e=vc(),B7e=(t,e,r)=>{try{e=new w7e(e,r)}catch{return!1}return e.test(t)};Fie.exports=B7e});var Oie=_((BTt,Nie)=>{var v7e=vc(),S7e=(t,e)=>new v7e(t,e).set.map(r=>r.map(s=>s.value).join(" ").trim().split(" "));Nie.exports=S7e});var Mie=_((vTt,Lie)=>{var D7e=jo(),P7e=vc(),b7e=(t,e,r)=>{let s=null,a=null,n=null;try{n=new P7e(e,r)}catch{return null}return t.forEach(c=>{n.test(c)&&(!s||a.compare(c)===-1)&&(s=c,a=new D7e(s,r))}),s};Lie.exports=b7e});var _ie=_((STt,Uie)=>{var x7e=jo(),k7e=vc(),Q7e=(t,e,r)=>{let s=null,a=null,n=null;try{n=new k7e(e,r)}catch{return null}return t.forEach(c=>{n.test(c)&&(!s||a.compare(c)===1)&&(s=c,a=new x7e(s,r))}),s};Uie.exports=Q7e});var Gie=_((DTt,jie)=>{var G_=jo(),R7e=vc(),Hie=cB(),T7e=(t,e)=>{t=new R7e(t,e);let r=new G_("0.0.0");if(t.test(r)||(r=new G_("0.0.0-0"),t.test(r)))return r;r=null;for(let s=0;s{let f=new G_(c.semver.version);switch(c.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!n||Hie(f,n))&&(n=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${c.operator}`)}}),n&&(!r||Hie(r,n))&&(r=n)}return r&&t.test(r)?r:null};jie.exports=T7e});var Wie=_((PTt,qie)=>{var F7e=vc(),N7e=(t,e)=>{try{return new F7e(t,e).range||"*"}catch{return null}};qie.exports=N7e});var tk=_((bTt,Kie)=>{var O7e=jo(),Jie=AB(),{ANY:L7e}=Jie,M7e=vc(),U7e=hB(),Yie=cB(),Vie=Jx(),_7e=zx(),H7e=Kx(),j7e=(t,e,r,s)=>{t=new O7e(t,s),e=new M7e(e,s);let a,n,c,f,p;switch(r){case">":a=Yie,n=_7e,c=Vie,f=">",p=">=";break;case"<":a=Vie,n=H7e,c=Yie,f="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(U7e(t,e,s))return!1;for(let h=0;h{b.semver===L7e&&(b=new Jie(">=0.0.0")),C=C||b,S=S||b,a(b.semver,C.semver,s)?C=b:c(b.semver,S.semver,s)&&(S=b)}),C.operator===f||C.operator===p||(!S.operator||S.operator===f)&&n(t,S.semver))return!1;if(S.operator===p&&c(t,S.semver))return!1}return!0};Kie.exports=j7e});var Zie=_((xTt,zie)=>{var G7e=tk(),q7e=(t,e,r)=>G7e(t,e,">",r);zie.exports=q7e});var $ie=_((kTt,Xie)=>{var W7e=tk(),Y7e=(t,e,r)=>W7e(t,e,"<",r);Xie.exports=Y7e});var rse=_((QTt,tse)=>{var ese=vc(),V7e=(t,e,r)=>(t=new ese(t,r),e=new ese(e,r),t.intersects(e,r));tse.exports=V7e});var ise=_((RTt,nse)=>{var J7e=hB(),K7e=Bc();nse.exports=(t,e,r)=>{let s=[],a=null,n=null,c=t.sort((E,C)=>K7e(E,C,r));for(let E of c)J7e(E,e,r)?(n=E,a||(a=E)):(n&&s.push([a,n]),n=null,a=null);a&&s.push([a,null]);let f=[];for(let[E,C]of s)E===C?f.push(E):!C&&E===c[0]?f.push("*"):C?E===c[0]?f.push(`<=${C}`):f.push(`${E} - ${C}`):f.push(`>=${E}`);let p=f.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length{var sse=vc(),W_=AB(),{ANY:q_}=W_,gB=hB(),Y_=Bc(),z7e=(t,e,r={})=>{if(t===e)return!0;t=new sse(t,r),e=new sse(e,r);let s=!1;e:for(let a of t.set){for(let n of e.set){let c=X7e(a,n,r);if(s=s||c!==null,c)continue e}if(s)return!1}return!0},Z7e=[new W_(">=0.0.0-0")],ose=[new W_(">=0.0.0")],X7e=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===q_){if(e.length===1&&e[0].semver===q_)return!0;r.includePrerelease?t=Z7e:t=ose}if(e.length===1&&e[0].semver===q_){if(r.includePrerelease)return!0;e=ose}let s=new Set,a,n;for(let b of t)b.operator===">"||b.operator===">="?a=ase(a,b,r):b.operator==="<"||b.operator==="<="?n=lse(n,b,r):s.add(b.semver);if(s.size>1)return null;let c;if(a&&n){if(c=Y_(a.semver,n.semver,r),c>0)return null;if(c===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let b of s){if(a&&!gB(b,String(a),r)||n&&!gB(b,String(n),r))return null;for(let I of e)if(!gB(b,String(I),r))return!1;return!0}let f,p,h,E,C=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,S=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;C&&C.prerelease.length===1&&n.operator==="<"&&C.prerelease[0]===0&&(C=!1);for(let b of e){if(E=E||b.operator===">"||b.operator===">=",h=h||b.operator==="<"||b.operator==="<=",a){if(S&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===S.major&&b.semver.minor===S.minor&&b.semver.patch===S.patch&&(S=!1),b.operator===">"||b.operator===">="){if(f=ase(a,b,r),f===b&&f!==a)return!1}else if(a.operator===">="&&!gB(a.semver,String(b),r))return!1}if(n){if(C&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===C.major&&b.semver.minor===C.minor&&b.semver.patch===C.patch&&(C=!1),b.operator==="<"||b.operator==="<="){if(p=lse(n,b,r),p===b&&p!==n)return!1}else if(n.operator==="<="&&!gB(n.semver,String(b),r))return!1}if(!b.operator&&(n||a)&&c!==0)return!1}return!(a&&h&&!n&&c!==0||n&&E&&!a&&c!==0||S||C)},ase=(t,e,r)=>{if(!t)return e;let s=Y_(t.semver,e.semver,r);return s>0?t:s<0||e.operator===">"&&t.operator===">="?e:t},lse=(t,e,r)=>{if(!t)return e;let s=Y_(t.semver,e.semver,r);return s<0?t:s>0||e.operator==="<"&&t.operator==="<="?e:t};cse.exports=z7e});var Ai=_((FTt,pse)=>{var V_=vE(),fse=aB(),$7e=jo(),Ase=x_(),eJe=Md(),tJe=Rne(),rJe=Fne(),nJe=Lne(),iJe=_ne(),sJe=jne(),oJe=qne(),aJe=Yne(),lJe=Jne(),cJe=Bc(),uJe=Xne(),fJe=eie(),AJe=Vx(),pJe=iie(),hJe=oie(),gJe=cB(),dJe=Jx(),mJe=Q_(),yJe=R_(),EJe=Kx(),IJe=zx(),CJe=T_(),wJe=gie(),BJe=AB(),vJe=vc(),SJe=hB(),DJe=Oie(),PJe=Mie(),bJe=_ie(),xJe=Gie(),kJe=Wie(),QJe=tk(),RJe=Zie(),TJe=$ie(),FJe=rse(),NJe=ise(),OJe=use();pse.exports={parse:eJe,valid:tJe,clean:rJe,inc:nJe,diff:iJe,major:sJe,minor:oJe,patch:aJe,prerelease:lJe,compare:cJe,rcompare:uJe,compareLoose:fJe,compareBuild:AJe,sort:pJe,rsort:hJe,gt:gJe,lt:dJe,eq:mJe,neq:yJe,gte:EJe,lte:IJe,cmp:CJe,coerce:wJe,Comparator:BJe,Range:vJe,satisfies:SJe,toComparators:DJe,maxSatisfying:PJe,minSatisfying:bJe,minVersion:xJe,validRange:kJe,outside:QJe,gtr:RJe,ltr:TJe,intersects:FJe,simplifyRange:NJe,subset:OJe,SemVer:$7e,re:V_.re,src:V_.src,tokens:V_.t,SEMVER_SPEC_VERSION:fse.SEMVER_SPEC_VERSION,RELEASE_TYPES:fse.RELEASE_TYPES,compareIdentifiers:Ase.compareIdentifiers,rcompareIdentifiers:Ase.rcompareIdentifiers}});var gse=_((NTt,hse)=>{"use strict";function LJe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function jd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,jd)}LJe(jd,Error);jd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C0){for(C=1,S=1;C{switch(Re[1]){case"|":return xe|Re[3];case"&":return xe&Re[3];case"^":return xe^Re[3]}},$)},S="!",b=Fe("!",!1),I=function($){return!$},T="(",N=Fe("(",!1),U=")",W=Fe(")",!1),ee=function($){return $},ie=/^[^ \t\n\r()!|&\^]/,ue=Ne([" "," ",` `,"\r","(",")","!","|","&","^"],!0,!1),le=function($){return e.queryPattern.test($)},me=function($){return e.checkFn($)},pe=ke("whitespace"),Be=/^[ \t\n\r]/,Ce=Ne([" "," ",` `,"\r"],!1,!1),g=0,we=0,ye=[{line:1,column:1}],Ae=0,se=[],X=0,De;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function Te(){return t.substring(we,g)}function mt(){return Ue(we,g)}function j($,oe){throw oe=oe!==void 0?oe:Ue(we,g),P([ke($)],t.substring(we,g),oe)}function rt($,oe){throw oe=oe!==void 0?oe:Ue(we,g),w($,oe)}function Fe($,oe){return{type:"literal",text:$,ignoreCase:oe}}function Ne($,oe,xe){return{type:"class",parts:$,inverted:oe,ignoreCase:xe}}function be(){return{type:"any"}}function Ve(){return{type:"end"}}function ke($){return{type:"other",description:$}}function it($){var oe=ye[$],xe;if(oe)return oe;for(xe=$-1;!ye[xe];)xe--;for(oe=ye[xe],oe={line:oe.line,column:oe.column};xe<$;)t.charCodeAt(xe)===10?(oe.line++,oe.column=1):oe.column++,xe++;return ye[$]=oe,oe}function Ue($,oe){var xe=it($),Re=it(oe);return{start:{offset:$,line:xe.line,column:xe.column},end:{offset:oe,line:Re.line,column:Re.column}}}function x($){gAe&&(Ae=g,se=[]),se.push($))}function w($,oe){return new jd($,null,null,oe)}function P($,oe,xe){return new jd(jd.buildMessage($,oe),$,oe,xe)}function y(){var $,oe,xe,Re,lt,Ct,qt,ir;if($=g,oe=F(),oe!==r){for(xe=[],Re=g,lt=Z(),lt!==r?(t.charCodeAt(g)===124?(Ct=n,g++):(Ct=r,X===0&&x(c)),Ct===r&&(t.charCodeAt(g)===38?(Ct=f,g++):(Ct=r,X===0&&x(p)),Ct===r&&(t.charCodeAt(g)===94?(Ct=h,g++):(Ct=r,X===0&&x(E)))),Ct!==r?(qt=Z(),qt!==r?(ir=F(),ir!==r?(lt=[lt,Ct,qt,ir],Re=lt):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Re!==r;)xe.push(Re),Re=g,lt=Z(),lt!==r?(t.charCodeAt(g)===124?(Ct=n,g++):(Ct=r,X===0&&x(c)),Ct===r&&(t.charCodeAt(g)===38?(Ct=f,g++):(Ct=r,X===0&&x(p)),Ct===r&&(t.charCodeAt(g)===94?(Ct=h,g++):(Ct=r,X===0&&x(E)))),Ct!==r?(qt=Z(),qt!==r?(ir=F(),ir!==r?(lt=[lt,Ct,qt,ir],Re=lt):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);xe!==r?(we=$,oe=C(oe,xe),$=oe):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,oe,xe,Re,lt,Ct;return $=g,t.charCodeAt(g)===33?(oe=S,g++):(oe=r,X===0&&x(b)),oe!==r?(xe=F(),xe!==r?(we=$,oe=I(xe),$=oe):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(oe=T,g++):(oe=r,X===0&&x(N)),oe!==r?(xe=Z(),xe!==r?(Re=y(),Re!==r?(lt=Z(),lt!==r?(t.charCodeAt(g)===41?(Ct=U,g++):(Ct=r,X===0&&x(W)),Ct!==r?(we=$,oe=ee(Re),$=oe):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=z())),$}function z(){var $,oe,xe,Re,lt;if($=g,oe=Z(),oe!==r){if(xe=g,Re=[],ie.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,X===0&&x(ue)),lt!==r)for(;lt!==r;)Re.push(lt),ie.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,X===0&&x(ue));else Re=r;Re!==r?xe=t.substring(xe,g):xe=Re,xe!==r?(we=g,Re=le(xe),Re?Re=void 0:Re=r,Re!==r?(we=$,oe=me(xe),$=oe):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function Z(){var $,oe;for(X++,$=[],Be.test(t.charAt(g))?(oe=t.charAt(g),g++):(oe=r,X===0&&x(Ce));oe!==r;)$.push(oe),Be.test(t.charAt(g))?(oe=t.charAt(g),g++):(oe=r,X===0&&x(Ce));return X--,$===r&&(oe=r,X===0&&x(pe)),$}if(De=a(),De!==r&&g===t.length)return De;throw De!==r&&g{var{parse:UJe}=gse();rk.makeParser=(t=/[a-z]+/)=>(e,r)=>UJe(e,{queryPattern:t,checkFn:r});rk.parse=rk.makeParser()});var yse=_((LTt,mse)=>{"use strict";mse.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var J_=_((MTt,Ise)=>{var dB=yse(),Ese={};for(let t of Object.keys(dB))Ese[dB[t]]=t;var hr={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Ise.exports=hr;for(let t of Object.keys(hr)){if(!("channels"in hr[t]))throw new Error("missing channels property: "+t);if(!("labels"in hr[t]))throw new Error("missing channel labels property: "+t);if(hr[t].labels.length!==hr[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=hr[t];delete hr[t].channels,delete hr[t].labels,Object.defineProperty(hr[t],"channels",{value:e}),Object.defineProperty(hr[t],"labels",{value:r})}hr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.min(e,r,s),n=Math.max(e,r,s),c=n-a,f,p;n===a?f=0:e===n?f=(r-s)/c:r===n?f=2+(s-e)/c:s===n&&(f=4+(e-r)/c),f=Math.min(f*60,360),f<0&&(f+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=c/(n+a):p=c/(2-n-a),[f,p*100,h*100]};hr.rgb.hsv=function(t){let e,r,s,a,n,c=t[0]/255,f=t[1]/255,p=t[2]/255,h=Math.max(c,f,p),E=h-Math.min(c,f,p),C=function(S){return(h-S)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=C(c),r=C(f),s=C(p),c===h?a=s-r:f===h?a=1/3+e-s:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};hr.rgb.hwb=function(t){let e=t[0],r=t[1],s=t[2],a=hr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,s));return s=1-1/255*Math.max(e,Math.max(r,s)),[a,n*100,s*100]};hr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.min(1-e,1-r,1-s),n=(1-e-a)/(1-a)||0,c=(1-r-a)/(1-a)||0,f=(1-s-a)/(1-a)||0;return[n*100,c*100,f*100,a*100]};function _Je(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}hr.rgb.keyword=function(t){let e=Ese[t];if(e)return e;let r=1/0,s;for(let a of Object.keys(dB)){let n=dB[a],c=_Je(t,n);c.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92;let a=e*.4124+r*.3576+s*.1805,n=e*.2126+r*.7152+s*.0722,c=e*.0193+r*.1192+s*.9505;return[a*100,n*100,c*100]};hr.rgb.lab=function(t){let e=hr.rgb.xyz(t),r=e[0],s=e[1],a=e[2];r/=95.047,s/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*s-16,c=500*(r-s),f=200*(s-a);return[n,c,f]};hr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,a,n,c;if(r===0)return c=s*255,[c,c,c];s<.5?a=s*(1+r):a=s+r-s*r;let f=2*s-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?c=f+(a-f)*6*n:2*n<1?c=a:3*n<2?c=f+(a-f)*(2/3-n)*6:c=f,p[h]=c*255;return p};hr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,a=r,n=Math.max(s,.01);s*=2,r*=s<=1?s:2-s,a*=n<=1?n:2-n;let c=(s+r)/2,f=s===0?2*a/(n+a):2*r/(s+r);return[e,f*100,c*100]};hr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,s=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),c=255*s*(1-r),f=255*s*(1-r*n),p=255*s*(1-r*(1-n));switch(s*=255,a){case 0:return[s,p,c];case 1:return[f,s,c];case 2:return[c,s,p];case 3:return[c,f,s];case 4:return[p,c,s];case 5:return[s,c,f]}};hr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,a=Math.max(s,.01),n,c;c=(2-r)*s;let f=(2-r)*a;return n=r*a,n/=f<=1?f:2-f,n=n||0,c/=2,[e,n*100,c*100]};hr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,a=r+s,n;a>1&&(r/=a,s/=a);let c=Math.floor(6*e),f=1-s;n=6*e-c,c&1&&(n=1-n);let p=r+n*(f-r),h,E,C;switch(c){default:case 6:case 0:h=f,E=p,C=r;break;case 1:h=p,E=f,C=r;break;case 2:h=r,E=f,C=p;break;case 3:h=r,E=p,C=f;break;case 4:h=p,E=r,C=f;break;case 5:h=f,E=r,C=p;break}return[h*255,E*255,C*255]};hr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),c=1-Math.min(1,r*(1-a)+a),f=1-Math.min(1,s*(1-a)+a);return[n*255,c*255,f*255]};hr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,a,n,c;return a=e*3.2406+r*-1.5372+s*-.4986,n=e*-.9689+r*1.8758+s*.0415,c=e*.0557+r*-.204+s*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),c=Math.min(Math.max(0,c),1),[a*255,n*255,c*255]};hr.xyz.lab=function(t){let e=t[0],r=t[1],s=t[2];e/=95.047,r/=100,s/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;let a=116*r-16,n=500*(e-r),c=200*(r-s);return[a,n,c]};hr.lab.xyz=function(t){let e=t[0],r=t[1],s=t[2],a,n,c;n=(e+16)/116,a=r/500+n,c=n-s/200;let f=n**3,p=a**3,h=c**3;return n=f>.008856?f:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,c=h>.008856?h:(c-16/116)/7.787,a*=95.047,n*=100,c*=108.883,[a,n,c]};hr.lab.lch=function(t){let e=t[0],r=t[1],s=t[2],a;a=Math.atan2(s,r)*360/2/Math.PI,a<0&&(a+=360);let c=Math.sqrt(r*r+s*s);return[e,c,a]};hr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),c=r*Math.sin(a);return[e,n,c]};hr.rgb.ansi16=function(t,e=null){let[r,s,a]=t,n=e===null?hr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let c=30+(Math.round(a/255)<<2|Math.round(s/255)<<1|Math.round(r/255));return n===2&&(c+=60),c};hr.hsv.ansi16=function(t){return hr.rgb.ansi16(hr.hsv.rgb(t),t[2])};hr.rgb.ansi256=function(t){let e=t[0],r=t[1],s=t[2];return e===r&&r===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5)};hr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,s=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[s,a,n]};hr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,s=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,s,a]};hr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};hr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(f=>f+f).join(""));let s=parseInt(r,16),a=s>>16&255,n=s>>8&255,c=s&255;return[a,n,c]};hr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.max(Math.max(e,r),s),n=Math.min(Math.min(e,r),s),c=a-n,f,p;return c<1?f=n/(1-c):f=0,c<=0?p=0:a===e?p=(r-s)/c%6:a===r?p=2+(s-e)/c:p=4+(e-r)/c,p/=6,p%=1,[p*360,c*100,f*100]};hr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=r<.5?2*e*r:2*e*(1-r),a=0;return s<1&&(a=(r-.5*s)/(1-s)),[t[0],s*100,a*100]};hr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=e*r,a=0;return s<1&&(a=(r-s)/(1-s)),[t[0],s*100,a*100]};hr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100;if(r===0)return[s*255,s*255,s*255];let a=[0,0,0],n=e%1*6,c=n%1,f=1-c,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=c,a[2]=0;break;case 1:a[0]=f,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=c;break;case 3:a[0]=0,a[1]=f,a[2]=1;break;case 4:a[0]=c,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=f}return p=(1-r)*s,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};hr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e),a=0;return s>0&&(a=e/s),[t[0],a*100,s*100]};hr.hcg.hsl=function(t){let e=t[1]/100,s=t[2]/100*(1-e)+.5*e,a=0;return s>0&&s<.5?a=e/(2*s):s>=.5&&s<1&&(a=e/(2*(1-s))),[t[0],a*100,s*100]};hr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e);return[t[0],(s-e)*100,(1-s)*100]};hr.hwb.hcg=function(t){let e=t[1]/100,s=1-t[2]/100,a=s-e,n=0;return a<1&&(n=(s-a)/(1-a)),[t[0],a*100,n*100]};hr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};hr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};hr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};hr.gray.hsl=function(t){return[0,0,t[0]]};hr.gray.hsv=hr.gray.hsl;hr.gray.hwb=function(t){return[0,100,t[0]]};hr.gray.cmyk=function(t){return[0,0,0,t[0]]};hr.gray.lab=function(t){return[t[0],0,0]};hr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(s.length)+s};hr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var wse=_((UTt,Cse)=>{var nk=J_();function HJe(){let t={},e=Object.keys(nk);for(let r=e.length,s=0;s{var K_=J_(),WJe=wse(),bE={},YJe=Object.keys(K_);function VJe(t){let e=function(...r){let s=r[0];return s==null?s:(s.length>1&&(r=s),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function JJe(t){let e=function(...r){let s=r[0];if(s==null)return s;s.length>1&&(r=s);let a=t(r);if(typeof a=="object")for(let n=a.length,c=0;c{bE[t]={},Object.defineProperty(bE[t],"channels",{value:K_[t].channels}),Object.defineProperty(bE[t],"labels",{value:K_[t].labels});let e=WJe(t);Object.keys(e).forEach(s=>{let a=e[s];bE[t][s]=JJe(a),bE[t][s].raw=VJe(a)})});Bse.exports=bE});var sk=_((HTt,xse)=>{"use strict";var Sse=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,Dse=(t,e)=>(...r)=>{let s=t(...r);return`\x1B[${38+e};5;${s}m`},Pse=(t,e)=>(...r)=>{let s=t(...r);return`\x1B[${38+e};2;${s[0]};${s[1]};${s[2]}m`},ik=t=>t,bse=(t,e,r)=>[t,e,r],xE=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let s=r();return Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0}),s},enumerable:!0,configurable:!0})},z_,kE=(t,e,r,s)=>{z_===void 0&&(z_=vse());let a=s?10:0,n={};for(let[c,f]of Object.entries(z_)){let p=c==="ansi16"?"ansi":c;c===e?n[p]=t(r,a):typeof f=="object"&&(n[p]=t(f[e],a))}return n};function KJe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,s]of Object.entries(e)){for(let[a,n]of Object.entries(s))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},s[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:s,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",xE(e.color,"ansi",()=>kE(Sse,"ansi16",ik,!1)),xE(e.color,"ansi256",()=>kE(Dse,"ansi256",ik,!1)),xE(e.color,"ansi16m",()=>kE(Pse,"rgb",bse,!1)),xE(e.bgColor,"ansi",()=>kE(Sse,"ansi16",ik,!0)),xE(e.bgColor,"ansi256",()=>kE(Dse,"ansi256",ik,!0)),xE(e.bgColor,"ansi16m",()=>kE(Pse,"rgb",bse,!0)),e}Object.defineProperty(xse,"exports",{enumerable:!0,get:KJe})});var Qse=_((jTt,kse)=>{"use strict";kse.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",s=e.indexOf(r+t),a=e.indexOf("--");return s!==-1&&(a===-1||s{"use strict";var zJe=Ie("os"),Rse=Ie("tty"),Sc=Qse(),{env:Ps}=process,l0;Sc("no-color")||Sc("no-colors")||Sc("color=false")||Sc("color=never")?l0=0:(Sc("color")||Sc("colors")||Sc("color=true")||Sc("color=always"))&&(l0=1);"FORCE_COLOR"in Ps&&(Ps.FORCE_COLOR==="true"?l0=1:Ps.FORCE_COLOR==="false"?l0=0:l0=Ps.FORCE_COLOR.length===0?1:Math.min(parseInt(Ps.FORCE_COLOR,10),3));function Z_(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function X_(t,e){if(l0===0)return 0;if(Sc("color=16m")||Sc("color=full")||Sc("color=truecolor"))return 3;if(Sc("color=256"))return 2;if(t&&!e&&l0===void 0)return 0;let r=l0||0;if(Ps.TERM==="dumb")return r;if(process.platform==="win32"){let s=zJe.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ps)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(s=>s in Ps)||Ps.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in Ps)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ps.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in Ps)return 1;if(Ps.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ps){let s=parseInt((Ps.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ps.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ps.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ps.TERM)||"COLORTERM"in Ps?1:r}function ZJe(t){let e=X_(t,t&&t.isTTY);return Z_(e)}Tse.exports={supportsColor:ZJe,stdout:Z_(X_(!0,Rse.isatty(1))),stderr:Z_(X_(!0,Rse.isatty(2)))}});var Ose=_((qTt,Nse)=>{"use strict";var XJe=(t,e,r)=>{let s=t.indexOf(e);if(s===-1)return t;let a=e.length,n=0,c="";do c+=t.substr(n,s-n)+e+r,n=s+a,s=t.indexOf(e,n);while(s!==-1);return c+=t.substr(n),c},$Je=(t,e,r,s)=>{let a=0,n="";do{let c=t[s-1]==="\r";n+=t.substr(a,(c?s-1:s)-a)+e+(c?`\r `:` `)+r,a=s+1,s=t.indexOf(` `,a)}while(s!==-1);return n+=t.substr(a),n};Nse.exports={stringReplaceAll:XJe,stringEncaseCRLFWithFirstIndex:$Je}});var Hse=_((WTt,_se)=>{"use strict";var eKe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Lse=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,tKe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,rKe=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,nKe=new Map([["n",` `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function Use(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):nKe.get(t)||t}function iKe(t,e){let r=[],s=e.trim().split(/\s*,\s*/g),a;for(let n of s){let c=Number(n);if(!Number.isNaN(c))r.push(c);else if(a=n.match(tKe))r.push(a[2].replace(rKe,(f,p,h)=>p?Use(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function sKe(t){Lse.lastIndex=0;let e=[],r;for(;(r=Lse.exec(t))!==null;){let s=r[1];if(r[2]){let a=iKe(s,r[2]);e.push([s].concat(a))}else e.push([s])}return e}function Mse(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let s=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in s))throw new Error(`Unknown Chalk style: ${a}`);s=n.length>0?s[a](...n):s[a]}return s}_se.exports=(t,e)=>{let r=[],s=[],a=[];if(e.replace(eKe,(n,c,f,p,h,E)=>{if(c)a.push(Use(c));else if(p){let C=a.join("");a=[],s.push(r.length===0?C:Mse(t,r)(C)),r.push({inverse:f,styles:sKe(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");s.push(Mse(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),s.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return s.join("")}});var RE=_((YTt,Vse)=>{"use strict";var mB=sk(),{stdout:e4,stderr:t4}=Fse(),{stringReplaceAll:oKe,stringEncaseCRLFWithFirstIndex:aKe}=Ose(),{isArray:ok}=Array,Gse=["ansi","ansi","ansi256","ansi16m"],QE=Object.create(null),lKe=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=e4?e4.level:0;t.level=e.level===void 0?r:e.level},r4=class{constructor(e){return qse(e)}},qse=t=>{let e={};return lKe(e,t),e.template=(...r)=>Yse(e.template,...r),Object.setPrototypeOf(e,ak.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=r4,e.template};function ak(t){return qse(t)}for(let[t,e]of Object.entries(mB))QE[t]={get(){let r=lk(this,n4(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};QE.visible={get(){let t=lk(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var Wse=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of Wse)QE[t]={get(){let{level:e}=this;return function(...r){let s=n4(mB.color[Gse[e]][t](...r),mB.color.close,this._styler);return lk(this,s,this._isEmpty)}}};for(let t of Wse){let e="bg"+t[0].toUpperCase()+t.slice(1);QE[e]={get(){let{level:r}=this;return function(...s){let a=n4(mB.bgColor[Gse[r]][t](...s),mB.bgColor.close,this._styler);return lk(this,a,this._isEmpty)}}}}var cKe=Object.defineProperties(()=>{},{...QE,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),n4=(t,e,r)=>{let s,a;return r===void 0?(s=t,a=e):(s=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:s,closeAll:a,parent:r}},lk=(t,e,r)=>{let s=(...a)=>ok(a[0])&&ok(a[0].raw)?jse(s,Yse(s,...a)):jse(s,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(s,cKe),s._generator=t,s._styler=e,s._isEmpty=r,s},jse=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:s,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=oKe(e,r.close,r.open),r=r.parent;let n=e.indexOf(` `);return n!==-1&&(e=aKe(e,a,s,n)),s+e+a},$_,Yse=(t,...e)=>{let[r]=e;if(!ok(r)||!ok(r.raw))return e.join(" ");let s=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";Dc.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Dc.find=(t,e)=>t.nodes.find(r=>r.type===e);Dc.exceedsLimit=(t,e,r=1,s)=>s===!1||!Dc.isInteger(t)||!Dc.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=s;Dc.escapeNode=(t,e=0,r)=>{let s=t.nodes[e];s&&(r&&s.type===r||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)};Dc.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Dc.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Dc.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Dc.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Dc.flatten=(...t)=>{let e=[],r=s=>{for(let a=0;a{"use strict";var Jse=uk();Kse.exports=(t,e={})=>{let r=(s,a={})=>{let n=e.escapeInvalid&&Jse.isInvalidBrace(a),c=s.invalid===!0&&e.escapeInvalid===!0,f="";if(s.value)return(n||c)&&Jse.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let p of s.nodes)f+=r(p);return f};return r(t)}});var Zse=_((KTt,zse)=>{"use strict";zse.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var ooe=_((zTt,soe)=>{"use strict";var Xse=Zse(),Gd=(t,e,r)=>{if(Xse(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(Xse(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let s={relaxZeros:!0,...r};typeof s.strictZeros=="boolean"&&(s.relaxZeros=s.strictZeros===!1);let a=String(s.relaxZeros),n=String(s.shorthand),c=String(s.capture),f=String(s.wrap),p=t+":"+e+"="+a+n+c+f;if(Gd.cache.hasOwnProperty(p))return Gd.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let T=t+"|"+e;return s.capture?`(${T})`:s.wrap===!1?T:`(?:${T})`}let C=ioe(t)||ioe(e),S={min:t,max:e,a:h,b:E},b=[],I=[];if(C&&(S.isPadded=C,S.maxLen=String(S.max).length),h<0){let T=E<0?Math.abs(E):1;I=$se(T,Math.abs(h),S,s),h=S.a=0}return E>=0&&(b=$se(h,E,S,s)),S.negatives=I,S.positives=b,S.result=uKe(I,b,s),s.capture===!0?S.result=`(${S.result})`:s.wrap!==!1&&b.length+I.length>1&&(S.result=`(?:${S.result})`),Gd.cache[p]=S,S.result};function uKe(t,e,r){let s=i4(t,e,"-",!1,r)||[],a=i4(e,t,"",!1,r)||[],n=i4(t,e,"-?",!0,r)||[];return s.concat(n).concat(a).join("|")}function fKe(t,e){let r=1,s=1,a=toe(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=toe(t,r);for(a=roe(e+1,s)-1;t1&&f.count.pop(),f.count.push(E.count[0]),f.string=f.pattern+noe(f.count),c=h+1;continue}r.isPadded&&(C=dKe(h,r,s)),E.string=C+E.pattern+noe(E.count),n.push(E),c=h+1,f=E}return n}function i4(t,e,r,s,a){let n=[];for(let c of t){let{string:f}=c;!s&&!eoe(e,"string",f)&&n.push(r+f),s&&eoe(e,"string",f)&&n.push(r+f)}return n}function pKe(t,e){let r=[];for(let s=0;se?1:e>t?-1:0}function eoe(t,e,r){return t.some(s=>s[e]===r)}function toe(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function roe(t,e){return t-t%Math.pow(10,e)}function noe(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function gKe(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function ioe(t){return/^-?(0+)\d/.test(t)}function dKe(t,e,r){if(!e.isPadded)return t;let s=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(s){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${s}}`:`0{${s}}`}}Gd.cache={};Gd.clearCache=()=>Gd.cache={};soe.exports=Gd});var a4=_((ZTt,hoe)=>{"use strict";var mKe=Ie("util"),coe=ooe(),aoe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),yKe=t=>e=>t===!0?Number(e):String(e),s4=t=>typeof t=="number"||typeof t=="string"&&t!=="",yB=t=>Number.isInteger(+t),o4=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},EKe=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,IKe=(t,e,r)=>{if(e>0){let s=t[0]==="-"?"-":"";s&&(t=t.slice(1)),t=s+t.padStart(s?e-1:e,"0")}return r===!1?String(t):t},loe=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((c,f)=>cf?1:0),t.positives.sort((c,f)=>cf?1:0);let r=e.capture?"":"?:",s="",a="",n;return t.positives.length&&(s=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),s&&a?n=`${s}|${a}`:n=s||a,e.wrap?`(${r}${n})`:n},uoe=(t,e,r,s)=>{if(r)return coe(t,e,{wrap:!1,...s});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},foe=(t,e,r)=>{if(Array.isArray(t)){let s=r.wrap===!0,a=r.capture?"":"?:";return s?`(${a}${t.join("|")})`:t.join("|")}return coe(t,e,r)},Aoe=(...t)=>new RangeError("Invalid range arguments: "+mKe.inspect(...t)),poe=(t,e,r)=>{if(r.strictRanges===!0)throw Aoe([t,e]);return[]},wKe=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},BKe=(t,e,r=1,s={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(s.strictRanges===!0)throw Aoe([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let c=a>n,f=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=o4(f)||o4(p)||o4(h),C=E?Math.max(f.length,p.length,h.length):0,S=E===!1&&EKe(t,e,s)===!1,b=s.transform||yKe(S);if(s.toRegex&&r===1)return uoe(loe(t,C),loe(e,C),!0,s);let I={negatives:[],positives:[]},T=W=>I[W<0?"negatives":"positives"].push(Math.abs(W)),N=[],U=0;for(;c?a>=n:a<=n;)s.toRegex===!0&&r>1?T(a):N.push(IKe(b(a,U),C,S)),a=c?a-r:a+r,U++;return s.toRegex===!0?r>1?CKe(I,s):foe(N,null,{wrap:!1,...s}):N},vKe=(t,e,r=1,s={})=>{if(!yB(t)&&t.length>1||!yB(e)&&e.length>1)return poe(t,e,s);let a=s.transform||(S=>String.fromCharCode(S)),n=`${t}`.charCodeAt(0),c=`${e}`.charCodeAt(0),f=n>c,p=Math.min(n,c),h=Math.max(n,c);if(s.toRegex&&r===1)return uoe(p,h,!1,s);let E=[],C=0;for(;f?n>=c:n<=c;)E.push(a(n,C)),n=f?n-r:n+r,C++;return s.toRegex===!0?foe(E,null,{wrap:!1,options:s}):E},Ak=(t,e,r,s={})=>{if(e==null&&s4(t))return[t];if(!s4(t)||!s4(e))return poe(t,e,s);if(typeof r=="function")return Ak(t,e,1,{transform:r});if(aoe(r))return Ak(t,e,0,r);let a={...s};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,yB(r)?yB(t)&&yB(e)?BKe(t,e,r,a):vKe(t,e,Math.max(Math.abs(r),1),a):r!=null&&!aoe(r)?wKe(r,a):Ak(t,e,1,r)};hoe.exports=Ak});var moe=_((XTt,doe)=>{"use strict";var SKe=a4(),goe=uk(),DKe=(t,e={})=>{let r=(s,a={})=>{let n=goe.isInvalidBrace(a),c=s.invalid===!0&&e.escapeInvalid===!0,f=n===!0||c===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(s.isOpen===!0||s.isClose===!0)return p+s.value;if(s.type==="open")return f?p+s.value:"(";if(s.type==="close")return f?p+s.value:")";if(s.type==="comma")return s.prev.type==="comma"?"":f?s.value:"|";if(s.value)return s.value;if(s.nodes&&s.ranges>0){let E=goe.reduce(s.nodes),C=SKe(...E,{...e,wrap:!1,toRegex:!0});if(C.length!==0)return E.length>1&&C.length>1?`(${C})`:C}if(s.nodes)for(let E of s.nodes)h+=r(E,s);return h};return r(t)};doe.exports=DKe});var Ioe=_(($Tt,Eoe)=>{"use strict";var PKe=a4(),yoe=fk(),TE=uk(),qd=(t="",e="",r=!1)=>{let s=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?TE.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)s.push(qd(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),s.push(Array.isArray(n)?qd(a,n,r):a+n);return TE.flatten(s)},bKe=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,s=(a,n={})=>{a.queue=[];let c=n,f=n.queue;for(;c.type!=="brace"&&c.type!=="root"&&c.parent;)c=c.parent,f=c.queue;if(a.invalid||a.dollar){f.push(qd(f.pop(),yoe(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){f.push(qd(f.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let C=TE.reduce(a.nodes);if(TE.exceedsLimit(...C,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let S=PKe(...C,e);S.length===0&&(S=yoe(a,e)),f.push(qd(f.pop(),S)),a.nodes=[];return}let p=TE.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let C=0;C{"use strict";Coe.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Poe=_((tFt,Doe)=>{"use strict";var xKe=fk(),{MAX_LENGTH:Boe,CHAR_BACKSLASH:l4,CHAR_BACKTICK:kKe,CHAR_COMMA:QKe,CHAR_DOT:RKe,CHAR_LEFT_PARENTHESES:TKe,CHAR_RIGHT_PARENTHESES:FKe,CHAR_LEFT_CURLY_BRACE:NKe,CHAR_RIGHT_CURLY_BRACE:OKe,CHAR_LEFT_SQUARE_BRACKET:voe,CHAR_RIGHT_SQUARE_BRACKET:Soe,CHAR_DOUBLE_QUOTE:LKe,CHAR_SINGLE_QUOTE:MKe,CHAR_NO_BREAK_SPACE:UKe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:_Ke}=woe(),HKe=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},s=typeof r.maxLength=="number"?Math.min(Boe,r.maxLength):Boe;if(t.length>s)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${s})`);let a={type:"root",input:t,nodes:[]},n=[a],c=a,f=a,p=0,h=t.length,E=0,C=0,S,b={},I=()=>t[E++],T=N=>{if(N.type==="text"&&f.type==="dot"&&(f.type="text"),f&&f.type==="text"&&N.type==="text"){f.value+=N.value;return}return c.nodes.push(N),N.parent=c,N.prev=f,f=N,N};for(T({type:"bos"});E0){if(c.ranges>0){c.ranges=0;let N=c.nodes.shift();c.nodes=[N,{type:"text",value:xKe(c)}]}T({type:"comma",value:S}),c.commas++;continue}if(S===RKe&&C>0&&c.commas===0){let N=c.nodes;if(C===0||N.length===0){T({type:"text",value:S});continue}if(f.type==="dot"){if(c.range=[],f.value+=S,f.type="range",c.nodes.length!==3&&c.nodes.length!==5){c.invalid=!0,c.ranges=0,f.type="text";continue}c.ranges++,c.args=[];continue}if(f.type==="range"){N.pop();let U=N[N.length-1];U.value+=f.value+S,f=U,c.ranges--;continue}T({type:"dot",value:S});continue}T({type:"text",value:S})}do if(c=n.pop(),c.type!=="root"){c.nodes.forEach(W=>{W.nodes||(W.type==="open"&&(W.isOpen=!0),W.type==="close"&&(W.isClose=!0),W.nodes||(W.type="text"),W.invalid=!0)});let N=n[n.length-1],U=N.nodes.indexOf(c);N.nodes.splice(U,1,...c.nodes)}while(n.length>0);return T({type:"eos"}),a};Doe.exports=HKe});var koe=_((rFt,xoe)=>{"use strict";var boe=fk(),jKe=moe(),GKe=Ioe(),qKe=Poe(),jl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let s of t){let a=jl.create(s,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(jl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};jl.parse=(t,e={})=>qKe(t,e);jl.stringify=(t,e={})=>boe(typeof t=="string"?jl.parse(t,e):t,e);jl.compile=(t,e={})=>(typeof t=="string"&&(t=jl.parse(t,e)),jKe(t,e));jl.expand=(t,e={})=>{typeof t=="string"&&(t=jl.parse(t,e));let r=GKe(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};jl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?jl.compile(t,e):jl.expand(t,e);xoe.exports=jl});var EB=_((nFt,Noe)=>{"use strict";var WKe=Ie("path"),Vf="\\\\/",Qoe=`[^${Vf}]`,Dp="\\.",YKe="\\+",VKe="\\?",pk="\\/",JKe="(?=.)",Roe="[^/]",c4=`(?:${pk}|$)`,Toe=`(?:^|${pk})`,u4=`${Dp}{1,2}${c4}`,KKe=`(?!${Dp})`,zKe=`(?!${Toe}${u4})`,ZKe=`(?!${Dp}{0,1}${c4})`,XKe=`(?!${u4})`,$Ke=`[^.${pk}]`,eze=`${Roe}*?`,Foe={DOT_LITERAL:Dp,PLUS_LITERAL:YKe,QMARK_LITERAL:VKe,SLASH_LITERAL:pk,ONE_CHAR:JKe,QMARK:Roe,END_ANCHOR:c4,DOTS_SLASH:u4,NO_DOT:KKe,NO_DOTS:zKe,NO_DOT_SLASH:ZKe,NO_DOTS_SLASH:XKe,QMARK_NO_DOT:$Ke,STAR:eze,START_ANCHOR:Toe},tze={...Foe,SLASH_LITERAL:`[${Vf}]`,QMARK:Qoe,STAR:`${Qoe}*?`,DOTS_SLASH:`${Dp}{1,2}(?:[${Vf}]|$)`,NO_DOT:`(?!${Dp})`,NO_DOTS:`(?!(?:^|[${Vf}])${Dp}{1,2}(?:[${Vf}]|$))`,NO_DOT_SLASH:`(?!${Dp}{0,1}(?:[${Vf}]|$))`,NO_DOTS_SLASH:`(?!${Dp}{1,2}(?:[${Vf}]|$))`,QMARK_NO_DOT:`[^.${Vf}]`,START_ANCHOR:`(?:^|[${Vf}])`,END_ANCHOR:`(?:[${Vf}]|$)`},rze={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Noe.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:rze,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:WKe.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?tze:Foe}}});var IB=_(ol=>{"use strict";var nze=Ie("path"),ize=process.platform==="win32",{REGEX_BACKSLASH:sze,REGEX_REMOVE_BACKSLASH:oze,REGEX_SPECIAL_CHARS:aze,REGEX_SPECIAL_CHARS_GLOBAL:lze}=EB();ol.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);ol.hasRegexChars=t=>aze.test(t);ol.isRegexChar=t=>t.length===1&&ol.hasRegexChars(t);ol.escapeRegex=t=>t.replace(lze,"\\$1");ol.toPosixSlashes=t=>t.replace(sze,"/");ol.removeBackslashes=t=>t.replace(oze,e=>e==="\\"?"":e);ol.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};ol.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:ize===!0||nze.sep==="\\";ol.escapeLast=(t,e,r)=>{let s=t.lastIndexOf(e,r);return s===-1?t:t[s-1]==="\\"?ol.escapeLast(t,e,s-1):`${t.slice(0,s)}\\${t.slice(s)}`};ol.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};ol.wrapOutput=(t,e={},r={})=>{let s=r.contains?"":"^",a=r.contains?"":"$",n=`${s}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var Goe=_((sFt,joe)=>{"use strict";var Ooe=IB(),{CHAR_ASTERISK:f4,CHAR_AT:cze,CHAR_BACKWARD_SLASH:CB,CHAR_COMMA:uze,CHAR_DOT:A4,CHAR_EXCLAMATION_MARK:p4,CHAR_FORWARD_SLASH:Hoe,CHAR_LEFT_CURLY_BRACE:h4,CHAR_LEFT_PARENTHESES:g4,CHAR_LEFT_SQUARE_BRACKET:fze,CHAR_PLUS:Aze,CHAR_QUESTION_MARK:Loe,CHAR_RIGHT_CURLY_BRACE:pze,CHAR_RIGHT_PARENTHESES:Moe,CHAR_RIGHT_SQUARE_BRACKET:hze}=EB(),Uoe=t=>t===Hoe||t===CB,_oe=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},gze=(t,e)=>{let r=e||{},s=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],c=[],f=[],p=t,h=-1,E=0,C=0,S=!1,b=!1,I=!1,T=!1,N=!1,U=!1,W=!1,ee=!1,ie=!1,ue=!1,le=0,me,pe,Be={value:"",depth:0,isGlob:!1},Ce=()=>h>=s,g=()=>p.charCodeAt(h+1),we=()=>(me=pe,p.charCodeAt(++h));for(;h0&&(Ae=p.slice(0,E),p=p.slice(E),C-=E),ye&&I===!0&&C>0?(ye=p.slice(0,C),se=p.slice(C)):I===!0?(ye="",se=p):ye=p,ye&&ye!==""&&ye!=="/"&&ye!==p&&Uoe(ye.charCodeAt(ye.length-1))&&(ye=ye.slice(0,-1)),r.unescape===!0&&(se&&(se=Ooe.removeBackslashes(se)),ye&&W===!0&&(ye=Ooe.removeBackslashes(ye)));let X={prefix:Ae,input:t,start:E,base:ye,glob:se,isBrace:S,isBracket:b,isGlob:I,isExtglob:T,isGlobstar:N,negated:ee,negatedExtglob:ie};if(r.tokens===!0&&(X.maxDepth=0,Uoe(pe)||c.push(Be),X.tokens=c),r.parts===!0||r.tokens===!0){let De;for(let Te=0;Te{"use strict";var hk=EB(),Gl=IB(),{MAX_LENGTH:gk,POSIX_REGEX_SOURCE:dze,REGEX_NON_SPECIAL_CHARS:mze,REGEX_SPECIAL_CHARS_BACKREF:yze,REPLACEMENTS:qoe}=hk,Eze=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>Gl.escapeRegex(a)).join("..")}return r},FE=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,d4=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=qoe[t]||t;let r={...e},s=typeof r.maxLength=="number"?Math.min(gk,r.maxLength):gk,a=t.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);let n={type:"bos",value:"",output:r.prepend||""},c=[n],f=r.capture?"":"?:",p=Gl.isWindows(e),h=hk.globChars(p),E=hk.extglobChars(h),{DOT_LITERAL:C,PLUS_LITERAL:S,SLASH_LITERAL:b,ONE_CHAR:I,DOTS_SLASH:T,NO_DOT:N,NO_DOT_SLASH:U,NO_DOTS_SLASH:W,QMARK:ee,QMARK_NO_DOT:ie,STAR:ue,START_ANCHOR:le}=h,me=x=>`(${f}(?:(?!${le}${x.dot?T:C}).)*?)`,pe=r.dot?"":N,Be=r.dot?ee:ie,Ce=r.bash===!0?me(r):ue;r.capture&&(Ce=`(${Ce})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:c};t=Gl.removePrefix(t,g),a=t.length;let we=[],ye=[],Ae=[],se=n,X,De=()=>g.index===a-1,Te=g.peek=(x=1)=>t[g.index+x],mt=g.advance=()=>t[++g.index]||"",j=()=>t.slice(g.index+1),rt=(x="",w=0)=>{g.consumed+=x,g.index+=w},Fe=x=>{g.output+=x.output!=null?x.output:x.value,rt(x.value)},Ne=()=>{let x=1;for(;Te()==="!"&&(Te(2)!=="("||Te(3)==="?");)mt(),g.start++,x++;return x%2===0?!1:(g.negated=!0,g.start++,!0)},be=x=>{g[x]++,Ae.push(x)},Ve=x=>{g[x]--,Ae.pop()},ke=x=>{if(se.type==="globstar"){let w=g.braces>0&&(x.type==="comma"||x.type==="brace"),P=x.extglob===!0||we.length&&(x.type==="pipe"||x.type==="paren");x.type!=="slash"&&x.type!=="paren"&&!w&&!P&&(g.output=g.output.slice(0,-se.output.length),se.type="star",se.value="*",se.output=Ce,g.output+=se.output)}if(we.length&&x.type!=="paren"&&(we[we.length-1].inner+=x.value),(x.value||x.output)&&Fe(x),se&&se.type==="text"&&x.type==="text"){se.value+=x.value,se.output=(se.output||"")+x.value;return}x.prev=se,c.push(x),se=x},it=(x,w)=>{let P={...E[w],conditions:1,inner:""};P.prev=se,P.parens=g.parens,P.output=g.output;let y=(r.capture?"(":"")+P.open;be("parens"),ke({type:x,value:w,output:g.output?"":I}),ke({type:"paren",extglob:!0,value:mt(),output:y}),we.push(P)},Ue=x=>{let w=x.close+(r.capture?")":""),P;if(x.type==="negate"){let y=Ce;if(x.inner&&x.inner.length>1&&x.inner.includes("/")&&(y=me(r)),(y!==Ce||De()||/^\)+$/.test(j()))&&(w=x.close=`)$))${y}`),x.inner.includes("*")&&(P=j())&&/^\.[^\\/.]+$/.test(P)){let F=d4(P,{...e,fastpaths:!1}).output;w=x.close=`)${F})${y})`}x.prev.type==="bos"&&(g.negatedExtglob=!0)}ke({type:"paren",extglob:!0,value:X,output:w}),Ve("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let x=!1,w=t.replace(yze,(P,y,F,z,Z,$)=>z==="\\"?(x=!0,P):z==="?"?y?y+z+(Z?ee.repeat(Z.length):""):$===0?Be+(Z?ee.repeat(Z.length):""):ee.repeat(F.length):z==="."?C.repeat(F.length):z==="*"?y?y+z+(Z?Ce:""):Ce:y?P:`\\${P}`);return x===!0&&(r.unescape===!0?w=w.replace(/\\/g,""):w=w.replace(/\\+/g,P=>P.length%2===0?"\\\\":P?"\\":"")),w===t&&r.contains===!0?(g.output=t,g):(g.output=Gl.wrapOutput(w,g,e),g)}for(;!De();){if(X=mt(),X==="\0")continue;if(X==="\\"){let P=Te();if(P==="/"&&r.bash!==!0||P==="."||P===";")continue;if(!P){X+="\\",ke({type:"text",value:X});continue}let y=/^\\+/.exec(j()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(X+="\\")),r.unescape===!0?X=mt():X+=mt(),g.brackets===0){ke({type:"text",value:X});continue}}if(g.brackets>0&&(X!=="]"||se.value==="["||se.value==="[^")){if(r.posix!==!1&&X===":"){let P=se.value.slice(1);if(P.includes("[")&&(se.posix=!0,P.includes(":"))){let y=se.value.lastIndexOf("["),F=se.value.slice(0,y),z=se.value.slice(y+2),Z=dze[z];if(Z){se.value=F+Z,g.backtrack=!0,mt(),!n.output&&c.indexOf(se)===1&&(n.output=I);continue}}}(X==="["&&Te()!==":"||X==="-"&&Te()==="]")&&(X=`\\${X}`),X==="]"&&(se.value==="["||se.value==="[^")&&(X=`\\${X}`),r.posix===!0&&X==="!"&&se.value==="["&&(X="^"),se.value+=X,Fe({value:X});continue}if(g.quotes===1&&X!=='"'){X=Gl.escapeRegex(X),se.value+=X,Fe({value:X});continue}if(X==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&ke({type:"text",value:X});continue}if(X==="("){be("parens"),ke({type:"paren",value:X});continue}if(X===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(FE("opening","("));let P=we[we.length-1];if(P&&g.parens===P.parens+1){Ue(we.pop());continue}ke({type:"paren",value:X,output:g.parens?")":"\\)"}),Ve("parens");continue}if(X==="["){if(r.nobracket===!0||!j().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(FE("closing","]"));X=`\\${X}`}else be("brackets");ke({type:"bracket",value:X});continue}if(X==="]"){if(r.nobracket===!0||se&&se.type==="bracket"&&se.value.length===1){ke({type:"text",value:X,output:`\\${X}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(FE("opening","["));ke({type:"text",value:X,output:`\\${X}`});continue}Ve("brackets");let P=se.value.slice(1);if(se.posix!==!0&&P[0]==="^"&&!P.includes("/")&&(X=`/${X}`),se.value+=X,Fe({value:X}),r.literalBrackets===!1||Gl.hasRegexChars(P))continue;let y=Gl.escapeRegex(se.value);if(g.output=g.output.slice(0,-se.value.length),r.literalBrackets===!0){g.output+=y,se.value=y;continue}se.value=`(${f}${y}|${se.value})`,g.output+=se.value;continue}if(X==="{"&&r.nobrace!==!0){be("braces");let P={type:"brace",value:X,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};ye.push(P),ke(P);continue}if(X==="}"){let P=ye[ye.length-1];if(r.nobrace===!0||!P){ke({type:"text",value:X,output:X});continue}let y=")";if(P.dots===!0){let F=c.slice(),z=[];for(let Z=F.length-1;Z>=0&&(c.pop(),F[Z].type!=="brace");Z--)F[Z].type!=="dots"&&z.unshift(F[Z].value);y=Eze(z,r),g.backtrack=!0}if(P.comma!==!0&&P.dots!==!0){let F=g.output.slice(0,P.outputIndex),z=g.tokens.slice(P.tokensIndex);P.value=P.output="\\{",X=y="\\}",g.output=F;for(let Z of z)g.output+=Z.output||Z.value}ke({type:"brace",value:X,output:y}),Ve("braces"),ye.pop();continue}if(X==="|"){we.length>0&&we[we.length-1].conditions++,ke({type:"text",value:X});continue}if(X===","){let P=X,y=ye[ye.length-1];y&&Ae[Ae.length-1]==="braces"&&(y.comma=!0,P="|"),ke({type:"comma",value:X,output:P});continue}if(X==="/"){if(se.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",c.pop(),se=n;continue}ke({type:"slash",value:X,output:b});continue}if(X==="."){if(g.braces>0&&se.type==="dot"){se.value==="."&&(se.output=C);let P=ye[ye.length-1];se.type="dots",se.output+=X,se.value+=X,P.dots=!0;continue}if(g.braces+g.parens===0&&se.type!=="bos"&&se.type!=="slash"){ke({type:"text",value:X,output:C});continue}ke({type:"dot",value:X,output:C});continue}if(X==="?"){if(!(se&&se.value==="(")&&r.noextglob!==!0&&Te()==="("&&Te(2)!=="?"){it("qmark",X);continue}if(se&&se.type==="paren"){let y=Te(),F=X;if(y==="<"&&!Gl.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(se.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(j()))&&(F=`\\${X}`),ke({type:"text",value:X,output:F});continue}if(r.dot!==!0&&(se.type==="slash"||se.type==="bos")){ke({type:"qmark",value:X,output:ie});continue}ke({type:"qmark",value:X,output:ee});continue}if(X==="!"){if(r.noextglob!==!0&&Te()==="("&&(Te(2)!=="?"||!/[!=<:]/.test(Te(3)))){it("negate",X);continue}if(r.nonegate!==!0&&g.index===0){Ne();continue}}if(X==="+"){if(r.noextglob!==!0&&Te()==="("&&Te(2)!=="?"){it("plus",X);continue}if(se&&se.value==="("||r.regex===!1){ke({type:"plus",value:X,output:S});continue}if(se&&(se.type==="bracket"||se.type==="paren"||se.type==="brace")||g.parens>0){ke({type:"plus",value:X});continue}ke({type:"plus",value:S});continue}if(X==="@"){if(r.noextglob!==!0&&Te()==="("&&Te(2)!=="?"){ke({type:"at",extglob:!0,value:X,output:""});continue}ke({type:"text",value:X});continue}if(X!=="*"){(X==="$"||X==="^")&&(X=`\\${X}`);let P=mze.exec(j());P&&(X+=P[0],g.index+=P[0].length),ke({type:"text",value:X});continue}if(se&&(se.type==="globstar"||se.star===!0)){se.type="star",se.star=!0,se.value+=X,se.output=Ce,g.backtrack=!0,g.globstar=!0,rt(X);continue}let x=j();if(r.noextglob!==!0&&/^\([^?]/.test(x)){it("star",X);continue}if(se.type==="star"){if(r.noglobstar===!0){rt(X);continue}let P=se.prev,y=P.prev,F=P.type==="slash"||P.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||x[0]&&x[0]!=="/")){ke({type:"star",value:X,output:""});continue}let Z=g.braces>0&&(P.type==="comma"||P.type==="brace"),$=we.length&&(P.type==="pipe"||P.type==="paren");if(!F&&P.type!=="paren"&&!Z&&!$){ke({type:"star",value:X,output:""});continue}for(;x.slice(0,3)==="/**";){let oe=t[g.index+4];if(oe&&oe!=="/")break;x=x.slice(3),rt("/**",3)}if(P.type==="bos"&&De()){se.type="globstar",se.value+=X,se.output=me(r),g.output=se.output,g.globstar=!0,rt(X);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&!z&&De()){g.output=g.output.slice(0,-(P.output+se.output).length),P.output=`(?:${P.output}`,se.type="globstar",se.output=me(r)+(r.strictSlashes?")":"|$)"),se.value+=X,g.globstar=!0,g.output+=P.output+se.output,rt(X);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&x[0]==="/"){let oe=x[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(P.output+se.output).length),P.output=`(?:${P.output}`,se.type="globstar",se.output=`${me(r)}${b}|${b}${oe})`,se.value+=X,g.output+=P.output+se.output,g.globstar=!0,rt(X+mt()),ke({type:"slash",value:"/",output:""});continue}if(P.type==="bos"&&x[0]==="/"){se.type="globstar",se.value+=X,se.output=`(?:^|${b}|${me(r)}${b})`,g.output=se.output,g.globstar=!0,rt(X+mt()),ke({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-se.output.length),se.type="globstar",se.output=me(r),se.value+=X,g.output+=se.output,g.globstar=!0,rt(X);continue}let w={type:"star",value:X,output:Ce};if(r.bash===!0){w.output=".*?",(se.type==="bos"||se.type==="slash")&&(w.output=pe+w.output),ke(w);continue}if(se&&(se.type==="bracket"||se.type==="paren")&&r.regex===!0){w.output=X,ke(w);continue}(g.index===g.start||se.type==="slash"||se.type==="dot")&&(se.type==="dot"?(g.output+=U,se.output+=U):r.dot===!0?(g.output+=W,se.output+=W):(g.output+=pe,se.output+=pe),Te()!=="*"&&(g.output+=I,se.output+=I)),ke(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(FE("closing","]"));g.output=Gl.escapeLast(g.output,"["),Ve("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(FE("closing",")"));g.output=Gl.escapeLast(g.output,"("),Ve("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(FE("closing","}"));g.output=Gl.escapeLast(g.output,"{"),Ve("braces")}if(r.strictSlashes!==!0&&(se.type==="star"||se.type==="bracket")&&ke({type:"maybe_slash",value:"",output:`${b}?`}),g.backtrack===!0){g.output="";for(let x of g.tokens)g.output+=x.output!=null?x.output:x.value,x.suffix&&(g.output+=x.suffix)}return g};d4.fastpaths=(t,e)=>{let r={...e},s=typeof r.maxLength=="number"?Math.min(gk,r.maxLength):gk,a=t.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);t=qoe[t]||t;let n=Gl.isWindows(e),{DOT_LITERAL:c,SLASH_LITERAL:f,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:C,NO_DOTS_SLASH:S,STAR:b,START_ANCHOR:I}=hk.globChars(n),T=r.dot?C:E,N=r.dot?S:E,U=r.capture?"":"?:",W={negated:!1,prefix:""},ee=r.bash===!0?".*?":b;r.capture&&(ee=`(${ee})`);let ie=pe=>pe.noglobstar===!0?ee:`(${U}(?:(?!${I}${pe.dot?h:c}).)*?)`,ue=pe=>{switch(pe){case"*":return`${T}${p}${ee}`;case".*":return`${c}${p}${ee}`;case"*.*":return`${T}${ee}${c}${p}${ee}`;case"*/*":return`${T}${ee}${f}${p}${N}${ee}`;case"**":return T+ie(r);case"**/*":return`(?:${T}${ie(r)}${f})?${N}${p}${ee}`;case"**/*.*":return`(?:${T}${ie(r)}${f})?${N}${ee}${c}${p}${ee}`;case"**/.*":return`(?:${T}${ie(r)}${f})?${c}${p}${ee}`;default:{let Be=/^(.*?)\.(\w+)$/.exec(pe);if(!Be)return;let Ce=ue(Be[1]);return Ce?Ce+c+Be[2]:void 0}}},le=Gl.removePrefix(t,W),me=ue(le);return me&&r.strictSlashes!==!0&&(me+=`${f}?`),me};Woe.exports=d4});var Joe=_((aFt,Voe)=>{"use strict";var Ize=Ie("path"),Cze=Goe(),m4=Yoe(),y4=IB(),wze=EB(),Bze=t=>t&&typeof t=="object"&&!Array.isArray(t),Zi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(S=>Zi(S,e,r));return S=>{for(let b of E){let I=b(S);if(I)return I}return!1}}let s=Bze(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!s)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=y4.isWindows(e),c=s?Zi.compileRe(t,e):Zi.makeRe(t,e,!1,!0),f=c.state;delete c.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Zi(a.ignore,E,r)}let h=(E,C=!1)=>{let{isMatch:S,match:b,output:I}=Zi.test(E,c,e,{glob:t,posix:n}),T={glob:t,state:f,regex:c,posix:n,input:E,output:I,match:b,isMatch:S};return typeof a.onResult=="function"&&a.onResult(T),S===!1?(T.isMatch=!1,C?T:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(T),T.isMatch=!1,C?T:!1):(typeof a.onMatch=="function"&&a.onMatch(T),C?T:!0)};return r&&(h.state=f),h};Zi.test=(t,e,r,{glob:s,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},c=n.format||(a?y4.toPosixSlashes:null),f=t===s,p=f&&c?c(t):t;return f===!1&&(p=c?c(t):t,f=p===s),(f===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?f=Zi.matchBase(t,e,r,a):f=e.exec(p)),{isMatch:!!f,match:f,output:p}};Zi.matchBase=(t,e,r,s=y4.isWindows(r))=>(e instanceof RegExp?e:Zi.makeRe(e,r)).test(Ize.basename(t));Zi.isMatch=(t,e,r)=>Zi(e,r)(t);Zi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Zi.parse(r,e)):m4(t,{...e,fastpaths:!1});Zi.scan=(t,e)=>Cze(t,e);Zi.compileRe=(t,e,r=!1,s=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",c=a.contains?"":"$",f=`${n}(?:${t.output})${c}`;t&&t.negated===!0&&(f=`^(?!${f}).*$`);let p=Zi.toRegex(f,e);return s===!0&&(p.state=t),p};Zi.makeRe=(t,e={},r=!1,s=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=m4.fastpaths(t,e)),a.output||(a=m4(t,e)),Zi.compileRe(a,e,r,s)};Zi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Zi.constants=wze;Voe.exports=Zi});var zoe=_((lFt,Koe)=>{"use strict";Koe.exports=Joe()});var Go=_((cFt,eae)=>{"use strict";var Xoe=Ie("util"),$oe=koe(),Jf=zoe(),E4=IB(),Zoe=t=>t===""||t==="./",xi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let s=new Set,a=new Set,n=new Set,c=0,f=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E!s.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};xi.match=xi;xi.matcher=(t,e)=>Jf(t,e);xi.isMatch=(t,e,r)=>Jf(e,r)(t);xi.any=xi.isMatch;xi.not=(t,e,r={})=>{e=[].concat(e).map(String);let s=new Set,a=[],n=f=>{r.onResult&&r.onResult(f),a.push(f.output)},c=new Set(xi(t,e,{...r,onResult:n}));for(let f of a)c.has(f)||s.add(f);return[...s]};xi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${Xoe.inspect(t)}"`);if(Array.isArray(e))return e.some(s=>xi.contains(t,s,r));if(typeof e=="string"){if(Zoe(t)||Zoe(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return xi.isMatch(t,e,{...r,contains:!0})};xi.matchKeys=(t,e,r)=>{if(!E4.isObject(t))throw new TypeError("Expected the first argument to be an object");let s=xi(Object.keys(t),e,r),a={};for(let n of s)a[n]=t[n];return a};xi.some=(t,e,r)=>{let s=[].concat(t);for(let a of[].concat(e)){let n=Jf(String(a),r);if(s.some(c=>n(c)))return!0}return!1};xi.every=(t,e,r)=>{let s=[].concat(t);for(let a of[].concat(e)){let n=Jf(String(a),r);if(!s.every(c=>n(c)))return!1}return!0};xi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${Xoe.inspect(t)}"`);return[].concat(e).every(s=>Jf(s,r)(t))};xi.capture=(t,e,r)=>{let s=E4.isWindows(r),n=Jf.makeRe(String(t),{...r,capture:!0}).exec(s?E4.toPosixSlashes(e):e);if(n)return n.slice(1).map(c=>c===void 0?"":c)};xi.makeRe=(...t)=>Jf.makeRe(...t);xi.scan=(...t)=>Jf.scan(...t);xi.parse=(t,e)=>{let r=[];for(let s of[].concat(t||[]))for(let a of $oe(String(s),e))r.push(Jf.parse(a,e));return r};xi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:$oe(t,e)};xi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return xi.braces(t,{...e,expand:!0})};eae.exports=xi});var rae=_((uFt,tae)=>{"use strict";tae.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var dk=_((fFt,nae)=>{"use strict";var vze=rae();nae.exports=t=>typeof t=="string"?t.replace(vze(),""):t});function iae(t){return Number.isSafeInteger(t)&&t>=0}var sae=Ze(()=>{});function oae(t){return t!=null&&typeof t!="function"&&iae(t.length)}var aae=Ze(()=>{sae()});function Pc(t){return t==="__proto__"}var wB=Ze(()=>{});function NE(t){switch(typeof t){case"number":case"symbol":return!1;case"string":return t.includes(".")||t.includes("[")||t.includes("]")}}var mk=Ze(()=>{});function OE(t){return typeof t=="string"||typeof t=="symbol"?t:Object.is(t?.valueOf?.(),-0)?"-0":String(t)}var yk=Ze(()=>{});function Mu(t){let e=[],r=t.length;if(r===0)return e;let s=0,a="",n="",c=!1;for(t.charCodeAt(0)===46&&(e.push(""),s++);s{});function va(t,e,r){if(t==null)return r;switch(typeof e){case"string":{if(Pc(e))return r;let s=t[e];return s===void 0?NE(e)?va(t,Mu(e),r):r:s}case"number":case"symbol":{typeof e=="number"&&(e=OE(e));let s=t[e];return s===void 0?r:s}default:{if(Array.isArray(e))return Sze(t,e,r);if(Object.is(e?.valueOf(),-0)?e="-0":e=String(e),Pc(e))return r;let s=t[e];return s===void 0?r:s}}}function Sze(t,e,r){if(e.length===0)return r;let s=t;for(let a=0;a{wB();mk();yk();LE()});function I4(t){return t!==null&&(typeof t=="object"||typeof t=="function")}var lae=Ze(()=>{});function ME(t){return t==null||typeof t!="object"&&typeof t!="function"}var Ik=Ze(()=>{});function Ck(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}var C4=Ze(()=>{});function Wd(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}var wk=Ze(()=>{});function Yd(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}var Bk=Ze(()=>{});var vk,UE,_E,HE,Vd,Sk,Dk,Pk,bk,xk,cae,kk,jE,uae,Qk,Rk,Tk,Fk,Nk,fae,Ok,Lk,Mk,Aae,Uk,_k,Hk=Ze(()=>{vk="[object RegExp]",UE="[object String]",_E="[object Number]",HE="[object Boolean]",Vd="[object Arguments]",Sk="[object Symbol]",Dk="[object Date]",Pk="[object Map]",bk="[object Set]",xk="[object Array]",cae="[object Function]",kk="[object ArrayBuffer]",jE="[object Object]",uae="[object Error]",Qk="[object DataView]",Rk="[object Uint8Array]",Tk="[object Uint8ClampedArray]",Fk="[object Uint16Array]",Nk="[object Uint32Array]",fae="[object BigUint64Array]",Ok="[object Int8Array]",Lk="[object Int16Array]",Mk="[object Int32Array]",Aae="[object BigInt64Array]",Uk="[object Float32Array]",_k="[object Float64Array]"});function GE(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}var jk=Ze(()=>{});function pae(t,e){return u0(t,void 0,t,new Map,e)}function u0(t,e,r,s=new Map,a=void 0){let n=a?.(t,e,r,s);if(n!=null)return n;if(ME(t))return t;if(s.has(t))return s.get(t);if(Array.isArray(t)){let c=new Array(t.length);s.set(t,c);for(let f=0;f{wk();Bk();Hk();Ik();jk()});function hae(t){return u0(t,void 0,t,new Map,void 0)}var gae=Ze(()=>{w4()});function dae(t,e){return pae(t,(r,s,a,n)=>{let c=e?.(r,s,a,n);if(c!=null)return c;if(typeof t=="object")switch(Object.prototype.toString.call(t)){case _E:case UE:case HE:{let f=new t.constructor(t?.valueOf());return c0(f,t),f}case Vd:{let f={};return c0(f,t),f.length=t.length,f[Symbol.iterator]=t[Symbol.iterator],f}default:return}})}var mae=Ze(()=>{w4();Hk()});function f0(t){return dae(t)}var B4=Ze(()=>{mae()});function Gk(t,e=Number.MAX_SAFE_INTEGER){switch(typeof t){case"number":return Number.isInteger(t)&&t>=0&&t{Pze=/^(?:0|[1-9]\d*)$/});function BB(t){return t!==null&&typeof t=="object"&&Yd(t)==="[object Arguments]"}var S4=Ze(()=>{Bk()});function vB(t,e){let r;if(Array.isArray(e)?r=e:typeof e=="string"&&NE(e)&&t?.[e]==null?r=Mu(e):r=[e],r.length===0)return!1;let s=t;for(let a=0;a{mk();v4();S4();LE()});function P4(t){return typeof t=="object"&&t!==null}var yae=Ze(()=>{});function Eae(t){return typeof t=="symbol"||t instanceof Symbol}var Iae=Ze(()=>{});function Cae(t,e){return Array.isArray(t)?!1:typeof t=="number"||typeof t=="boolean"||t==null||Eae(t)?!0:typeof t=="string"&&(xze.test(t)||!bze.test(t))||e!=null&&Object.hasOwn(e,t)}var bze,xze,wae=Ze(()=>{Iae();bze=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xze=/^\w*$/});function A0(t,e){if(t==null)return!0;switch(typeof e){case"symbol":case"number":case"object":{if(Array.isArray(e))return Bae(t,e);if(typeof e=="number"?e=OE(e):typeof e=="object"&&(Object.is(e?.valueOf(),-0)?e="-0":e=String(e)),Pc(e))return!1;if(t?.[e]===void 0)return!0;try{return delete t[e],!0}catch{return!1}}case"string":{if(t?.[e]===void 0&&NE(e))return Bae(t,Mu(e));if(Pc(e))return!1;try{return delete t[e],!0}catch{return!1}}}}function Bae(t,e){let r=va(t,e.slice(0,-1),t),s=e[e.length-1];if(r?.[s]===void 0)return!0;if(Pc(s))return!1;try{return delete r[s],!0}catch{return!1}}var b4=Ze(()=>{Ek();wB();mk();yk();LE()});function vae(t){return t==null}var Sae=Ze(()=>{});var Dae,Pae=Ze(()=>{C4();Dae=(t,e,r)=>{let s=t[e];(!(Object.hasOwn(t,e)&&Ck(s,r))||r===void 0&&!(e in t))&&(t[e]=r)}});function bae(t,e,r,s){if(t==null&&!I4(t))return t;let a=Cae(e,t)?[e]:Array.isArray(e)?e:typeof e=="string"?Mu(e):[e],n=t;for(let c=0;c{wB();Pae();v4();wae();yk();lae();LE()});function Jd(t,e,r){return bae(t,e,()=>r,()=>{})}var x4=Ze(()=>{xae()});function kae(t,e=0,r={}){typeof r!="object"&&(r={});let s=null,a=null,n=null,c=0,f=null,p,{leading:h=!1,trailing:E=!0,maxWait:C}=r,S="maxWait"in r,b=S?Math.max(Number(C)||0,e):0,I=ue=>(s!==null&&(p=t.apply(a,s)),s=a=null,c=ue,p),T=ue=>(c=ue,f=setTimeout(ee,e),h&&s!==null?I(ue):p),N=ue=>(f=null,E&&s!==null?I(ue):p),U=ue=>{if(n===null)return!0;let le=ue-n,me=le>=e||le<0,pe=S&&ue-c>=b;return me||pe},W=ue=>{let le=n===null?0:ue-n,me=e-le,pe=b-(ue-c);return S?Math.min(me,pe):me},ee=()=>{let ue=Date.now();if(U(ue))return N(ue);f=setTimeout(ee,W(ue))},ie=function(...ue){let le=Date.now(),me=U(le);if(s=ue,a=this,n=le,me){if(f===null)return T(le);if(S)return clearTimeout(f),f=setTimeout(ee,e),I(le)}return f===null&&(f=setTimeout(ee,e)),p};return ie.cancel=()=>{f!==null&&clearTimeout(f),c=0,n=s=a=f=null},ie.flush=()=>f===null?p:N(Date.now()),ie}var Qae=Ze(()=>{});function k4(t,e=0,r={}){let{leading:s=!0,trailing:a=!0}=r;return kae(t,e,{leading:s,maxWait:e,trailing:a})}var Rae=Ze(()=>{Qae()});function Q4(t){if(t==null)return"";if(typeof t=="string")return t;if(Array.isArray(t))return t.map(Q4).join(",");let e=String(t);return e==="0"&&Object.is(Number(t),-0)?"-0":e}var Tae=Ze(()=>{});function R4(t){if(!t||typeof t!="object")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(t)==="[object Object]":!1}var Fae=Ze(()=>{});function Nae(t,e,r){return SB(t,e,void 0,void 0,void 0,void 0,r)}function SB(t,e,r,s,a,n,c){let f=c(t,e,r,s,a,n);if(f!==void 0)return f;if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return t===e;case"number":return t===e||Object.is(t,e);case"function":return t===e;case"object":return DB(t,e,n,c)}return DB(t,e,n,c)}function DB(t,e,r,s){if(Object.is(t,e))return!0;let a=Yd(t),n=Yd(e);if(a===Vd&&(a=jE),n===Vd&&(n=jE),a!==n)return!1;switch(a){case UE:return t.toString()===e.toString();case _E:{let p=t.valueOf(),h=e.valueOf();return Ck(p,h)}case HE:case Dk:case Sk:return Object.is(t.valueOf(),e.valueOf());case vk:return t.source===e.source&&t.flags===e.flags;case cae:return t===e}r=r??new Map;let c=r.get(t),f=r.get(e);if(c!=null&&f!=null)return c===e;r.set(t,e),r.set(e,t);try{switch(a){case Pk:{if(t.size!==e.size)return!1;for(let[p,h]of t.entries())if(!e.has(p)||!SB(h,e.get(p),p,t,e,r,s))return!1;return!0}case bk:{if(t.size!==e.size)return!1;let p=Array.from(t.values()),h=Array.from(e.values());for(let E=0;ESB(C,b,void 0,t,e,r,s));if(S===-1)return!1;h.splice(S,1)}return!0}case xk:case Rk:case Tk:case Fk:case Nk:case fae:case Ok:case Lk:case Mk:case Aae:case Uk:case _k:{if(typeof Buffer<"u"&&Buffer.isBuffer(t)!==Buffer.isBuffer(e)||t.length!==e.length)return!1;for(let p=0;p{Fae();wk();Bk();Hk();C4()});function Lae(){}var Mae=Ze(()=>{});function T4(t,e){return Nae(t,e,Lae)}var Uae=Ze(()=>{Oae();Mae()});function _ae(t){return GE(t)}var Hae=Ze(()=>{jk()});function jae(t){if(typeof t!="object"||t==null)return!1;if(Object.getPrototypeOf(t)===null)return!0;if(Object.prototype.toString.call(t)!=="[object Object]"){let r=t[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable?!1:t.toString()===`[object ${r}]`}let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}var Gae=Ze(()=>{});function qae(t){if(ME(t))return t;if(Array.isArray(t)||GE(t)||t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer)return t.slice(0);let e=Object.getPrototypeOf(t),r=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new r(t);if(t instanceof RegExp){let s=new r(t);return s.lastIndex=t.lastIndex,s}if(t instanceof DataView)return new r(t.buffer.slice(0));if(t instanceof Error){let s=new r(t.message);return s.stack=t.stack,s.name=t.name,s.cause=t.cause,s}if(typeof File<"u"&&t instanceof File)return new r([t],t.name,{type:t.type,lastModified:t.lastModified});if(typeof t=="object"){let s=Object.create(e);return Object.assign(s,t)}return t}var Wae=Ze(()=>{Ik();jk()});function F4(t,...e){let r=e.slice(0,-1),s=e[e.length-1],a=t;for(let n=0;n{B4();wB();Wae();Ik();wk();S4();yae();Gae();Hae()});function N4(t,...e){if(t==null)return{};let r=hae(t);for(let s=0;s{b4();gae()});function Kd(t,...e){if(vae(t))return{};let r={};for(let s=0;s{Ek();D4();x4();aae();Sae()});function Kae(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var zae=Ze(()=>{});function PB(t){return Kae(Q4(t))}var Zae=Ze(()=>{zae();Tae()});var ql=Ze(()=>{Rae();Uae();B4();Ek();D4();Yae();Vae();Jae();x4();b4();Zae();LE()});var je={};Vt(je,{AsyncActions:()=>M4,BufferStream:()=>L4,CachingStrategy:()=>ale,DefaultStream:()=>U4,allSettledSafe:()=>Uu,assertNever:()=>H4,bufferStream:()=>WE,buildIgnorePattern:()=>Oze,convertMapsToIndexableObjects:()=>Yk,dynamicRequire:()=>bp,escapeRegExp:()=>Qze,getArrayWithDefault:()=>xB,getFactoryWithDefault:()=>Yl,getMapWithDefault:()=>j4,getSetWithDefault:()=>Pp,groupBy:()=>Uze,isIndexableObject:()=>O4,isPathLike:()=>Lze,isTaggedYarnVersion:()=>kze,makeDeferred:()=>ile,mapAndFilter:()=>Wl,mapAndFind:()=>p0,mergeIntoTarget:()=>cle,overrideType:()=>Rze,parseBoolean:()=>kB,parseInt:()=>YE,parseOptionalBoolean:()=>lle,plural:()=>Wk,prettifyAsyncErrors:()=>qE,prettifySyncErrors:()=>G4,releaseAfterUseAsync:()=>Fze,replaceEnvVariables:()=>Vk,sortMap:()=>qs,toMerged:()=>Mze,tryParseOptionalBoolean:()=>q4,validateEnum:()=>Tze});function kze(t){return!!(tle.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function Wk(t,{one:e,more:r,zero:s=r}){return t===0?s:t===1?e:r}function Qze(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Rze(t){}function H4(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function Tze(t,e){let r=Object.values(t);if(!r.includes(e))throw new nt(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(s=>JSON.stringify(s)).join(", ")})`);return e}function Wl(t,e){let r=[];for(let s of t){let a=e(s);a!==rle&&r.push(a)}return r}function p0(t,e){for(let r of t){let s=e(r);if(s!==nle)return s}}function O4(t){return typeof t=="object"&&t!==null}async function Uu(t){let e=await Promise.allSettled(t),r=[];for(let s of e){if(s.status==="rejected")throw s.reason;r.push(s.value)}return r}function Yk(t){if(t instanceof Map&&(t=Object.fromEntries(t)),O4(t))for(let e of Object.keys(t)){let r=t[e];O4(r)&&(t[e]=Yk(r))}return t}function Yl(t,e,r){let s=t.get(e);return typeof s>"u"&&t.set(e,s=r()),s}function xB(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function Pp(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function j4(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function Fze(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function qE(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function G4(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function WE(t){return await new Promise((e,r)=>{let s=[];t.on("error",a=>{r(a)}),t.on("data",a=>{s.push(a)}),t.on("end",()=>{e(Buffer.concat(s))})})}function ile(){let t,e;return{promise:new Promise((s,a)=>{t=s,e=a}),resolve:t,reject:e}}function sle(t){return bB(fe.fromPortablePath(t))}function ole(path){let physicalPath=fe.fromPortablePath(path),currentCacheEntry=bB.cache[physicalPath];delete bB.cache[physicalPath];let result;try{result=sle(physicalPath);let freshCacheEntry=bB.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{bB.cache[physicalPath]=currentCacheEntry}return result}function Nze(t){let e=Xae.get(t),r=ce.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let s=ole(t);return Xae.set(t,{mtime:r.mtimeMs,instance:s}),s}function bp(t,{cachingStrategy:e=2}={}){switch(e){case 0:return ole(t);case 1:return Nze(t);case 2:return sle(t);default:throw new Error("Unsupported caching strategy")}}function qs(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function Oze(t){return t.length===0?null:t.map(e=>`(${$ae.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Vk(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...s)=>{let{variableName:a,colon:n,fallback:c}=s[s.length-1],f=Object.hasOwn(e,a),p=e[a];if(p||f&&!n)return p;if(c!=null)return c;throw new nt(`Environment variable not found (${a})`)})}function kB(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function lle(t){return typeof t>"u"?t:kB(t)}function q4(t){try{return lle(t)}catch{return null}}function Lze(t){return!!(fe.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function cle(t,...e){let r=c=>({value:c}),s=r(t),a=e.map(c=>r(c)),{value:n}=F4(s,...a,(c,f)=>{if(Array.isArray(c)&&Array.isArray(f)){for(let p of f)c.find(h=>T4(h,p))||c.push(p);return c}});return n}function Mze(...t){return cle({},...t)}function Uze(t,e){let r=Object.create(null);for(let s of t){let a=s[e];r[a]??=[],r[a].push(s)}return r}function YE(t){return typeof t=="string"?Number.parseInt(t,10):t}var $ae,ele,tle,_4,rle,nle,L4,M4,U4,bB,Xae,ale,bc=Ze(()=>{Dt();Yt();ql();$ae=ut(Go()),ele=ut(Ld()),tle=ut(Ai()),_4=Ie("stream");rle=Symbol();Wl.skip=rle;nle=Symbol();p0.skip=nle;L4=class extends _4.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,s,a){if(s!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};M4=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,ele.default)(e)}set(e,r){let s=this.deferred.get(e);typeof s>"u"&&this.deferred.set(e,s=ile());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&s.resolve()},n=>{this.promises.get(e)===a&&s.reject(n)}),s.promise}reduce(e,r){let s=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(s))}async wait(){await Promise.all(this.promises.values())}},U4=class extends _4.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,s,a){if(s!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},bB=eval("require");Xae=new Map;ale=(s=>(s[s.NoCache=0]="NoCache",s[s.FsTime=1]="FsTime",s[s.Node=2]="Node",s))(ale||{})});var VE,W4,Y4,ule=Ze(()=>{VE=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(VE||{}),W4=(s=>(s.Dependency="Dependency",s.PeerDependency="PeerDependency",s.PeerDependencyMeta="PeerDependencyMeta",s))(W4||{}),Y4=(s=>(s.Inactive="inactive",s.Redundant="redundant",s.Active="active",s))(Y4||{})});var he={};Vt(he,{LogLevel:()=>$k,Style:()=>zk,Type:()=>ht,addLogFilterSupport:()=>TB,applyColor:()=>ri,applyHyperlink:()=>KE,applyStyle:()=>zd,json:()=>Zd,jsonOrPretty:()=>jze,mark:()=>Z4,pretty:()=>Ht,prettyField:()=>Kf,prettyList:()=>z4,prettyTruncatedLocatorList:()=>Xk,stripAnsi:()=>JE.default,supportsColor:()=>Zk,supportsHyperlinks:()=>K4,tuple:()=>_u});function fle(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let s=1024**r;return`${Math.floor(t*100/s)/100} ${e[r-1]}`}function Jk(t,e){if(Array.isArray(e))return e.length===0?ri(t,"[]",ht.CODE):ri(t,"[ ",ht.CODE)+e.map(r=>Jk(t,r)).join(", ")+ri(t," ]",ht.CODE);if(typeof e=="string")return ri(t,JSON.stringify(e),ht.STRING);if(typeof e=="number")return ri(t,JSON.stringify(e),ht.NUMBER);if(typeof e=="boolean")return ri(t,JSON.stringify(e),ht.BOOLEAN);if(e===null)return ri(t,"null",ht.NULL);if(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype){let r=Object.entries(e);return r.length===0?ri(t,"{}",ht.CODE):ri(t,"{ ",ht.CODE)+r.map(([s,a])=>`${Jk(t,s)}: ${Jk(t,a)}`).join(", ")+ri(t," }",ht.CODE)}if(typeof e>"u")return ri(t,"undefined",ht.NULL);throw new Error("Assertion failed: The value doesn't seem to be a valid JSON object")}function _u(t,e){return[e,t]}function zd(t,e,r){return t.get("enableColors")&&r&2&&(e=RB.default.bold(e)),e}function ri(t,e,r){if(!t.get("enableColors"))return e;let s=_ze.get(r);if(s===null)return e;let a=typeof s>"u"?r:J4.level>=3?s[0]:s[1],n=typeof a=="number"?V4.ansi256(a):a.startsWith("#")?V4.hex(a):V4[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function KE(t,e,r){return t.get("enableHyperlinks")?Hze?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Ht(t,e,r){if(e===null)return ri(t,"null",ht.NULL);if(Object.hasOwn(Kk,r))return Kk[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return ri(t,e,r)}function z4(t,e,r,{separator:s=", "}={}){return[...e].map(a=>Ht(t,a,r)).join(s)}function Zd(t,e){if(t===null)return null;if(Object.hasOwn(Kk,e))return Kk[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function jze(t,e,[r,s]){return t?Zd(r,s):Ht(e,r,s)}function Z4(t){return{Check:ri(t,"\u2713","green"),Cross:ri(t,"\u2718","red"),Question:ri(t,"?","cyan")}}function Kf(t,{label:e,value:[r,s]}){return`${Ht(t,e,ht.CODE)}: ${Ht(t,r,s)}`}function Xk(t,e,r){let s=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${Yr(t,h)}, `,C=X4(h).length+2;if(s.length>0&&nh).join("").slice(0,-2);let c="X".repeat(a.length.toString().length),f=`and ${c} more.`,p=a.length;for(;s.length>1&&nh).join(""),f.replace(c,Ht(t,p,ht.NUMBER))].join("")}function TB(t,{configuration:e}){let r=e.get("logFilters"),s=new Map,a=new Map,n=[];for(let C of r){let S=C.get("level");if(typeof S>"u")continue;let b=C.get("code");typeof b<"u"&&s.set(b,S);let I=C.get("text");typeof I<"u"&&a.set(I,S);let T=C.get("pattern");typeof T<"u"&&n.push([Ale.default.matcher(T,{contains:!0}),S])}n.reverse();let c=(C,S,b)=>{if(C===null||C===0)return b;let I=a.size>0||n.length>0?(0,JE.default)(S):S;if(a.size>0){let T=a.get(I);if(typeof T<"u")return T??b}if(n.length>0){for(let[T,N]of n)if(T(I))return N??b}if(s.size>0){let T=s.get(Yf(C));if(typeof T<"u")return T??b}return b},f=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(C,S,b,I){switch(c(S,b,I)){case"info":f.call(C,S,b);break;case"warning":p.call(C,S??0,b);break;case"error":h.call(C,S??0,b);break}};t.reportInfo=function(...C){return E(this,...C,"info")},t.reportWarning=function(...C){return E(this,...C,"warning")},t.reportError=function(...C){return E(this,...C,"error")}}var RB,QB,Ale,JE,ht,zk,J4,Zk,K4,V4,_ze,qo,Kk,Hze,$k,xc=Ze(()=>{Dt();RB=ut(RE()),QB=ut(Fd());Yt();Ale=ut(Go()),JE=ut(dk());Gx();Wo();ht={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},zk=(e=>(e[e.BOLD=2]="BOLD",e))(zk||{}),J4=QB.default.GITHUB_ACTIONS?{level:2}:RB.default.supportsColor?{level:RB.default.supportsColor.level}:{level:0},Zk=J4.level!==0,K4=Zk&&!QB.default.GITHUB_ACTIONS&&!QB.default.CIRCLE&&!QB.default.GITLAB,V4=new RB.default.Instance(J4),_ze=new Map([[ht.NO_HINT,null],[ht.NULL,["#a853b5",129]],[ht.SCOPE,["#d75f00",166]],[ht.NAME,["#d7875f",173]],[ht.RANGE,["#00afaf",37]],[ht.REFERENCE,["#87afff",111]],[ht.NUMBER,["#ffd700",220]],[ht.STRING,["#b4bd68",32]],[ht.BOOLEAN,["#faa023",209]],[ht.PATH,["#d75fd7",170]],[ht.URL,["#d75fd7",170]],[ht.ADDED,["#5faf00",70]],[ht.REMOVED,["#ff3131",160]],[ht.CODE,["#87afff",111]],[ht.SIZE,["#ffd700",220]]]),qo=t=>t;Kk={[ht.ID]:qo({pretty:(t,e)=>typeof e=="number"?ri(t,`${e}`,ht.NUMBER):ri(t,e,ht.CODE),json:t=>t}),[ht.INSPECT]:qo({pretty:(t,e)=>Jk(t,e),json:t=>t}),[ht.NUMBER]:qo({pretty:(t,e)=>ri(t,`${e}`,ht.NUMBER),json:t=>t}),[ht.IDENT]:qo({pretty:(t,e)=>Xi(t,e),json:t=>un(t)}),[ht.LOCATOR]:qo({pretty:(t,e)=>Yr(t,e),json:t=>ll(t)}),[ht.DESCRIPTOR]:qo({pretty:(t,e)=>ni(t,e),json:t=>al(t)}),[ht.RESOLUTION]:qo({pretty:(t,{descriptor:e,locator:r})=>FB(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:al(t),locator:e!==null?ll(e):null})}),[ht.DEPENDENT]:qo({pretty:(t,{locator:e,descriptor:r})=>$4(t,e,r),json:({locator:t,descriptor:e})=>({locator:ll(t),descriptor:al(e)})}),[ht.PACKAGE_EXTENSION]:qo({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${Xi(t,e.parentDescriptor)} \u27A4 ${ri(t,"dependencies",ht.CODE)} \u27A4 ${Xi(t,e.descriptor)}`;case"PeerDependency":return`${Xi(t,e.parentDescriptor)} \u27A4 ${ri(t,"peerDependencies",ht.CODE)} \u27A4 ${Xi(t,e.descriptor)}`;case"PeerDependencyMeta":return`${Xi(t,e.parentDescriptor)} \u27A4 ${ri(t,"peerDependenciesMeta",ht.CODE)} \u27A4 ${Xi(t,Sa(e.selector))} \u27A4 ${ri(t,e.key,ht.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${un(t.parentDescriptor)} > ${un(t.descriptor)}`;case"PeerDependency":return`${un(t.parentDescriptor)} >> ${un(t.descriptor)}`;case"PeerDependencyMeta":return`${un(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[ht.SETTING]:qo({pretty:(t,e)=>(t.get(e),KE(t,ri(t,e,ht.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[ht.DURATION]:qo({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),s=Math.ceil((e-r*60*1e3)/1e3);return s===0?`${r}m`:`${r}m ${s}s`}else{let r=Math.floor(e/1e3),s=e-r*1e3;return s===0?`${r}s`:`${r}s ${s}ms`}},json:t=>t}),[ht.SIZE]:qo({pretty:(t,e)=>ri(t,fle(e),ht.NUMBER),json:t=>t}),[ht.SIZE_DIFF]:qo({pretty:(t,e)=>{let r=e>=0?"+":"-",s=r==="+"?ht.REMOVED:ht.ADDED;return ri(t,`${r} ${fle(Math.max(Math.abs(e),1))}`,s)},json:t=>t}),[ht.PATH]:qo({pretty:(t,e)=>ri(t,fe.fromPortablePath(e),ht.PATH),json:t=>fe.fromPortablePath(t)}),[ht.MARKDOWN]:qo({pretty:(t,{text:e,format:r,paragraphs:s})=>Ho(e,{format:r,paragraphs:s}),json:({text:t})=>t}),[ht.MARKDOWN_INLINE]:qo({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,s,a)=>Ht(t,s+a+s,ht.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,s,a)=>zd(t,a,2)),e),json:t=>t})};Hze=!!process.env.KONSOLE_VERSION;$k=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))($k||{})});var ple=_(zE=>{"use strict";Object.defineProperty(zE,"__esModule",{value:!0});zE.splitWhen=zE.flatten=void 0;function Gze(t){return t.reduce((e,r)=>[].concat(e,r),[])}zE.flatten=Gze;function qze(t,e){let r=[[]],s=0;for(let a of t)e(a)?(s++,r[s]=[]):r[s].push(a);return r}zE.splitWhen=qze});var hle=_(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.isEnoentCodeError=void 0;function Wze(t){return t.code==="ENOENT"}eQ.isEnoentCodeError=Wze});var gle=_(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.createDirentFromStats=void 0;var e3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Yze(t,e){return new e3(t,e)}tQ.createDirentFromStats=Yze});var Ele=_(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.convertPosixPathToPattern=ls.convertWindowsPathToPattern=ls.convertPathToPattern=ls.escapePosixPath=ls.escapeWindowsPath=ls.escape=ls.removeLeadingDotSegment=ls.makeAbsolute=ls.unixify=void 0;var Vze=Ie("os"),Jze=Ie("path"),dle=Vze.platform()==="win32",Kze=2,zze=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,Zze=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,Xze=/^\\\\([.?])/,$ze=/\\(?![!()+@[\]{}])/g;function eZe(t){return t.replace(/\\/g,"/")}ls.unixify=eZe;function tZe(t,e){return Jze.resolve(t,e)}ls.makeAbsolute=tZe;function rZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(Kze)}return t}ls.removeLeadingDotSegment=rZe;ls.escape=dle?t3:r3;function t3(t){return t.replace(Zze,"\\$2")}ls.escapeWindowsPath=t3;function r3(t){return t.replace(zze,"\\$2")}ls.escapePosixPath=r3;ls.convertPathToPattern=dle?mle:yle;function mle(t){return t3(t).replace(Xze,"//$1").replace($ze,"/")}ls.convertWindowsPathToPattern=mle;function yle(t){return r3(t)}ls.convertPosixPathToPattern=yle});var Cle=_((UOt,Ile)=>{Ile.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var vle=_((_Ot,Ble)=>{var nZe=Cle(),wle={"{":"}","(":")","[":"]"},iZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,s=-2,a=-2,n=-2,c=-2;ee&&(c===-1||c>s||(c=t.indexOf("\\",e),c===-1||c>s)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(c=t.indexOf("\\",e),c===-1||c>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(c=t.indexOf("\\",e),c===-1||c>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(c=t.indexOf("\\",r),c===-1||c>n))))return!0;if(t[e]==="\\"){var f=t[e+1];e+=2;var p=wle[f];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},sZe=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var oZe=vle(),aZe=Ie("path").posix.dirname,lZe=Ie("os").platform()==="win32",n3="/",cZe=/\\/g,uZe=/[\{\[].*[\}\]]$/,fZe=/(^|[^\\])([\{\[]|\([^\)]+$)/,AZe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Sle.exports=function(e,r){var s=Object.assign({flipBackslashes:!0},r);s.flipBackslashes&&lZe&&e.indexOf(n3)<0&&(e=e.replace(cZe,n3)),uZe.test(e)&&(e+=n3),e+="a";do e=aZe(e);while(oZe(e)||fZe.test(e));return e.replace(AZe,"$1")}});var Fle=_(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.removeDuplicateSlashes=jr.matchAny=jr.convertPatternsToRe=jr.makeRe=jr.getPatternParts=jr.expandBraceExpansion=jr.expandPatternsWithBraceExpansion=jr.isAffectDepthOfReadingPattern=jr.endsWithSlashGlobStar=jr.hasGlobStar=jr.getBaseDirectory=jr.isPatternRelatedToParentDirectory=jr.getPatternsOutsideCurrentDirectory=jr.getPatternsInsideCurrentDirectory=jr.getPositivePatterns=jr.getNegativePatterns=jr.isPositivePattern=jr.isNegativePattern=jr.convertToNegativePattern=jr.convertToPositivePattern=jr.isDynamicPattern=jr.isStaticPattern=void 0;var pZe=Ie("path"),hZe=Dle(),i3=Go(),Ple="**",gZe="\\",dZe=/[*?]|^!/,mZe=/\[[^[]*]/,yZe=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,EZe=/[!*+?@]\([^(]*\)/,IZe=/,|\.\./,CZe=/(?!^)\/{2,}/g;function ble(t,e={}){return!xle(t,e)}jr.isStaticPattern=ble;function xle(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(gZe)||dZe.test(t)||mZe.test(t)||yZe.test(t)||e.extglob!==!1&&EZe.test(t)||e.braceExpansion!==!1&&wZe(t))}jr.isDynamicPattern=xle;function wZe(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let s=t.slice(e,r);return IZe.test(s)}function BZe(t){return rQ(t)?t.slice(1):t}jr.convertToPositivePattern=BZe;function vZe(t){return"!"+t}jr.convertToNegativePattern=vZe;function rQ(t){return t.startsWith("!")&&t[1]!=="("}jr.isNegativePattern=rQ;function kle(t){return!rQ(t)}jr.isPositivePattern=kle;function SZe(t){return t.filter(rQ)}jr.getNegativePatterns=SZe;function DZe(t){return t.filter(kle)}jr.getPositivePatterns=DZe;function PZe(t){return t.filter(e=>!s3(e))}jr.getPatternsInsideCurrentDirectory=PZe;function bZe(t){return t.filter(s3)}jr.getPatternsOutsideCurrentDirectory=bZe;function s3(t){return t.startsWith("..")||t.startsWith("./..")}jr.isPatternRelatedToParentDirectory=s3;function xZe(t){return hZe(t,{flipBackslashes:!1})}jr.getBaseDirectory=xZe;function kZe(t){return t.includes(Ple)}jr.hasGlobStar=kZe;function Qle(t){return t.endsWith("/"+Ple)}jr.endsWithSlashGlobStar=Qle;function QZe(t){let e=pZe.basename(t);return Qle(t)||ble(e)}jr.isAffectDepthOfReadingPattern=QZe;function RZe(t){return t.reduce((e,r)=>e.concat(Rle(r)),[])}jr.expandPatternsWithBraceExpansion=RZe;function Rle(t){let e=i3.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,s)=>r.length-s.length),e.filter(r=>r!=="")}jr.expandBraceExpansion=Rle;function TZe(t,e){let{parts:r}=i3.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}jr.getPatternParts=TZe;function Tle(t,e){return i3.makeRe(t,e)}jr.makeRe=Tle;function FZe(t,e){return t.map(r=>Tle(r,e))}jr.convertPatternsToRe=FZe;function NZe(t,e){return e.some(r=>r.test(t))}jr.matchAny=NZe;function OZe(t){return t.replace(CZe,"/")}jr.removeDuplicateSlashes=OZe});var Mle=_((GOt,Lle)=>{"use strict";var LZe=Ie("stream"),Nle=LZe.PassThrough,MZe=Array.prototype.slice;Lle.exports=UZe;function UZe(){let t=[],e=MZe.call(arguments),r=!1,s=e[e.length-1];s&&!Array.isArray(s)&&s.pipe==null?e.pop():s={};let a=s.end!==!1,n=s.pipeError===!0;s.objectMode==null&&(s.objectMode=!0),s.highWaterMark==null&&(s.highWaterMark=64*1024);let c=Nle(s);function f(){for(let E=0,C=arguments.length;E0||(r=!1,p())}function b(I){function T(){I.removeListener("merge2UnpipeEnd",T),I.removeListener("end",T),n&&I.removeListener("error",N),S()}function N(U){c.emit("error",U)}if(I._readableState.endEmitted)return S();I.on("merge2UnpipeEnd",T),I.on("end",T),n&&I.on("error",N),I.pipe(c,{end:!1}),I.resume()}for(let I=0;I{"use strict";Object.defineProperty(nQ,"__esModule",{value:!0});nQ.merge=void 0;var _Ze=Mle();function HZe(t){let e=_Ze(t);return t.forEach(r=>{r.once("error",s=>e.emit("error",s))}),e.once("close",()=>Ule(t)),e.once("end",()=>Ule(t)),e}nQ.merge=HZe;function Ule(t){t.forEach(e=>e.emit("close"))}});var Hle=_(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.isEmpty=ZE.isString=void 0;function jZe(t){return typeof t=="string"}ZE.isString=jZe;function GZe(t){return t===""}ZE.isEmpty=GZe});var xp=_(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.string=Yo.stream=Yo.pattern=Yo.path=Yo.fs=Yo.errno=Yo.array=void 0;var qZe=ple();Yo.array=qZe;var WZe=hle();Yo.errno=WZe;var YZe=gle();Yo.fs=YZe;var VZe=Ele();Yo.path=VZe;var JZe=Fle();Yo.pattern=JZe;var KZe=_le();Yo.stream=KZe;var zZe=Hle();Yo.string=zZe});var Wle=_(Vo=>{"use strict";Object.defineProperty(Vo,"__esModule",{value:!0});Vo.convertPatternGroupToTask=Vo.convertPatternGroupsToTasks=Vo.groupPatternsByBaseDirectory=Vo.getNegativePatternsAsPositive=Vo.getPositivePatterns=Vo.convertPatternsToTasks=Vo.generate=void 0;var Hu=xp();function ZZe(t,e){let r=jle(t,e),s=jle(e.ignore,e),a=Gle(r),n=qle(r,s),c=a.filter(E=>Hu.pattern.isStaticPattern(E,e)),f=a.filter(E=>Hu.pattern.isDynamicPattern(E,e)),p=o3(c,n,!1),h=o3(f,n,!0);return p.concat(h)}Vo.generate=ZZe;function jle(t,e){let r=t;return e.braceExpansion&&(r=Hu.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(s=>s.includes("/")?s:`**/${s}`)),r.map(s=>Hu.pattern.removeDuplicateSlashes(s))}function o3(t,e,r){let s=[],a=Hu.pattern.getPatternsOutsideCurrentDirectory(t),n=Hu.pattern.getPatternsInsideCurrentDirectory(t),c=a3(a),f=a3(n);return s.push(...l3(c,e,r)),"."in f?s.push(c3(".",n,e,r)):s.push(...l3(f,e,r)),s}Vo.convertPatternsToTasks=o3;function Gle(t){return Hu.pattern.getPositivePatterns(t)}Vo.getPositivePatterns=Gle;function qle(t,e){return Hu.pattern.getNegativePatterns(t).concat(e).map(Hu.pattern.convertToPositivePattern)}Vo.getNegativePatternsAsPositive=qle;function a3(t){let e={};return t.reduce((r,s)=>{let a=Hu.pattern.getBaseDirectory(s);return a in r?r[a].push(s):r[a]=[s],r},e)}Vo.groupPatternsByBaseDirectory=a3;function l3(t,e,r){return Object.keys(t).map(s=>c3(s,t[s],e,r))}Vo.convertPatternGroupsToTasks=l3;function c3(t,e,r,s){return{dynamic:s,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Hu.pattern.convertToNegativePattern))}}Vo.convertPatternGroupToTask=c3});var Vle=_(iQ=>{"use strict";Object.defineProperty(iQ,"__esModule",{value:!0});iQ.read=void 0;function XZe(t,e,r){e.fs.lstat(t,(s,a)=>{if(s!==null){Yle(r,s);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){u3(r,a);return}e.fs.stat(t,(n,c)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){Yle(r,n);return}u3(r,a);return}e.markSymbolicLink&&(c.isSymbolicLink=()=>!0),u3(r,c)})})}iQ.read=XZe;function Yle(t,e){t(e)}function u3(t,e){t(null,e)}});var Jle=_(sQ=>{"use strict";Object.defineProperty(sQ,"__esModule",{value:!0});sQ.read=void 0;function $Ze(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let s=e.fs.statSync(t);return e.markSymbolicLink&&(s.isSymbolicLink=()=>!0),s}catch(s){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw s}}sQ.read=$Ze});var Kle=_(h0=>{"use strict";Object.defineProperty(h0,"__esModule",{value:!0});h0.createFileSystemAdapter=h0.FILE_SYSTEM_ADAPTER=void 0;var oQ=Ie("fs");h0.FILE_SYSTEM_ADAPTER={lstat:oQ.lstat,stat:oQ.stat,lstatSync:oQ.lstatSync,statSync:oQ.statSync};function eXe(t){return t===void 0?h0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},h0.FILE_SYSTEM_ADAPTER),t)}h0.createFileSystemAdapter=eXe});var zle=_(A3=>{"use strict";Object.defineProperty(A3,"__esModule",{value:!0});var tXe=Kle(),f3=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=tXe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};A3.default=f3});var Xd=_(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});g0.statSync=g0.stat=g0.Settings=void 0;var Zle=Vle(),rXe=Jle(),p3=zle();g0.Settings=p3.default;function nXe(t,e,r){if(typeof e=="function"){Zle.read(t,h3(),e);return}Zle.read(t,h3(e),r)}g0.stat=nXe;function iXe(t,e){let r=h3(e);return rXe.read(t,r)}g0.statSync=iXe;function h3(t={}){return t instanceof p3.default?t:new p3.default(t)}});var ece=_(($Ot,$le)=>{var Xle;$le.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):t=>(Xle||(Xle=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var rce=_((eLt,tce)=>{tce.exports=oXe;var sXe=ece();function oXe(t,e){let r,s,a,n=!0;Array.isArray(t)?(r=[],s=t.length):(a=Object.keys(t),r={},s=a.length);function c(p){function h(){e&&e(p,r),e=null}n?sXe(h):h()}function f(p,h,E){r[p]=E,(--s===0||h)&&c(h)}s?a?a.forEach(function(p){t[p](function(h,E){f(p,h,E)})}):t.forEach(function(p,h){p(function(E,C){f(h,E,C)})}):c(null),n=!1}});var g3=_(lQ=>{"use strict";Object.defineProperty(lQ,"__esModule",{value:!0});lQ.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var aQ=process.versions.node.split(".");if(aQ[0]===void 0||aQ[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var nce=Number.parseInt(aQ[0],10),aXe=Number.parseInt(aQ[1],10),ice=10,lXe=10,cXe=nce>ice,uXe=nce===ice&&aXe>=lXe;lQ.IS_SUPPORT_READDIR_WITH_FILE_TYPES=cXe||uXe});var sce=_(cQ=>{"use strict";Object.defineProperty(cQ,"__esModule",{value:!0});cQ.createDirentFromStats=void 0;var d3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function fXe(t,e){return new d3(t,e)}cQ.createDirentFromStats=fXe});var m3=_(uQ=>{"use strict";Object.defineProperty(uQ,"__esModule",{value:!0});uQ.fs=void 0;var AXe=sce();uQ.fs=AXe});var y3=_(fQ=>{"use strict";Object.defineProperty(fQ,"__esModule",{value:!0});fQ.joinPathSegments=void 0;function pXe(t,e,r){return t.endsWith(r)?t+e:t+r+e}fQ.joinPathSegments=pXe});var fce=_(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});d0.readdir=d0.readdirWithFileTypes=d0.read=void 0;var hXe=Xd(),oce=rce(),gXe=g3(),ace=m3(),lce=y3();function dXe(t,e,r){if(!e.stats&&gXe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){cce(t,e,r);return}uce(t,e,r)}d0.read=dXe;function cce(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(s,a)=>{if(s!==null){AQ(r,s);return}let n=a.map(f=>({dirent:f,name:f.name,path:lce.joinPathSegments(t,f.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){E3(r,n);return}let c=n.map(f=>mXe(f,e));oce(c,(f,p)=>{if(f!==null){AQ(r,f);return}E3(r,p)})})}d0.readdirWithFileTypes=cce;function mXe(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(s,a)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){r(s);return}r(null,t);return}t.dirent=ace.fs.createDirentFromStats(t.name,a),r(null,t)})}}function uce(t,e,r){e.fs.readdir(t,(s,a)=>{if(s!==null){AQ(r,s);return}let n=a.map(c=>{let f=lce.joinPathSegments(t,c,e.pathSegmentSeparator);return p=>{hXe.stat(f,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let C={name:c,path:f,dirent:ace.fs.createDirentFromStats(c,E)};e.stats&&(C.stats=E),p(null,C)})}});oce(n,(c,f)=>{if(c!==null){AQ(r,c);return}E3(r,f)})})}d0.readdir=uce;function AQ(t,e){t(e)}function E3(t,e){t(null,e)}});var dce=_(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});m0.readdir=m0.readdirWithFileTypes=m0.read=void 0;var yXe=Xd(),EXe=g3(),Ace=m3(),pce=y3();function IXe(t,e){return!e.stats&&EXe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?hce(t,e):gce(t,e)}m0.read=IXe;function hce(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(s=>{let a={dirent:s,name:s.name,path:pce.joinPathSegments(t,s.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=Ace.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}m0.readdirWithFileTypes=hce;function gce(t,e){return e.fs.readdirSync(t).map(s=>{let a=pce.joinPathSegments(t,s,e.pathSegmentSeparator),n=yXe.statSync(a,e.fsStatSettings),c={name:s,path:a,dirent:Ace.fs.createDirentFromStats(s,n)};return e.stats&&(c.stats=n),c})}m0.readdir=gce});var mce=_(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});y0.createFileSystemAdapter=y0.FILE_SYSTEM_ADAPTER=void 0;var XE=Ie("fs");y0.FILE_SYSTEM_ADAPTER={lstat:XE.lstat,stat:XE.stat,lstatSync:XE.lstatSync,statSync:XE.statSync,readdir:XE.readdir,readdirSync:XE.readdirSync};function CXe(t){return t===void 0?y0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},y0.FILE_SYSTEM_ADAPTER),t)}y0.createFileSystemAdapter=CXe});var yce=_(C3=>{"use strict";Object.defineProperty(C3,"__esModule",{value:!0});var wXe=Ie("path"),BXe=Xd(),vXe=mce(),I3=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=vXe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,wXe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new BXe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};C3.default=I3});var pQ=_(E0=>{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});E0.Settings=E0.scandirSync=E0.scandir=void 0;var Ece=fce(),SXe=dce(),w3=yce();E0.Settings=w3.default;function DXe(t,e,r){if(typeof e=="function"){Ece.read(t,B3(),e);return}Ece.read(t,B3(e),r)}E0.scandir=DXe;function PXe(t,e){let r=B3(e);return SXe.read(t,r)}E0.scandirSync=PXe;function B3(t={}){return t instanceof w3.default?t:new w3.default(t)}});var Cce=_((uLt,Ice)=>{"use strict";function bXe(t){var e=new t,r=e;function s(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:s,release:a}}Ice.exports=bXe});var Bce=_((fLt,v3)=>{"use strict";var xXe=Cce();function wce(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var s=xXe(kXe),a=null,n=null,c=0,f=null,p={push:T,drain:kc,saturated:kc,pause:E,paused:!1,get concurrency(){return r},set concurrency(ue){if(!(ue>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=ue,!p.paused)for(;a&&c=r||p.paused?n?(n.next=me,n=me):(a=me,n=me,p.saturated()):(c++,e.call(t,me.value,me.worked))}function N(ue,le){var me=s.get();me.context=t,me.release=U,me.value=ue,me.callback=le||kc,me.errorHandler=f,c>=r||p.paused?a?(me.next=a,a=me):(a=me,n=me,p.saturated()):(c++,e.call(t,me.value,me.worked))}function U(ue){ue&&s.release(ue);var le=a;le&&c<=r?p.paused?c--:(n===a&&(n=null),a=le.next,le.next=null,e.call(t,le.value,le.worked),n===null&&p.empty()):--c===0&&p.drain()}function W(){a=null,n=null,p.drain=kc}function ee(){a=null,n=null,p.drain(),p.drain=kc}function ie(ue){f=ue}}function kc(){}function kXe(){this.value=null,this.callback=kc,this.next=null,this.release=kc,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,s){var a=t.callback,n=t.errorHandler,c=t.value;t.value=null,t.callback=kc,t.errorHandler&&n(r,c),a.call(t.context,r,s),t.release(t)}}function QXe(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function s(E,C){e.call(this,E).then(function(S){C(null,S)},C)}var a=wce(t,s,r),n=a.push,c=a.unshift;return a.push=f,a.unshift=p,a.drained=h,a;function f(E){var C=new Promise(function(S,b){n(E,function(I,T){if(I){b(I);return}S(T)})});return C.catch(kc),C}function p(E){var C=new Promise(function(S,b){c(E,function(I,T){if(I){b(I);return}S(T)})});return C.catch(kc),C}function h(){if(a.idle())return new Promise(function(S){S()});var E=a.drain,C=new Promise(function(S){a.drain=function(){E(),S()}});return C}}v3.exports=wce;v3.exports.promise=QXe});var hQ=_(zf=>{"use strict";Object.defineProperty(zf,"__esModule",{value:!0});zf.joinPathSegments=zf.replacePathSegmentSeparator=zf.isAppliedFilter=zf.isFatalError=void 0;function RXe(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}zf.isFatalError=RXe;function TXe(t,e){return t===null||t(e)}zf.isAppliedFilter=TXe;function FXe(t,e){return t.split(/[/\\]/).join(e)}zf.replacePathSegmentSeparator=FXe;function NXe(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}zf.joinPathSegments=NXe});var P3=_(D3=>{"use strict";Object.defineProperty(D3,"__esModule",{value:!0});var OXe=hQ(),S3=class{constructor(e,r){this._root=e,this._settings=r,this._root=OXe.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};D3.default=S3});var k3=_(x3=>{"use strict";Object.defineProperty(x3,"__esModule",{value:!0});var LXe=Ie("events"),MXe=pQ(),UXe=Bce(),gQ=hQ(),_Xe=P3(),b3=class extends _Xe.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=MXe.scandir,this._emitter=new LXe.EventEmitter,this._queue=UXe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let s={directory:e,base:r};this._queue.push(s,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(s,a)=>{if(s!==null){r(s,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!gQ.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let s=e.path;r!==void 0&&(e.path=gQ.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),gQ.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&gQ.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};x3.default=b3});var vce=_(R3=>{"use strict";Object.defineProperty(R3,"__esModule",{value:!0});var HXe=k3(),Q3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new HXe.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{jXe(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{GXe(e,this._storage)}),this._reader.read()}};R3.default=Q3;function jXe(t,e){t(e)}function GXe(t,e){t(null,e)}});var Sce=_(F3=>{"use strict";Object.defineProperty(F3,"__esModule",{value:!0});var qXe=Ie("stream"),WXe=k3(),T3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new WXe.default(this._root,this._settings),this._stream=new qXe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};F3.default=T3});var Dce=_(O3=>{"use strict";Object.defineProperty(O3,"__esModule",{value:!0});var YXe=pQ(),dQ=hQ(),VXe=P3(),N3=class extends VXe.default{constructor(){super(...arguments),this._scandir=YXe.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let s=this._scandir(e,this._settings.fsScandirSettings);for(let a of s)this._handleEntry(a,r)}catch(s){this._handleError(s)}}_handleError(e){if(dQ.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let s=e.path;r!==void 0&&(e.path=dQ.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),dQ.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&dQ.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};O3.default=N3});var Pce=_(M3=>{"use strict";Object.defineProperty(M3,"__esModule",{value:!0});var JXe=Dce(),L3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new JXe.default(this._root,this._settings)}read(){return this._reader.read()}};M3.default=L3});var bce=_(_3=>{"use strict";Object.defineProperty(_3,"__esModule",{value:!0});var KXe=Ie("path"),zXe=pQ(),U3=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,KXe.sep),this.fsScandirSettings=new zXe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};_3.default=U3});var yQ=_(Zf=>{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});Zf.Settings=Zf.walkStream=Zf.walkSync=Zf.walk=void 0;var xce=vce(),ZXe=Sce(),XXe=Pce(),H3=bce();Zf.Settings=H3.default;function $Xe(t,e,r){if(typeof e=="function"){new xce.default(t,mQ()).read(e);return}new xce.default(t,mQ(e)).read(r)}Zf.walk=$Xe;function e$e(t,e){let r=mQ(e);return new XXe.default(t,r).read()}Zf.walkSync=e$e;function t$e(t,e){let r=mQ(e);return new ZXe.default(t,r).read()}Zf.walkStream=t$e;function mQ(t={}){return t instanceof H3.default?t:new H3.default(t)}});var EQ=_(G3=>{"use strict";Object.defineProperty(G3,"__esModule",{value:!0});var r$e=Ie("path"),n$e=Xd(),kce=xp(),j3=class{constructor(e){this._settings=e,this._fsStatSettings=new n$e.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return r$e.resolve(this._settings.cwd,e)}_makeEntry(e,r){let s={name:r,path:r,dirent:kce.fs.createDirentFromStats(r,e)};return this._settings.stats&&(s.stats=e),s}_isFatalError(e){return!kce.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};G3.default=j3});var Y3=_(W3=>{"use strict";Object.defineProperty(W3,"__esModule",{value:!0});var i$e=Ie("stream"),s$e=Xd(),o$e=yQ(),a$e=EQ(),q3=class extends a$e.default{constructor(){super(...arguments),this._walkStream=o$e.walkStream,this._stat=s$e.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let s=e.map(this._getFullEntryPath,this),a=new i$e.PassThrough({objectMode:!0});a._write=(n,c,f)=>this._getEntry(s[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===s.length-1&&a.end(),f()}).catch(f);for(let n=0;nthis._makeEntry(a,r)).catch(a=>{if(s.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,s)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):s(a))})}};W3.default=q3});var Qce=_(J3=>{"use strict";Object.defineProperty(J3,"__esModule",{value:!0});var l$e=yQ(),c$e=EQ(),u$e=Y3(),V3=class extends c$e.default{constructor(){super(...arguments),this._walkAsync=l$e.walk,this._readerStream=new u$e.default(this._settings)}dynamic(e,r){return new Promise((s,a)=>{this._walkAsync(e,r,(n,c)=>{n===null?s(c):a(n)})})}async static(e,r){let s=[],a=this._readerStream.static(e,r);return new Promise((n,c)=>{a.once("error",c),a.on("data",f=>s.push(f)),a.once("end",()=>n(s))})}};J3.default=V3});var Rce=_(z3=>{"use strict";Object.defineProperty(z3,"__esModule",{value:!0});var NB=xp(),K3=class{constructor(e,r,s){this._patterns=e,this._settings=r,this._micromatchOptions=s,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),s=this._splitSegmentsIntoSections(r);this._storage.push({complete:s.length<=1,pattern:e,segments:r,sections:s})}}_getPatternSegments(e){return NB.pattern.getPatternParts(e,this._micromatchOptions).map(s=>NB.pattern.isDynamicPattern(s,this._settings)?{dynamic:!0,pattern:s,patternRe:NB.pattern.makeRe(s,this._micromatchOptions)}:{dynamic:!1,pattern:s})}_splitSegmentsIntoSections(e){return NB.array.splitWhen(e,r=>r.dynamic&&NB.pattern.hasGlobStar(r.pattern))}};z3.default=K3});var Tce=_(X3=>{"use strict";Object.defineProperty(X3,"__esModule",{value:!0});var f$e=Rce(),Z3=class extends f$e.default{match(e){let r=e.split("/"),s=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>s);for(let n of a){let c=n.sections[0];if(!n.complete&&s>c.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};X3.default=Z3});var Fce=_(e8=>{"use strict";Object.defineProperty(e8,"__esModule",{value:!0});var IQ=xp(),A$e=Tce(),$3=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,s){let a=this._getMatcher(r),n=this._getNegativePatternsRe(s);return c=>this._filter(e,c,a,n)}_getMatcher(e){return new A$e.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(IQ.pattern.isAffectDepthOfReadingPattern);return IQ.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,s,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=IQ.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,s)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let s=r.split("/").length;if(e==="")return s;let a=e.split("/").length;return s-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!IQ.pattern.matchAny(e,r)}};e8.default=$3});var Nce=_(r8=>{"use strict";Object.defineProperty(r8,"__esModule",{value:!0});var $d=xp(),t8=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let s=$d.pattern.convertPatternsToRe(e,this._micromatchOptions),a=$d.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,s,a)}_filter(e,r,s){let a=$d.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,s))return!1;let n=e.dirent.isDirectory(),c=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,s,n);return this._settings.unique&&c&&this._createIndexRecord(a),c}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let s=$d.path.makeAbsolute(this._settings.cwd,e);return $d.pattern.matchAny(s,r)}_isMatchToPatterns(e,r,s){let a=$d.pattern.matchAny(e,r);return!a&&s?$d.pattern.matchAny(e+"/",r):a}};r8.default=t8});var Oce=_(i8=>{"use strict";Object.defineProperty(i8,"__esModule",{value:!0});var p$e=xp(),n8=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return p$e.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};i8.default=n8});var Mce=_(o8=>{"use strict";Object.defineProperty(o8,"__esModule",{value:!0});var Lce=xp(),s8=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Lce.path.makeAbsolute(this._settings.cwd,r),r=Lce.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};o8.default=s8});var CQ=_(l8=>{"use strict";Object.defineProperty(l8,"__esModule",{value:!0});var h$e=Ie("path"),g$e=Fce(),d$e=Nce(),m$e=Oce(),y$e=Mce(),a8=class{constructor(e){this._settings=e,this.errorFilter=new m$e.default(this._settings),this.entryFilter=new d$e.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new g$e.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new y$e.default(this._settings)}_getRootDirectory(e){return h$e.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};l8.default=a8});var Uce=_(u8=>{"use strict";Object.defineProperty(u8,"__esModule",{value:!0});var E$e=Qce(),I$e=CQ(),c8=class extends I$e.default{constructor(){super(...arguments),this._reader=new E$e.default(this._settings)}async read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);return(await this.api(r,e,s)).map(n=>s.transform(n))}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};u8.default=c8});var _ce=_(A8=>{"use strict";Object.defineProperty(A8,"__esModule",{value:!0});var C$e=Ie("stream"),w$e=Y3(),B$e=CQ(),f8=class extends B$e.default{constructor(){super(...arguments),this._reader=new w$e.default(this._settings)}read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e),a=this.api(r,e,s),n=new C$e.Readable({objectMode:!0,read:()=>{}});return a.once("error",c=>n.emit("error",c)).on("data",c=>n.emit("data",s.transform(c))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};A8.default=f8});var Hce=_(h8=>{"use strict";Object.defineProperty(h8,"__esModule",{value:!0});var v$e=Xd(),S$e=yQ(),D$e=EQ(),p8=class extends D$e.default{constructor(){super(...arguments),this._walkSync=S$e.walkSync,this._statSync=v$e.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let s=[];for(let a of e){let n=this._getFullEntryPath(a),c=this._getEntry(n,a,r);c===null||!r.entryFilter(c)||s.push(c)}return s}_getEntry(e,r,s){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(s.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};h8.default=p8});var jce=_(d8=>{"use strict";Object.defineProperty(d8,"__esModule",{value:!0});var P$e=Hce(),b$e=CQ(),g8=class extends b$e.default{constructor(){super(...arguments),this._reader=new P$e.default(this._settings)}read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);return this.api(r,e,s).map(s.transform)}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};d8.default=g8});var Gce=_(eI=>{"use strict";Object.defineProperty(eI,"__esModule",{value:!0});eI.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var $E=Ie("fs"),x$e=Ie("os"),k$e=Math.max(x$e.cpus().length,1);eI.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:$E.lstat,lstatSync:$E.lstatSync,stat:$E.stat,statSync:$E.statSync,readdir:$E.readdir,readdirSync:$E.readdirSync};var m8=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,k$e),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},eI.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};eI.default=m8});var wQ=_((OLt,Wce)=>{"use strict";var qce=Wle(),Q$e=Uce(),R$e=_ce(),T$e=jce(),y8=Gce(),Qc=xp();async function E8(t,e){ju(t);let r=I8(t,Q$e.default,e),s=await Promise.all(r);return Qc.array.flatten(s)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){ju(h);let C=I8(h,T$e.default,E);return Qc.array.flatten(C)}t.sync=e;function r(h,E){ju(h);let C=I8(h,R$e.default,E);return Qc.stream.merge(C)}t.stream=r;function s(h,E){ju(h);let C=[].concat(h),S=new y8.default(E);return qce.generate(C,S)}t.generateTasks=s;function a(h,E){ju(h);let C=new y8.default(E);return Qc.pattern.isDynamicPattern(h,C)}t.isDynamicPattern=a;function n(h){return ju(h),Qc.path.escape(h)}t.escapePath=n;function c(h){return ju(h),Qc.path.convertPathToPattern(h)}t.convertPathToPattern=c;let f;(function(h){function E(S){return ju(S),Qc.path.escapePosixPath(S)}h.escapePath=E;function C(S){return ju(S),Qc.path.convertPosixPathToPattern(S)}h.convertPathToPattern=C})(f=t.posix||(t.posix={}));let p;(function(h){function E(S){return ju(S),Qc.path.escapeWindowsPath(S)}h.escapePath=E;function C(S){return ju(S),Qc.path.convertWindowsPathToPattern(S)}h.convertPathToPattern=C})(p=t.win32||(t.win32={}))})(E8||(E8={}));function I8(t,e,r){let s=[].concat(t),a=new y8.default(r),n=qce.generate(s,a),c=new e(a);return n.map(c.read,c)}function ju(t){if(![].concat(t).every(s=>Qc.string.isString(s)&&!Qc.string.isEmpty(s)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Wce.exports=E8});var Nn={};Vt(Nn,{checksumFile:()=>vQ,checksumPattern:()=>SQ,makeHash:()=>cs});function cs(...t){let e=(0,BQ.createHash)("sha512"),r="";for(let s of t)typeof s=="string"?r+=s:s&&(r&&(e.update(r),r=""),e.update(s));return r&&e.update(r),e.digest("hex")}async function vQ(t,{baseFs:e,algorithm:r}={baseFs:ce,algorithm:"sha512"}){let s=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,BQ.createHash)(r),f=0;for(;(f=await e.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest("hex")}finally{await e.closePromise(s)}}async function SQ(t,{cwd:e}){let s=(await(0,C8.default)(t,{cwd:fe.fromPortablePath(e),onlyDirectories:!0})).map(f=>`${f}/**/*`),a=await(0,C8.default)([t,...s],{cwd:fe.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async f=>{let p=[Buffer.from(f)],h=J.join(e,fe.toPortablePath(f)),E=await ce.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await ce.readlinkPromise(h))):E.isFile()&&p.push(await ce.readFilePromise(h)),p.join("\0")})),c=(0,BQ.createHash)("sha512");for(let f of n)c.update(f);return c.digest("hex")}var BQ,C8,I0=Ze(()=>{Dt();BQ=Ie("crypto"),C8=ut(wQ())});var G={};Vt(G,{allPeerRequests:()=>qB,areDescriptorsEqual:()=>zce,areIdentsEqual:()=>UB,areLocatorsEqual:()=>_B,areVirtualPackagesEquivalent:()=>j$e,bindDescriptor:()=>_$e,bindLocator:()=>H$e,convertDescriptorToLocator:()=>DQ,convertLocatorToDescriptor:()=>B8,convertPackageToLocator:()=>L$e,convertToIdent:()=>O$e,convertToManifestRange:()=>X$e,copyPackage:()=>LB,devirtualizeDescriptor:()=>MB,devirtualizeLocator:()=>rI,ensureDevirtualizedDescriptor:()=>M$e,ensureDevirtualizedLocator:()=>U$e,getIdentVendorPath:()=>P8,isPackageCompatible:()=>QQ,isVirtualDescriptor:()=>kp,isVirtualLocator:()=>Gu,makeDescriptor:()=>On,makeIdent:()=>Da,makeLocator:()=>Ws,makeRange:()=>xQ,parseDescriptor:()=>C0,parseFileStyleRange:()=>z$e,parseIdent:()=>Sa,parseLocator:()=>Qp,parseRange:()=>em,prettyDependent:()=>$4,prettyDescriptor:()=>ni,prettyIdent:()=>Xi,prettyLocator:()=>Yr,prettyLocatorNoColors:()=>X4,prettyRange:()=>iI,prettyReference:()=>jB,prettyResolution:()=>FB,prettyWorkspace:()=>GB,renamePackage:()=>v8,slugifyIdent:()=>w8,slugifyLocator:()=>nI,sortDescriptors:()=>sI,stringifyDescriptor:()=>al,stringifyIdent:()=>un,stringifyLocator:()=>ll,tryParseDescriptor:()=>HB,tryParseIdent:()=>Zce,tryParseLocator:()=>bQ,tryParseRange:()=>K$e,unwrapIdentFromScope:()=>eet,virtualizeDescriptor:()=>S8,virtualizePackage:()=>D8,wrapIdentIntoScope:()=>$$e});function Da(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:cs(t,e),scope:t,name:e}}function On(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:cs(t.identHash,e),range:e}}function Ws(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:cs(t.identHash,e),reference:e}}function O$e(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function DQ(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function B8(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function L$e(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function v8(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function LB(t){return v8(t,t)}function S8(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return On(t,`virtual:${e}#${t.range}`)}function D8(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return v8(t,Ws(t,`virtual:${e}#${t.reference}`))}function kp(t){return t.range.startsWith(OB)}function Gu(t){return t.reference.startsWith(OB)}function MB(t){if(!kp(t))throw new Error("Not a virtual descriptor");return On(t,t.range.replace(PQ,""))}function rI(t){if(!Gu(t))throw new Error("Not a virtual descriptor");return Ws(t,t.reference.replace(PQ,""))}function M$e(t){return kp(t)?On(t,t.range.replace(PQ,"")):t}function U$e(t){return Gu(t)?Ws(t,t.reference.replace(PQ,"")):t}function _$e(t,e){return t.range.includes("::")?t:On(t,`${t.range}::${tI.default.stringify(e)}`)}function H$e(t,e){return t.reference.includes("::")?t:Ws(t,`${t.reference}::${tI.default.stringify(e)}`)}function UB(t,e){return t.identHash===e.identHash}function zce(t,e){return t.descriptorHash===e.descriptorHash}function _B(t,e){return t.locatorHash===e.locatorHash}function j$e(t,e){if(!Gu(t))throw new Error("Invalid package type");if(!Gu(e))throw new Error("Invalid package type");if(!UB(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let s=e.dependencies.get(r.identHash);if(!s||!zce(r,s))return!1}return!0}function Sa(t){let e=Zce(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function Zce(t){let e=t.match(G$e);if(!e)return null;let[,r,s]=e;return Da(typeof r<"u"?r:null,s)}function C0(t,e=!1){let r=HB(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function HB(t,e=!1){let r=e?t.match(q$e):t.match(W$e);if(!r)return null;let[,s,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let c=typeof s<"u"?s:null,f=typeof n<"u"?n:"unknown";return On(Da(c,a),f)}function Qp(t,e=!1){let r=bQ(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function bQ(t,e=!1){let r=e?t.match(Y$e):t.match(V$e);if(!r)return null;let[,s,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let c=typeof s<"u"?s:null,f=typeof n<"u"?n:"unknown";return Ws(Da(c,a),f)}function em(t,e){let r=t.match(J$e);if(r===null)throw new Error(`Invalid range (${t})`);let s=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&s!==e.requireProtocol)throw new Error(`Invalid protocol (${s})`);if(e?.requireProtocol&&s===null)throw new Error(`Missing protocol (${s})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),c=e?.parseSelector?tI.default.parse(n):n,f=typeof r[4]<"u"?tI.default.parse(r[4]):null;return{protocol:s,source:a,selector:c,params:f}}function K$e(t,e){try{return em(t,e)}catch{return null}}function z$e(t,{protocol:e}){let{selector:r,params:s}=em(t,{requireProtocol:e,requireBindings:!0});if(typeof s.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Qp(s.locator,!0),path:r}}function Yce(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function Z$e(t){return t===null?!1:Object.entries(t).length>0}function xQ({protocol:t,source:e,selector:r,params:s}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${Yce(e)}#`),a+=Yce(r),Z$e(s)&&(a+=`::${tI.default.stringify(s)}`),a}function X$e(t){let{params:e,protocol:r,source:s,selector:a}=em(t);for(let n in e)n.startsWith("__")&&delete e[n];return xQ({protocol:r,source:s,params:e,selector:a})}function un(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function $$e(t,e){return t.scope?Da(e,`${t.scope}__${t.name}`):Da(e,t.name)}function eet(t,e){if(t.scope!==e)return t;let r=t.name.indexOf("__");if(r===-1)return Da(null,t.name);let s=t.name.slice(0,r),a=t.name.slice(r+2);return Da(s,a)}function al(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function ll(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function w8(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function nI(t){let{protocol:e,selector:r}=em(t.reference),s=e!==null?e.replace(tet,""):"exotic",a=Vce.default.valid(r),n=a!==null?`${s}-${a}`:`${s}`,c=10;return t.scope?`${w8(t)}-${n}-${t.locatorHash.slice(0,c)}`:`${w8(t)}-${n}-${t.locatorHash.slice(0,c)}`}function Xi(t,e){return e.scope?`${Ht(t,`@${e.scope}/`,ht.SCOPE)}${Ht(t,e.name,ht.NAME)}`:`${Ht(t,e.name,ht.NAME)}`}function kQ(t){if(t.startsWith(OB)){let e=kQ(t.substring(t.indexOf("#")+1)),r=t.substring(OB.length,OB.length+F$e);return`${e} [${r}]`}else return t.replace(ret,"?[...]")}function iI(t,e){return`${Ht(t,kQ(e),ht.RANGE)}`}function ni(t,e){return`${Xi(t,e)}${Ht(t,"@",ht.RANGE)}${iI(t,e.range)}`}function jB(t,e){return`${Ht(t,kQ(e),ht.REFERENCE)}`}function Yr(t,e){return`${Xi(t,e)}${Ht(t,"@",ht.REFERENCE)}${jB(t,e.reference)}`}function X4(t){return`${un(t)}@${kQ(t.reference)}`}function sI(t){return qs(t,[e=>un(e),e=>e.range])}function GB(t,e){return Xi(t,e.anchoredLocator)}function FB(t,e,r){let s=kp(e)?MB(e):e;return r===null?`${ni(t,s)} \u2192 ${Z4(t).Cross}`:s.identHash===r.identHash?`${ni(t,s)} \u2192 ${jB(t,r.reference)}`:`${ni(t,s)} \u2192 ${Yr(t,r)}`}function $4(t,e,r){return r===null?`${Yr(t,e)}`:`${Yr(t,e)} (via ${iI(t,r.range)})`}function P8(t){return`node_modules/${un(t)}`}function QQ(t,e){return t.conditions?N$e(t.conditions,r=>{let[,s,a]=r.match(Kce),n=e[s];return n?n.includes(a):!0}):!0}function qB(t){let e=new Set;if("children"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let s of r.children.values())e.add(s);return e}var tI,Vce,Jce,OB,F$e,Kce,N$e,PQ,G$e,q$e,W$e,Y$e,V$e,J$e,tet,ret,Wo=Ze(()=>{tI=ut(Ie("querystring")),Vce=ut(Ai()),Jce=ut(dse());xc();I0();bc();Wo();OB="virtual:",F$e=5,Kce=/(os|cpu|libc)=([a-z0-9_-]+)/,N$e=(0,Jce.makeParser)(Kce);PQ=/^[^#]*#/;G$e=/^(?:@([^/]+?)\/)?([^@/]+)$/;q$e=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,W$e=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Y$e=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,V$e=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;J$e=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;tet=/:$/;ret=/\?.*/});var Xce,$ce=Ze(()=>{Wo();Xce={hooks:{reduceDependency:(t,e,r,s,{resolver:a,resolveOptions:n})=>{for(let{pattern:c,reference:f}of e.topLevelWorkspace.manifest.resolutions){if(c.from&&(c.from.fullName!==un(r)||e.configuration.normalizeLocator(Ws(Sa(c.from.fullName),c.from.description??r.reference)).locatorHash!==r.locatorHash)||c.descriptor.fullName!==un(t)||e.configuration.normalizeDependency(On(Qp(c.descriptor.fullName),c.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(On(t,f)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let s=GB(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${s}: ${n}`),reportError:(a,n)=>e.reportError(a,`${s}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let s of r.errors)e.reportWarning(57,s.message)}}}});var Ei,tm=Ze(()=>{Ei=class t{static{this.protocol="workspace:"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){return[s.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:s.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...s.manifest.dependencies,...s.manifest.devDependencies])),peerDependencies:new Map([...s.manifest.peerDependencies]),dependenciesMeta:s.manifest.dependenciesMeta,peerDependenciesMeta:s.manifest.peerDependenciesMeta,bin:s.manifest.bin}}}});var Fr={};Vt(Fr,{SemVer:()=>iue.SemVer,clean:()=>iet,getComparator:()=>rue,mergeComparators:()=>b8,satisfiesWithPrereleases:()=>Xf,simplifyRanges:()=>x8,stringifyComparator:()=>nue,validRange:()=>cl});function Xf(t,e,r=!1){if(!t)return!1;let s=`${e}${r}`,a=eue.get(s);if(typeof a>"u")try{a=new Rp.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{eue.set(s,a||null)}else if(a===null)return!1;let n;try{n=new Rp.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(c=>{for(let f of c)f.semver.prerelease&&(f.semver.prerelease=[]);return c.every(f=>f.test(n))}))}function cl(t){if(t.indexOf(":")!==-1)return null;let e=tue.get(t);if(typeof e<"u")return e;try{e=new Rp.default.Range(t)}catch{e=null}return tue.set(t,e),e}function iet(t){let e=net.exec(t);return e?e[1]:null}function rue(t){if(t.semver===Rp.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function b8(t){if(t.length===0)return null;let e=null,r=null;for(let s of t){if(s.gt){let a=e!==null?Rp.default.compare(s.gt[1],e[1]):null;(a===null||a>0||a===0&&s.gt[0]===">")&&(e=s.gt)}if(s.lt){let a=r!==null?Rp.default.compare(s.lt[1],r[1]):null;(a===null||a<0||a===0&&s.lt[0]==="<")&&(r=s.lt)}}if(e&&r){let s=Rp.default.compare(e[1],r[1]);if(s===0&&(e[0]===">"||r[0]==="<")||s>0)return null}return{gt:e,lt:r}}function nue(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function x8(t){let e=t.map(set).map(s=>cl(s).set.map(a=>a.map(n=>rue(n)))),r=e.shift().map(s=>b8(s)).filter(s=>s!==null);for(let s of e){let a=[];for(let n of r)for(let c of s){let f=b8([n,...c]);f!==null&&a.push(f)}r=a}return r.length===0?null:r.map(s=>nue(s)).join(" || ")}function set(t){let e=t.split("||");if(e.length>1){let r=new Set;for(let s of e)e.some(a=>a!==s&&Rp.default.subset(s,a))||r.add(s);if(r.size{Rp=ut(Ai()),iue=ut(Ai()),eue=new Map;tue=new Map;net=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function sue(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function oue(t){return t.charCodeAt(0)===65279?t.slice(1):t}function Pa(t){return t.replace(/\\/g,"/")}function RQ(t,{yamlCompatibilityMode:e}){return e?q4(t):typeof t>"u"||typeof t=="boolean"?t:null}function aue(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let s=r%2===0?"":"!",a=e.slice(r);return`${s}${t}=${a}`}function k8(t,e){return e.length===1?aue(t,e[0]):`(${e.map(r=>aue(t,r)).join(" | ")})`}var lue,Ut,oI=Ze(()=>{Dt();wc();lue=ut(Ai());tm();bc();Tp();Wo();Ut=class t{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName="package.json"}static{this.allDependencies=["dependencies","devDependencies","peerDependencies"]}static{this.hardDependencies=["dependencies","devDependencies"]}static async tryFind(e,{baseFs:r=new Yn}={}){let s=J.join(e,"package.json");try{return await t.fromFile(s,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let s=await t.tryFind(e,{baseFs:r});if(s===null)throw new Error("Manifest not found");return s}static async fromFile(e,{baseFs:r=new Yn}={}){let s=new t;return await s.loadFile(e,{baseFs:r}),s}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(oue(e)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(r),this.indent=sue(e)}async loadFile(e,{baseFs:r=new Yn}){let s=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(oue(s)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=sue(s)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let s=[];if(this.name=null,typeof e.name=="string")try{this.name=Sa(e.name)}catch{s.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let c of e.os)typeof c!="string"?s.push(new Error("Parsing failed for the 'os' field")):n.push(c)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let c of e.cpu)typeof c!="string"?s.push(new Error("Parsing failed for the 'cpu' field")):n.push(c)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let c of e.libc)typeof c!="string"?s.push(new Error("Parsing failed for the 'libc' field")):n.push(c)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=Pa(e.main):this.main=null,typeof e.module=="string"?this.module=Pa(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=Pa(e.browser);else{this.browser=new Map;for(let[n,c]of Object.entries(e.browser))this.browser.set(Pa(n),typeof c=="string"?Pa(c):c)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?s.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,Pa(e.bin)):s.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,c]of Object.entries(e.bin)){if(typeof c!="string"||c.trim()===""){s.push(new Error(`Invalid bin definition for '${n}'`));continue}let f=Sa(n);this.bin.set(f.name,Pa(c))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,c]of Object.entries(e.scripts)){if(typeof c!="string"){s.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,c)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,c]of Object.entries(e.dependencies)){if(typeof c!="string"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,c]of Object.entries(e.devDependencies)){if(typeof c!="string"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,c]of Object.entries(e.peerDependencies)){let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof c!="string"||!c.startsWith(Ei.protocol)&&!cl(c))&&(s.push(new Error(`Invalid dependency range for '${n}'`)),c="*");let p=On(f,c);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&s.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){s.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,c]of Object.entries(e.dependenciesMeta)){if(typeof c!="object"||c===null){s.push(new Error(`Invalid meta field for '${n}`));continue}let f=C0(n),p=this.ensureDependencyMeta(f),h=RQ(c.built,{yamlCompatibilityMode:r});if(h===null){s.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=RQ(c.optional,{yamlCompatibilityMode:r});if(E===null){s.push(new Error(`Invalid optional meta field for '${n}'`));continue}let C=RQ(c.unplugged,{yamlCompatibilityMode:r});if(C===null){s.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:C})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,c]of Object.entries(e.peerDependenciesMeta)){if(typeof c!="object"||c===null){s.push(new Error(`Invalid meta field for '${n}'`));continue}let f=C0(n),p=this.ensurePeerDependencyMeta(f),h=RQ(c.optional,{yamlCompatibilityMode:r});if(h===null){s.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,c]of Object.entries(e.resolutions)){if(typeof c!="string"){s.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:px(n),reference:c})}catch(f){s.push(f);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){s.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=Pa(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=Pa(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=Pa(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,c]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(Pa(n),typeof c=="string"?Pa(c):c)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.provenance=="boolean"&&(this.publishConfig.provenance=e.publishConfig.provenance),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,Pa(e.publishConfig.bin)]]):s.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,c]of Object.entries(e.publishConfig.bin)){if(typeof c!="string"){s.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,Pa(c))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){s.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(Pa(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:s.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:s.push(new Error("Invalid selfReferences definition, must be a boolean value")):s.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,c]of Object.entries(e.optionalDependencies)){if(typeof c!="string"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.dependencies.set(p.identHash,p);let h=On(f,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=s}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(k8("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(k8("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(k8("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!lue.default.valid(e.range))throw new Error(`Invalid meta field range for '${al(e)}'`);let r=un(e),s=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(s);return n||a.set(s,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${al(e)}'`);let r=un(e),s=this.peerDependenciesMeta.get(r);return s||this.peerDependenciesMeta.set(r,s={}),s}setRawField(e,r,{after:s=[]}={}){let a=new Set(s.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,c=this.raw={},f=!1;for(let p of Object.keys(n))c[p]=n[p],f||(a.delete(p),a.size===0&&(c[e]=r,f=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=un(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(c=>({[c]:n.get(c)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let s=[],a=[];for(let n of this.dependencies.values()){let c=this.dependenciesMeta.get(un(n)),f=!1;if(r&&c){let p=c.get(null);p&&p.optional&&(f=!0)}f?a.push(n):s.push(n)}s.length>0?e.dependencies=Object.assign({},...sI(s).map(n=>({[un(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...sI(a).map(n=>({[un(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...sI(this.devDependencies.values()).map(n=>({[un(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...sI(this.peerDependencies.values()).map(n=>({[un(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,c]of qs(this.dependenciesMeta.entries(),([f,p])=>f))for(let[f,p]of qs(c.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=f!==null?al(On(Sa(n),f)):n,E={...p};r&&f===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...qs(this.peerDependenciesMeta.entries(),([n,c])=>n).map(([n,c])=>({[n]:c}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:c})=>({[hx(n)]:c}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,c]of this.scripts.entries())e.scripts[n]=c}else delete e.scripts;return e}}});function aet(t){return typeof t.reportCode<"u"}var cue,uue,oet,jt,Ao,Rc=Ze(()=>{ql();cue=Ie("stream"),uue=Ie("string_decoder"),oet=15,jt=class extends Error{constructor(r,s,a){super(s);this.reportExtra=a;this.reportCode=r}};Ao=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,s,a=new Promise(p=>{s=p}),n=p=>{let h=s;a=new Promise(E=>{s=E}),r=p,h()},c=(p=0)=>{n(r+1)},f=async function*(){for(;r{r=c}),a=k4(c=>{let f=r;s=new Promise(p=>{r=p}),e=c,f()},1e3/oet),n=async function*(){for(;;)await s,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let s=this.reportProgress(e);try{return await r(e)}finally{s.stop()}}startProgressSync(e,r){let s=this.reportProgress(e);try{return r(e)}finally{s.stop()}}reportInfoOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),s?.reportExtra?.(this))}reportWarningOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),s?.reportExtra?.(this))}reportErrorOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),s?.reportExtra?.(this))}reportExceptionOnce(e){aet(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new cue.PassThrough,s=new uue.StringDecoder,a="";return r.on("data",n=>{let c=s.write(n),f;do if(f=c.indexOf(` `),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(f!==-1);a+=c}),r.on("end",()=>{let n=s.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var aI,Q8=Ze(()=>{Rc();Wo();aI=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));return s||null}getFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));if(!s)throw new jt(11,`${Yr(r.project.configuration,e)} isn't supported by any available fetcher`);return s}}});var rm,R8=Ze(()=>{Wo();rm=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.getResolverByDescriptor(e,s).bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,s){return await this.getResolverByDescriptor(e,s).getCandidates(e,r,s)}async getSatisfying(e,r,s,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,s,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));return s||null}getResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!s)throw new Error(`${ni(r.project.configuration,e)} isn't supported by any available resolver`);return s}tryResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));return s||null}getResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));if(!s)throw new Error(`${Yr(r.project.configuration,e)} isn't supported by any available resolver`);return s}}});var lI,T8=Ze(()=>{Dt();Wo();lI=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(s+1),n=Ws(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(s+1),n=Ws(e,a),c=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,c,r)}getLocatorFilename(e){return nI(e)}async ensureVirtualLink(e,r,s){let a=r.packageFs.getRealPath(),n=s.project.configuration.get("virtualFolder"),c=this.getLocatorFilename(e),f=uo.makeVirtualPath(n,c,a),p=new _f(f,{baseFs:r.packageFs,pathUtils:J});return{...r,packageFs:p}}}});var TQ,fue=Ze(()=>{TQ=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,s){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,s,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var cI,F8=Ze(()=>{Dt();tm();cI=class{supports(e){return!!e.reference.startsWith(Ei.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let s=this.getWorkspace(e,r).cwd;return{packageFs:new Sn(s),prefixPath:vt.dot,localPath:s}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Ei.protocol.length))}}});function WB(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Aue(t){return typeof t>"u"?3:WB(t)?0:Array.isArray(t)?1:2}function L8(t,e){return Object.hasOwn(t,e)}function uet(t){return WB(t)&&L8(t,"onConflict")&&typeof t.onConflict=="string"}function fet(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!uet(t))return{onConflict:"default",value:t};if(L8(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function pue(t,e){let r=WB(t)&&L8(t,e)?t[e]:void 0;return fet(r)}function uI(t,e){return[t,e,hue]}function M8(t){return Array.isArray(t)?t[2]===hue:!1}function N8(t,e){if(WB(t)){let r={};for(let s of Object.keys(t))r[s]=N8(t[s],e);return uI(e,r)}return Array.isArray(t)?uI(e,t.map(r=>N8(r,e))):uI(e,t)}function O8(t,e,r,s,a){let n,c=[],f=a,p=0;for(let E=a-1;E>=s;--E){let[C,S]=t[E],{onConflict:b,value:I}=pue(S,r),T=Aue(I);if(T!==3){if(n??=T,T!==n||b==="hardReset"){p=f;break}if(T===2)return uI(C,I);if(c.unshift([C,I]),b==="reset"){p=E;break}b==="extend"&&E===s&&(s=0),f=E}}if(typeof n>"u")return null;let h=c.map(([E])=>E).join(", ");switch(n){case 1:return uI(h,new Array().concat(...c.map(([E,C])=>C.map(S=>N8(S,E)))));case 0:{let E=Object.assign({},...c.map(([,T])=>T)),C=Object.keys(E),S={},b=t.map(([T,N])=>[T,pue(N,r).value]),I=cet(b,([T,N])=>{let U=Aue(N);return U!==0&&U!==3});if(I!==-1){let T=b.slice(I+1);for(let N of C)S[N]=O8(T,e,N,0,T.length)}else for(let T of C)S[T]=O8(b,e,T,p,b.length);return uI(h,S)}default:throw new Error("Assertion failed: Non-extendable value type")}}function gue(t){return O8(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}function YB(t){return M8(t)?t[1]:t}function FQ(t){let e=M8(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>FQ(r));if(WB(e)){let r={};for(let[s,a]of Object.entries(e))r[s]=FQ(a);return r}return e}function U8(t){return M8(t)?t[0]:null}var cet,hue,due=Ze(()=>{cet=(t,e,r)=>{let s=[...t];return s.reverse(),s.findIndex(e,r)};hue=Symbol()});var NQ={};Vt(NQ,{getDefaultGlobalFolder:()=>H8,getHomeFolder:()=>fI,isFolderInside:()=>j8});function H8(){if(process.platform==="win32"){let t=fe.toPortablePath(process.env.LOCALAPPDATA||fe.join((0,_8.homedir)(),"AppData","Local"));return J.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=fe.toPortablePath(process.env.XDG_DATA_HOME);return J.resolve(t,"yarn/berry")}return J.resolve(fI(),".yarn/berry")}function fI(){return fe.toPortablePath((0,_8.homedir)()||"/usr/local/share")}function j8(t,e){let r=J.relative(e,t);return r&&!r.startsWith("..")&&!J.isAbsolute(r)}var _8,OQ=Ze(()=>{Dt();_8=Ie("os")});var Eue=_((uMt,yue)=>{"use strict";var G8=Ie("https"),q8=Ie("http"),{URL:mue}=Ie("url"),W8=class extends q8.Agent{constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.proxy=typeof r=="string"?new mue(r):r,this.proxyRequestOptions=s||{}}createConnection(e,r){let s={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${e.host}:${e.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${e.host}:${e.port}`},agent:!1,timeout:e.timeout||0};if(this.proxy.username||this.proxy.password){let n=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");s.headers["proxy-authorization"]=`Basic ${n}`}this.proxy.protocol==="https:"&&(s.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?q8:G8).request(s);a.once("connect",(n,c,f)=>{a.removeAllListeners(),c.removeAllListeners(),n.statusCode===200?r(null,c):(c.destroy(),r(new Error(`Bad response: ${n.statusCode}`),null))}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",n=>{a.removeAllListeners(),r(n,null)}),a.end()}},Y8=class extends G8.Agent{constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.proxy=typeof r=="string"?new mue(r):r,this.proxyRequestOptions=s||{}}createConnection(e,r){let s={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${e.host}:${e.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${e.host}:${e.port}`},agent:!1,timeout:e.timeout||0};if(this.proxy.username||this.proxy.password){let n=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");s.headers["proxy-authorization"]=`Basic ${n}`}this.proxy.protocol==="https:"&&(s.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?q8:G8).request(s);a.once("connect",(n,c,f)=>{if(a.removeAllListeners(),c.removeAllListeners(),n.statusCode===200){let p=super.createConnection({...e,socket:c});r(null,p)}else c.destroy(),r(new Error(`Bad response: ${n.statusCode}`),null)}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",n=>{a.removeAllListeners(),r(n,null)}),a.end()}};yue.exports={HttpProxyAgent:W8,HttpsProxyAgent:Y8}});var V8,Iue,Cue,wue=Ze(()=>{V8=ut(Eue(),1),Iue=V8.default.HttpProxyAgent,Cue=V8.default.HttpsProxyAgent});var Np=_((Fp,LQ)=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var Bue=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function pet(t){return Bue.includes(t)}var het=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Bue];function get(t){return het.includes(t)}var det=["null","undefined","string","number","bigint","boolean","symbol"];function met(t){return det.includes(t)}function AI(t){return e=>typeof e===t}var{toString:vue}=Object.prototype,VB=t=>{let e=vue.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Pe.domElement(t))return"HTMLElement";if(get(e))return e},pi=t=>e=>VB(e)===t;function Pe(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Pe.observable(t))return"Observable";if(Pe.array(t))return"Array";if(Pe.buffer(t))return"Buffer";let e=VB(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Pe.undefined=AI("undefined");Pe.string=AI("string");var yet=AI("number");Pe.number=t=>yet(t)&&!Pe.nan(t);Pe.bigint=AI("bigint");Pe.function_=AI("function");Pe.null_=t=>t===null;Pe.class_=t=>Pe.function_(t)&&t.toString().startsWith("class ");Pe.boolean=t=>t===!0||t===!1;Pe.symbol=AI("symbol");Pe.numericString=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Pe.array=(t,e)=>Array.isArray(t)?Pe.function_(e)?t.every(e):!0:!1;Pe.buffer=t=>{var e,r,s,a;return(a=(s=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||s===void 0?void 0:s.call(r,t))!==null&&a!==void 0?a:!1};Pe.blob=t=>pi("Blob")(t);Pe.nullOrUndefined=t=>Pe.null_(t)||Pe.undefined(t);Pe.object=t=>!Pe.null_(t)&&(typeof t=="object"||Pe.function_(t));Pe.iterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Pe.asyncIterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Pe.generator=t=>{var e,r;return Pe.iterable(t)&&Pe.function_((e=t)===null||e===void 0?void 0:e.next)&&Pe.function_((r=t)===null||r===void 0?void 0:r.throw)};Pe.asyncGenerator=t=>Pe.asyncIterable(t)&&Pe.function_(t.next)&&Pe.function_(t.throw);Pe.nativePromise=t=>pi("Promise")(t);var Eet=t=>{var e,r;return Pe.function_((e=t)===null||e===void 0?void 0:e.then)&&Pe.function_((r=t)===null||r===void 0?void 0:r.catch)};Pe.promise=t=>Pe.nativePromise(t)||Eet(t);Pe.generatorFunction=pi("GeneratorFunction");Pe.asyncGeneratorFunction=t=>VB(t)==="AsyncGeneratorFunction";Pe.asyncFunction=t=>VB(t)==="AsyncFunction";Pe.boundFunction=t=>Pe.function_(t)&&!t.hasOwnProperty("prototype");Pe.regExp=pi("RegExp");Pe.date=pi("Date");Pe.error=pi("Error");Pe.map=t=>pi("Map")(t);Pe.set=t=>pi("Set")(t);Pe.weakMap=t=>pi("WeakMap")(t);Pe.weakSet=t=>pi("WeakSet")(t);Pe.int8Array=pi("Int8Array");Pe.uint8Array=pi("Uint8Array");Pe.uint8ClampedArray=pi("Uint8ClampedArray");Pe.int16Array=pi("Int16Array");Pe.uint16Array=pi("Uint16Array");Pe.int32Array=pi("Int32Array");Pe.uint32Array=pi("Uint32Array");Pe.float32Array=pi("Float32Array");Pe.float64Array=pi("Float64Array");Pe.bigInt64Array=pi("BigInt64Array");Pe.bigUint64Array=pi("BigUint64Array");Pe.arrayBuffer=pi("ArrayBuffer");Pe.sharedArrayBuffer=pi("SharedArrayBuffer");Pe.dataView=pi("DataView");Pe.enumCase=(t,e)=>Object.values(e).includes(t);Pe.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Pe.urlInstance=t=>pi("URL")(t);Pe.urlString=t=>{if(!Pe.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Pe.truthy=t=>!!t;Pe.falsy=t=>!t;Pe.nan=t=>Number.isNaN(t);Pe.primitive=t=>Pe.null_(t)||met(typeof t);Pe.integer=t=>Number.isInteger(t);Pe.safeInteger=t=>Number.isSafeInteger(t);Pe.plainObject=t=>{if(vue.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Pe.typedArray=t=>pet(VB(t));var Iet=t=>Pe.safeInteger(t)&&t>=0;Pe.arrayLike=t=>!Pe.nullOrUndefined(t)&&!Pe.function_(t)&&Iet(t.length);Pe.inRange=(t,e)=>{if(Pe.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Pe.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Cet=1,wet=["innerHTML","ownerDocument","style","attributes","nodeValue"];Pe.domElement=t=>Pe.object(t)&&t.nodeType===Cet&&Pe.string(t.nodeName)&&!Pe.plainObject(t)&&wet.every(e=>e in t);Pe.observable=t=>{var e,r,s,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(s=t)["@@observable"])===null||a===void 0?void 0:a.call(s)):!1};Pe.nodeStream=t=>Pe.object(t)&&Pe.function_(t.pipe)&&!Pe.observable(t);Pe.infinite=t=>t===1/0||t===-1/0;var Sue=t=>e=>Pe.integer(e)&&Math.abs(e%2)===t;Pe.evenInteger=Sue(0);Pe.oddInteger=Sue(1);Pe.emptyArray=t=>Pe.array(t)&&t.length===0;Pe.nonEmptyArray=t=>Pe.array(t)&&t.length>0;Pe.emptyString=t=>Pe.string(t)&&t.length===0;var Bet=t=>Pe.string(t)&&!/\S/.test(t);Pe.emptyStringOrWhitespace=t=>Pe.emptyString(t)||Bet(t);Pe.nonEmptyString=t=>Pe.string(t)&&t.length>0;Pe.nonEmptyStringAndNotWhitespace=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t);Pe.emptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length===0;Pe.nonEmptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length>0;Pe.emptySet=t=>Pe.set(t)&&t.size===0;Pe.nonEmptySet=t=>Pe.set(t)&&t.size>0;Pe.emptyMap=t=>Pe.map(t)&&t.size===0;Pe.nonEmptyMap=t=>Pe.map(t)&&t.size>0;Pe.propertyKey=t=>Pe.any([Pe.string,Pe.number,Pe.symbol],t);Pe.formData=t=>pi("FormData")(t);Pe.urlSearchParams=t=>pi("URLSearchParams")(t);var Due=(t,e,r)=>{if(!Pe.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Pe.any=(t,...e)=>(Pe.array(t)?t:[t]).some(s=>Due(Array.prototype.some,s,e));Pe.all=(t,...e)=>Due(Array.prototype.every,t,e);var _t=(t,e,r,s={})=>{if(!t){let{multipleValues:a}=s,n=a?`received values of types ${[...new Set(r.map(c=>`\`${Pe(c)}\``))].join(", ")}`:`received value of type \`${Pe(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Fp.assert={undefined:t=>_t(Pe.undefined(t),"undefined",t),string:t=>_t(Pe.string(t),"string",t),number:t=>_t(Pe.number(t),"number",t),bigint:t=>_t(Pe.bigint(t),"bigint",t),function_:t=>_t(Pe.function_(t),"Function",t),null_:t=>_t(Pe.null_(t),"null",t),class_:t=>_t(Pe.class_(t),"Class",t),boolean:t=>_t(Pe.boolean(t),"boolean",t),symbol:t=>_t(Pe.symbol(t),"symbol",t),numericString:t=>_t(Pe.numericString(t),"string with a number",t),array:(t,e)=>{_t(Pe.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>_t(Pe.buffer(t),"Buffer",t),blob:t=>_t(Pe.blob(t),"Blob",t),nullOrUndefined:t=>_t(Pe.nullOrUndefined(t),"null or undefined",t),object:t=>_t(Pe.object(t),"Object",t),iterable:t=>_t(Pe.iterable(t),"Iterable",t),asyncIterable:t=>_t(Pe.asyncIterable(t),"AsyncIterable",t),generator:t=>_t(Pe.generator(t),"Generator",t),asyncGenerator:t=>_t(Pe.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>_t(Pe.nativePromise(t),"native Promise",t),promise:t=>_t(Pe.promise(t),"Promise",t),generatorFunction:t=>_t(Pe.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>_t(Pe.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>_t(Pe.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>_t(Pe.boundFunction(t),"Function",t),regExp:t=>_t(Pe.regExp(t),"RegExp",t),date:t=>_t(Pe.date(t),"Date",t),error:t=>_t(Pe.error(t),"Error",t),map:t=>_t(Pe.map(t),"Map",t),set:t=>_t(Pe.set(t),"Set",t),weakMap:t=>_t(Pe.weakMap(t),"WeakMap",t),weakSet:t=>_t(Pe.weakSet(t),"WeakSet",t),int8Array:t=>_t(Pe.int8Array(t),"Int8Array",t),uint8Array:t=>_t(Pe.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>_t(Pe.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>_t(Pe.int16Array(t),"Int16Array",t),uint16Array:t=>_t(Pe.uint16Array(t),"Uint16Array",t),int32Array:t=>_t(Pe.int32Array(t),"Int32Array",t),uint32Array:t=>_t(Pe.uint32Array(t),"Uint32Array",t),float32Array:t=>_t(Pe.float32Array(t),"Float32Array",t),float64Array:t=>_t(Pe.float64Array(t),"Float64Array",t),bigInt64Array:t=>_t(Pe.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>_t(Pe.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>_t(Pe.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>_t(Pe.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>_t(Pe.dataView(t),"DataView",t),enumCase:(t,e)=>_t(Pe.enumCase(t,e),"EnumCase",t),urlInstance:t=>_t(Pe.urlInstance(t),"URL",t),urlString:t=>_t(Pe.urlString(t),"string with a URL",t),truthy:t=>_t(Pe.truthy(t),"truthy",t),falsy:t=>_t(Pe.falsy(t),"falsy",t),nan:t=>_t(Pe.nan(t),"NaN",t),primitive:t=>_t(Pe.primitive(t),"primitive",t),integer:t=>_t(Pe.integer(t),"integer",t),safeInteger:t=>_t(Pe.safeInteger(t),"integer",t),plainObject:t=>_t(Pe.plainObject(t),"plain object",t),typedArray:t=>_t(Pe.typedArray(t),"TypedArray",t),arrayLike:t=>_t(Pe.arrayLike(t),"array-like",t),domElement:t=>_t(Pe.domElement(t),"HTMLElement",t),observable:t=>_t(Pe.observable(t),"Observable",t),nodeStream:t=>_t(Pe.nodeStream(t),"Node.js Stream",t),infinite:t=>_t(Pe.infinite(t),"infinite number",t),emptyArray:t=>_t(Pe.emptyArray(t),"empty array",t),nonEmptyArray:t=>_t(Pe.nonEmptyArray(t),"non-empty array",t),emptyString:t=>_t(Pe.emptyString(t),"empty string",t),emptyStringOrWhitespace:t=>_t(Pe.emptyStringOrWhitespace(t),"empty string or whitespace",t),nonEmptyString:t=>_t(Pe.nonEmptyString(t),"non-empty string",t),nonEmptyStringAndNotWhitespace:t=>_t(Pe.nonEmptyStringAndNotWhitespace(t),"non-empty string and not whitespace",t),emptyObject:t=>_t(Pe.emptyObject(t),"empty object",t),nonEmptyObject:t=>_t(Pe.nonEmptyObject(t),"non-empty object",t),emptySet:t=>_t(Pe.emptySet(t),"empty set",t),nonEmptySet:t=>_t(Pe.nonEmptySet(t),"non-empty set",t),emptyMap:t=>_t(Pe.emptyMap(t),"empty map",t),nonEmptyMap:t=>_t(Pe.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>_t(Pe.propertyKey(t),"PropertyKey",t),formData:t=>_t(Pe.formData(t),"FormData",t),urlSearchParams:t=>_t(Pe.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>_t(Pe.evenInteger(t),"even integer",t),oddInteger:t=>_t(Pe.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>_t(Pe.directInstanceOf(t,e),"T",t),inRange:(t,e)=>_t(Pe.inRange(t,e),"in range",t),any:(t,...e)=>_t(Pe.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>_t(Pe.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Pe,{class:{value:Pe.class_},function:{value:Pe.function_},null:{value:Pe.null_}});Object.defineProperties(Fp.assert,{class:{value:Fp.assert.class_},function:{value:Fp.assert.function_},null:{value:Fp.assert.null_}});Fp.default=Pe;LQ.exports=Pe;LQ.exports.default=Pe;LQ.exports.assert=Fp.assert});var Pue=_((AMt,J8)=>{"use strict";var MQ=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},UQ=class t{static fn(e){return(...r)=>new t((s,a,n)=>{r.push(n),e(...r).then(s,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,s)=>{this._reject=s;let a=f=>{this._isPending=!1,r(f)},n=f=>{this._isPending=!1,s(f)},c=f=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(f)};return Object.defineProperties(c,{shouldReject:{get:()=>this._rejectOnCancel,set:f=>{this._rejectOnCancel=f}}}),e(a,n,c)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new MQ(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(UQ.prototype,Promise.prototype);J8.exports=UQ;J8.exports.CancelError=MQ});var bue=_((z8,Z8)=>{"use strict";Object.defineProperty(z8,"__esModule",{value:!0});function vet(t){return t.encrypted}var K8=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let s=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",c=()=>{s&&r.connect(),vet(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?c():t.connecting?t.once("connect",c):t.destroyed&&n&&r.close(t._hadError)};z8.default=K8;Z8.exports=K8;Z8.exports.default=K8});var xue=_(($8,eH)=>{"use strict";Object.defineProperty($8,"__esModule",{value:!0});var Det=bue(),Pet=Number(process.versions.node.split(".")[0]),X8=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=c=>{let f=c.emit.bind(c);c.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,c.emit=f),f(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Pet>=13)&&(e.phases.total=Date.now()-e.start)});let s=c=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let f=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};c.prependOnceListener("lookup",f),Det.default(c,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(c.removeListener("lookup",f),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?s(t.socket):t.prependOnceListener("socket",s);let a=()=>{var c;e.upload=Date.now(),e.phases.request=e.upload-(c=e.secureConnect,c??e.connect)};return(typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",c=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,c.timings=e,r(c),c.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};$8.default=X8;eH.exports=X8;eH.exports.default=X8});var Oue=_((pMt,nH)=>{"use strict";var{V4MAPPED:bet,ADDRCONFIG:xet,ALL:Nue,promises:{Resolver:kue},lookup:ket}=Ie("dns"),{promisify:tH}=Ie("util"),Qet=Ie("os"),pI=Symbol("cacheableLookupCreateConnection"),rH=Symbol("cacheableLookupInstance"),Que=Symbol("expires"),Ret=typeof Nue=="number",Rue=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Tet=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Tue=()=>{let t=!1,e=!1;for(let r of Object.values(Qet.networkInterfaces()))for(let s of r)if(!s.internal&&(s.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Fet=t=>Symbol.iterator in t,Fue={ttl:!0},Net={all:!0},_Q=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:s=3600,errorTtl:a=.15,resolver:n=new kue,lookup:c=ket}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=tH(c),this._resolver instanceof kue?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=tH(this._resolver.resolve4.bind(this._resolver)),this._resolve6=tH(this._resolver.resolve6.bind(this._resolver))),this._iface=Tue(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,s<1)this._fallback=!1;else{this._fallback=!0;let f=setInterval(()=>{this._hostnamesToFallback.clear()},s*1e3);f.unref&&f.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,s){if(typeof r=="function"?(s=r,r={}):typeof r=="number"&&(r={family:r}),!s)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?s(null,a):s(null,a.address,a.family,a.expires,a.ttl)},s)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let s=await this.query(e);if(r.family===6){let a=s.filter(n=>n.family===6);r.hints&bet&&(Ret&&r.hints&Nue||a.length===0)?Tet(s):s=a}else r.family===4&&(s=s.filter(a=>a.family===4));if(r.hints&xet){let{_iface:a}=this;s=s.filter(n=>n.family===6?a.has6:a.has4)}if(s.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?s:s[0]}async query(e){let r=await this._cache.get(e);if(!r){let s=this._pending[e];if(s)r=await s;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(s=>({...s})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[s,a]=await Promise.all([this._resolve4(e,Fue),this._resolve6(e,Fue)].map(h=>r(h))),n=0,c=0,f=0,p=Date.now();for(let h of s)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,c=Math.max(c,h.ttl);return s.length>0?a.length>0?f=Math.min(n,c):f=n:f=c,{entries:[...s,...a],cacheTtl:f}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,s){if(this.maxTtl>0&&s>0){s=Math.min(s,this.maxTtl)*1e3,r[Que]=Date.now()+s;try{await this._cache.set(e,r,s)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}Fet(this._cache)&&this._tick(s)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Net);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let s=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,s),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let s=1/0,a=Date.now();for(let[n,c]of this._cache){let f=c[Que];a>=f?this._cache.delete(n):f("lookup"in r||(r.lookup=this.lookup),e[pI](r,s))}uninstall(e){if(Rue(e),e[pI]){if(e[rH]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[pI],delete e[pI],delete e[rH]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Tue(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};nH.exports=_Q;nH.exports.default=_Q});var Uue=_((hMt,iH)=>{"use strict";var Oet=typeof URL>"u"?Ie("url").URL:URL,Let="text/plain",Met="us-ascii",Lue=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Uet=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let s=r[1].split(";"),a=r[2],n=e?"":r[3],c=!1;s[s.length-1]==="base64"&&(s.pop(),c=!0);let f=(s.shift()||"").toLowerCase(),h=[...s.map(E=>{let[C,S=""]=E.split("=").map(b=>b.trim());return C==="charset"&&(S=S.toLowerCase(),S===Met)?"":`${C}${S?`=${S}`:""}`}).filter(Boolean)];return c&&h.push("base64"),(h.length!==0||f&&f!==Let)&&h.unshift(f),`data:${h.join(";")},${c?a.trim():a}${n?`#${n}`:""}`},Mue=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return Uet(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new Oet(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,c)=>/^(?!\/)/g.test(c)?`${c}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),c=n[n.length-1];Lue(c,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])Lue(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};iH.exports=Mue;iH.exports.default=Mue});var jue=_((gMt,Hue)=>{Hue.exports=_ue;function _ue(t,e){if(t&&e)return _ue(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(s){r[s]=t[s]}),r;function r(){for(var s=new Array(arguments.length),a=0;a{var Gue=jue();sH.exports=Gue(HQ);sH.exports.strict=Gue(que);HQ.proto=HQ(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return HQ(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return que(this)},configurable:!0})});function HQ(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function que(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var aH=_((mMt,Yue)=>{var _et=oH(),Het=function(){},jet=function(t){return t.setHeader&&typeof t.abort=="function"},Get=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},Wue=function(t,e,r){if(typeof e=="function")return Wue(t,null,e);e||(e={}),r=_et(r||Het);var s=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,c=e.writable||e.writable!==!1&&t.writable,f=function(){t.writable||p()},p=function(){c=!1,n||r.call(t)},h=function(){n=!1,c||r.call(t)},E=function(I){r.call(t,I?new Error("exited with error code: "+I):null)},C=function(I){r.call(t,I)},S=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(c&&!(s&&s.ended))return r.call(t,new Error("premature close"))},b=function(){t.req.on("finish",p)};return jet(t)?(t.on("complete",p),t.on("abort",S),t.req?b():t.on("request",b)):c&&!s&&(t.on("end",f),t.on("close",f)),Get(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",C),t.on("close",S),function(){t.removeListener("complete",p),t.removeListener("abort",S),t.removeListener("request",b),t.req&&t.req.removeListener("finish",p),t.removeListener("end",f),t.removeListener("close",f),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",C),t.removeListener("close",S)}};Yue.exports=Wue});var Kue=_((yMt,Jue)=>{var qet=oH(),Wet=aH(),lH=Ie("fs"),JB=function(){},Yet=/^v?\.0/.test(process.version),jQ=function(t){return typeof t=="function"},Vet=function(t){return!Yet||!lH?!1:(t instanceof(lH.ReadStream||JB)||t instanceof(lH.WriteStream||JB))&&jQ(t.close)},Jet=function(t){return t.setHeader&&jQ(t.abort)},Ket=function(t,e,r,s){s=qet(s);var a=!1;t.on("close",function(){a=!0}),Wet(t,{readable:e,writable:r},function(c){if(c)return s(c);a=!0,s()});var n=!1;return function(c){if(!a&&!n){if(n=!0,Vet(t))return t.close(JB);if(Jet(t))return t.abort();if(jQ(t.destroy))return t.destroy();s(c||new Error("stream was destroyed"))}}},Vue=function(t){t()},zet=function(t,e){return t.pipe(e)},Zet=function(){var t=Array.prototype.slice.call(arguments),e=jQ(t[t.length-1]||JB)&&t.pop()||JB;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,s=t.map(function(a,n){var c=n0;return Ket(a,c,f,function(p){r||(r=p),p&&s.forEach(Vue),!c&&(s.forEach(Vue),e(r))})});return t.reduce(zet)};Jue.exports=Zet});var Zue=_((EMt,zue)=>{"use strict";var{PassThrough:Xet}=Ie("stream");zue.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,s=r==="buffer",a=!1;e?a=!(r||s):r=r||"utf8",s&&(r=null);let n=new Xet({objectMode:a});r&&n.setEncoding(r);let c=0,f=[];return n.on("data",p=>{f.push(p),a?c=f.length:c+=p.length}),n.getBufferedValue=()=>e?f:s?Buffer.concat(f,c):f.join(""),n.getBufferedLength=()=>c,n}});var Xue=_((IMt,hI)=>{"use strict";var $et=Kue(),ett=Zue(),GQ=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function qQ(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,s;return await new Promise((a,n)=>{let c=f=>{f&&(f.bufferedData=s.getBufferedValue()),n(f)};s=$et(t,ett(e),f=>{if(f){c(f);return}a()}),s.on("data",()=>{s.getBufferedLength()>r&&c(new GQ)})}),s.getBufferedValue()}hI.exports=qQ;hI.exports.default=qQ;hI.exports.buffer=(t,e)=>qQ(t,{...e,encoding:"buffer"});hI.exports.array=(t,e)=>qQ(t,{...e,array:!0});hI.exports.MaxBufferError=GQ});var efe=_((wMt,$ue)=>{"use strict";var ttt=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),rtt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),ntt=new Set([500,502,503,504]),itt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},stt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function nm(t){let e=parseInt(t,10);return isFinite(e)?e:0}function ott(t){return t?ntt.has(t.status):!0}function cH(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let s of r){let[a,n]=s.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^"|"$/g,"")}return e}function att(t){let e=[];for(let r in t){let s=t[r];e.push(s===!0?r:r+"="+s)}if(e.length)return e.join(", ")}$ue.exports=class{constructor(e,r,{shared:s,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:c,_fromObject:f}={}){if(f){this._fromObject(f);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=s!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=cH(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=cH(e.headers["cache-control"]),c&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":att(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&rtt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||ttt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=cH(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let s of r)if(e.headers[s]!==this._reqHeaders[s])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let s in e)itt[s]||(r[s]=e[s]);if(e.connection){let s=e.connection.trim().split(/\s*,\s*/);for(let a of s)delete r[a]}if(r.warning){let s=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));s.length?r.warning=s.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return nm(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return nm(this._rescc["s-maxage"])}if(this._rescc["max-age"])return nm(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let s=Date.parse(this._resHeaders.expires);return Number.isNaN(s)||ss)return Math.max(e,(r-s)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+nm(this._rescc["stale-if-error"]),s=e+nm(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,s)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+nm(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+nm(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&ott(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let s=!1;if(r.status!==void 0&&r.status!=304?s=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?s=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?s=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?s=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(s=!0),!s)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let c in this._resHeaders)a[c]=c in r.headers&&!stt[c]?r.headers[c]:this._resHeaders[c];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var WQ=_((BMt,tfe)=>{"use strict";tfe.exports=t=>{let e={};for(let[r,s]of Object.entries(t))e[r.toLowerCase()]=s;return e}});var nfe=_((vMt,rfe)=>{"use strict";var ltt=Ie("stream").Readable,ctt=WQ(),uH=class extends ltt{constructor(e,r,s,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(s instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=ctt(r),this.body=s,this.url=a}_read(){this.push(this.body),this.push(null)}};rfe.exports=uH});var sfe=_((SMt,ife)=>{"use strict";var utt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];ife.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(utt));for(let s of r)s in e||(e[s]=typeof t[s]=="function"?t[s].bind(t):t[s])}});var afe=_((DMt,ofe)=>{"use strict";var ftt=Ie("stream").PassThrough,Att=sfe(),ptt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new ftt;return Att(t,e),t.pipe(e)};ofe.exports=ptt});var lfe=_(fH=>{fH.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",s=Array.isArray(e);r=s?"[":"{";var a=!0;for(var n in e){var c=typeof e[n]=="function"||!s&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!c&&(a||(r+=","),a=!1,s?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=s?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};fH.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Afe=_((bMt,ffe)=>{"use strict";var htt=Ie("events"),cfe=lfe(),gtt=t=>{let e={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(Ie(e[r]))(t)}return new Map},ufe=["sqlite","postgres","mysql","mongo","redis","tiered"],AH=class extends htt{constructor(e,{emitErrors:r=!0,...s}={}){if(super(),this.opts={namespace:"keyv",serialize:cfe.stringify,deserialize:cfe.parse,...typeof e=="string"?{uri:e}:e,...s},!this.opts.store){let n={...this.opts};this.opts.store=gtt(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[c,f]of typeof n=="function"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(f);if(!(this.opts.store.namespace&&!c.includes(this.opts.store.namespace))){if(typeof p.expires=="number"&&Date.now()>p.expires){this.delete(c);continue}yield[this._getKeyUnprefix(c),p.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return ufe.includes(this.opts.store.opts.dialect)||ufe.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(":").splice(1).join(":")}get(e,r){let{store:s}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&s.getMany===void 0){let c=[];for(let f of n)c.push(Promise.resolve().then(()=>s.get(f)).then(p=>typeof p=="string"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires=="number"&&Date.now()>p.expires?this.delete(f).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(c).then(f=>{let p=[];for(let h of f)p.push(h.value);return p})}return Promise.resolve().then(()=>a?s.getMany(n):s.get(n)).then(c=>typeof c=="string"?this.opts.deserialize(c):this.opts.compression?this.opts.deserialize(c):c).then(c=>{if(c!=null)return a?c.map((f,p)=>{if(typeof f=="string"&&(f=this.opts.deserialize(f)),f!=null){if(typeof f.expires=="number"&&Date.now()>f.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?f:f.value}}):typeof c.expires=="number"&&Date.now()>c.expires?this.delete(e).then(()=>{}):r&&r.raw?c:c.value})}set(e,r,s){let a=this._getKeyPrefix(e);typeof s>"u"&&(s=this.opts.ttl),s===0&&(s=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let c=typeof s=="number"?Date.now()+s:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:c},this.opts.serialize(r)}).then(c=>n.set(a,c,s)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let c of a)n.push(r.delete(c));return Promise.allSettled(n).then(c=>c.every(f=>f.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let s=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(s))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:s}=this.opts;return Promise.resolve().then(async()=>typeof s.has=="function"?s.has(r):await s.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")return e.disconnect()}};ffe.exports=AH});var gfe=_((kMt,hfe)=>{"use strict";var dtt=Ie("events"),YQ=Ie("url"),mtt=Uue(),ytt=Xue(),pH=efe(),pfe=nfe(),Ett=WQ(),Itt=afe(),Ctt=Afe(),KB=class t{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Ctt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,s)=>{let a;if(typeof r=="string")a=hH(YQ.parse(r)),r={};else if(r instanceof YQ.URL)a=hH(YQ.parse(r.toString())),r={};else{let[C,...S]=(r.path||"").split("?"),b=S.length>0?`?${S.join("?")}`:"";a=hH({...r,pathname:C,search:b})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...wtt(a)},r.headers=Ett(r.headers);let n=new dtt,c=mtt(YQ.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),f=`${r.method}:${c}`,p=!1,h=!1,E=C=>{h=!0;let S=!1,b,I=new Promise(N=>{b=()=>{S||(S=!0,N())}}),T=N=>{if(p&&!C.forceRefresh){N.status=N.statusCode;let W=pH.fromObject(p.cachePolicy).revalidatedPolicy(C,N);if(!W.modified){let ee=W.policy.responseHeaders();N=new pfe(p.statusCode,ee,p.body,p.url),N.cachePolicy=W.policy,N.fromCache=!0}}N.fromCache||(N.cachePolicy=new pH(C,N,C),N.fromCache=!1);let U;C.cache&&N.cachePolicy.storable()?(U=Itt(N),(async()=>{try{let W=ytt.buffer(N);if(await Promise.race([I,new Promise(le=>N.once("end",le))]),S)return;let ee=await W,ie={cachePolicy:N.cachePolicy.toObject(),url:N.url,statusCode:N.fromCache?p.statusCode:N.statusCode,body:ee},ue=C.strictTtl?N.cachePolicy.timeToLive():void 0;C.maxTtl&&(ue=ue?Math.min(ue,C.maxTtl):C.maxTtl),await this.cache.set(f,ie,ue)}catch(W){n.emit("error",new t.CacheError(W))}})()):C.cache&&p&&(async()=>{try{await this.cache.delete(f)}catch(W){n.emit("error",new t.CacheError(W))}})(),n.emit("response",U||N),typeof s=="function"&&s(U||N)};try{let N=e(C,T);N.once("error",b),N.once("abort",b),n.emit("request",N)}catch(N){n.emit("error",new t.RequestError(N))}};return(async()=>{let C=async b=>{await Promise.resolve();let I=b.cache?await this.cache.get(f):void 0;if(typeof I>"u")return E(b);let T=pH.fromObject(I.cachePolicy);if(T.satisfiesWithoutRevalidation(b)&&!b.forceRefresh){let N=T.responseHeaders(),U=new pfe(I.statusCode,N,I.body,I.url);U.cachePolicy=T,U.fromCache=!0,n.emit("response",U),typeof s=="function"&&s(U)}else p=I,b.headers=T.revalidationHeaders(b),E(b)},S=b=>n.emit("error",new t.CacheError(b));this.cache.once("error",S),n.on("response",()=>this.cache.removeListener("error",S));try{await C(r)}catch(b){r.automaticFailover&&!h&&E(r),n.emit("error",new t.CacheError(b))}})(),n}}};function wtt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function hH(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}KB.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};KB.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};hfe.exports=KB});var mfe=_((TMt,dfe)=>{"use strict";var Btt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];dfe.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Btt)),s={};for(let a of r)a in e||(s[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,s),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Efe=_((FMt,yfe)=>{"use strict";var{Transform:vtt,PassThrough:Stt}=Ie("stream"),gH=Ie("zlib"),Dtt=mfe();yfe.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof gH.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let s=!0,a=new vtt({transform(f,p,h){s=!1,h(null,f)},flush(f){f()}}),n=new Stt({autoDestroy:!1,destroy(f,p){t.destroy(),p(f)}}),c=r?gH.createBrotliDecompress():gH.createUnzip();return c.once("error",f=>{if(s&&!t.readable){n.end();return}n.destroy(f)}),Dtt(t,n),t.pipe(a).pipe(c).pipe(n),n}});var mH=_((NMt,Ife)=>{"use strict";var dH=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[s,a]of this.oldCache.entries())this.onEviction(s,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Ife.exports=dH});var EH=_((OMt,vfe)=>{"use strict";var Ptt=Ie("events"),btt=Ie("tls"),xtt=Ie("http2"),ktt=mH(),ba=Symbol("currentStreamsCount"),Cfe=Symbol("request"),Tc=Symbol("cachedOriginSet"),gI=Symbol("gracefullyClosing"),Qtt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Rtt=(t,e,r)=>{let s=0,a=t.length;for(;s>>1;r(t[n],e)?s=n+1:a=n}return s},Ttt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,yH=(t,e)=>{for(let r of t)r[Tc].lengthe[Tc].includes(s))&&r[ba]+e[ba]<=e.remoteSettings.maxConcurrentStreams&&Bfe(r)},Ftt=(t,e)=>{for(let r of t)e[Tc].lengthr[Tc].includes(s))&&e[ba]+r[ba]<=r.remoteSettings.maxConcurrentStreams&&Bfe(e)},wfe=({agent:t,isFree:e})=>{let r={};for(let s in t.sessions){let n=t.sessions[s].filter(c=>{let f=c[im.kCurrentStreamsCount]{t[gI]=!0,t[ba]===0&&t.close()},im=class t extends Ptt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:s=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=s,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new ktt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let s of Qtt)e[s]&&(r+=`:${e[s]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let s=this.queue[e][r];this._sessionsCount{Array.isArray(s)?(s=[...s],a()):s=[{resolve:a,reject:n}];let c=this.normalizeOptions(r),f=t.normalizeOrigin(e,r&&r.servername);if(f===void 0){for(let{reject:E}of s)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(c in this.sessions){let E=this.sessions[c],C=-1,S=-1,b;for(let I of E){let T=I.remoteSettings.maxConcurrentStreams;if(T=T||I[gI]||I.destroyed)continue;b||(C=T),N>S&&(b=I,S=N)}}if(b){if(s.length!==1){for(let{reject:I}of s){let T=new Error(`Expected the length of listeners to be 1, got ${s.length}. Please report this to https://github.com/szmarczak/http2-wrapper/`);I(T)}return}s[0].resolve(b);return}}if(c in this.queue){if(f in this.queue[c]){this.queue[c][f].listeners.push(...s),this._tryToCreateNewSession(c,f);return}}else this.queue[c]={};let p=()=>{c in this.queue&&this.queue[c][f]===h&&(delete this.queue[c][f],Object.keys(this.queue[c]).length===0&&delete this.queue[c])},h=()=>{let E=`${f}:${c}`,C=!1;try{let S=xtt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});S[ba]=0,S[gI]=!1;let b=()=>S[ba]{this.tlsSessionCache.set(E,N)}),S.once("error",N=>{for(let{reject:U}of s)U(N);this.tlsSessionCache.delete(E)}),S.setTimeout(this.timeout,()=>{S.destroy()}),S.once("close",()=>{if(C){I&&this._freeSessionsCount--,this._sessionsCount--;let N=this.sessions[c];N.splice(N.indexOf(S),1),N.length===0&&delete this.sessions[c]}else{let N=new Error("Session closed without receiving a SETTINGS frame");N.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of s)U(N);p()}this._tryToCreateNewSession(c,f)});let T=()=>{if(!(!(c in this.queue)||!b())){for(let N of S[Tc])if(N in this.queue[c]){let{listeners:U}=this.queue[c][N];for(;U.length!==0&&b();)U.shift().resolve(S);let W=this.queue[c];if(W[N].listeners.length===0&&(delete W[N],Object.keys(W).length===0)){delete this.queue[c];break}if(!b())break}}};S.on("origin",()=>{S[Tc]=S.originSet,b()&&(T(),yH(this.sessions[c],S))}),S.once("remoteSettings",()=>{if(S.ref(),S.unref(),this._sessionsCount++,h.destroyed){let N=new Error("Agent has been destroyed");for(let U of s)U.reject(N);S.destroy();return}S[Tc]=S.originSet;{let N=this.sessions;if(c in N){let U=N[c];U.splice(Rtt(U,S,Ttt),0,S)}else N[c]=[S]}this._freeSessionsCount+=1,C=!0,this.emit("session",S),T(),p(),S[ba]===0&&this._freeSessionsCount>this.maxFreeSessions&&S.close(),s.length!==0&&(this.getSession(f,r,s),s.length=0),S.on("remoteSettings",()=>{T(),yH(this.sessions[c],S)})}),S[Cfe]=S.request,S.request=(N,U)=>{if(S[gI])throw new Error("The session is gracefully closing. No new streams are allowed.");let W=S[Cfe](N,U);return S.ref(),++S[ba],S[ba]===S.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,W.once("close",()=>{if(I=b(),--S[ba],!S.destroyed&&!S.closed&&(Ftt(this.sessions[c],S),b()&&!S.closed)){I||(this._freeSessionsCount++,I=!0);let ee=S[ba]===0;ee&&S.unref(),ee&&(this._freeSessionsCount>this.maxFreeSessions||S[gI])?S.close():(yH(this.sessions[c],S),T())}}),W}}catch(S){for(let b of s)b.reject(S);p()}};h.listeners=s,h.completed=!1,h.destroyed=!1,this.queue[c][f]=h,this._tryToCreateNewSession(c,f)})}request(e,r,s,a){return new Promise((n,c)=>{this.getSession(e,r,[{reject:c,resolve:f=>{try{n(f.request(s,a))}catch(p){c(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let s=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),btt.connect(s,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ba]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let s of r)s.destroy(e);for(let r of Object.values(this.queue))for(let s of Object.values(r))s.destroyed=!0;this.queue={}}get freeSessions(){return wfe({agent:this,isFree:!0})}get busySessions(){return wfe({agent:this,isFree:!1})}};im.kCurrentStreamsCount=ba;im.kGracefullyClosing=gI;vfe.exports={Agent:im,globalAgent:new im}});var CH=_((LMt,Sfe)=>{"use strict";var{Readable:Ntt}=Ie("stream"),IH=class extends Ntt{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Sfe.exports=IH});var wH=_((MMt,Dfe)=>{"use strict";Dfe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var bfe=_((UMt,Pfe)=>{"use strict";Pfe.exports=(t,e,r)=>{for(let s of r)t.on(s,(...a)=>e.emit(s,...a))}});var kfe=_((_Mt,xfe)=>{"use strict";xfe.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var Rfe=_((jMt,Qfe)=>{"use strict";var dI=(t,e,r)=>{Qfe.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};dI(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],s=Array.isArray(r);return s&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${s?"one of":"of"} type ${r}. Received ${typeof t[2]}`});dI(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);dI(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);dI(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);dI(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);dI(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var PH=_((GMt,Ufe)=>{"use strict";var Ott=Ie("http2"),{Writable:Ltt}=Ie("stream"),{Agent:Tfe,globalAgent:Mtt}=EH(),Utt=CH(),_tt=wH(),Htt=bfe(),jtt=kfe(),{ERR_INVALID_ARG_TYPE:BH,ERR_INVALID_PROTOCOL:Gtt,ERR_HTTP_HEADERS_SENT:Ffe,ERR_INVALID_HTTP_TOKEN:qtt,ERR_HTTP_INVALID_HEADER_VALUE:Wtt,ERR_INVALID_CHAR:Ytt}=Rfe(),{HTTP2_HEADER_STATUS:Nfe,HTTP2_HEADER_METHOD:Ofe,HTTP2_HEADER_PATH:Lfe,HTTP2_METHOD_CONNECT:Vtt}=Ott.constants,Jo=Symbol("headers"),vH=Symbol("origin"),SH=Symbol("session"),Mfe=Symbol("options"),VQ=Symbol("flushedHeaders"),zB=Symbol("jobs"),Jtt=/^[\^`\-\w!#$%&*+.|~]+$/,Ktt=/[^\t\u0020-\u007E\u0080-\u00FF]/,DH=class extends Ltt{constructor(e,r,s){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=_tt(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(s=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[SH]=r.h2session;else if(r.agent===!1)this.agent=new Tfe({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Tfe({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Mtt;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new BH("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Gtt(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,c=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:f}=r;if(r.timeout=void 0,this[Jo]=Object.create(null),this[zB]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[Jo])&&(this[Jo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[Mfe]=r,n===443?(this[vH]=`https://${c}`,":authority"in this[Jo]||(this[Jo][":authority"]=c)):(this[vH]=`https://${c}:${n}`,":authority"in this[Jo]||(this[Jo][":authority"]=`${c}:${n}`)),f&&this.setTimeout(f),s&&this.once("response",s),this[VQ]=!1}get method(){return this[Jo][Ofe]}set method(e){e&&(this[Jo][Ofe]=e.toUpperCase())}get path(){return this[Jo][Lfe]}set path(e){e&&(this[Jo][Lfe]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,s){if(this._mustNotHaveABody){s(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,s);this._request?a():this[zB].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[zB].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[VQ]||this.destroyed)return;this[VQ]=!0;let e=this.method===Vtt,r=s=>{if(this._request=s,this.destroyed){s.destroy();return}e||Htt(s,this,["timeout","continue","close","error"]);let a=c=>(...f)=>{!this.writable&&!this.destroyed?c(...f):this.once("finish",()=>{c(...f)})};s.once("response",a((c,f,p)=>{let h=new Utt(this.socket,s.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=c[Nfe],h.headers=c,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,s,Buffer.alloc(0))?this.emit("close"):s.destroy()):(s.on("data",E=>{!h._dumped&&!h.push(E)&&s.pause()}),s.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),s.once("headers",a(c=>this.emit("information",{statusCode:c[Nfe]}))),s.once("trailers",a((c,f,p)=>{let{res:h}=this;h.trailers=c,h.rawTrailers=p}));let{socket:n}=s.session;this.socket=n,this.connection=n;for(let c of this[zB])c();this.emit("socket",this.socket)};if(this[SH])try{r(this[SH].request(this[Jo]))}catch(s){this.emit("error",s)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[vH],this[Mfe],this[Jo]))}catch(s){this.emit("error",s)}}}getHeader(e){if(typeof e!="string")throw new BH("name","string",e);return this[Jo][e.toLowerCase()]}get headersSent(){return this[VQ]}removeHeader(e){if(typeof e!="string")throw new BH("name","string",e);if(this.headersSent)throw new Ffe("remove");delete this[Jo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Ffe("set");if(typeof e!="string"||!Jtt.test(e)&&!jtt(e))throw new qtt("Header name",e);if(typeof r>"u")throw new Wtt(r,e);if(Ktt.test(r))throw new Ytt("header content",e);this[Jo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let s=()=>this._request.setTimeout(e,r);return this._request?s():this[zB].push(s),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};Ufe.exports=DH});var Hfe=_((qMt,_fe)=>{"use strict";var ztt=Ie("tls");_fe.exports=(t={},e=ztt.connect)=>new Promise((r,s)=>{let a=!1,n,c=async()=>{await p,n.off("timeout",f),n.off("error",s),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit("timeout"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},f=async()=>{a=!0,c()},p=(async()=>{try{n=await e(t,c),n.on("error",s),n.once("timeout",f)}catch(h){s(h)}})()})});var Gfe=_((WMt,jfe)=>{"use strict";var Ztt=Ie("net");jfe.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),Ztt.isIP(e)?"":e}});var Yfe=_((YMt,xH)=>{"use strict";var qfe=Ie("http"),bH=Ie("https"),Xtt=Hfe(),$tt=mH(),ert=PH(),trt=Gfe(),rrt=wH(),JQ=new $tt({maxSize:100}),ZB=new Map,Wfe=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let s=()=>{t.emit("free",e,r)};e.on("free",s);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",s),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},nrt=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!JQ.has(e)){if(ZB.has(e))return(await ZB.get(e)).alpnProtocol;let{path:r,agent:s}=t;t.path=t.socketPath;let a=Xtt(t);ZB.set(e,a);try{let{socket:n,alpnProtocol:c}=await a;if(JQ.set(e,c),t.path=r,c==="h2")n.destroy();else{let{globalAgent:f}=bH,p=bH.Agent.prototype.createConnection;s?s.createConnection===p?Wfe(s,n,t):n.destroy():f.createConnection===p?Wfe(f,n,t):n.destroy()}return ZB.delete(e),c}catch(n){throw ZB.delete(e),n}}return JQ.get(e)};xH.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=rrt(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let s=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||trt(e),e.port=e.port||(s?443:80),e._defaultAgent=s?bH.globalAgent:qfe.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[s?"https":"http"]}return s&&await nrt(e)==="h2"?(a&&(e.agent=a.http2),new ert(e,r)):qfe.request(e,r)};xH.exports.protocolCache=JQ});var Jfe=_((VMt,Vfe)=>{"use strict";var irt=Ie("http2"),srt=EH(),kH=PH(),ort=CH(),art=Yfe(),lrt=(t,e,r)=>new kH(t,e,r),crt=(t,e,r)=>{let s=new kH(t,e,r);return s.end(),s};Vfe.exports={...irt,ClientRequest:kH,IncomingMessage:ort,...srt,request:lrt,get:crt,auto:art}});var RH=_(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});var Kfe=Np();QH.default=t=>Kfe.default.nodeStream(t)&&Kfe.default.function_(t.getBoundary)});var $fe=_(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});var Zfe=Ie("fs"),Xfe=Ie("util"),zfe=Np(),urt=RH(),frt=Xfe.promisify(Zfe.stat);TH.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(zfe.default.string(t))return Buffer.byteLength(t);if(zfe.default.buffer(t))return t.length;if(urt.default(t))return Xfe.promisify(t.getLength.bind(t))();if(t instanceof Zfe.ReadStream){let{size:r}=await frt(t.path);return r===0?void 0:r}}});var NH=_(FH=>{"use strict";Object.defineProperty(FH,"__esModule",{value:!0});function Art(t,e,r){let s={};for(let a of r)s[a]=(...n)=>{e.emit(a,...n)},t.on(a,s[a]);return()=>{for(let a of r)t.off(a,s[a])}}FH.default=Art});var eAe=_(OH=>{"use strict";Object.defineProperty(OH,"__esModule",{value:!0});OH.default=()=>{let t=[];return{once(e,r,s){e.once(r,s),t.push({origin:e,event:r,fn:s})},unhandleAll(){for(let e of t){let{origin:r,event:s,fn:a}=e;r.removeListener(s,a)}t.length=0}}}});var rAe=_(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.TimeoutError=void 0;var prt=Ie("net"),hrt=eAe(),tAe=Symbol("reentry"),grt=()=>{},KQ=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};XB.TimeoutError=KQ;XB.default=(t,e,r)=>{if(tAe in t)return grt;t[tAe]=!0;let s=[],{once:a,unhandleAll:n}=hrt.default(),c=(C,S,b)=>{var I;let T=setTimeout(S,C,C,b);(I=T.unref)===null||I===void 0||I.call(T);let N=()=>{clearTimeout(T)};return s.push(N),N},{host:f,hostname:p}=r,h=(C,S)=>{t.destroy(new KQ(C,S))},E=()=>{for(let C of s)C();n()};if(t.once("error",C=>{if(E(),t.listenerCount("error")===0)throw C}),t.once("close",E),a(t,"response",C=>{a(C,"end",E)}),typeof e.request<"u"&&c(e.request,h,"request"),typeof e.socket<"u"){let C=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,C),s.push(()=>{t.removeListener("timeout",C)})}return a(t,"socket",C=>{var S;let{socketPath:b}=t;if(C.connecting){let I=!!(b??prt.isIP((S=p??f)!==null&&S!==void 0?S:"")!==0);if(typeof e.lookup<"u"&&!I&&typeof C.address().address>"u"){let T=c(e.lookup,h,"lookup");a(C,"lookup",T)}if(typeof e.connect<"u"){let T=()=>c(e.connect,h,"connect");I?a(C,"connect",T()):a(C,"lookup",N=>{N===null&&a(C,"connect",T())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(C,"connect",()=>{let T=c(e.secureConnect,h,"secureConnect");a(C,"secureConnect",T)})}if(typeof e.send<"u"){let I=()=>c(e.send,h,"send");C.connecting?a(C,"connect",()=>{a(t,"upload-complete",I())}):a(t,"upload-complete",I())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let C=c(e.response,h,"response");a(t,"response",C)}),E}});var iAe=_(LH=>{"use strict";Object.defineProperty(LH,"__esModule",{value:!0});var nAe=Np();LH.default=t=>{t=t;let e={protocol:t.protocol,hostname:nAe.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return nAe.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var sAe=_(MH=>{"use strict";Object.defineProperty(MH,"__esModule",{value:!0});var drt=Ie("url"),mrt=["protocol","host","hostname","port","pathname","search"];MH.default=(t,e)=>{var r,s;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(s=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&s!==void 0?s:""}`}let a=new drt.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of mrt)e[n]&&(a[n]=e[n].toString());return a}});var oAe=_(_H=>{"use strict";Object.defineProperty(_H,"__esModule",{value:!0});var UH=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};_H.default=UH});var jH=_(HH=>{"use strict";Object.defineProperty(HH,"__esModule",{value:!0});var yrt=async t=>{let e=[],r=0;for await(let s of t)e.push(s),r+=Buffer.byteLength(s);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};HH.default=yrt});var lAe=_(sm=>{"use strict";Object.defineProperty(sm,"__esModule",{value:!0});sm.dnsLookupIpVersionToFamily=sm.isDnsLookupIpVersion=void 0;var aAe={auto:0,ipv4:4,ipv6:6};sm.isDnsLookupIpVersion=t=>t in aAe;sm.dnsLookupIpVersionToFamily=t=>{if(sm.isDnsLookupIpVersion(t))return aAe[t];throw new Error("Invalid DNS lookup IP version")}});var GH=_(zQ=>{"use strict";Object.defineProperty(zQ,"__esModule",{value:!0});zQ.isResponseOk=void 0;zQ.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var uAe=_(qH=>{"use strict";Object.defineProperty(qH,"__esModule",{value:!0});var cAe=new Set;qH.default=t=>{cAe.has(t)||(cAe.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var fAe=_(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});var Si=Np(),Ert=(t,e)=>{if(Si.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Si.assert.any([Si.default.string,Si.default.undefined],t.encoding),Si.assert.any([Si.default.boolean,Si.default.undefined],t.resolveBodyOnly),Si.assert.any([Si.default.boolean,Si.default.undefined],t.methodRewriting),Si.assert.any([Si.default.boolean,Si.default.undefined],t.isStream),Si.assert.any([Si.default.string,Si.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:s=>s.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Si.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(s=>s.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Si.default.number(r)&&(t.retry.limit=r),Si.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Si.default.number))),Si.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:s}=t;if(!Si.default.function_(s.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Si.default.function_(s.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Si.default.function_(s.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Si.default.function_(s.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};WH.default=Ert});var AAe=_($B=>{"use strict";Object.defineProperty($B,"__esModule",{value:!0});$B.retryAfterStatusCodes=void 0;$B.retryAfterStatusCodes=new Set([413,429,503]);var Irt=({attemptCount:t,retryOptions:e,error:r,retryAfter:s})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),c=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!c)return 0;if(r.response){if(s)return e.maxRetryAfter===void 0||s>e.maxRetryAfter?0:s;if(r.response.statusCode===413)return 0}let f=Math.random()*100;return 2**(t-1)*1e3+f};$B.default=Irt});var rv=_(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.UnsupportedProtocolError=Ln.ReadError=Ln.TimeoutError=Ln.UploadError=Ln.CacheError=Ln.HTTPError=Ln.MaxRedirectsError=Ln.RequestError=Ln.setNonEnumerableProperties=Ln.knownHookEvents=Ln.withoutBody=Ln.kIsNormalizedAlready=void 0;var pAe=Ie("util"),hAe=Ie("stream"),Crt=Ie("fs"),w0=Ie("url"),gAe=Ie("http"),YH=Ie("http"),wrt=Ie("https"),Brt=xue(),vrt=Oue(),dAe=gfe(),Srt=Efe(),Drt=Jfe(),Prt=WQ(),at=Np(),brt=$fe(),mAe=RH(),xrt=NH(),yAe=rAe(),krt=iAe(),EAe=sAe(),Qrt=oAe(),Rrt=jH(),IAe=lAe(),Trt=GH(),B0=uAe(),Frt=fAe(),Nrt=AAe(),VH,po=Symbol("request"),$Q=Symbol("response"),mI=Symbol("responseSize"),yI=Symbol("downloadedSize"),EI=Symbol("bodySize"),II=Symbol("uploadedSize"),ZQ=Symbol("serverResponsesPiped"),CAe=Symbol("unproxyEvents"),wAe=Symbol("isFromCache"),JH=Symbol("cancelTimeouts"),BAe=Symbol("startedReading"),CI=Symbol("stopReading"),XQ=Symbol("triggerRead"),v0=Symbol("body"),ev=Symbol("jobs"),vAe=Symbol("originalResponse"),SAe=Symbol("retryTimeout");Ln.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Ort=at.default.string(process.versions.brotli);Ln.withoutBody=new Set(["GET","HEAD"]);Ln.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Lrt(t){for(let e in t){let r=t[e];if(!at.default.string(r)&&!at.default.number(r)&&!at.default.boolean(r)&&!at.default.null_(r)&&!at.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Mrt(t){return at.default.object(t)&&!("statusCode"in t)}var KH=new Qrt.default,Urt=async t=>new Promise((e,r)=>{let s=a=>{r(a)};t.pending||e(),t.once("error",s),t.once("ready",()=>{t.off("error",s),e()})}),_rt=new Set([300,301,302,303,304,307,308]),Hrt=["context","body","json","form"];Ln.setNonEnumerableProperties=(t,e)=>{let r={};for(let s of t)if(s)for(let a of Hrt)a in s&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:s[a]});Object.defineProperties(e,r)};var us=class extends Error{constructor(e,r,s){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,s instanceof oR?(Object.defineProperty(this,"request",{enumerable:!1,value:s}),Object.defineProperty(this,"response",{enumerable:!1,value:s[$Q]}),Object.defineProperty(this,"options",{enumerable:!1,value:s.options})):Object.defineProperty(this,"options",{enumerable:!1,value:s}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,at.default.string(r.stack)&&at.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,c=this.stack.slice(n).split(` `).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` `).reverse();for(;f.length!==0&&f[0]===c[0];)c.shift();this.stack=`${this.stack.slice(0,n)}${c.reverse().join(` `)}${f.reverse().join(` `)}`}}};Ln.RequestError=us;var eR=class extends us{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ln.MaxRedirectsError=eR;var tR=class extends us{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ln.HTTPError=tR;var rR=class extends us{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Ln.CacheError=rR;var nR=class extends us{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Ln.UploadError=nR;var iR=class extends us{constructor(e,r,s){super(e.message,e,s),this.name="TimeoutError",this.event=e.event,this.timings=r}};Ln.TimeoutError=iR;var tv=class extends us{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Ln.ReadError=tv;var sR=class extends us{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ln.UnsupportedProtocolError=sR;var jrt=["socket","connect","continue","information","upgrade","timeout"],oR=class extends hAe.Duplex{constructor(e,r={},s){super({autoDestroy:!1,highWaterMark:0}),this[yI]=0,this[II]=0,this.requestInitialized=!1,this[ZQ]=new Set,this.redirects=[],this[CI]=!1,this[XQ]=!1,this[ev]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof YH.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:c,body:f,form:p}=r;if((c||f||p)&&this._lockWrite(),Ln.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,s)}catch(h){at.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Crt.ReadStream&&await Urt(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[po])===null||h===void 0||h.destroy();return}for(let C of this[ev])C();this[ev].length=0,this.requestInitialized=!0}catch(E){if(E instanceof us){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,s){var a,n,c,f,p;let h=r;if(at.default.object(e)&&!at.default.urlInstance(e))r={...s,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...s,...r},e!==void 0&&(r.url=e),at.default.urlInstance(r.url)&&(r.url=new w0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),at.assert.any([at.default.string,at.default.undefined],r.method),at.assert.any([at.default.object,at.default.undefined],r.headers),at.assert.any([at.default.string,at.default.urlInstance,at.default.undefined],r.prefixUrl),at.assert.any([at.default.object,at.default.undefined],r.cookieJar),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.searchParams),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.cache),at.assert.any([at.default.object,at.default.number,at.default.undefined],r.timeout),at.assert.any([at.default.object,at.default.undefined],r.context),at.assert.any([at.default.object,at.default.undefined],r.hooks),at.assert.any([at.default.boolean,at.default.undefined],r.decompress),at.assert.any([at.default.boolean,at.default.undefined],r.ignoreInvalidCookies),at.assert.any([at.default.boolean,at.default.undefined],r.followRedirect),at.assert.any([at.default.number,at.default.undefined],r.maxRedirects),at.assert.any([at.default.boolean,at.default.undefined],r.throwHttpErrors),at.assert.any([at.default.boolean,at.default.undefined],r.http2),at.assert.any([at.default.boolean,at.default.undefined],r.allowGetBody),at.assert.any([at.default.string,at.default.undefined],r.localAddress),at.assert.any([IAe.isDnsLookupIpVersion,at.default.undefined],r.dnsLookupIpVersion),at.assert.any([at.default.object,at.default.undefined],r.https),at.assert.any([at.default.boolean,at.default.undefined],r.rejectUnauthorized),r.https&&(at.assert.any([at.default.boolean,at.default.undefined],r.https.rejectUnauthorized),at.assert.any([at.default.function_,at.default.undefined],r.https.checkServerIdentity),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificateAuthority),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.key),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificate),at.assert.any([at.default.string,at.default.undefined],r.https.passphrase),at.assert.any([at.default.string,at.default.buffer,at.default.array,at.default.undefined],r.https.pfx)),at.assert.any([at.default.object,at.default.undefined],r.cacheOptions),at.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===s?.headers?r.headers={...r.headers}:r.headers=Prt({...s?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==s?.searchParams){let b;if(at.default.string(r.searchParams)||r.searchParams instanceof w0.URLSearchParams)b=new w0.URLSearchParams(r.searchParams);else{Lrt(r.searchParams),b=new w0.URLSearchParams;for(let I in r.searchParams){let T=r.searchParams[I];T===null?b.append(I,""):T!==void 0&&b.append(I,T)}}(a=s?.searchParams)===null||a===void 0||a.forEach((I,T)=>{b.has(T)||b.append(T,I)}),r.searchParams=b}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(c=r.password)!==null&&c!==void 0?c:"",at.default.undefined(r.prefixUrl)?r.prefixUrl=(f=s?.prefixUrl)!==null&&f!==void 0?f:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),at.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=EAe.default(r.prefixUrl+r.url,r)}else(at.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=EAe.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:b}=r;Object.defineProperty(r,"prefixUrl",{set:T=>{let N=r.url;if(!N.href.startsWith(T))throw new Error(`Cannot change \`prefixUrl\` from ${b} to ${T}: ${N.href}`);r.url=new w0.URL(T+N.href.slice(b.length)),b=T},get:()=>b});let{protocol:I}=r.url;if(I==="unix:"&&(I="http:",r.url=new w0.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),I!=="http:"&&I!=="https:")throw new sR(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:b,getCookieString:I}=E;at.assert.function_(b),at.assert.function_(I),b.length===4&&I.length===0&&(b=pAe.promisify(b.bind(r.cookieJar)),I=pAe.promisify(I.bind(r.cookieJar)),r.cookieJar={setCookie:b,getCookieString:I})}let{cache:C}=r;if(C&&(KH.has(C)||KH.set(C,new dAe((b,I)=>{let T=b[po](b,I);return at.default.promise(T)&&(T.once=(N,U)=>{if(N==="error")T.catch(U);else if(N==="abort")(async()=>{try{(await T).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${N}`);return T}),T},C))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)VH||(VH=new vrt.default),r.dnsCache=VH;else if(!at.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${at.default(r.dnsCache)}`);at.default.number(r.timeout)?r.timeout={request:r.timeout}:s&&r.timeout!==s.timeout?r.timeout={...s.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let S=r.hooks===s?.hooks;r.hooks={...r.hooks};for(let b of Ln.knownHookEvents)if(b in r.hooks)if(at.default.array(r.hooks[b]))r.hooks[b]=[...r.hooks[b]];else throw new TypeError(`Parameter \`${b}\` must be an Array, got ${at.default(r.hooks[b])}`);else r.hooks[b]=[];if(s&&!S)for(let b of Ln.knownHookEvents)s.hooks[b].length>0&&(r.hooks[b]=[...s.hooks[b],...r.hooks[b]]);if("family"in r&&B0.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),s?.https&&(r.https={...s.https,...r.https}),"rejectUnauthorized"in r&&B0.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&B0.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&B0.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&B0.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&B0.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&B0.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&B0.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let b in r.agent)if(b!=="http"&&b!=="https"&&b!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${b}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Ln.setNonEnumerableProperties([s,h],r),Frt.default(r,s)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,s=!at.default.undefined(e.form),a=!at.default.undefined(e.json),n=!at.default.undefined(e.body),c=s||a||n,f=Ln.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=f,c){if(f)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,s,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof hAe.Readable)&&!at.default.string(e.body)&&!at.default.buffer(e.body)&&!mAe.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(s&&!at.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!at.default.string(r["content-type"]);n?(mAe.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[v0]=e.body):s?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[v0]=new w0.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[v0]=e.stringifyJson(e.json));let h=await brt.default(this[v0],e.headers);at.default.undefined(r["content-length"])&&at.default.undefined(r["transfer-encoding"])&&!f&&!at.default.undefined(h)&&(r["content-length"]=String(h))}}else f?this._lockWrite():this._unlockWrite();this[EI]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:s}=r;this[vAe]=e,r.decompress&&(e=Srt(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:gAe.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[wAe]=n.isFromCache,this[mI]=Number(e.headers["content-length"])||void 0,this[$Q]=e,e.once("end",()=>{this[mI]=this[yI],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",f=>{e.destroy(),this._beforeError(new tv(f,this))}),e.once("aborted",()=>{this._beforeError(new tv({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let c=e.headers["set-cookie"];if(at.default.object(r.cookieJar)&&c){let f=c.map(async p=>r.cookieJar.setCookie(p,s.toString()));r.ignoreInvalidCookies&&(f=f.map(async p=>p.catch(()=>{})));try{await Promise.all(f)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&_rt.has(a)){if(e.resume(),this[po]&&(this[JH](),delete this[po],this[CAe]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[v0]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new eR(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new w0.URL(p,s),E=h.toString();decodeURI(E),h.hostname!==s.hostname||h.port!==s.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let C of r.hooks.beforeRedirect)await C(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!Trt.isResponseOk(n)){this._beforeError(new tR(n));return}e.on("readable",()=>{this[XQ]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let f of this[ZQ])if(!f.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&f.setHeader(p,E)}f.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:s,url:a}=r;Brt.default(e),this[JH]=yAe.default(e,s,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof yAe.TimeoutError?new iR(p,this.timings,this):new us(p.message,p,this),this._beforeError(p)}),this[CAe]=xrt.default(e,this,jrt),this[po]=e,this.emit("uploadProgress",this.uploadProgress);let c=this[v0],f=this.redirects.length===0?this:e;at.default.nodeStream(c)?(c.pipe(f),c.once("error",p=>{this._beforeError(new nR(p,this))})):(this._unlockWrite(),at.default.undefined(c)?(this._cannotHaveBody||this._noPipe)&&(f.end(),this._lockWrite()):(this._writeRequest(c,void 0,()=>{}),f.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((s,a)=>{Object.assign(r,krt.default(e)),delete r.url;let n,c=KH.get(r.cache)(r,async f=>{f._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",f),s(f)});r.url=e,c.once("error",a),c.once("request",async f=>{n=f,s(n)})})}async _makeRequest(){var e,r,s,a,n;let{options:c}=this,{headers:f}=c;for(let U in f)if(at.default.undefined(f[U]))delete f[U];else if(at.default.null_(f[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(c.decompress&&at.default.undefined(f["accept-encoding"])&&(f["accept-encoding"]=Ort?"gzip, deflate, br":"gzip, deflate"),c.cookieJar){let U=await c.cookieJar.getCookieString(c.url.toString());at.default.nonEmptyString(U)&&(c.headers.cookie=U)}for(let U of c.hooks.beforeRequest){let W=await U(c);if(!at.default.undefined(W)){c.request=()=>W;break}}c.body&&this[v0]!==c.body&&(this[v0]=c.body);let{agent:p,request:h,timeout:E,url:C}=c;if(c.dnsCache&&!("lookup"in c)&&(c.lookup=c.dnsCache.lookup),C.hostname==="unix"){let U=/(?.+?):(?.+)/.exec(`${C.pathname}${C.search}`);if(U?.groups){let{socketPath:W,path:ee}=U.groups;Object.assign(c,{socketPath:W,path:ee,host:""})}}let S=C.protocol==="https:",b;c.http2?b=Drt.auto:b=S?wrt.request:gAe.request;let I=(e=c.request)!==null&&e!==void 0?e:b,T=c.cache?this._createCacheableRequest:I;p&&!c.http2&&(c.agent=p[S?"https":"http"]),c[po]=I,delete c.request,delete c.timeout;let N=c;if(N.shared=(r=c.cacheOptions)===null||r===void 0?void 0:r.shared,N.cacheHeuristic=(s=c.cacheOptions)===null||s===void 0?void 0:s.cacheHeuristic,N.immutableMinTimeToLive=(a=c.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,N.ignoreCargoCult=(n=c.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,c.dnsLookupIpVersion!==void 0)try{N.family=IAe.dnsLookupIpVersionToFamily(c.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}c.https&&("rejectUnauthorized"in c.https&&(N.rejectUnauthorized=c.https.rejectUnauthorized),c.https.checkServerIdentity&&(N.checkServerIdentity=c.https.checkServerIdentity),c.https.certificateAuthority&&(N.ca=c.https.certificateAuthority),c.https.certificate&&(N.cert=c.https.certificate),c.https.key&&(N.key=c.https.key),c.https.passphrase&&(N.passphrase=c.https.passphrase),c.https.pfx&&(N.pfx=c.https.pfx));try{let U=await T(C,N);at.default.undefined(U)&&(U=b(C,N)),c.request=h,c.timeout=E,c.agent=p,c.https&&("rejectUnauthorized"in c.https&&delete N.rejectUnauthorized,c.https.checkServerIdentity&&delete N.checkServerIdentity,c.https.certificateAuthority&&delete N.ca,c.https.certificate&&delete N.cert,c.https.key&&delete N.key,c.https.passphrase&&delete N.passphrase,c.https.pfx&&delete N.pfx),Mrt(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof dAe.CacheError?new rR(U,this):new us(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new us(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[CI])return;let{options:r}=this,s=this.retryCount+1;this[CI]=!0,e instanceof us||(e=new us(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Rrt.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let c;try{let f;n&&"retry-after"in n.headers&&(f=Number(n.headers["retry-after"]),Number.isNaN(f)?(f=Date.parse(n.headers["retry-after"])-Date.now(),f<=0&&(f=1)):f*=1e3),c=await r.retry.calculateDelay({attemptCount:s,retryOptions:r.retry,error:a,retryAfter:f,computedValue:Nrt.default({attemptCount:s,retryOptions:r.retry,error:a,retryAfter:f,computedValue:0})})}catch(f){this._error(new us(f.message,f,this));return}if(c){let f=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,s)}catch(p){this._error(new us(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",s,e))};this[SAe]=setTimeout(f,c);return}}this._error(a)})()}_read(){this[XQ]=!0;let e=this[$Q];if(e&&!this[CI]){e.readableLength&&(this[XQ]=!1);let r;for(;(r=e.read())!==null;){this[yI]+=r.length,this[BAe]=!0;let s=this.downloadProgress;s.percent<1&&this.emit("downloadProgress",s),this.push(r)}}}_write(e,r,s){let a=()=>{this._writeRequest(e,r,s)};this.requestInitialized?a():this[ev].push(a)}_writeRequest(e,r,s){this[po].destroyed||(this._progressCallbacks.push(()=>{this[II]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[po].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),s(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(po in this)){e();return}if(this[po].destroyed){e();return}this[po].end(s=>{s||(this[EI]=this[II],this.emit("uploadProgress",this.uploadProgress),this[po].emit("upload-complete")),e(s)})};this.requestInitialized?r():this[ev].push(r)}_destroy(e,r){var s;this[CI]=!0,clearTimeout(this[SAe]),po in this&&(this[JH](),!((s=this[$Q])===null||s===void 0)&&s.complete||this[po].destroy()),e!==null&&!at.default.undefined(e)&&!(e instanceof us)&&(e=new us(e.message,e,this)),r(e)}get _isAboutToError(){return this[CI]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,s;return((r=(e=this[po])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((s=this[vAe])===null||s===void 0)&&s.complete)}get socket(){var e,r;return(r=(e=this[po])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[mI]?e=this[yI]/this[mI]:this[mI]===this[yI]?e=1:e=0,{percent:e,transferred:this[yI],total:this[mI]}}get uploadProgress(){let e;return this[EI]?e=this[II]/this[EI]:this[EI]===this[II]?e=1:e=0,{percent:e,transferred:this[II],total:this[EI]}}get timings(){var e;return(e=this[po])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[wAe]}pipe(e,r){if(this[BAe])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof YH.ServerResponse&&this[ZQ].add(e),super.pipe(e,r)}unpipe(e){return e instanceof YH.ServerResponse&&this[ZQ].delete(e),super.unpipe(e),this}};Ln.default=oR});var nv=_(qu=>{"use strict";var Grt=qu&&qu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),qrt=qu&&qu.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Grt(e,t,r)};Object.defineProperty(qu,"__esModule",{value:!0});qu.CancelError=qu.ParseError=void 0;var DAe=rv(),zH=class extends DAe.RequestError{constructor(e,r){let{options:s}=r.request;super(`${e.message} in "${s.url.toString()}"`,e,r.request),this.name="ParseError"}};qu.ParseError=zH;var ZH=class extends DAe.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};qu.CancelError=ZH;qrt(rv(),qu)});var bAe=_(XH=>{"use strict";Object.defineProperty(XH,"__esModule",{value:!0});var PAe=nv(),Wrt=(t,e,r,s)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(s);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new PAe.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new PAe.ParseError(n,t)}};XH.default=Wrt});var $H=_(S0=>{"use strict";var Yrt=S0&&S0.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Vrt=S0&&S0.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Yrt(e,t,r)};Object.defineProperty(S0,"__esModule",{value:!0});var Jrt=Ie("events"),Krt=Np(),zrt=Pue(),aR=nv(),xAe=bAe(),kAe=rv(),Zrt=NH(),Xrt=jH(),QAe=GH(),$rt=["request","response","redirect","uploadProgress","downloadProgress"];function RAe(t){let e,r,s=new Jrt.EventEmitter,a=new zrt((c,f,p)=>{let h=E=>{let C=new kAe.default(void 0,t);C.retryCount=E,C._noPipe=!0,p(()=>C.destroy()),p.shouldReject=!1,p(()=>f(new aR.CancelError(C))),e=C,C.once("response",async I=>{var T;if(I.retryCount=E,I.request.aborted)return;let N;try{N=await Xrt.default(C),I.rawBody=N}catch{return}if(C._isAboutToError)return;let U=((T=I.headers["content-encoding"])!==null&&T!==void 0?T:"").toLowerCase(),W=["gzip","deflate","br"].includes(U),{options:ee}=C;if(W&&!ee.decompress)I.body=N;else try{I.body=xAe.default(I,ee.responseType,ee.parseJson,ee.encoding)}catch(ie){if(I.body=N.toString(),QAe.isResponseOk(I)){C._beforeError(ie);return}}try{for(let[ie,ue]of ee.hooks.afterResponse.entries())I=await ue(I,async le=>{let me=kAe.default.normalizeArguments(void 0,{...le,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},ee);me.hooks.afterResponse=me.hooks.afterResponse.slice(0,ie);for(let Be of me.hooks.beforeRetry)await Be(me);let pe=RAe(me);return p(()=>{pe.catch(()=>{}),pe.cancel()}),pe})}catch(ie){C._beforeError(new aR.RequestError(ie.message,ie,C));return}if(!QAe.isResponseOk(I)){C._beforeError(new aR.HTTPError(I));return}r=I,c(C.options.resolveBodyOnly?I.body:I)});let S=I=>{if(a.isCanceled)return;let{options:T}=C;if(I instanceof aR.HTTPError&&!T.throwHttpErrors){let{response:N}=I;c(C.options.resolveBodyOnly?N.body:N);return}f(I)};C.once("error",S);let b=C.options.body;C.once("retry",(I,T)=>{var N,U;if(b===((N=T.request)===null||N===void 0?void 0:N.options.body)&&Krt.default.nodeStream((U=T.request)===null||U===void 0?void 0:U.options.body)){S(T);return}h(I)}),Zrt.default(C,s,$rt)};h(0)});a.on=(c,f)=>(s.on(c,f),a);let n=c=>{let f=(async()=>{await a;let{options:p}=r.request;return xAe.default(r,c,p.parseJson,p.encoding)})();return Object.defineProperties(f,Object.getOwnPropertyDescriptors(a)),f};return a.json=()=>{let{headers:c}=e.options;return!e.writableFinished&&c.accept===void 0&&(c.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}S0.default=RAe;Vrt(nv(),S0)});var TAe=_(ej=>{"use strict";Object.defineProperty(ej,"__esModule",{value:!0});var ent=nv();function tnt(t,...e){let r=(async()=>{if(t instanceof ent.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),s=()=>r;return r.json=s,r.text=s,r.buffer=s,r.on=s,r}ej.default=tnt});var OAe=_(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});var FAe=Np();function NAe(t){for(let e of Object.values(t))(FAe.default.plainObject(e)||FAe.default.array(e))&&NAe(e);return Object.freeze(t)}tj.default=NAe});var MAe=_(LAe=>{"use strict";Object.defineProperty(LAe,"__esModule",{value:!0})});var rj=_(Nc=>{"use strict";var rnt=Nc&&Nc.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),nnt=Nc&&Nc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&rnt(e,t,r)};Object.defineProperty(Nc,"__esModule",{value:!0});Nc.defaultHandler=void 0;var UAe=Np(),Fc=$H(),int=TAe(),cR=rv(),snt=OAe(),ont={RequestError:Fc.RequestError,CacheError:Fc.CacheError,ReadError:Fc.ReadError,HTTPError:Fc.HTTPError,MaxRedirectsError:Fc.MaxRedirectsError,TimeoutError:Fc.TimeoutError,ParseError:Fc.ParseError,CancelError:Fc.CancelError,UnsupportedProtocolError:Fc.UnsupportedProtocolError,UploadError:Fc.UploadError},ant=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:lR}=cR.default,_Ae=(...t)=>{let e;for(let r of t)e=lR(void 0,r,e);return e},lnt=t=>t.isStream?new cR.default(void 0,t):Fc.default(t),cnt=t=>"defaults"in t&&"options"in t.defaults,unt=["get","post","put","patch","head","delete"];Nc.defaultHandler=(t,e)=>e(t);var HAe=(t,e)=>{if(t)for(let r of t)r(e)},jAe=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(s=>(a,n)=>{let c,f=s(a,p=>(c=n(p),c));if(f!==c&&!a.isStream&&c){let p=f,{then:h,catch:E,finally:C}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(c)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(c)),p.then=h,p.catch=E,p.finally=C}return f});let e=(s,a={},n)=>{var c,f;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?lnt:h);if(UAe.default.plainObject(s)){let E={...s,...a};cR.setNonEnumerableProperties([s,a],E),a=E,s=void 0}try{let E;try{HAe(t.options.hooks.init,a),HAe((c=a.hooks)===null||c===void 0?void 0:c.init,a)}catch(S){E=S}let C=lR(s,a,n??t.options);if(C[cR.kIsNormalizedAlready]=!0,E)throw new Fc.RequestError(E.message,E,C);return h(C)}catch(E){if(a.isStream)throw E;return int.default(E,t.options.hooks.beforeError,(f=a.hooks)===null||f===void 0?void 0:f.beforeError)}};e.extend=(...s)=>{let a=[t.options],n=[...t._rawHandlers],c;for(let f of s)cnt(f)?(a.push(f.defaults.options),n.push(...f.defaults._rawHandlers),c=f.defaults.mutableDefaults):(a.push(f),"handlers"in f&&n.push(...f.handlers),c=f.mutableDefaults);return n=n.filter(f=>f!==Nc.defaultHandler),n.length===0&&n.push(Nc.defaultHandler),jAe({options:_Ae(...a),handlers:n,mutableDefaults:!!c})};let r=async function*(s,a){let n=lR(s,a,t.options);n.resolveBodyOnly=!1;let c=n.pagination;if(!UAe.default.object(c))throw new TypeError("`options.pagination` must be implemented");let f=[],{countLimit:p}=c,h=0;for(;h{let n=[];for await(let c of r(s,a))n.push(c);return n},e.paginate.each=r,e.stream=(s,a)=>e(s,{...a,isStream:!0});for(let s of unt)e[s]=(a,n)=>e(a,{...n,method:s}),e.stream[s]=(a,n)=>e(a,{...n,method:s,isStream:!0});return Object.assign(e,ont),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:snt.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=_Ae,e};Nc.default=jAe;nnt(MAe(),Nc)});var WAe=_((Op,uR)=>{"use strict";var fnt=Op&&Op.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),GAe=Op&&Op.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&fnt(e,t,r)};Object.defineProperty(Op,"__esModule",{value:!0});var Ant=Ie("url"),qAe=rj(),pnt={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let s of e){let a=s.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Ant.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[qAe.defaultHandler],mutableDefaults:!1},nj=qAe.default(pnt);Op.default=nj;uR.exports=nj;uR.exports.default=nj;uR.exports.__esModule=!0;GAe(rj(),Op);GAe($H(),Op)});var ln={};Vt(ln,{Method:()=>ZAe,del:()=>ynt,get:()=>oj,getNetworkSettings:()=>zAe,post:()=>aj,put:()=>mnt,request:()=>iv});async function ij(t){return Yl(VAe,t,()=>ce.readFilePromise(t).then(e=>(VAe.set(t,e),e)))}function dnt({statusCode:t,statusMessage:e},r){let s=Ht(r,t,ht.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return KE(r,`${s}${e?` (${e})`:""}`,a)}async function fR(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(s){if(s.name!=="HTTPError")throw s;let a=r?.(s,e)??s.response.body?.error;a==null&&(s.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=s.message),s.code==="ETIMEDOUT"&&s.event==="socket"&&(a+=`(can be increased via ${Ht(e,"httpTimeout",ht.SETTING)})`);let n=new jt(35,a,c=>{s.response&&c.reportError(35,` ${Kf(e,{label:"Response Code",value:_u(ht.NO_HINT,dnt(s.response,e))})}`),s.request&&(c.reportError(35,` ${Kf(e,{label:"Request Method",value:_u(ht.NO_HINT,s.request.options.method)})}`),c.reportError(35,` ${Kf(e,{label:"Request URL",value:_u(ht.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&c.reportError(35,` ${Kf(e,{label:"Request Redirects",value:_u(ht.NO_HINT,z4(e,s.request.redirects,ht.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&c.reportError(35,` ${Kf(e,{label:"Request Retry Count",value:_u(ht.NO_HINT,`${Ht(e,s.request.retryCount,ht.NUMBER)} (can be increased via ${Ht(e,"httpRetry",ht.SETTING)})`)})}`)});throw n.originalError=s,n}}function zAe(t,e){let r=[...e.configuration.get("networkSettings")].sort(([c],[f])=>f.length-c.length),s={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(s),n=typeof t=="string"?new URL(t):t;for(let[c,f]of r)if(sj.default.isMatch(n.hostname,c))for(let p of a){let h=f.get(p);h!==null&&typeof s[p]>"u"&&(s[p]=h)}for(let c of a)typeof s[c]>"u"&&(s[c]=e.configuration.get(c));return s}async function iv(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c="GET",wrapNetworkRequest:f}){let p={target:t,body:e,configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c},h=async()=>await Ent(t,e,p),E=typeof f<"u"?await f(h,p):h;return await(await r.reduceHook(S=>S.wrapNetworkRequest,E,p))()}async function oj(t,{configuration:e,jsonResponse:r,customErrorMessage:s,wrapNetworkRequest:a,...n}){let c=()=>fR(iv(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:s}).then(p=>p.body),f=await(typeof a<"u"?c():Yl(YAe,t,()=>c().then(p=>(YAe.set(t,p),p))));return r?JSON.parse(f.toString()):f}async function mnt(t,e,{customErrorMessage:r,...s}){return(await fR(iv(t,e,{...s,method:"PUT"}),{customErrorMessage:r,configuration:s.configuration})).body}async function aj(t,e,{customErrorMessage:r,...s}){return(await fR(iv(t,e,{...s,method:"POST"}),{customErrorMessage:r,configuration:s.configuration})).body}async function ynt(t,{customErrorMessage:e,...r}){return(await fR(iv(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Ent(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c="GET"}){let f=typeof t=="string"?new URL(t):t,p=zAe(f,{configuration:r});if(p.enableNetwork===!1)throw new jt(80,`Request to '${f.href}' has been blocked because of your configuration settings`);if(f.protocol==="http:"&&!sj.default.isMatch(f.hostname,r.get("unsafeHttpWhitelist")))throw new jt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${f.hostname})`);let h={headers:s,method:c};h.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?h.body=e:h.json=e);let E=r.get("httpTimeout"),C=r.get("httpRetry"),S=r.get("enableStrictSsl"),b=p.httpsCaFilePath,I=p.httpsCertFilePath,T=p.httpsKeyFilePath,{default:N}=await Promise.resolve().then(()=>ut(WAe())),U=b?await ij(b):void 0,W=I?await ij(I):void 0,ee=T?await ij(T):void 0,ie={rejectUnauthorized:S,ca:U,cert:W,key:ee},ue={http:p.httpProxy?new Iue({proxy:p.httpProxy,proxyRequestOptions:ie}):hnt,https:p.httpsProxy?new Cue({proxy:p.httpsProxy,proxyRequestOptions:ie}):gnt},le=N.extend({timeout:{socket:E},retry:C,agent:ue,https:{rejectUnauthorized:S,certificateAuthority:U,certificate:W,key:ee},...h});return r.getLimit("networkConcurrency")(()=>le(f))}var JAe,KAe,sj,YAe,VAe,hnt,gnt,ZAe,AR=Ze(()=>{Dt();wue();JAe=Ie("https"),KAe=Ie("http"),sj=ut(Go());Rc();xc();bc();YAe=new Map,VAe=new Map,hnt=new KAe.Agent({keepAlive:!0}),gnt=new JAe.Agent({keepAlive:!0});ZAe=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(ZAe||{})});var fs={};Vt(fs,{availableParallelism:()=>cj,getArchitecture:()=>sv,getArchitectureName:()=>vnt,getArchitectureSet:()=>lj,getCaller:()=>bnt,major:()=>Int,openUrl:()=>Cnt});function Bnt(){if(process.platform!=="linux")return null;let t;try{t=ce.readFileSync(wnt)}catch{}if(typeof t<"u"){if(t&&(t.includes("GLIBC")||t.includes("GNU libc")||t.includes("GNU C Library")))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],s=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return p0(r,a=>{let n=a.match(s);if(!n)return p0.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function sv(){return $Ae=$Ae??{os:(process.env.YARN_IS_TEST_ENV?process.env.YARN_OS_OVERRIDE:void 0)??process.platform,cpu:(process.env.YARN_IS_TEST_ENV?process.env.YARN_CPU_OVERRIDE:void 0)??process.arch,libc:(process.env.YARN_IS_TEST_ENV?process.env.YARN_LIBC_OVERRIDE:void 0)??Bnt()}}function vnt(t=sv()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function lj(){let t=sv();return epe=epe??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Pnt(t){let e=Snt.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,s=e[2]&&e[2].indexOf("eval")===0,a=Dnt.exec(e[2]);return s&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function bnt(){let e=new Error().stack.split(` `)[3];return Pnt(e)}function cj(){return typeof pR.default.availableParallelism<"u"?pR.default.availableParallelism():Math.max(1,pR.default.cpus().length)}var pR,Int,XAe,Cnt,wnt,$Ae,epe,Snt,Dnt,hR=Ze(()=>{Dt();pR=ut(Ie("os"));gR();bc();Int=Number(process.versions.node.split(".")[0]),XAe=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Cnt=typeof XAe<"u"?async t=>{try{return await uj(XAe,[t],{cwd:J.cwd()}),!0}catch{return!1}}:void 0,wnt="/usr/bin/ldd";Snt=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Dnt=/\((\S*)(?::(\d+))(?::(\d+))\)/});function gj(t,e,r,s,a){let n=YB(r);if(s.isArray||s.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((c,f)=>fj(t,`${e}[${f}]`,c,s,a)):String(n).split(/,/).map(c=>fj(t,e,c,s,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return fj(t,e,r,s,a)}function fj(t,e,r,s,a){let n=YB(r);switch(s.type){case"ANY":return FQ(n);case"SHAPE":return Rnt(t,e,r,s,a);case"MAP":return Tnt(t,e,r,s,a)}if(n===null&&!s.isNullable&&s.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(s.values?.includes(n))return n;let f=(()=>{if(s.type==="BOOLEAN"&&typeof n!="string")return kB(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=Vk(n,{env:t.env});switch(s.type){case"ABSOLUTE_PATH":{let h=a,E=U8(r);return E&&E[0]!=="<"&&(h=J.dirname(E)),J.resolve(h,fe.toPortablePath(p))}case"LOCATOR_LOOSE":return Qp(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return Qp(p);case"BOOLEAN":return kB(p);default:return p}})();if(s.values&&!s.values.includes(f))throw new Error(`Invalid value, expected one of ${s.values.join(", ")}`);return f}function Rnt(t,e,r,s,a){let n=YB(r);if(typeof n!="object"||Array.isArray(n))throw new nt(`Object configuration settings "${e}" must be an object`);let c=dj(t,s,{ignoreArrays:!0});if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=`${e}.${f}`;if(!s.properties[f])throw new nt(`Unrecognized configuration settings found: ${e}.${f} - run "yarn config" to see the list of settings supported in Yarn`);c.set(f,gj(t,h,p,s.properties[f],a))}return c}function Tnt(t,e,r,s,a){let n=YB(r),c=new Map;if(typeof n!="object"||Array.isArray(n))throw new nt(`Map configuration settings "${e}" must be an object`);if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=s.normalizeKeys?s.normalizeKeys(f):f,E=`${e}['${h}']`,C=s.valueDefinition;c.set(h,gj(t,E,p,C,a))}return c}function dj(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let s=new Map;for(let[a,n]of Object.entries(e.properties))s.set(a,dj(t,n));return s}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(s=>J.normalize(s)):J.isAbsolute(e.default)?J.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(s=>J.resolve(t.projectCwd,s)):J.resolve(t.projectCwd,e.default);default:return e.default}}function mR(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return Qnt;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return fe.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let s=[];for(let a of t)s.push(mR(a,e,r));return s}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let c=mR(n,e.valueDefinition,r);typeof c<"u"&&s.set(a,c)}return s}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let c=e.properties[a],f=mR(n,c,r);typeof f<"u"&&s.set(a,f)}return s}return t}function Fnt(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(yR)&&(e=(0,rpe.default)(e.slice(yR.length)),t[e]=r);return t}function pj(){let t=`${yR}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return hj}async function tpe(t){try{return await ce.readFilePromise(t)}catch{return Buffer.of()}}async function Nnt(t,e){return Buffer.compare(...await Promise.all([tpe(t),tpe(e)]))===0}async function Ont(t,e){let[r,s]=await Promise.all([ce.statPromise(t),ce.statPromise(e)]);return r.dev===s.dev&&r.ino===s.ino}async function Mnt({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await Lnt(r,e)?null:r}var rpe,Lp,npe,ipe,spe,Aj,xnt,ov,knt,Mp,yR,hj,Qnt,wI,ope,ER,dR,Lnt,ze,av=Ze(()=>{Dt();wc();rpe=ut(Cre()),Lp=ut(Fd());Yt();npe=ut(hne()),ipe=Ie("module"),spe=ut(Ld()),Aj=Ie("stream");$ce();oI();Q8();R8();T8();fue();F8();tm();due();OQ();xc();I0();AR();bc();hR();Tp();Wo();xnt=function(){if(!Lp.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=fe.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=ce.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),ov=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),knt=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","osOverride","cpuOverride","libcOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),Mp=/^(?!v)[a-z0-9._-]+$/i,yR="yarn_",hj=".yarnrc.yml",Qnt="********",wI=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(wI||{}),ope=ht,ER=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(ER||{}),dR={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:H8()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:pj()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Zk,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:K4,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Lp.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Lp.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Lp.isCI,defaultText:""},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:cj()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values($k),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Lp.isPR&&xnt,defaultText:""},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},enableCacheClean:{description:"If false, disallows the `cache clean` command",type:"BOOLEAN",default:!0},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};Lnt=process.platform==="win32"?Nnt:Ont;ze=class t{constructor(e){this.isCI=Lp.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,s){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(dR);let n=typeof s<"u"?s:r instanceof Map?r:new Map;for(let[c,f]of n)a.activatePlugin(c,f);return a}static async find(e,r,{strict:s=!0,usePathCheck:a=null,useRc:n=!0}={}){let c=Fnt();delete c.rcFilename;let f=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(fI());h&&(p.find(me=>me.path===h.path)||p.unshift(h));let E=gue(p.map(le=>[le.path,le.data])),C=vt.dot,S=new Set(Object.keys(dR)),b=({yarnPath:le,ignorePath:me,injectEnvironmentFiles:pe})=>({yarnPath:le,ignorePath:me,injectEnvironmentFiles:pe}),I=({yarnPath:le,ignorePath:me,injectEnvironmentFiles:pe,...Be})=>{let Ce={};for(let[g,we]of Object.entries(Be))S.has(g)&&(Ce[g]=we);return Ce},T=({yarnPath:le,ignorePath:me,...pe})=>{let Be={};for(let[Ce,g]of Object.entries(pe))S.has(Ce)||(Be[Ce]=g);return Be};if(f.importSettings(b(dR)),f.useWithSource("",b(c),e,{strict:!1}),E){let[le,me]=E;f.useWithSource(le,b(me),C,{strict:!1})}if(a){if(await Mnt({configuration:f,selfPath:a})!==null)return f;f.useWithSource("",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let N=await t.findProjectCwd(e);f.startingCwd=e,f.projectCwd=N;let U=Object.assign(Object.create(null),process.env);f.env=U;let W=await Promise.all(f.get("injectEnvironmentFiles").map(async le=>{let me=le.endsWith("?")?await ce.readFilePromise(le.slice(0,-1),"utf8").catch(()=>""):await ce.readFilePromise(le,"utf8");return(0,npe.parse)(me)}));for(let le of W)for(let[me,pe]of Object.entries(le))f.env[me]=Vk(pe,{env:U});if(f.importSettings(I(dR)),f.useWithSource("",I(c),e,{strict:s}),E){let[le,me]=E;f.useWithSource(le,I(me),C,{strict:s})}let ee=le=>"default"in le?le.default:le,ie=new Map([["@@core",Xce]]);if(r!==null)for(let le of r.plugins.keys())ie.set(le,ee(r.modules.get(le)));for(let[le,me]of ie)f.activatePlugin(le,me);let ue=new Map([]);if(r!==null){let le=new Map;for(let[Be,Ce]of r.modules)le.set(Be,()=>Ce);let me=new Set,pe=async(Be,Ce)=>{let{factory:g,name:we}=bp(Be);if(!g||me.has(we))return;let ye=new Map(le),Ae=X=>{if((0,ipe.isBuiltin)(X))return bp(X);if(ye.has(X))return ye.get(X)();throw new nt(`This plugin cannot access the package referenced via ${X} which is neither a builtin, nor an exposed entry`)},se=await qE(async()=>ee(await g(Ae)),X=>`${X} (when initializing ${we}, defined in ${Ce})`);le.set(we,()=>se),me.add(we),ue.set(we,se)};if(c.plugins)for(let Be of c.plugins.split(";")){let Ce=J.resolve(e,fe.toPortablePath(Be));await pe(Ce,"")}for(let{path:Be,cwd:Ce,data:g}of p)if(n&&Array.isArray(g.plugins))for(let we of g.plugins){let ye=typeof we!="string"?we.path:we,Ae=we?.spec??"",se=we?.checksum??"";if(ov.has(Ae))continue;let X=J.resolve(Ce,fe.toPortablePath(ye));if(!await ce.existsPromise(X)){if(!Ae){let mt=Ht(f,J.basename(X,".cjs"),ht.NAME),j=Ht(f,".gitignore",ht.NAME),rt=Ht(f,f.values.get("rcFilename"),ht.NAME),Fe=Ht(f,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",ht.URL);throw new nt(`Missing source for the ${mt} plugin - please try to remove the plugin from ${rt} then reinstall it manually. This error usually occurs because ${j} is incorrect, check ${Fe} to make sure your plugin folder isn't gitignored.`)}if(!Ae.match(/^https?:/)){let mt=Ht(f,J.basename(X,".cjs"),ht.NAME),j=Ht(f,f.values.get("rcFilename"),ht.NAME);throw new nt(`Failed to recognize the source for the ${mt} plugin - please try to delete the plugin from ${j} then reinstall it manually.`)}let De=await oj(Ae,{configuration:f}),Te=cs(De);if(se&&se!==Te){let mt=Ht(f,J.basename(X,".cjs"),ht.NAME),j=Ht(f,f.values.get("rcFilename"),ht.NAME),rt=Ht(f,`yarn plugin import ${Ae}`,ht.CODE);throw new nt(`Failed to fetch the ${mt} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${j} then run ${rt} to reimport it.`)}await ce.mkdirPromise(J.dirname(X),{recursive:!0}),await ce.writeFilePromise(X,De)}await pe(X,Be)}}for(let[le,me]of ue)f.activatePlugin(le,me);if(f.useWithSource("",T(c),e,{strict:s}),E){let[le,me]=E;f.useWithSource(le,T(me),C,{strict:s})}return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),f}static async findRcFiles(e){let r=pj(),s=[],a=e,n=null;for(;a!==n;){n=a;let c=J.join(n,r);if(ce.existsSync(c)){let f,p;try{p=await ce.readFilePromise(c,"utf8"),f=as(p)}catch{let h="";throw p?.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(h=" (in particular, make sure you list the colons after each key name)"),new nt(`Parse error when loading ${c}; please check it's proper Yaml${h}`)}s.unshift({path:c,cwd:n,data:f})}a=J.dirname(n)}return s}static async findFolderRcFile(e){let r=J.join(e,Er.rc),s;try{s=await ce.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=as(s);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,s=e,a=null;for(;s!==a;){if(a=s,ce.existsSync(J.join(a,Er.lockfile)))return a;ce.existsSync(J.join(a,Er.manifest))&&(r=a),s=J.dirname(a)}return r}static async updateConfiguration(e,r,s={}){let a=pj(),n=J.join(e,a),c=ce.existsSync(n)?as(await ce.readFilePromise(n,"utf8")):{},f=!1,p;if(typeof r=="function"){try{p=r(c)}catch{p=r({})}if(p===c)return!1}else{p=c;for(let h of Object.keys(r)){let E=c[h],C=r[h],S;if(typeof C=="function")try{S=C(E)}catch{S=C(void 0)}else S=C;E!==S&&(S===t.deleteProperty?delete p[h]:p[h]=S,f=!0)}if(!f)return!1}return await ce.changeFilePromise(n,nl(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,s=>{let a=s.plugins??[];if(a.length===0)return{...s,plugins:r};let n=[],c=[...r];for(let f of a){let p=typeof f!="string"?f.path:f,h=c.find(E=>E.path===p);h?(n.push(h),c=c.filter(E=>E!==h)):n.push(f)}return n.push(...c),{...s,plugins:n}})}static async updateHomeConfiguration(e){let r=fI();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,s]of Object.entries(e))if(s!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,s),this.values.set(r,dj(this,s))}}useWithSource(e,r,s,a){try{this.use(e,r,s,a)}catch(n){throw n.message+=` (in ${Ht(this,e,ht.PATH)})`,n}}use(e,r,s,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let c of["enableStrictSettings",...Object.keys(r)]){let f=r[c],p=U8(f);if(p&&(e=p),typeof f>"u"||c==="plugins"||e===""&&knt.has(c))continue;if(c==="rcFilename")throw new nt(`The rcFilename settings can only be set via ${`${yR}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(c);if(!h){let C=fI(),S=e[0]!=="<"?J.dirname(e):null;if(a&&!(S!==null?C===S:!1))throw new nt(`Unrecognized or legacy configuration settings found: ${c} - run "yarn config" to see the list of settings supported in Yarn`);this.invalid.set(c,e);continue}if(this.sources.has(c)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=gj(this,c,f,h,s)}catch(C){throw C.message+=` in ${Ht(this,e,ht.PATH)}`,C}if(c==="enableStrictSettings"&&e!==""){a=E;continue}if(h.type==="MAP"){let C=this.values.get(c);this.values.set(c,new Map(n?[...C,...E]:[...E,...C])),this.sources.set(c,`${this.sources.get(c)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let C=this.values.get(c);this.values.set(c,n?[...C,...E]:[...E,...C]),this.sources.set(c,`${this.sources.get(c)}, ${e}`)}else this.values.set(c,E),this.sources.set(c,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:s=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new nt(`Couldn't find a configuration settings named "${e}"`);return mR(a,n,{hideSecrets:r,getNativePaths:s})}getSubprocessStreams(e,{header:r,prefix:s,report:a}){let n,c,f=ce.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${s} ${Ht(this,"STDOUT","green")}`),h=a.createStreamReporter(`${s} ${Ht(this,"STDERR","red")}`);n=new Aj.PassThrough,n.pipe(p),n.pipe(f),c=new Aj.PassThrough,c.pipe(h),c.pipe(f)}else n=f,c=f,typeof r<"u"&&n.write(`${r} `);return{stdout:n,stderr:c}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let s of r.resolvers||[])e.push(new s);return new rm([new TQ,new Ei,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let s of r.fetchers||[])e.push(new s);return new aI([new lI,new cI,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let s of r.linkers||[])e.push(new s);return e}getSupportedArchitectures(){let e=sv(),r=this.get("supportedArchitectures"),s=r.get("os");s!==null&&(s=s.map(c=>c==="current"?e.os:c));let a=r.get("cpu");a!==null&&(a=a.map(c=>c==="current"?e.cpu:c));let n=r.get("libc");return n!==null&&(n=Wl(n,c=>c==="current"?e.libc??Wl.skip:c)),{os:s,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(s,a,{userProvided:n=!1}={})=>{if(!cl(s.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let c=new Ut;c.load(a,{yamlCompatibilityMode:!0});let f=xB(e,s.identHash),p=[];f.push([s.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:s};for(let E of c.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of c.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,C]of c.peerDependenciesMeta)for(let[S,b]of Object.entries(C))p.push({...h,type:"PeerDependencyMeta",selector:E,key:S,value:b})};await this.triggerHook(s=>s.registerPackageExtensions,this,r);for(let[s,a]of this.get("packageExtensions"))r(C0(s,!0),Yk(a),{userProvided:!0});return e}normalizeLocator(e){return cl(e.reference)?Ws(e,`${this.get("defaultProtocol")}${e.reference}`):Mp.test(e.reference)?Ws(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return cl(e.range)?On(e,`${this.get("defaultProtocol")}${e.range}`):Mp.test(e.range)?On(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,s])=>[r,this.normalizeDependency(s)]))}normalizePackage(e,{packageExtensions:r}){let s=LB(e),a=r.get(e.identHash);if(typeof a<"u"){let c=e.version;if(c!==null){for(let[f,p]of a)if(Xf(c,f))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof s.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",s.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof s.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",s.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=s.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",Yl(s.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:H4(h)}}}let n=c=>c.scope?`${c.scope}__${c.name}`:`${c.name}`;for(let c of s.peerDependenciesMeta.keys()){let f=Sa(c);s.peerDependencies.has(f.identHash)||s.peerDependencies.set(f.identHash,On(f,"*"))}for(let c of s.peerDependencies.values()){if(c.scope==="types")continue;let f=n(c),p=Da("types",f),h=un(p);s.peerDependencies.has(p.identHash)||s.peerDependenciesMeta.has(h)||s.dependencies.has(p.identHash)||(s.peerDependencies.set(p.identHash,On(p,"*")),s.peerDependenciesMeta.set(h,{optional:!0}))}return s.dependencies=new Map(qs(s.dependencies,([,c])=>al(c))),s.peerDependencies=new Map(qs(s.peerDependencies,([,c])=>al(c))),s}getLimit(e){return Yl(this.limits,e,()=>(0,spe.default)(this.get(e)))}async triggerHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let s of r)await this.triggerHook(e,...s)}async reduceHook(e,r,...s){let a=r;for(let n of this.plugins.values()){let c=n.hooks;if(!c)continue;let f=e(c);f&&(a=await f(a,...s))}return a}async firstHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);if(!n)continue;let c=await n(...r);if(typeof c<"u")return c}return null}}});var qr={};Vt(qr,{EndStrategy:()=>Ij,ExecError:()=>IR,PipeError:()=>lv,execvp:()=>uj,pipevp:()=>Wu});function om(t){return t!==null&&typeof t.fd=="number"}function mj(){}function yj(){for(let t of am)t.kill()}async function Wu(t,e,{cwd:r,env:s=process.env,strict:a=!1,stdin:n=null,stdout:c,stderr:f,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":om(n)&&(h[0]=n),om(c)&&(h[1]=c),om(f)&&(h[2]=f);let E=(0,Ej.default)(t,e,{cwd:fe.fromPortablePath(r),env:{...s,PWD:fe.fromPortablePath(r)},stdio:h});am.add(E),am.size===1&&(process.on("SIGINT",mj),process.on("SIGTERM",yj)),!om(n)&&n!==null&&n.pipe(E.stdin),om(c)||E.stdout.pipe(c,{end:!1}),om(f)||E.stderr.pipe(f,{end:!1});let C=()=>{for(let S of new Set([c,f]))om(S)||S.end()};return new Promise((S,b)=>{E.on("error",I=>{am.delete(E),am.size===0&&(process.off("SIGINT",mj),process.off("SIGTERM",yj)),(p===2||p===1)&&C(),b(I)}),E.on("close",(I,T)=>{am.delete(E),am.size===0&&(process.off("SIGINT",mj),process.off("SIGTERM",yj)),(p===2||p===1&&I!==0)&&C(),I===0||!a?S({code:Cj(I,T)}):b(new lv({fileName:t,code:I,signal:T}))})})}async function uj(t,e,{cwd:r,env:s=process.env,encoding:a="utf8",strict:n=!1}){let c=["ignore","pipe","pipe"],f=[],p=[],h=fe.fromPortablePath(r);typeof s.PWD<"u"&&(s={...s,PWD:h});let E=(0,Ej.default)(t,e,{cwd:h,env:s,stdio:c});return E.stdout.on("data",C=>{f.push(C)}),E.stderr.on("data",C=>{p.push(C)}),await new Promise((C,S)=>{E.on("error",b=>{let I=ze.create(r),T=Ht(I,t,ht.PATH);S(new jt(1,`Process ${T} failed to spawn`,N=>{N.reportError(1,` ${Kf(I,{label:"Thrown Error",value:_u(ht.NO_HINT,b.message)})}`)}))}),E.on("close",(b,I)=>{let T=a==="buffer"?Buffer.concat(f):Buffer.concat(f).toString(a),N=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);b===0||!n?C({code:Cj(b,I),stdout:T,stderr:N}):S(new IR({fileName:t,code:b,signal:I,stdout:T,stderr:N}))})})}function Cj(t,e){let r=Unt.get(e);return typeof r<"u"?128+r:t??1}function _nt(t,e,{configuration:r,report:s}){s.reportError(1,` ${Kf(r,t!==null?{label:"Exit Code",value:_u(ht.NUMBER,t)}:{label:"Exit Signal",value:_u(ht.CODE,e)})}`)}var Ej,Ij,lv,IR,am,Unt,gR=Ze(()=>{Dt();Ej=ut(UU());av();Rc();xc();Ij=(s=>(s[s.Never=0]="Never",s[s.ErrorCode=1]="ErrorCode",s[s.Always=2]="Always",s))(Ij||{}),lv=class extends jt{constructor({fileName:e,code:r,signal:s}){let a=ze.create(J.cwd()),n=Ht(a,e,ht.PATH);super(1,`Child ${n} reported an error`,c=>{_nt(r,s,{configuration:a,report:c})}),this.code=Cj(r,s)}},IR=class extends lv{constructor({fileName:e,code:r,signal:s,stdout:a,stderr:n}){super({fileName:e,code:r,signal:s}),this.stdout=a,this.stderr=n}};am=new Set;Unt=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function lpe(t){ape=t}function cv(){return typeof wj>"u"&&(wj=ape()),wj}var wj,ape,Bj=Ze(()=>{ape=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var cpe=_((CR,Sj)=>{var Hnt=Object.assign({},Ie("fs")),vj=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},s,a;r.ready=new Promise(function(Ke,st){s=Ke,a=st});var n={},c;for(c in r)r.hasOwnProperty(c)&&(n[c]=r[c]);var f=[],p="./this.program",h=function(Ke,st){throw st},E=!1,C=!0,S="";function b(Ke){return r.locateFile?r.locateFile(Ke,S):S+Ke}var I,T,N,U;C&&(E?S=Ie("path").dirname(S)+"/":S=__dirname+"/",I=function(st,St){var lr=Me(st);return lr?St?lr:lr.toString():(N||(N=Hnt),U||(U=Ie("path")),st=U.normalize(st),N.readFileSync(st,St?null:"utf8"))},T=function(st){var St=I(st,!0);return St.buffer||(St=new Uint8Array(St)),we(St.buffer),St},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),f=process.argv.slice(2),h=function(Ke){process.exit(Ke)},r.inspect=function(){return"[Emscripten Module object]"});var W=r.print||console.log.bind(console),ee=r.printErr||console.warn.bind(console);for(c in n)n.hasOwnProperty(c)&&(r[c]=n[c]);n=null,r.arguments&&(f=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ie=0,ue=function(Ke){ie=Ke},le;r.wasmBinary&&(le=r.wasmBinary);var me=r.noExitRuntime||!0;typeof WebAssembly!="object"&&ts("no native wasm support detected");function pe(Ke,st,St){switch(st=st||"i8",st.charAt(st.length-1)==="*"&&(st="i32"),st){case"i1":return Ve[Ke>>0];case"i8":return Ve[Ke>>0];case"i16":return mh((Ke>>1)*2);case"i32":return to((Ke>>2)*4);case"i64":return to((Ke>>2)*4);case"float":return Af((Ke>>2)*4);case"double":return dh((Ke>>3)*8);default:ts("invalid type for getValue: "+st)}return null}var Be,Ce=!1,g;function we(Ke,st){Ke||ts("Assertion failed: "+st)}function ye(Ke){var st=r["_"+Ke];return we(st,"Cannot call unknown function "+Ke+", make sure it is exported"),st}function Ae(Ke,st,St,lr,te){var Ee={string:function(Gi){var Rn=0;if(Gi!=null&&Gi!==0){var Ga=(Gi.length<<2)+1;Rn=wi(Ga),mt(Gi,Rn,Ga)}return Rn},array:function(Gi){var Rn=wi(Gi.length);return Fe(Gi,Rn),Rn}};function Oe(Gi){return st==="string"?De(Gi):st==="boolean"?!!Gi:Gi}var dt=ye(Ke),Et=[],Pt=0;if(lr)for(var tr=0;tr=St)&&ke[lr];)++lr;return X.decode(ke.subarray(Ke,lr))}function Te(Ke,st,St,lr){if(!(lr>0))return 0;for(var te=St,Ee=St+lr-1,Oe=0;Oe=55296&&dt<=57343){var Et=Ke.charCodeAt(++Oe);dt=65536+((dt&1023)<<10)|Et&1023}if(dt<=127){if(St>=Ee)break;st[St++]=dt}else if(dt<=2047){if(St+1>=Ee)break;st[St++]=192|dt>>6,st[St++]=128|dt&63}else if(dt<=65535){if(St+2>=Ee)break;st[St++]=224|dt>>12,st[St++]=128|dt>>6&63,st[St++]=128|dt&63}else{if(St+3>=Ee)break;st[St++]=240|dt>>18,st[St++]=128|dt>>12&63,st[St++]=128|dt>>6&63,st[St++]=128|dt&63}}return st[St]=0,St-te}function mt(Ke,st,St){return Te(Ke,ke,st,St)}function j(Ke){for(var st=0,St=0;St=55296&&lr<=57343&&(lr=65536+((lr&1023)<<10)|Ke.charCodeAt(++St)&1023),lr<=127?++st:lr<=2047?st+=2:lr<=65535?st+=3:st+=4}return st}function rt(Ke){var st=j(Ke)+1,St=La(st);return St&&Te(Ke,Ve,St,st),St}function Fe(Ke,st){Ve.set(Ke,st)}function Ne(Ke,st){return Ke%st>0&&(Ke+=st-Ke%st),Ke}var be,Ve,ke,it,Ue,x,w,P,y,F;function z(Ke){be=Ke,r.HEAP_DATA_VIEW=F=new DataView(Ke),r.HEAP8=Ve=new Int8Array(Ke),r.HEAP16=it=new Int16Array(Ke),r.HEAP32=x=new Int32Array(Ke),r.HEAPU8=ke=new Uint8Array(Ke),r.HEAPU16=Ue=new Uint16Array(Ke),r.HEAPU32=w=new Uint32Array(Ke),r.HEAPF32=P=new Float32Array(Ke),r.HEAPF64=y=new Float64Array(Ke)}var Z=r.INITIAL_MEMORY||16777216,$,oe=[],xe=[],Re=[],lt=!1;function Ct(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)bt(r.preRun.shift());Rs(oe)}function qt(){lt=!0,Rs(xe)}function ir(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)br(r.postRun.shift());Rs(Re)}function bt(Ke){oe.unshift(Ke)}function gn(Ke){xe.unshift(Ke)}function br(Ke){Re.unshift(Ke)}var Ir=0,Or=null,nn=null;function ai(Ke){Ir++,r.monitorRunDependencies&&r.monitorRunDependencies(Ir)}function Io(Ke){if(Ir--,r.monitorRunDependencies&&r.monitorRunDependencies(Ir),Ir==0&&(Or!==null&&(clearInterval(Or),Or=null),nn)){var st=nn;nn=null,st()}}r.preloadedImages={},r.preloadedAudios={};function ts(Ke){r.onAbort&&r.onAbort(Ke),Ke+="",ee(Ke),Ce=!0,g=1,Ke="abort("+Ke+"). Build with -s ASSERTIONS=1 for more info.";var st=new WebAssembly.RuntimeError(Ke);throw a(st),st}var $s="data:application/octet-stream;base64,";function Co(Ke){return Ke.startsWith($s)}var Hi="data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";Co(Hi)||(Hi=b(Hi));function eo(Ke){try{if(Ke==Hi&&le)return new Uint8Array(le);var st=Me(Ke);if(st)return st;if(T)return T(Ke);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(St){ts(St)}}function wo(Ke,st){var St,lr,te;try{te=eo(Ke),lr=new WebAssembly.Module(te),St=new WebAssembly.Instance(lr,st)}catch(Oe){var Ee=Oe.toString();throw ee("failed to compile wasm module: "+Ee),(Ee.includes("imported Memory")||Ee.includes("memory import"))&&ee("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Oe}return[St,lr]}function QA(){var Ke={a:cu};function st(te,Ee){var Oe=te.exports;r.asm=Oe,Be=r.asm.g,z(Be.buffer),$=r.asm.W,gn(r.asm.h),Io("wasm-instantiate")}if(ai("wasm-instantiate"),r.instantiateWasm)try{var St=r.instantiateWasm(Ke,st);return St}catch(te){return ee("Module.instantiateWasm callback failed with error: "+te),!1}var lr=wo(Hi,Ke);return st(lr[0]),r.asm}function Af(Ke){return F.getFloat32(Ke,!0)}function dh(Ke){return F.getFloat64(Ke,!0)}function mh(Ke){return F.getInt16(Ke,!0)}function to(Ke){return F.getInt32(Ke,!0)}function jn(Ke,st){F.setInt32(Ke,st,!0)}function Rs(Ke){for(;Ke.length>0;){var st=Ke.shift();if(typeof st=="function"){st(r);continue}var St=st.func;typeof St=="number"?st.arg===void 0?$.get(St)():$.get(St)(st.arg):St(st.arg===void 0?null:st.arg)}}function ro(Ke,st){var St=new Date(to((Ke>>2)*4)*1e3);jn((st>>2)*4,St.getUTCSeconds()),jn((st+4>>2)*4,St.getUTCMinutes()),jn((st+8>>2)*4,St.getUTCHours()),jn((st+12>>2)*4,St.getUTCDate()),jn((st+16>>2)*4,St.getUTCMonth()),jn((st+20>>2)*4,St.getUTCFullYear()-1900),jn((st+24>>2)*4,St.getUTCDay()),jn((st+36>>2)*4,0),jn((st+32>>2)*4,0);var lr=Date.UTC(St.getUTCFullYear(),0,1,0,0,0,0),te=(St.getTime()-lr)/(1e3*60*60*24)|0;return jn((st+28>>2)*4,te),ro.GMTString||(ro.GMTString=rt("GMT")),jn((st+40>>2)*4,ro.GMTString),st}function ou(Ke,st){return ro(Ke,st)}function au(Ke,st,St){ke.copyWithin(Ke,st,st+St)}function lu(Ke){try{return Be.grow(Ke-be.byteLength+65535>>>16),z(Be.buffer),1}catch{}}function RA(Ke){var st=ke.length;Ke=Ke>>>0;var St=2147483648;if(Ke>St)return!1;for(var lr=1;lr<=4;lr*=2){var te=st*(1+.2/lr);te=Math.min(te,Ke+100663296);var Ee=Math.min(St,Ne(Math.max(Ke,te),65536)),Oe=lu(Ee);if(Oe)return!0}return!1}function TA(Ke){ue(Ke)}function oa(Ke){var st=Date.now()/1e3|0;return Ke&&jn((Ke>>2)*4,st),st}function aa(){if(aa.called)return;aa.called=!0;var Ke=new Date().getFullYear(),st=new Date(Ke,0,1),St=new Date(Ke,6,1),lr=st.getTimezoneOffset(),te=St.getTimezoneOffset(),Ee=Math.max(lr,te);jn((vl()>>2)*4,Ee*60),jn((Is()>>2)*4,+(lr!=te));function Oe(An){var li=An.toTimeString().match(/\(([A-Za-z ]+)\)$/);return li?li[1]:"GMT"}var dt=Oe(st),Et=Oe(St),Pt=rt(dt),tr=rt(Et);te>2)*4,Pt),jn((Mi()+4>>2)*4,tr)):(jn((Mi()>>2)*4,tr),jn((Mi()+4>>2)*4,Pt))}function FA(Ke){aa();var st=Date.UTC(to((Ke+20>>2)*4)+1900,to((Ke+16>>2)*4),to((Ke+12>>2)*4),to((Ke+8>>2)*4),to((Ke+4>>2)*4),to((Ke>>2)*4),0),St=new Date(st);jn((Ke+24>>2)*4,St.getUTCDay());var lr=Date.UTC(St.getUTCFullYear(),0,1,0,0,0,0),te=(St.getTime()-lr)/(1e3*60*60*24)|0;return jn((Ke+28>>2)*4,te),St.getTime()/1e3|0}var gr=typeof atob=="function"?atob:function(Ke){var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",St="",lr,te,Ee,Oe,dt,Et,Pt,tr=0;Ke=Ke.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Oe=st.indexOf(Ke.charAt(tr++)),dt=st.indexOf(Ke.charAt(tr++)),Et=st.indexOf(Ke.charAt(tr++)),Pt=st.indexOf(Ke.charAt(tr++)),lr=Oe<<2|dt>>4,te=(dt&15)<<4|Et>>2,Ee=(Et&3)<<6|Pt,St=St+String.fromCharCode(lr),Et!==64&&(St=St+String.fromCharCode(te)),Pt!==64&&(St=St+String.fromCharCode(Ee));while(tr0||(Ct(),Ir>0))return;function st(){Qn||(Qn=!0,r.calledRun=!0,!Ce&&(qt(),s(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),ir()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),st()},1)):st()}if(r.run=Ac,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Ac(),e}}();typeof CR=="object"&&typeof Sj=="object"?Sj.exports=vj:typeof define=="function"&&define.amd?define([],function(){return vj}):typeof CR=="object"&&(CR.createModule=vj)});var Up,upe,fpe,Ape=Ze(()=>{Up=["number","number"],upe=(X=>(X[X.ZIP_ER_OK=0]="ZIP_ER_OK",X[X.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",X[X.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",X[X.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",X[X.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",X[X.ZIP_ER_READ=5]="ZIP_ER_READ",X[X.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",X[X.ZIP_ER_CRC=7]="ZIP_ER_CRC",X[X.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",X[X.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",X[X.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",X[X.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",X[X.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",X[X.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",X[X.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",X[X.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",X[X.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",X[X.ZIP_ER_EOF=17]="ZIP_ER_EOF",X[X.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",X[X.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",X[X.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",X[X.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",X[X.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",X[X.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",X[X.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",X[X.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",X[X.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",X[X.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",X[X.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",X[X.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",X[X.ZIP_ER_TELL=30]="ZIP_ER_TELL",X[X.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",X))(upe||{}),fpe=t=>({get HEAPU8(){return t.HEAPU8},errors:upe,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Up,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Up,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Up,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Up,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Up,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Up,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Up,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Up,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Up,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function Dj(t,e){let r=t.indexOf(e);if(r<=0)return null;let s=r;for(;r>=0&&(s=r+e.length,t[s]!==J.sep);){if(t[r-1]===J.sep)return null;r=t.indexOf(e,s)}return t.length>s&&t[s]!==J.sep?null:t.slice(0,s)}var $f,ppe=Ze(()=>{Dt();Dt();eA();$f=class t extends e0{static async openPromise(e,r){let s=new t(r);try{return await e(s)}finally{s.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,s=e.readOnlyArchives,a=typeof r>"u"?f=>Dj(f,".zip"):f=>{for(let p of r){let h=Dj(f,p);if(h)return h}return null},n=(f,p)=>new As(p,{baseFs:f,readOnly:s,stats:f.statSync(p),customZipImplementation:e.customZipImplementation}),c=async(f,p)=>{let h={baseFs:f,readOnly:s,stats:await f.statPromise(p),customZipImplementation:e.customZipImplementation};return()=>new As(p,h)};super({...e,factorySync:n,factoryPromise:c,getMountPoint:a})}}});var Pj,BI,bj=Ze(()=>{Bj();Pj=class extends Error{constructor(e,r){super(e),this.name="Libzip Error",this.code=r}},BI=class{constructor(e){this.filesShouldBeCached=!0;let r="buffer"in e?e.buffer:e.baseFs.readFileSync(e.path);this.libzip=cv();let s=this.libzip.malloc(4);try{let c=0;e.readOnly&&(c|=this.libzip.ZIP_RDONLY);let f=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(f,c,s),this.lzSource=f}catch(p){throw this.libzip.source.free(f),p}if(this.zip===0){let p=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(p,this.libzip.getValue(s,"i32")),this.makeLibzipError(p)}}finally{this.libzip.free(s)}let a=this.libzip.getNumEntries(this.zip,0),n=new Array(a);for(let c=0;c>>0,n=this.libzip.struct.statMtime(r)>>>0,c=this.libzip.struct.statCrc(r)>>>0;return{size:a,mtime:n,crc:c}}makeLibzipError(e){let r=this.libzip.struct.errorCodeZip(e),s=this.libzip.error.strerror(e),a=new Pj(s,this.libzip.errors[r]);if(r===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${a.message}`);return a}setFileSource(e,r,s){let a=this.allocateSource(s);try{let n=this.libzip.file.add(this.zip,e,a,this.libzip.ZIP_FL_OVERWRITE);if(n===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(r!==null&&this.libzip.file.setCompression(this.zip,n,0,r[0],r[1])===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return n}catch(n){throw this.libzip.source.free(a),n}}setMtime(e,r){if(this.libzip.file.setMtime(this.zip,e,0,r,0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}getExternalAttributes(e){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let s=this.libzip.getValue(this.libzip.uint08S,"i8")>>>0,a=this.libzip.getValue(this.libzip.uint32S,"i32")>>>0;return[s,a]}setExternalAttributes(e,r,s){if(this.libzip.file.setExternalAttributes(this.zip,e,0,0,r,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}locate(e){return this.libzip.name.locate(this.zip,e,0)}getFileSource(e){let r=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(r),n=this.libzip.struct.statCompMethod(r),c=this.libzip.malloc(a);try{let f=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(f===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let p=this.libzip.fread(f,c,a,0);if(p===-1)throw this.makeLibzipError(this.libzip.file.getError(f));if(pa)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a);return{data:Buffer.from(h),compressionMethod:n}}finally{this.libzip.fclose(f)}}finally{this.libzip.free(c)}}deleteEntry(e){if(this.libzip.delete(this.zip,e)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}addDirectory(e){let r=this.libzip.dir.add(this.zip,e);if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return r}getBufferAndClose(){try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let e=this.libzip.source.tell(this.lzSource);if(e===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let r=this.libzip.malloc(e);if(!r)throw new Error("Couldn't allocate enough memory");try{let s=this.libzip.source.read(this.lzSource,r,e);if(s===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(se)throw new Error("Overread");let a=Buffer.from(this.libzip.HEAPU8.subarray(r,r+e));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(a=Buffer.concat([a,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),a}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource)}}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:s,byteLength:a}=this.allocateBuffer(e),n=this.libzip.source.fromUnattachedBuffer(s,a,0,1,r);if(n===0)throw this.libzip.free(r),this.makeLibzipError(r);return n}allocateSource(e){let{buffer:r,byteLength:s}=this.allocateBuffer(e),a=this.libzip.source.fromBuffer(this.zip,r,s,0,1);if(a===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return a}discard(){this.libzip.discard(this.zip)}}});function jnt(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(hpe.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function wR(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var xa,xj,hpe,kj,lm,Qj,Rj,gpe,As,BR=Ze(()=>{Dt();Dt();Dt();Dt();Dt();Dt();xa=Ie("fs"),xj=Ie("stream"),hpe=Ie("util"),kj=ut(Ie("zlib"));bj();lm=3,Qj=0,Rj=8,gpe="mixed";As=class extends Uf{constructor(r,s={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;s.readOnly&&(this.readOnly=!0);let a=s;this.level=typeof a.level<"u"?a.level:gpe;let n=s.customZipImplementation??BI;if(typeof r=="string"){let{baseFs:f=new Yn}=a;this.baseFs=f,this.path=r}else this.path=null,this.baseFs=null;if(s.stats)this.stats=s.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(f){if(f.code==="ENOENT"&&a.create)this.stats=$a.makeDefaultStats();else throw f}else this.stats=$a.makeDefaultStats();typeof r=="string"?s.create?this.zipImpl=new n({buffer:wR(),readOnly:this.readOnly}):this.zipImpl=new n({path:r,baseFs:this.baseFs,readOnly:this.readOnly,size:this.stats.size}):this.zipImpl=new n({buffer:r??wR(),readOnly:this.readOnly}),this.listings.set(vt.root,new Set);let c=this.zipImpl.getListings();for(let f=0;f{this.closeSync(f)}})}async readPromise(r,s,a,n,c){return this.readSync(r,s,a,n,c)}readSync(r,s,a=0,n=s.byteLength,c=-1){let f=this.fds.get(r);if(typeof f>"u")throw or.EBADF("read");let p=c===-1||c===null?f.cursor:c,h=this.readFileSync(f.p);h.copy(s,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(c===-1||c===null)&&(f.cursor+=E),E}async writePromise(r,s,a,n,c){return typeof s=="string"?this.writeSync(r,s,c):this.writeSync(r,s,a,n,c)}writeSync(r,s,a,n,c){throw typeof this.fds.get(r)>"u"?or.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw or.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:s}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new xj.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(f,p)=>{clearImmediate(c),this.closeSync(a),p(f)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),c=setImmediate(async()=>{try{let f=await this.readFilePromise(r,s);n.bytesRead=f.length,n.end(f)}catch(f){n.destroy(f)}});return n}createWriteStream(r,{encoding:s}={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),c=Object.assign(new xj.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(f,p)=>{try{f?p(f):(this.writeFileSync(r,Buffer.concat(a),s),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){c.destroy()},bytesWritten:0,path:r,pending:!1});return c.on("data",f=>{let p=Buffer.from(f);c.bytesWritten+=p.length,a.push(p)}),c}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let s=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(s)&&!this.listings.has(s))throw or.ENOENT(`lstat '${r}'`);return s}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw or.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=J.resolve(vt.root,r);return this.entries.has(a)||this.listings.has(a)}let s;try{s=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return s===void 0?!1:this.entries.has(s)||this.listings.has(s)}async accessPromise(r,s){return this.accessSync(r,s)}accessSync(r,s=xa.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`access '${r}'`);if(this.readOnly&&s&xa.constants.W_OK)throw or.EROFS(`access '${r}'`)}async statPromise(r,s={bigint:!1}){return s.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,s.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(s.throwIfNoEntry===!1)return;throw or.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw or.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,s)}}async fstatPromise(r,s){return this.fstatSync(r,s)}fstatSync(r,s){let a=this.fds.get(r);if(typeof a>"u")throw or.EBADF("fstatSync");let{p:n}=a,c=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(c)&&!this.listings.has(c))throw or.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(c))throw or.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,c,s)}async lstatPromise(r,s={bigint:!1}){return s.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,s.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(s.throwIfNoEntry===!1)return;throw or.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw or.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,s)}}statImpl(r,s,a={}){let n=this.entries.get(s);if(typeof n<"u"){let c=this.zipImpl.stat(n),f=c.crc,p=c.size,h=c.mtime*1e3,E=this.stats.uid,C=this.stats.gid,S=512,b=Math.ceil(c.size/S),I=h,T=h,N=h,U=new Date(I),W=new Date(T),ee=new Date(N),ie=new Date(h),ue=this.listings.has(s)?xa.constants.S_IFDIR:this.isSymbolicLink(n)?xa.constants.S_IFLNK:xa.constants.S_IFREG,le=ue===xa.constants.S_IFDIR?493:420,me=ue|this.getUnixMode(n,le)&511,pe=Object.assign(new $a.StatEntry,{uid:E,gid:C,size:p,blksize:S,blocks:b,atime:U,birthtime:W,ctime:ee,mtime:ie,atimeMs:I,birthtimeMs:T,ctimeMs:N,mtimeMs:h,mode:me,crc:f});return a.bigint===!0?$a.convertToBigIntStats(pe):pe}if(this.listings.has(s)){let c=this.stats.uid,f=this.stats.gid,p=0,h=512,E=0,C=this.stats.mtimeMs,S=this.stats.mtimeMs,b=this.stats.mtimeMs,I=this.stats.mtimeMs,T=new Date(C),N=new Date(S),U=new Date(b),W=new Date(I),ee=xa.constants.S_IFDIR|493,ue=Object.assign(new $a.StatEntry,{uid:c,gid:f,size:p,blksize:h,blocks:E,atime:T,birthtime:N,ctime:U,mtime:W,atimeMs:C,birthtimeMs:S,ctimeMs:b,mtimeMs:I,mode:ee,crc:0});return a.bigint===!0?$a.convertToBigIntStats(ue):ue}throw new Error("Unreachable")}getUnixMode(r,s){let[a,n]=this.zipImpl.getExternalAttributes(r);return a!==lm?s:n>>>16}registerListing(r){let s=this.listings.get(r);if(s)return s;this.registerListing(J.dirname(r)).add(J.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,s){this.registerListing(J.dirname(r)).add(J.basename(r)),this.entries.set(r,s)}unregisterListing(r){this.listings.delete(r),this.listings.get(J.dirname(r))?.delete(J.basename(r))}unregisterEntry(r){this.unregisterListing(r);let s=this.entries.get(r);this.entries.delete(r),!(typeof s>"u")&&(this.fileSources.delete(s),this.isSymbolicLink(s)&&this.symlinkCount--)}deleteEntry(r,s){this.unregisterEntry(r),this.zipImpl.deleteEntry(s)}resolveFilename(r,s,a=!0,n=!0){if(!this.ready)throw or.EBUSY(`archive closed, ${r}`);let c=J.resolve(vt.root,s);if(c==="/")return vt.root;let f=this.entries.get(c);if(a&&f!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(f)){let p=this.getFileSource(f).toString();return this.resolveFilename(r,J.resolve(J.dirname(c),p),!0,n)}else return c;for(;;){let p=this.resolveFilename(r,J.dirname(c),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw or.ENOENT(r)}if(!h)throw or.ENOTDIR(r);if(c=J.resolve(p,J.basename(c)),!a||this.symlinkCount===0)break;let C=this.zipImpl.locate(c.slice(1));if(C===-1)break;if(this.isSymbolicLink(C)){let S=this.getFileSource(C).toString();c=J.resolve(J.dirname(c),S)}else break}return c}setFileSource(r,s){let a=Buffer.isBuffer(s)?s:Buffer.from(s),n=J.relative(vt.root,r),c=null;this.level!=="mixed"&&(c=[this.level===0?Qj:Rj,this.level]);let f=this.zipImpl.setFileSource(n,c,a);return this.fileSources.set(f,a),f}isSymbolicLink(r){if(this.symlinkCount===0)return!1;let[s,a]=this.zipImpl.getExternalAttributes(r);return s!==lm?!1:(a>>>16&xa.constants.S_IFMT)===xa.constants.S_IFLNK}getFileSource(r,s={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let{data:n,compressionMethod:c}=this.zipImpl.getFileSource(r);if(c===Qj)return this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,n),n;if(c===Rj){if(s.asyncDecompress)return new Promise((f,p)=>{kj.default.inflateRaw(n,(h,E)=>{h?p(h):(this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,E),f(E))})});{let f=kj.default.inflateRawSync(n);return this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,f),f}}else throw new Error(`Unsupported compression method: ${c}`)}async fchmodPromise(r,s){return this.chmodPromise(this.fdToPath(r,"fchmod"),s)}fchmodSync(r,s){return this.chmodSync(this.fdToPath(r,"fchmodSync"),s)}async chmodPromise(r,s){return this.chmodSync(r,s)}chmodSync(r,s){if(this.readOnly)throw or.EROFS(`chmod '${r}'`);s&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let f=this.getUnixMode(n,xa.constants.S_IFREG|0)&-512|s;this.zipImpl.setExternalAttributes(n,lm,f<<16)}async fchownPromise(r,s,a){return this.chownPromise(this.fdToPath(r,"fchown"),s,a)}fchownSync(r,s,a){return this.chownSync(this.fdToPath(r,"fchownSync"),s,a)}async chownPromise(r,s,a){return this.chownSync(r,s,a)}chownSync(r,s,a){throw new Error("Unimplemented")}async renamePromise(r,s){return this.renameSync(r,s)}renameSync(r,s){throw new Error("Unimplemented")}async copyFilePromise(r,s,a){let{indexSource:n,indexDest:c,resolvedDestP:f}=this.prepareCopyFile(r,s,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(f,p);h!==c&&this.registerEntry(f,h)}copyFileSync(r,s,a=0){let{indexSource:n,indexDest:c,resolvedDestP:f}=this.prepareCopyFile(r,s,a),p=this.getFileSource(n),h=this.setFileSource(f,p);h!==c&&this.registerEntry(f,h)}prepareCopyFile(r,s,a=0){if(this.readOnly)throw or.EROFS(`copyfile '${r} -> '${s}'`);if(a&xa.constants.COPYFILE_FICLONE_FORCE)throw or.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${s}'`);let n=this.resolveFilename(`copyfile '${r} -> ${s}'`,r),c=this.entries.get(n);if(typeof c>"u")throw or.EINVAL(`copyfile '${r}' -> '${s}'`);let f=this.resolveFilename(`copyfile '${r}' -> ${s}'`,s),p=this.entries.get(f);if(a&(xa.constants.COPYFILE_EXCL|xa.constants.COPYFILE_FICLONE_FORCE)&&typeof p<"u")throw or.EEXIST(`copyfile '${r}' -> '${s}'`);return{indexSource:c,resolvedDestP:f,indexDest:p}}async appendFilePromise(r,s,a){if(this.readOnly)throw or.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,s,a)}appendFileSync(r,s,a={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,s,a)}fdToPath(r,s){let a=this.fds.get(r)?.p;if(typeof a>"u")throw or.EBADF(s);return a}async writeFilePromise(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.prepareWriteFile(r,a);f!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(s=Buffer.concat([await this.getFileSource(f,{asyncDecompress:!0}),Buffer.from(s)])),n!==null&&(s=s.toString(n));let h=this.setFileSource(p,s);h!==f&&this.registerEntry(p,h),c!==null&&await this.chmodPromise(p,c)}writeFileSync(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.prepareWriteFile(r,a);f!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(s=Buffer.concat([this.getFileSource(f),Buffer.from(s)])),n!==null&&(s=s.toString(n));let h=this.setFileSource(p,s);h!==f&&this.registerEntry(p,h),c!==null&&this.chmodSync(p,c)}prepareWriteFile(r,s){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw or.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw or.EISDIR(`open '${r}'`);let n=null,c=null;typeof s=="string"?n=s:typeof s=="object"&&({encoding:n=null,mode:c=null}=s);let f=this.entries.get(a);return{encoding:n,mode:c,resolvedP:a,index:f}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw or.EROFS(`unlink '${r}'`);let s=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(s))throw or.EISDIR(`unlink '${r}'`);let a=this.entries.get(s);if(typeof a>"u")throw or.EINVAL(`unlink '${r}'`);this.deleteEntry(s,a)}async utimesPromise(r,s,a){return this.utimesSync(r,s,a)}utimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,s,a){return this.lutimesSync(r,s,a)}lutimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,s){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");this.zipImpl.setMtime(a,jnt(s))}async mkdirPromise(r,s){return this.mkdirSync(r,s)}mkdirSync(r,{mode:s=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:s});if(this.readOnly)throw or.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw or.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,s)}async rmdirPromise(r,s){return this.rmdirSync(r,s)}rmdirSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rmdir '${r}'`);if(s){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw or.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw or.ENOTEMPTY(`rmdir '${r}'`);let c=this.entries.get(a);if(typeof c>"u")throw or.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,c)}async rmPromise(r,s){return this.rmSync(r,s)}rmSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rm '${r}'`);if(s){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw or.ENOTDIR(`rm '${r}'`);if(n.size>0)throw or.ENOTEMPTY(`rm '${r}'`);let c=this.entries.get(a);if(typeof c>"u")throw or.EINVAL(`rm '${r}'`);this.deleteEntry(r,c)}hydrateDirectory(r){let s=this.zipImpl.addDirectory(J.relative(vt.root,r));return this.registerListing(r),this.registerEntry(r,s),s}async linkPromise(r,s){return this.linkSync(r,s)}linkSync(r,s){throw or.EOPNOTSUPP(`link '${r}' -> '${s}'`)}async symlinkPromise(r,s){return this.symlinkSync(r,s)}symlinkSync(r,s){if(this.readOnly)throw or.EROFS(`symlink '${r}' -> '${s}'`);let a=this.resolveFilename(`symlink '${r}' -> '${s}'`,s);if(this.listings.has(a))throw or.EISDIR(`symlink '${r}' -> '${s}'`);if(this.entries.has(a))throw or.EEXIST(`symlink '${r}' -> '${s}'`);let n=this.setFileSource(a,r);this.registerEntry(a,n),this.zipImpl.setExternalAttributes(n,lm,(xa.constants.S_IFLNK|511)<<16),this.symlinkCount+=1}async readFilePromise(r,s){typeof s=="object"&&(s=s?s.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return s?a.toString(s):a}readFileSync(r,s){typeof s=="object"&&(s=s?s.encoding:void 0);let a=this.readFileBuffer(r);return s?a.toString(s):a}readFileBuffer(r,s={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw or.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw or.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,s)}async readdirPromise(r,s){return this.readdirSync(r,s)}readdirSync(r,s){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw or.ENOTDIR(`scandir '${r}'`);if(s?.recursive)if(s?.withFileTypes){let c=Array.from(n,f=>Object.assign(this.statImpl("lstat",J.join(r,f)),{name:f,path:vt.dot,parentPath:vt.dot}));for(let f of c){if(!f.isDirectory())continue;let p=J.join(f.path,f.name),h=this.listings.get(J.join(a,p));for(let E of h)c.push(Object.assign(this.statImpl("lstat",J.join(r,p,E)),{name:E,path:p,parentPath:p}))}return c}else{let c=[...n];for(let f of c){let p=this.listings.get(J.join(a,f));if(!(typeof p>"u"))for(let h of p)c.push(J.join(f,h))}return c}else return s?.withFileTypes?Array.from(n,c=>Object.assign(this.statImpl("lstat",J.join(r,c)),{name:c,path:void 0,parentPath:void 0})):[...n]}async readlinkPromise(r){let s=this.prepareReadlink(r);return(await this.getFileSource(s,{asyncDecompress:!0})).toString()}readlinkSync(r){let s=this.prepareReadlink(r);return this.getFileSource(s).toString()}prepareReadlink(r){let s=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(s)&&!this.listings.has(s))throw or.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(s))throw or.ENOTDIR(`open '${r}'`);if(this.listings.has(s))throw or.EINVAL(`readlink '${r}'`);let a=this.entries.get(s);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw or.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw or.EINVAL(`open '${r}'`);let c=await this.getFileSource(n,{asyncDecompress:!0}),f=Buffer.alloc(s,0);return c.copy(f),await this.writeFilePromise(r,f)}truncateSync(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw or.EINVAL(`open '${r}'`);let c=this.getFileSource(n),f=Buffer.alloc(s,0);return c.copy(f),this.writeFileSync(r,f)}async ftruncatePromise(r,s){return this.truncatePromise(this.fdToPath(r,"ftruncate"),s)}ftruncateSync(r,s){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),s)}watch(r,s,a){let n;switch(typeof s){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=s);break}if(!n)return{on:()=>{},close:()=>{}};let c=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(c)}}}watchFile(r,s,a){let n=J.resolve(vt.root,r);return sE(this,n,s,a)}unwatchFile(r,s){let a=J.resolve(vt.root,r);return md(this,a,s)}}});function mpe(t,e,r=Buffer.alloc(0),s){let a=new As(r),n=C=>C===e||C.startsWith(`${e}/`)?C.slice(0,e.length):null,c=async(C,S)=>()=>a,f=(C,S)=>a,p={...t},h=new Yn(p),E=new e0({baseFs:h,getMountPoint:n,factoryPromise:c,factorySync:f,magicByte:21,maxAge:1/0,typeCheck:s?.typeCheck});return U2(dpe.default,new t0(E)),a}var dpe,ype=Ze(()=>{Dt();dpe=ut(Ie("fs"));BR()});var Epe=Ze(()=>{ppe();BR();ype()});var Tj,uv,vR,Ipe=Ze(()=>{Dt();BR();Tj={CENTRAL_DIRECTORY:33639248,END_OF_CENTRAL_DIRECTORY:101010256},uv=22,vR=class t{constructor(e){this.filesShouldBeCached=!1;if("buffer"in e)throw new Error("Buffer based zip archives are not supported");if(!e.readOnly)throw new Error("Writable zip archives are not supported");this.baseFs=e.baseFs,this.fd=this.baseFs.openSync(e.path,"r");try{this.entries=t.readZipSync(this.fd,this.baseFs,e.size)}catch(r){throw this.baseFs.closeSync(this.fd),this.fd="closed",r}}static readZipSync(e,r,s){if(s=0;N--)if(n.readUInt32LE(N)===Tj.END_OF_CENTRAL_DIRECTORY){a=N;break}if(a===-1)throw new Error("Not a zip archive")}let c=n.readUInt16LE(a+10),f=n.readUInt32LE(a+12),p=n.readUInt32LE(a+16),h=n.readUInt16LE(a+20);if(a+h+uv>n.length)throw new Error("Zip archive inconsistent");if(c==65535||f==4294967295||p==4294967295)throw new Error("Zip 64 is not supported");if(f>s)throw new Error("Zip archive inconsistent");if(c>f/46)throw new Error("Zip archive inconsistent");let E=Buffer.alloc(f);if(r.readSync(e,E,0,E.length,p)!==E.length)throw new Error("Zip archive inconsistent");let C=[],S=0,b=0,I=0;for(;bE.length)throw new Error("Zip archive inconsistent");if(E.readUInt32LE(S)!==Tj.CENTRAL_DIRECTORY)throw new Error("Zip archive inconsistent");let N=E.readUInt16LE(S+4)>>>8;if(E.readUInt16LE(S+8)&1)throw new Error("Encrypted zip files are not supported");let W=E.readUInt16LE(S+10),ee=E.readUInt32LE(S+16),ie=E.readUInt16LE(S+28),ue=E.readUInt16LE(S+30),le=E.readUInt16LE(S+32),me=E.readUInt32LE(S+42),pe=E.toString("utf8",S+46,S+46+ie).replaceAll("\0"," ");if(pe.includes("\0"))throw new Error("Invalid ZIP file");let Be=E.readUInt32LE(S+20),Ce=E.readUInt32LE(S+38);C.push({name:pe,os:N,mtime:fi.SAFE_TIME,crc:ee,compressionMethod:W,isSymbolicLink:N===lm&&(Ce>>>16&fi.S_IFMT)===fi.S_IFLNK,size:E.readUInt32LE(S+24),compressedSize:Be,externalAttributes:Ce,localHeaderOffset:me}),I+=Be,b+=1,S+=46+ie+ue+le}if(I>s)throw new Error("Zip archive inconsistent");if(S!==E.length)throw new Error("Zip archive inconsistent");return C}getExternalAttributes(e){let r=this.entries[e];return[r.os,r.externalAttributes]}getListings(){return this.entries.map(e=>e.name)}getSymlinkCount(){let e=0;for(let r of this.entries)r.isSymbolicLink&&(e+=1);return e}stat(e){let r=this.entries[e];return{crc:r.crc,mtime:r.mtime,size:r.size}}locate(e){for(let r=0;rgpe,DEFLATE:()=>Rj,JsZipImpl:()=>vR,LibZipImpl:()=>BI,STORE:()=>Qj,ZIP_UNIX:()=>lm,ZipFS:()=>As,ZipOpenFS:()=>$f,getArchivePart:()=>Dj,getLibzipPromise:()=>qnt,getLibzipSync:()=>Gnt,makeEmptyArchive:()=>wR,mountMemoryDrive:()=>mpe});function Gnt(){return cv()}async function qnt(){return cv()}var Cpe,eA=Ze(()=>{Bj();Cpe=ut(cpe());Ape();Epe();Ipe();bj();lpe(()=>{let t=(0,Cpe.default)();return fpe(t)})});var Av,wpe=Ze(()=>{Dt();Yt();pv();Av=class extends ot{constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.usage={description:"run a command using yarn's portable shell",details:` This command will run a command using Yarn's portable shell. Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await vI(r,[],{cwd:fe.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var Vl,Bpe=Ze(()=>{Vl=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var PR={};Vt(PR,{fastGlobOptions:()=>Dpe,isBraceExpansion:()=>Fj,isGlobPattern:()=>Wnt,match:()=>Ynt,micromatchOptions:()=>DR});function Wnt(t){if(!SR.default.scan(t,DR).isGlob)return!1;try{SR.default.parse(t,DR)}catch{return!1}return!0}function Ynt(t,{cwd:e,baseFs:r}){return(0,vpe.default)(t,{...Dpe,cwd:fe.fromPortablePath(e),fs:ax(Spe.default,new t0(r))})}function Fj(t){return SR.default.scan(t,DR).isBrace}var vpe,Spe,SR,DR,Dpe,Ppe=Ze(()=>{Dt();vpe=ut(wQ()),Spe=ut(Ie("fs")),SR=ut(Go()),DR={strictBrackets:!0},Dpe={onlyDirectories:!1,onlyFiles:!1}});function Nj(){}function Oj(){for(let t of cm)t.kill()}function Qpe(t,e,r,s){return a=>{let n=a[0]instanceof tA.Transform?"pipe":a[0],c=a[1]instanceof tA.Transform?"pipe":a[1],f=a[2]instanceof tA.Transform?"pipe":a[2],p=(0,xpe.default)(t,e,{...s,stdio:[n,c,f]});return cm.add(p),cm.size===1&&(process.on("SIGINT",Nj),process.on("SIGTERM",Oj)),a[0]instanceof tA.Transform&&a[0].pipe(p.stdin),a[1]instanceof tA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof tA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(cm.delete(p),cm.size===0&&(process.off("SIGINT",Nj),process.off("SIGTERM",Oj)),E.code){case"ENOENT":a[2].write(`command not found: ${t} `),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} `),h(128);break;default:a[2].write(`uncaught error: ${E.message} `),h(1);break}}),p.on("close",E=>{cm.delete(p),cm.size===0&&(process.off("SIGINT",Nj),process.off("SIGTERM",Oj)),h(E!==null?E:129)})})}}}function Rpe(t){return e=>{let r=e[0]==="pipe"?new tA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function bR(t,e){return Mj.start(t,e)}function bpe(t,e=null){let r=new tA.PassThrough,s=new kpe.StringDecoder,a="";return r.on("data",n=>{let c=s.write(n),f;do if(f=c.indexOf(` `),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a="",t(e!==null?`${e} ${p}`:p)}while(f!==-1);a+=c}),r.on("end",()=>{let n=s.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function Tpe(t,{prefix:e}){return{stdout:bpe(r=>t.stdout.write(`${r} `),t.stdout.isTTY?e:null),stderr:bpe(r=>t.stderr.write(`${r} `),t.stderr.isTTY?e:null)}}var xpe,tA,kpe,cm,Oc,Lj,Mj,Uj=Ze(()=>{xpe=ut(UU()),tA=Ie("stream"),kpe=Ie("string_decoder"),cm=new Set;Oc=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},Lj=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Mj=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:s,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=s,n.stderr=a,n}pipeTo(e,r=1){let s=new t(this,e),a=new Lj;return s.pipe=a,s.stdout=this.stdout,s.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),s}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let s;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");s=this.stderr,e[2]=s.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),s.close(),n))}async run(){let e=[];for(let s=this;s;s=s.ancestor)e.push(s.exec());return(await Promise.all(e))[0]}}});var mv={};Vt(mv,{EntryCommand:()=>Av,ShellError:()=>Vl,execute:()=>vI,globUtils:()=>PR});function Fpe(t,e,r){let s=new Jl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(s,{end:!1}),(e&2)===2&&r.stdin instanceof Jl.Writable&&s.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stderr,{end:!1});break;default:throw new Vl(`Bad file descriptor: "${t}"`)}return s}function kR(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Jnt(t,e,r){let s=[],a=new Jl.PassThrough;return a.on("data",n=>s.push(n)),await QR(t,e,kR(r,{stdout:a})),Buffer.concat(s).toString().replace(/[\r\n]+$/,"")}async function Npe(t,e,r){let s=t.map(async n=>{let c=await um(n.args,e,r);return{name:n.name,value:c.join(" ")}});return(await Promise.all(s)).reduce((n,c)=>(n[c.name]=c.value,n),{})}function xR(t){return t.match(/[^ \r\n\t]+/g)||[]}async function Hpe(t,e,r,s,a=s){switch(t.name){case"$":s(String(process.pid));break;case"#":s(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let c=xR(n);for(let f=0;f=0&&n"u"&&(t.defaultValue?c=(await um(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(c="")),typeof c>"u")throw f?new Vl(`Unbound argument #${n}`):new Vl(`Unbound variable "${t.name}"`);if(t.quoted)s(c);else{let p=xR(c);for(let E=0;Es.push(n));let a=Number(s.join(" "));return Number.isNaN(a)?hv({type:"variable",name:s.join(" ")},e,r):hv({type:"number",value:a},e,r)}else return Knt[t.type](await hv(t.left,e,r),await hv(t.right,e,r))}async function um(t,e,r){let s=new Map,a=[],n=[],c=E=>{n.push(E)},f=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{c(E),f()},h=(E,C,S)=>{let b=JSON.stringify({type:E,fd:C}),I=s.get(b);typeof I>"u"&&s.set(b,I=[]),I.push(S)};for(let E of t){let C=!1;switch(E.type){case"redirection":{let S=await um(E.args,e,r);for(let b of S)h(E.subtype,E.fd,b)}break;case"argument":for(let S of E.segments)switch(S.type){case"text":c(S.text);break;case"glob":c(S.pattern),C=!0;break;case"shell":{let b=await Jnt(S.shell,e,r);if(S.quoted)c(b);else{let I=xR(b);for(let T=0;T"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let b=await e.glob.match(S,{cwd:r.cwd,baseFs:e.baseFs});if(b.length===0){let I=Fj(S)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new Vl(`No matches found: "${S}"${I}`)}for(let I of b.sort())p(I)}}if(s.size>0){let E=[];for(let[C,S]of s.entries())E.splice(E.length,0,C,String(S.length),...S);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function gv(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let s=fe.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:s});let[n,...c]=t;if(n==="command")return Qpe(c[0],c.slice(1),e,{cwd:s,env:a});let f=e.builtins.get(n);if(typeof f>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return Rpe(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:C,stdout:S,stderr:b}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await f(c,e,r)}finally{r.stdin=C,r.stdout=S,r.stderr=b}})}function znt(t,e,r){return s=>{let a=new Jl.PassThrough,n=QR(t,e,kR(r,{stdin:a}));return{stdin:a,promise:n}}}function Znt(t,e,r){return s=>{let a=new Jl.PassThrough,n=QR(t,e,r);return{stdin:a,promise:n}}}function Ope(t,e,r,s){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(s.procedures,a));return s.procedures={...s.procedures},s.procedures[a]=t,gv([...e,"__ysh_run_procedure",a],r,s)}}async function Lpe(t,e,r){let s=t,a=null,n=null;for(;s;){let c=s.then?{...r}:r,f;switch(s.type){case"command":{let p=await um(s.args,e,r),h=await Npe(s.envs,e,r);f=s.envs.length?gv(p,e,kR(c,{environment:h})):gv(p,e,c)}break;case"subshell":{let p=await um(s.args,e,r),h=znt(s.subshell,e,c);f=Ope(h,p,e,c)}break;case"group":{let p=await um(s.args,e,r),h=Znt(s.group,e,c);f=Ope(h,p,e,c)}break;case"envs":{let p=await Npe(s.envs,e,r);c.environment={...c.environment,...p},f=gv(["true"],e,c)}break}if(typeof f>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=bR(f,{stdin:new Oc(c.stdin),stdout:new Oc(c.stdout),stderr:new Oc(c.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(f,1);break;case"|&":n=n.pipeTo(f,3);break}}s.then?(a=s.then.type,s=s.then.chain):s=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function Xnt(t,e,r,{background:s=!1}={}){function a(n){let c=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],f=c[n%c.length];return Mpe.default.hex(f)}if(s){let n=r.nextBackgroundJobIndex++,c=a(n),f=`[${n}]`,p=c(f),{stdout:h,stderr:E}=Tpe(r,{prefix:p});return r.backgroundJobs.push(Lpe(t,e,kR(r,{stdout:h,stderr:E})).catch(C=>E.write(`${C.message} `)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${c(AE(t))}' has ended `)})),0}return await Lpe(t,e,r)}async function $nt(t,e,r,{background:s=!1}={}){let a,n=f=>{a=f,r.variables["?"]=String(f)},c=async f=>{try{return await Xnt(f.chain,e,r,{background:s&&typeof f.then>"u"})}catch(p){if(!(p instanceof Vl))throw p;return r.stderr.write(`${p.message} `),1}};for(n(await c(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await c(t.then.line));break;case"||":a!==0&&n(await c(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function QR(t,e,r){let s=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:c}of t){if(a=await $nt(n,e,r,{background:c==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=s,a}function jpe(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>dv(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>dv(e));case"arithmetic":return _j(t.arithmetic);case"shell":return Hj(t.shell);default:return!1}}function dv(t){switch(t.type){case"redirection":return t.args.some(e=>dv(e));case"argument":return t.segments.some(e=>jpe(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function _j(t){switch(t.type){case"variable":return jpe(t);case"number":return!1;default:return _j(t.left)||_j(t.right)}}function Hj(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let s;switch(r.type){case"subshell":s=Hj(r.subshell);break;case"command":s=r.envs.some(a=>a.args.some(n=>dv(n)))||r.args.some(a=>dv(a));break}if(s)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vI(t,e=[],{baseFs:r=new Yn,builtins:s={},cwd:a=fe.toPortablePath(process.cwd()),env:n=process.env,stdin:c=process.stdin,stdout:f=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=PR}={}){let C={};for(let[I,T]of Object.entries(n))typeof T<"u"&&(C[I]=T);let S=new Map(Vnt);for(let[I,T]of Object.entries(s))S.set(I,T);c===null&&(c=new Jl.PassThrough,c.end());let b=ux(t,E);if(!Hj(b)&&b.length>0&&e.length>0){let{command:I}=b[b.length-1];for(;I.then;)I=I.then.line;let T=I.chain;for(;T.then;)T=T.then.chain;T.type==="command"&&(T.args=T.args.concat(e.map(N=>({type:"argument",segments:[{type:"text",text:N}]}))))}return await QR(b,{args:e,baseFs:r,builtins:S,initialStdin:c,initialStdout:f,initialStderr:p,glob:E},{cwd:a,environment:C,exitCode:null,procedures:{},stdin:c,stdout:f,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Mpe,Upe,Jl,_pe,Vnt,Knt,pv=Ze(()=>{Dt();wc();Mpe=ut(RE()),Upe=Ie("os"),Jl=Ie("stream"),_pe=Ie("timers/promises");wpe();Bpe();Ppe();Uj();Uj();Vnt=new Map([["cd",async([t=(0,Upe.homedir)(),...e],r,s)=>{let a=J.resolve(s.cwd,fe.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(c=>{throw c.code==="ENOENT"?new Vl(`cd: no such file or directory: ${t}`):c})).isDirectory())throw new Vl(`cd: not a directory: ${t}`);return s.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${fe.fromPortablePath(r.cwd)} `),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,s)=>s.exitCode=parseInt(t??s.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} `),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new Vl("sleep: missing operand");let s=Number(t);if(Number.isNaN(s))throw new Vl(`sleep: invalid time interval '${t}'`);return await(0,_pe.setTimeout)(1e3*s,0)}],["unset",async(t,e,r)=>{for(let s of t)delete r.environment[s],delete r.variables[s];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let s=r.procedures[t[0]];return await bR(s,{stdin:new Oc(r.stdin),stdout:new Oc(r.stdout),stderr:new Oc(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let s=r.stdin,a=r.stdout,n=r.stderr,c=[],f=[],p=[],h=0;for(;t[h]!=="--";){let C=t[h++],{type:S,fd:b}=JSON.parse(C),I=W=>{switch(b){case null:case 0:c.push(W);break;default:throw new Error(`Unsupported file descriptor: "${b}"`)}},T=W=>{switch(b){case null:case 1:f.push(W);break;case 2:p.push(W);break;default:throw new Error(`Unsupported file descriptor: "${b}"`)}},N=Number(t[h++]),U=h+N;for(let W=h;We.baseFs.createReadStream(J.resolve(r.cwd,fe.toPortablePath(t[W]))));break;case"<<<":I(()=>{let ee=new Jl.PassThrough;return process.nextTick(()=>{ee.write(`${t[W]} `),ee.end()}),ee});break;case"<&":I(()=>Fpe(Number(t[W]),1,r));break;case">":case">>":{let ee=J.resolve(r.cwd,fe.toPortablePath(t[W]));T(ee==="/dev/null"?new Jl.Writable({autoDestroy:!0,emitClose:!0,write(ie,ue,le){setImmediate(le)}}):e.baseFs.createWriteStream(ee,S===">>"?{flags:"a"}:void 0))}break;case">&":T(Fpe(Number(t[W]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${S}"`)}}if(c.length>0){let C=new Jl.PassThrough;s=C;let S=b=>{if(b===c.length)C.end();else{let I=c[b]();I.pipe(C,{end:!1}),I.on("end",()=>{S(b+1)})}};S(0)}if(f.length>0){let C=new Jl.PassThrough;a=C;for(let S of f)C.pipe(S)}if(p.length>0){let C=new Jl.PassThrough;n=C;for(let S of p)C.pipe(S)}let E=await bR(gv(t.slice(h+1),e,r),{stdin:new Oc(s),stdout:new Oc(a),stderr:new Oc(n)}).run();return await Promise.all(f.map(C=>new Promise((S,b)=>{C.on("error",I=>{b(I)}),C.on("close",()=>{S()}),C.end()}))),await Promise.all(p.map(C=>new Promise((S,b)=>{C.on("error",I=>{b(I)}),C.on("close",()=>{S()}),C.end()}))),E}]]);Knt={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Gpe=_((d4t,RR)=>{function eit(){var t=0,e=1,r=2,s=3,a=4,n=5,c=6,f=7,p=8,h=9,E=10,C=11,S=12,b=13,I=14,T=15,N=16,U=17,W=0,ee=1,ie=2,ue=3,le=4;function me(g,we){return 55296<=g.charCodeAt(we)&&g.charCodeAt(we)<=56319&&56320<=g.charCodeAt(we+1)&&g.charCodeAt(we+1)<=57343}function pe(g,we){we===void 0&&(we=0);var ye=g.charCodeAt(we);if(55296<=ye&&ye<=56319&&we=1){var Ae=g.charCodeAt(we-1),se=ye;return 55296<=Ae&&Ae<=56319?(Ae-55296)*1024+(se-56320)+65536:se}return ye}function Be(g,we,ye){var Ae=[g].concat(we).concat([ye]),se=Ae[Ae.length-2],X=ye,De=Ae.lastIndexOf(I);if(De>1&&Ae.slice(1,De).every(function(j){return j==s})&&[s,b,U].indexOf(g)==-1)return ie;var Te=Ae.lastIndexOf(a);if(Te>0&&Ae.slice(1,Te).every(function(j){return j==a})&&[S,a].indexOf(se)==-1)return Ae.filter(function(j){return j==a}).length%2==1?ue:le;if(se==t&&X==e)return W;if(se==r||se==t||se==e)return X==I&&we.every(function(j){return j==s})?ie:ee;if(X==r||X==t||X==e)return ee;if(se==c&&(X==c||X==f||X==h||X==E))return W;if((se==h||se==f)&&(X==f||X==p))return W;if((se==E||se==p)&&X==p)return W;if(X==s||X==T)return W;if(X==n)return W;if(se==S)return W;var mt=Ae.indexOf(s)!=-1?Ae.lastIndexOf(s)-1:Ae.length-2;return[b,U].indexOf(Ae[mt])!=-1&&Ae.slice(mt+1,-1).every(function(j){return j==s})&&X==I||se==T&&[N,U].indexOf(X)!=-1?W:we.indexOf(a)!=-1?ie:se==a&&X==a?W:ee}this.nextBreak=function(g,we){if(we===void 0&&(we=0),we<0)return 0;if(we>=g.length-1)return g.length;for(var ye=Ce(pe(g,we)),Ae=[],se=we+1;se{var tit=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,TR;function rit(){if(TR)return TR;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return TR=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=Gpe(),e=new t;return TR=r=>e.splitGraphemes(r)}}qpe.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let s=r-e,a="",n=0,c=0;for(;t.length>0;){let f=t.match(tit)||[t,t,void 0],p=rit()(f[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(s-c,p.length);a+=p.slice(0,E).join(""),n+=h,c+=E,typeof f[2]<"u"&&(a+=f[2]),t=t.slice(f[0].length)}return a}});var fn,yv=Ze(()=>{fn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.10.3"});function Zpe(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Yf(t===null?0:t);return!r&&t===null?Ht(e,a,"grey"):a}function jj(t,{configuration:e,json:r}){let s=Zpe(t,{configuration:e,json:r});if(!s||t===null||t===0)return s;let a=Br[t],n=`https://yarnpkg.com/advanced/error-codes#${s}---${a}`.toLowerCase();return KE(e,s,n)}async function SI({configuration:t,stdout:e,forceError:r},s){let a=await Ot.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let c=!1,f=!1;for(let p of s)typeof p.option<"u"&&(p.error||r?(f=!0,n.reportError(50,p.message)):(c=!0,n.reportWarning(50,p.message)),p.callback?.());c&&!f&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Kpe,FR,nit,Ype,Vpe,D0,zpe,Jpe,iit,sit,NR,oit,Ot,Ev=Ze(()=>{Kpe=ut(Wpe()),FR=ut(Fd());Gx();Rc();yv();xc();nit="\xB7",Ype=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Vpe=80,D0=FR.default.GITHUB_ACTIONS?{start:t=>`::group::${t} `,end:t=>`::endgroup:: `}:FR.default.TRAVIS?{start:t=>`travis_fold:start:${t} `,end:t=>`travis_fold:end:${t} `}:FR.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} `,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,zpe=D0!==null,Jpe=new Date,iit=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,sit=t=>t,NR=sit({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),oit=iit&&Object.keys(NR).find(t=>{let e=NR[t];return!(e.date&&(e.date[0]!==Jpe.getDate()||e.date[1]!==Jpe.getMonth()+1))})||"default";Ot=class extends Ao{constructor({configuration:r,stdout:s,json:a=!1,forceSectionAlignment:n=!1,includeNames:c=!0,includePrefix:f=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:C=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(TB(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=c,this.includePrefix=f,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=C,this.json=a,this.stdout=s,r.get("enableProgressBars")&&!a&&s.isTTY&&s.columns>22){let S=r.get("progressBarStyle")||oit;if(!Object.hasOwn(NR,S))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=NR[S];let b=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*b/80)}}static async start(r,s){let a=new this(r),n=process.emitWarning;process.emitWarning=(c,f)=>{if(typeof c!="string"){let h=c;c=h.message,f=f??h.name}let p=typeof f<"u"?`${f}: ${c}`:c;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,zd(r.configuration,`Yarn ${fn}`,2));try{await s(a)}catch(c){a.reportExceptionOnce(c)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let s=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,s-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}async startSectionPromise({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}startTimerImpl(r,s,a){return{cb:typeof s=="function"?s:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,D0!==null&&!this.json&&this.includeInfos&&this.stdout.write(D0.start(r))},reportFooter:f=>{if(this.indent-=1,D0!==null&&!this.json&&this.includeInfos){this.stdout.write(D0.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&f>200?this.reportInfo(null,`\u2514 Completed in ${Ht(this.configuration,f,ht.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof s=="function"?{}:s).skipIfEmpty}}startTimerSync(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionSync(c,n)}async startTimerPromise(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionPromise(c,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,s){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",c=`${this.formatPrefix(n,"blueBright")}${s}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(c)}reportWarning(r,s){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${s}`)}reportError(r,s){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,s)),this.reportErrorImpl(r,s)}reportErrorImpl(r,s){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,"redBright")}${s}`,{truncate:!1})}reportFold(r,s){if(!D0)return;let a=`${D0.start(r)}${s}${D0.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let s=!1,a=Promise.resolve().then(async()=>{let c={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:c,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:f,title:p}of r)s||c.progress===f&&c.title===p||(c.progress=f,c.title=p,this.refreshProgress());n()}),n=()=>{s||(s=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let s=Ht(this.configuration,Date.now()-this.startTime,ht.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${s}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:s}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:s})} `),this.writeProgress()}writeLines(r,{truncate:s}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:s})} `);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let s of r)s.committed=!0,s.action()}clearProgress({delta:r=0,clear:s=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||s)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Vpe&&(this.progressFrame=(this.progressFrame+1)%Ype.length,this.progressTime=r);let s=Ype[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let c=this.formatName(null),f=c?`${c}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ht(this.configuration,"\u27A4","blueBright")} ${f}${s}${n}${p} `)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Vpe)}refreshProgress({delta:r=0,force:s=!1}={}){let a=!1,n=!1;if(s||this.progress.size===0)a=!0;else for(let c of this.progress.values()){let f=typeof c.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*c.definition.progress):void 0,p=c.lastScaledSize;c.lastScaledSize=f;let h=c.lastTitle;if(c.lastTitle=c.definition.title,f!==p||(n=h!==c.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:s}={}){return this.progressStyle===null&&(s=!1),typeof s>"u"&&(s=this.configuration.get("preferTruncatedLines")),s&&(r=(0,Kpe.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Zpe(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,s){return this.includePrefix?`${Ht(this.configuration,"\u27A4",s)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?jj(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${nit} `}}});var In={};Vt(In,{PackageManager:()=>$pe,detectPackageManager:()=>ehe,executePackageAccessibleBinary:()=>she,executePackageScript:()=>OR,executePackageShellcode:()=>Gj,executeWorkspaceAccessibleBinary:()=>pit,executeWorkspaceLifecycleScript:()=>nhe,executeWorkspaceScript:()=>rhe,getPackageAccessibleBinaries:()=>LR,getWorkspaceAccessibleBinaries:()=>ihe,hasPackageScript:()=>uit,hasWorkspaceScript:()=>qj,isNodeScript:()=>Wj,makeScriptEnv:()=>Iv,maybeExecuteWorkspaceLifecycleScript:()=>Ait,prepareExternalProject:()=>cit});async function P0(t,e,r,s=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${s.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await ce.writeFilePromise(J.format({dir:t,name:e,ext:".cmd"}),a)}await ce.writeFilePromise(J.join(t,e),`#!/bin/sh exec "${r}" ${s.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" `,{mode:493})}async function ehe(t){let e=await Ut.tryFind(t);if(e?.packageManager){let s=bQ(e.packageManager);if(s?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=s.reference.split(".");switch(s.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await ce.readFilePromise(J.join(t,Er.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:ce.existsSync(J.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:ce.existsSync(J.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function Iv({project:t,locator:e,binFolder:r,ignoreCorepack:s,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let c={};for(let[E,C]of Object.entries(n))typeof C<"u"&&(c[E.toLowerCase()!=="path"?E:"PATH"]=C);let f=fe.fromPortablePath(r);c.BERRY_BIN_FOLDER=fe.fromPortablePath(f);let p=process.env.COREPACK_ROOT&&!s?fe.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([P0(r,"node",process.execPath),...fn!==null?[P0(r,"run",process.execPath,[p,"run"]),P0(r,"yarn",process.execPath,[p]),P0(r,"yarnpkg",process.execPath,[p]),P0(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(c.INIT_CWD=fe.fromPortablePath(t.configuration.startingCwd),c.PROJECT_CWD=fe.fromPortablePath(t.cwd)),c.PATH=c.PATH?`${f}${fe.delimiter}${c.PATH}`:`${f}`,c.npm_execpath=`${f}${fe.sep}yarn`,c.npm_node_execpath=`${f}${fe.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),C=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";c.npm_package_name=un(e),c.npm_package_version=C;let S;if(E)S=E.cwd;else{let b=t.storedPackages.get(e.locatorHash);if(!b)throw new Error(`Package for ${Yr(t.configuration,e)} not found in the project`);let I=t.configuration.getLinkers(),T={project:t,report:new Ot({stdout:new b0.PassThrough,configuration:t.configuration})},N=I.find(U=>U.supportsPackage(b,T));if(!N)throw new Error(`The package ${Yr(t.configuration,b)} isn't supported by any of the available linkers`);S=await N.findPackageLocation(b,T)}c.npm_package_json=fe.fromPortablePath(J.join(S,Er.manifest))}let h=fn!==null?`yarn/${fn}`:`yarn/${bp("@yarnpkg/core").version}-core`;return c.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(c.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,c,async(E,C,S)=>await P0(r,E,C,S)),c}async function cit(t,e,{configuration:r,report:s,workspace:a=null,locator:n=null}){await lit(async()=>{await ce.mktempPromise(async c=>{let f=J.join(c,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(f,{prefix:fe.fromPortablePath(t),report:s}),C=n&&Gu(n)?rI(n):n,S=C?ll(C):"an external project";h.write(`Packing ${S} from sources `);let b=await ehe(t),I;b!==null?(h.write(`Using ${b.packageManager} for bootstrap. Reason: ${b.reason} `),I=b.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn `),I="Yarn");let T=I==="Yarn"&&!b?.packageManagerField;await ce.mktempPromise(async N=>{let U=await Iv({binFolder:N,ignoreCorepack:T,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:"0"}}),ee=new Map([["Yarn Classic",async()=>{let ue=a!==null?["workspace",a]:[],le=J.join(t,Er.manifest),me=await ce.readFilePromise(le),pe=await Wu(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(pe.code!==0)return pe.code;await ce.writeFilePromise(le,me),await ce.appendFilePromise(J.join(t,".npmignore"),`/.yarn `),h.write(` `),delete U.NODE_ENV;let Be=await Wu("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(` `);let Ce=await Wu("yarn",[...ue,"pack","--filename",fe.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ce.code!==0?Ce.code:0}],["Yarn",async()=>{let ue=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let le=J.join(t,Er.lockfile);await ce.existsPromise(le)||await ce.writeFilePromise(le,"");let me=await Wu("yarn",[...ue,"pack","--install-if-needed","--filename",fe.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return me.code!==0?me.code:0}],["npm",async()=>{if(a!==null){let we=new b0.PassThrough,ye=WE(we);we.pipe(h,{end:!1});let Ae=await Wu("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:we,stderr:E,end:0});if(we.end(),Ae.code!==0)return h.end(),E.end(),Ae.code;let se=(await ye).toString().trim();if(!Xf(se,">=7.x")){let X=Da(null,"npm"),De=On(X,se),Te=On(X,">=7.x");throw new Error(`Workspaces aren't supported by ${ni(r,De)}; please upgrade to ${ni(r,Te)} (npm has been detected as the primary package manager for ${Ht(r,t,ht.PATH)})`)}}let ue=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let le=await Wu("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(le.code!==0)return le.code;let me=new b0.PassThrough,pe=WE(me);me.pipe(h);let Be=await Wu("npm",["pack","--silent",...ue],{cwd:t,env:U,stdin:p,stdout:me,stderr:E});if(Be.code!==0)return Be.code;let Ce=(await pe).toString().trim().replace(/^.*\n/s,""),g=J.resolve(t,fe.toPortablePath(Ce));return await ce.renamePromise(g,e),0}]]).get(I);if(typeof ee>"u")throw new Error("Assertion failed: Unsupported workflow");let ie=await ee();if(!(ie===0||typeof ie>"u"))throw ce.detachTemp(c),new jt(58,`Packing the package failed (exit code ${ie}, logs can be found here: ${Ht(r,f,ht.PATH)})`)})})})}async function uit(t,e,{project:r}){let s=r.tryWorkspaceByLocator(t);if(s!==null)return qj(s,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${Yr(r.configuration,t)} not found in the project`);return await $f.openPromise(async n=>{let c=r.configuration,f=r.configuration.getLinkers(),p={project:r,report:new Ot({stdout:new b0.PassThrough,configuration:c})},h=f.find(b=>b.supportsPackage(a,p));if(!h)throw new Error(`The package ${Yr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),C=new Sn(E,{baseFs:n});return(await Ut.find(vt.dot,{baseFs:C})).scripts.has(e)})}async function OR(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await ce.mktempPromise(async p=>{let{manifest:h,env:E,cwd:C}=await the(t,{project:a,binFolder:p,cwd:s,lifecycleScript:e}),S=h.scripts.get(e);if(typeof S>"u")return 1;let b=async()=>await vI(S,r,{cwd:C,env:E,stdin:n,stdout:c,stderr:f});return await(await a.configuration.reduceHook(T=>T.wrapScriptExecution,b,a,t,e,{script:S,args:r,cwd:C,env:E,stdin:n,stdout:c,stderr:f}))()})}async function Gj(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await ce.mktempPromise(async p=>{let{env:h,cwd:E}=await the(t,{project:a,binFolder:p,cwd:s});return await vI(e,r,{cwd:E,env:h,stdin:n,stdout:c,stderr:f})})}async function fit(t,{binFolder:e,cwd:r,lifecycleScript:s}){let a=await Iv({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:s});return await Yj(e,await ihe(t)),typeof r>"u"&&(r=J.dirname(await ce.realpathPromise(J.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function the(t,{project:e,binFolder:r,cwd:s,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return fit(n,{binFolder:r,cwd:s,lifecycleScript:a});let c=e.storedPackages.get(t.locatorHash);if(!c)throw new Error(`Package for ${Yr(e.configuration,t)} not found in the project`);return await $f.openPromise(async f=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Ot({stdout:new b0.PassThrough,configuration:p})},C=h.find(N=>N.supportsPackage(c,E));if(!C)throw new Error(`The package ${Yr(e.configuration,c)} isn't supported by any of the available linkers`);let S=await Iv({project:e,locator:t,binFolder:r,lifecycleScript:a});await Yj(r,await LR(t,{project:e}));let b=await C.findPackageLocation(c,E),I=new Sn(b,{baseFs:f}),T=await Ut.find(vt.dot,{baseFs:I});return typeof s>"u"&&(s=b),{manifest:T,binFolder:r,env:S,cwd:s}})}async function rhe(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:c}){return await OR(t.anchoredLocator,e,r,{cwd:s,project:t.project,stdin:a,stdout:n,stderr:c})}function qj(t,e){return t.manifest.scripts.has(e)}async function nhe(t,e,{cwd:r,report:s}){let{configuration:a}=t.project,n=null;await ce.mktempPromise(async c=>{let f=J.join(c,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${fe.fromPortablePath(t.cwd)}") `,{stdout:h,stderr:E}=a.getSubprocessStreams(f,{report:s,prefix:Yr(a,t.anchoredLocator),header:p});s.reportInfo(36,`Calling the "${e}" lifecycle script`);let C=await rhe(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),C!==0)throw ce.detachTemp(c),new jt(36,`${PB(e)} script failed (exit code ${Ht(a,C,ht.NUMBER)}, logs can be found here: ${Ht(a,f,ht.PATH)}); run ${Ht(a,`yarn ${e}`,ht.CODE)} to investigate`)})}async function Ait(t,e,r){qj(t,e)&&await nhe(t,e,r)}function Wj(t){let e=J.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),s;try{s=ce.openSync(t,"r")}catch{return!0}try{ce.readSync(s,r,0,r.length,0)}finally{ce.closeSync(s)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function LR(t,{project:e}){let r=e.configuration,s=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${Yr(r,t)} not found in the project`);let n=new b0.Writable,c=r.getLinkers(),f={project:e,report:new Ot({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let C=e.storedResolutions.get(E.descriptorHash);if(!C)throw new Error(`Assertion failed: The resolution (${ni(r,E)}) should have been registered`);p.add(C)}let h=await Promise.all(Array.from(p,async E=>{let C=e.storedPackages.get(E);if(!C)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(C.bin.size===0)return Wl.skip;let S=c.find(I=>I.supportsPackage(C,f));if(!S)return Wl.skip;let b=null;try{b=await S.findPackageLocation(C,f)}catch(I){if(I.code==="LOCATOR_NOT_INSTALLED")return Wl.skip;throw I}return{dependency:C,packageLocation:b}}));for(let E of h){if(E===Wl.skip)continue;let{dependency:C,packageLocation:S}=E;for(let[b,I]of C.bin){let T=J.resolve(S,I);s.set(b,[C,fe.fromPortablePath(T),Wj(T)])}}return s}async function ihe(t){return await LR(t.anchoredLocator,{project:t.project})}async function Yj(t,e){await Promise.all(Array.from(e,([r,[,s,a]])=>a?P0(t,r,process.execPath,[s]):P0(t,r,s,[])))}async function she(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await LR(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${Yr(a.configuration,t)}`);return await ce.mktempPromise(async C=>{let[,S]=E,b=await Iv({project:a,locator:t,binFolder:C});await Yj(b.BERRY_BIN_FOLDER,h);let I=Wj(fe.toPortablePath(S))?Wu(process.execPath,[...p,S,...r],{cwd:s,env:b,stdin:n,stdout:c,stderr:f}):Wu(S,r,{cwd:s,env:b,stdin:n,stdout:c,stderr:f}),T;try{T=await I}finally{await ce.removePromise(b.BERRY_BIN_FOLDER)}return T.code})}async function pit(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f}){return await she(t.anchoredLocator,e,r,{project:t.project,cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f})}var Xpe,b0,$pe,ait,lit,Vj=Ze(()=>{Dt();Dt();eA();pv();ql();Xpe=ut(Ld()),b0=Ie("stream");oI();Rc();Ev();yv();gR();xc();bc();Tp();Wo();$pe=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))($pe||{});ait=2,lit=(0,Xpe.default)(ait)});var DI=_((U4t,ahe)=>{"use strict";var ohe=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);ahe.exports=t=>t?Object.keys(t).map(e=>[ohe.has(e)?ohe.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var bI=_((_4t,dhe)=>{"use strict";var lhe=typeof process=="object"&&process?process:{stdout:null,stderr:null},hit=Ie("events"),che=Ie("stream"),uhe=Ie("string_decoder").StringDecoder,_p=Symbol("EOF"),Hp=Symbol("maybeEmitEnd"),x0=Symbol("emittedEnd"),MR=Symbol("emittingEnd"),Cv=Symbol("emittedError"),UR=Symbol("closed"),fhe=Symbol("read"),_R=Symbol("flush"),Ahe=Symbol("flushChunk"),ul=Symbol("encoding"),jp=Symbol("decoder"),HR=Symbol("flowing"),wv=Symbol("paused"),PI=Symbol("resume"),Ys=Symbol("bufferLength"),Jj=Symbol("bufferPush"),Kj=Symbol("bufferShift"),Ko=Symbol("objectMode"),zo=Symbol("destroyed"),zj=Symbol("emitData"),phe=Symbol("emitEnd"),Zj=Symbol("emitEnd2"),Gp=Symbol("async"),Bv=t=>Promise.resolve().then(t),hhe=global._MP_NO_ITERATOR_SYMBOLS_!=="1",git=hhe&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),dit=hhe&&Symbol.iterator||Symbol("iterator not implemented"),mit=t=>t==="end"||t==="finish"||t==="prefinish",yit=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Eit=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),jR=class{constructor(e,r,s){this.src=e,this.dest=r,this.opts=s,this.ondrain=()=>e[PI](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Xj=class extends jR{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,s){super(e,r,s),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};dhe.exports=class ghe extends che{constructor(e){super(),this[HR]=!1,this[wv]=!1,this.pipes=[],this.buffer=[],this[Ko]=e&&e.objectMode||!1,this[Ko]?this[ul]=null:this[ul]=e&&e.encoding||null,this[ul]==="buffer"&&(this[ul]=null),this[Gp]=e&&!!e.async||!1,this[jp]=this[ul]?new uhe(this[ul]):null,this[_p]=!1,this[x0]=!1,this[MR]=!1,this[UR]=!1,this[Cv]=null,this.writable=!0,this.readable=!0,this[Ys]=0,this[zo]=!1}get bufferLength(){return this[Ys]}get encoding(){return this[ul]}set encoding(e){if(this[Ko])throw new Error("cannot set encoding in objectMode");if(this[ul]&&e!==this[ul]&&(this[jp]&&this[jp].lastNeed||this[Ys]))throw new Error("cannot change encoding");this[ul]!==e&&(this[jp]=e?new uhe(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[jp].write(r)))),this[ul]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Ko]}set objectMode(e){this[Ko]=this[Ko]||!!e}get async(){return this[Gp]}set async(e){this[Gp]=this[Gp]||!!e}write(e,r,s){if(this[_p])throw new Error("write after end");if(this[zo])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(s=r,r="utf8"),r||(r="utf8");let a=this[Gp]?Bv:n=>n();return!this[Ko]&&!Buffer.isBuffer(e)&&(Eit(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):yit(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Ko]?(this.flowing&&this[Ys]!==0&&this[_R](!0),this.flowing?this.emit("data",e):this[Jj](e),this[Ys]!==0&&this.emit("readable"),s&&a(s),this.flowing):e.length?(typeof e=="string"&&!(r===this[ul]&&!this[jp].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ul]&&(e=this[jp].write(e)),this.flowing&&this[Ys]!==0&&this[_R](!0),this.flowing?this.emit("data",e):this[Jj](e),this[Ys]!==0&&this.emit("readable"),s&&a(s),this.flowing):(this[Ys]!==0&&this.emit("readable"),s&&a(s),this.flowing)}read(e){if(this[zo])return null;if(this[Ys]===0||e===0||e>this[Ys])return this[Hp](),null;this[Ko]&&(e=null),this.buffer.length>1&&!this[Ko]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ys])]);let r=this[fhe](e||null,this.buffer[0]);return this[Hp](),r}[fhe](e,r){return e===r.length||e===null?this[Kj]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ys]-=e),this.emit("data",r),!this.buffer.length&&!this[_p]&&this.emit("drain"),r}end(e,r,s){return typeof e=="function"&&(s=e,e=null),typeof r=="function"&&(s=r,r="utf8"),e&&this.write(e,r),s&&this.once("end",s),this[_p]=!0,this.writable=!1,(this.flowing||!this[wv])&&this[Hp](),this}[PI](){this[zo]||(this[wv]=!1,this[HR]=!0,this.emit("resume"),this.buffer.length?this[_R]():this[_p]?this[Hp]():this.emit("drain"))}resume(){return this[PI]()}pause(){this[HR]=!1,this[wv]=!0}get destroyed(){return this[zo]}get flowing(){return this[HR]}get paused(){return this[wv]}[Jj](e){this[Ko]?this[Ys]+=1:this[Ys]+=e.length,this.buffer.push(e)}[Kj](){return this.buffer.length&&(this[Ko]?this[Ys]-=1:this[Ys]-=this.buffer[0].length),this.buffer.shift()}[_R](e){do;while(this[Ahe](this[Kj]()));!e&&!this.buffer.length&&!this[_p]&&this.emit("drain")}[Ahe](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[zo])return;let s=this[x0];return r=r||{},e===lhe.stdout||e===lhe.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,s?r.end&&e.end():(this.pipes.push(r.proxyErrors?new Xj(this,e,r):new jR(this,e,r)),this[Gp]?Bv(()=>this[PI]()):this[PI]()),e}unpipe(e){let r=this.pipes.find(s=>s.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let s=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[PI]():e==="readable"&&this[Ys]!==0?super.emit("readable"):mit(e)&&this[x0]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[Cv]&&(this[Gp]?Bv(()=>r.call(this,this[Cv])):r.call(this,this[Cv])),s}get emittedEnd(){return this[x0]}[Hp](){!this[MR]&&!this[x0]&&!this[zo]&&this.buffer.length===0&&this[_p]&&(this[MR]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[UR]&&this.emit("close"),this[MR]=!1)}emit(e,r,...s){if(e!=="error"&&e!=="close"&&e!==zo&&this[zo])return;if(e==="data")return r?this[Gp]?Bv(()=>this[zj](r)):this[zj](r):!1;if(e==="end")return this[phe]();if(e==="close"){if(this[UR]=!0,!this[x0]&&!this[zo])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[Cv]=r;let n=super.emit("error",r);return this[Hp](),n}else if(e==="resume"){let n=super.emit("resume");return this[Hp](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...s);return this[Hp](),a}[zj](e){for(let s of this.pipes)s.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Hp](),r}[phe](){this[x0]||(this[x0]=!0,this.readable=!1,this[Gp]?Bv(()=>this[Zj]()):this[Zj]())}[Zj](){if(this[jp]){let r=this[jp].end();if(r){for(let s of this.pipes)s.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Ko]||(e.dataLength=0);let r=this.promise();return this.on("data",s=>{e.push(s),this[Ko]||(e.dataLength+=s.length)}),r.then(()=>e)}concat(){return this[Ko]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Ko]?Promise.reject(new Error("cannot concat in objectMode")):this[ul]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(zo,()=>r(new Error("stream destroyed"))),this.on("error",s=>r(s)),this.on("end",()=>e())})}[git](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[_p])return Promise.resolve({done:!0});let s=null,a=null,n=h=>{this.removeListener("data",c),this.removeListener("end",f),a(h)},c=h=>{this.removeListener("error",n),this.removeListener("end",f),this.pause(),s({value:h,done:!!this[_p]})},f=()=>{this.removeListener("error",n),this.removeListener("data",c),s({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,s=h,this.once(zo,p),this.once("error",n),this.once("end",f),this.once("data",c)})}}}[dit](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[zo]?(e?this.emit("error",e):this.emit(zo),this):(this[zo]=!0,this.buffer.length=0,this[Ys]=0,typeof this.close=="function"&&!this[UR]&&this.close(),e?this.emit("error",e):this.emit(zo),this)}static isStream(e){return!!e&&(e instanceof ghe||e instanceof che||e instanceof hit&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var yhe=_((H4t,mhe)=>{var Iit=Ie("zlib").constants||{ZLIB_VERNUM:4736};mhe.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Iit))});var h6=_(Kl=>{"use strict";var n6=Ie("assert"),k0=Ie("buffer").Buffer,Che=Ie("zlib"),fm=Kl.constants=yhe(),Cit=bI(),Ehe=k0.concat,Am=Symbol("_superWrite"),kI=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},wit=Symbol("opts"),vv=Symbol("flushFlag"),Ihe=Symbol("finishFlushFlag"),p6=Symbol("fullFlushFlag"),Ii=Symbol("handle"),GR=Symbol("onError"),xI=Symbol("sawError"),$j=Symbol("level"),e6=Symbol("strategy"),t6=Symbol("ended"),j4t=Symbol("_defaultFullFlush"),qR=class extends Cit{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[xI]=!1,this[t6]=!1,this[wit]=e,this[vv]=e.flush,this[Ihe]=e.finishFlush;try{this[Ii]=new Che[r](e)}catch(s){throw new kI(s)}this[GR]=s=>{this[xI]||(this[xI]=!0,this.close(),this.emit("error",s))},this[Ii].on("error",s=>this[GR](new kI(s))),this.once("end",()=>this.close)}close(){this[Ii]&&(this[Ii].close(),this[Ii]=null,this.emit("close"))}reset(){if(!this[xI])return n6(this[Ii],"zlib binding closed"),this[Ii].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[p6]),this.write(Object.assign(k0.alloc(0),{[vv]:e})))}end(e,r,s){return e&&this.write(e,r),this.flush(this[Ihe]),this[t6]=!0,super.end(null,null,s)}get ended(){return this[t6]}write(e,r,s){if(typeof r=="function"&&(s=r,r="utf8"),typeof e=="string"&&(e=k0.from(e,r)),this[xI])return;n6(this[Ii],"zlib binding closed");let a=this[Ii]._handle,n=a.close;a.close=()=>{};let c=this[Ii].close;this[Ii].close=()=>{},k0.concat=h=>h;let f;try{let h=typeof e[vv]=="number"?e[vv]:this[vv];f=this[Ii]._processChunk(e,h),k0.concat=Ehe}catch(h){k0.concat=Ehe,this[GR](new kI(h))}finally{this[Ii]&&(this[Ii]._handle=a,a.close=n,this[Ii].close=c,this[Ii].removeAllListeners("error"))}this[Ii]&&this[Ii].on("error",h=>this[GR](new kI(h)));let p;if(f)if(Array.isArray(f)&&f.length>0){p=this[Am](k0.from(f[0]));for(let h=1;h{this.flush(a),n()};try{this[Ii].params(e,r)}finally{this[Ii].flush=s}this[Ii]&&(this[$j]=e,this[e6]=r)}}}},i6=class extends qp{constructor(e){super(e,"Deflate")}},s6=class extends qp{constructor(e){super(e,"Inflate")}},r6=Symbol("_portable"),o6=class extends qp{constructor(e){super(e,"Gzip"),this[r6]=e&&!!e.portable}[Am](e){return this[r6]?(this[r6]=!1,e[9]=255,super[Am](e)):super[Am](e)}},a6=class extends qp{constructor(e){super(e,"Gunzip")}},l6=class extends qp{constructor(e){super(e,"DeflateRaw")}},c6=class extends qp{constructor(e){super(e,"InflateRaw")}},u6=class extends qp{constructor(e){super(e,"Unzip")}},WR=class extends qR{constructor(e,r){e=e||{},e.flush=e.flush||fm.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||fm.BROTLI_OPERATION_FINISH,super(e,r),this[p6]=fm.BROTLI_OPERATION_FLUSH}},f6=class extends WR{constructor(e){super(e,"BrotliCompress")}},A6=class extends WR{constructor(e){super(e,"BrotliDecompress")}};Kl.Deflate=i6;Kl.Inflate=s6;Kl.Gzip=o6;Kl.Gunzip=a6;Kl.DeflateRaw=l6;Kl.InflateRaw=c6;Kl.Unzip=u6;typeof Che.BrotliCompress=="function"?(Kl.BrotliCompress=f6,Kl.BrotliDecompress=A6):Kl.BrotliCompress=Kl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var QI=_((W4t,whe)=>{var Bit=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;whe.exports=Bit!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var YR=_((V4t,Bhe)=>{"use strict";var vit=bI(),g6=QI(),d6=Symbol("slurp");Bhe.exports=class extends vit{constructor(e,r,s){switch(super(),this.pause(),this.extended=r,this.globalExtended=s,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=g6(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=g6(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[d6](r),s&&this[d6](s,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let s=this.remain,a=this.blockRemain;return this.remain=Math.max(0,s-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:s>=r?super.write(e):super.write(e.slice(0,s))}[d6](e,r){for(let s in e)e[s]!==null&&e[s]!==void 0&&!(r&&s==="path")&&(this[s]=s==="path"||s==="linkpath"?g6(e[s]):e[s])}}});var m6=_(VR=>{"use strict";VR.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);VR.code=new Map(Array.from(VR.name).map(t=>[t[1],t[0]]))});var Phe=_((K4t,Dhe)=>{"use strict";var Sit=(t,e)=>{if(Number.isSafeInteger(t))t<0?Pit(t,e):Dit(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},Dit=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Pit=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var s=e.length;s>1;s--){var a=t&255;t=Math.floor(t/256),r?e[s-1]=vhe(a):a===0?e[s-1]=0:(r=!0,e[s-1]=She(a))}},bit=t=>{let e=t[0],r=e===128?kit(t.slice(1,t.length)):e===255?xit(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},xit=t=>{for(var e=t.length,r=0,s=!1,a=e-1;a>-1;a--){var n=t[a],c;s?c=vhe(n):n===0?c=n:(s=!0,c=She(n)),c!==0&&(r-=c*Math.pow(256,e-a-1))}return r},kit=t=>{for(var e=t.length,r=0,s=e-1;s>-1;s--){var a=t[s];a!==0&&(r+=a*Math.pow(256,e-s-1))}return r},vhe=t=>(255^t)&255,She=t=>(255^t)+1&255;Dhe.exports={encode:Sit,parse:bit}});var TI=_((z4t,xhe)=>{"use strict";var y6=m6(),RI=Ie("path").posix,bhe=Phe(),E6=Symbol("slurp"),zl=Symbol("type"),w6=class{constructor(e,r,s,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[zl]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,s,a):e&&this.set(e)}decode(e,r,s,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=pm(e,r,100),this.mode=Q0(e,r+100,8),this.uid=Q0(e,r+108,8),this.gid=Q0(e,r+116,8),this.size=Q0(e,r+124,12),this.mtime=I6(e,r+136,12),this.cksum=Q0(e,r+148,12),this[E6](s),this[E6](a,!0),this[zl]=pm(e,r+156,1),this[zl]===""&&(this[zl]="0"),this[zl]==="0"&&this.path.substr(-1)==="/"&&(this[zl]="5"),this[zl]==="5"&&(this.size=0),this.linkpath=pm(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=pm(e,r+265,32),this.gname=pm(e,r+297,32),this.devmaj=Q0(e,r+329,8),this.devmin=Q0(e,r+337,8),e[r+475]!==0){let c=pm(e,r+345,155);this.path=c+"/"+this.path}else{let c=pm(e,r+345,130);c&&(this.path=c+"/"+this.path),this.atime=I6(e,r+476,12),this.ctime=I6(e,r+488,12)}let n=8*32;for(let c=r;c=r+512))throw new Error("need 512 bytes for header");let s=this.ctime||this.atime?130:155,a=Qit(this.path||"",s),n=a[0],c=a[1];this.needPax=a[2],this.needPax=hm(e,r,100,n)||this.needPax,this.needPax=R0(e,r+100,8,this.mode)||this.needPax,this.needPax=R0(e,r+108,8,this.uid)||this.needPax,this.needPax=R0(e,r+116,8,this.gid)||this.needPax,this.needPax=R0(e,r+124,12,this.size)||this.needPax,this.needPax=C6(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[zl].charCodeAt(0),this.needPax=hm(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=hm(e,r+265,32,this.uname)||this.needPax,this.needPax=hm(e,r+297,32,this.gname)||this.needPax,this.needPax=R0(e,r+329,8,this.devmaj)||this.needPax,this.needPax=R0(e,r+337,8,this.devmin)||this.needPax,this.needPax=hm(e,r+345,s,c)||this.needPax,e[r+475]!==0?this.needPax=hm(e,r+345,155,c)||this.needPax:(this.needPax=hm(e,r+345,130,c)||this.needPax,this.needPax=C6(e,r+476,12,this.atime)||this.needPax,this.needPax=C6(e,r+488,12,this.ctime)||this.needPax);let f=8*32;for(let p=r;p{let s=t,a="",n,c=RI.parse(t).root||".";if(Buffer.byteLength(s)<100)n=[s,a,!1];else{a=RI.dirname(s),s=RI.basename(s);do Buffer.byteLength(s)<=100&&Buffer.byteLength(a)<=e?n=[s,a,!1]:Buffer.byteLength(s)>100&&Buffer.byteLength(a)<=e?n=[s.substr(0,99),a,!0]:(s=RI.join(RI.basename(a),s),a=RI.dirname(a));while(a!==c&&!n);n||(n=[t.substr(0,99),"",!0])}return n},pm=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),I6=(t,e,r)=>Rit(Q0(t,e,r)),Rit=t=>t===null?null:new Date(t*1e3),Q0=(t,e,r)=>t[e]&128?bhe.parse(t.slice(e,e+r)):Fit(t,e,r),Tit=t=>isNaN(t)?null:t,Fit=(t,e,r)=>Tit(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Nit={12:8589934591,8:2097151},R0=(t,e,r,s)=>s===null?!1:s>Nit[r]||s<0?(bhe.encode(s,t.slice(e,e+r)),!0):(Oit(t,e,r,s),!1),Oit=(t,e,r,s)=>t.write(Lit(s,r),e,r,"ascii"),Lit=(t,e)=>Mit(Math.floor(t).toString(8),e),Mit=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",C6=(t,e,r,s)=>s===null?!1:R0(t,e,r,s.getTime()/1e3),Uit=new Array(156).join("\0"),hm=(t,e,r,s)=>s===null?!1:(t.write(s+Uit,e,r,"utf8"),s.length!==Buffer.byteLength(s)||s.length>r);xhe.exports=w6});var JR=_((Z4t,khe)=>{"use strict";var _it=TI(),Hit=Ie("path"),Sv=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),s=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(s);for(let n=0;n<512;n++)a[n]=0;new _it({path:("PaxHeader/"+Hit.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n=Math.pow(10,n)&&(n+=1),n+a+s}};Sv.parse=(t,e,r)=>new Sv(jit(Git(t),e),r);var jit=(t,e)=>e?Object.keys(t).reduce((r,s)=>(r[s]=t[s],r),e):t,Git=t=>t.replace(/\n$/,"").split(` `).reduce(qit,Object.create(null)),qit=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let s=e.split("="),a=s.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=s.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};khe.exports=Sv});var FI=_((X4t,Qhe)=>{Qhe.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var KR=_(($4t,Rhe)=>{"use strict";Rhe.exports=t=>class extends t{warn(e,r,s={}){this.file&&(s.file=this.file),this.cwd&&(s.cwd=this.cwd),s.code=r instanceof Error&&r.code||e,s.tarCode=e,!this.strict&&s.recoverable!==!1?(r instanceof Error&&(s=Object.assign(r,s),r=r.message),this.emit("warn",s.tarCode,r,s)):r instanceof Error?this.emit("error",Object.assign(r,s)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),s))}}});var v6=_((t3t,The)=>{"use strict";var zR=["|","<",">","?",":"],B6=zR.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Wit=new Map(zR.map((t,e)=>[t,B6[e]])),Yit=new Map(B6.map((t,e)=>[t,zR[e]]));The.exports={encode:t=>zR.reduce((e,r)=>e.split(r).join(Wit.get(r)),t),decode:t=>B6.reduce((e,r)=>e.split(r).join(Yit.get(r)),t)}});var S6=_((r3t,Nhe)=>{var{isAbsolute:Vit,parse:Fhe}=Ie("path").win32;Nhe.exports=t=>{let e="",r=Fhe(t);for(;Vit(t)||r.root;){let s=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(s.length),e+=s,r=Fhe(t)}return[e,t]}});var Lhe=_((n3t,Ohe)=>{"use strict";Ohe.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var N6=_((o3t,Zhe)=>{"use strict";var qhe=bI(),Whe=JR(),Yhe=TI(),nA=Ie("fs"),Mhe=Ie("path"),rA=QI(),Jit=FI(),Vhe=(t,e)=>e?(t=rA(t).replace(/^\.(\/|$)/,""),Jit(e)+"/"+t):rA(t),Kit=16*1024*1024,Uhe=Symbol("process"),_he=Symbol("file"),Hhe=Symbol("directory"),P6=Symbol("symlink"),jhe=Symbol("hardlink"),Dv=Symbol("header"),ZR=Symbol("read"),b6=Symbol("lstat"),XR=Symbol("onlstat"),x6=Symbol("onread"),k6=Symbol("onreadlink"),Q6=Symbol("openfile"),R6=Symbol("onopenfile"),T0=Symbol("close"),$R=Symbol("mode"),T6=Symbol("awaitDrain"),D6=Symbol("ondrain"),iA=Symbol("prefix"),Ghe=Symbol("hadError"),Jhe=KR(),zit=v6(),Khe=S6(),zhe=Lhe(),eT=Jhe(class extends qhe{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=rA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||Kit,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=rA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?rA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let s=!1;if(!this.preservePaths){let[a,n]=Khe(this.path);a&&(this.path=n,s=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=zit.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=rA(r.absolute||Mhe.resolve(this.cwd,e)),this.path===""&&(this.path="./"),s&&this.warn("TAR_ENTRY_INFO",`stripping ${s} from absolute path`,{entry:this,path:s+this.path}),this.statCache.has(this.absolute)?this[XR](this.statCache.get(this.absolute)):this[b6]()}emit(e,...r){return e==="error"&&(this[Ghe]=!0),super.emit(e,...r)}[b6](){nA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[XR](r)})}[XR](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Xit(e),this.emit("stat",e),this[Uhe]()}[Uhe](){switch(this.type){case"File":return this[_he]();case"Directory":return this[Hhe]();case"SymbolicLink":return this[P6]();default:return this.end()}}[$R](e){return zhe(e,this.type==="Directory",this.portable)}[iA](e){return Vhe(e,this.prefix)}[Dv](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new Yhe({path:this[iA](this.path),linkpath:this.type==="Link"?this[iA](this.linkpath):this.linkpath,mode:this[$R](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Whe({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[iA](this.path),linkpath:this.type==="Link"?this[iA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Hhe](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[Dv](),this.end()}[P6](){nA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[k6](r)})}[k6](e){this.linkpath=rA(e),this[Dv](),this.end()}[jhe](e){this.type="Link",this.linkpath=rA(Mhe.relative(this.cwd,e)),this.stat.size=0,this[Dv](),this.end()}[_he](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[jhe](r)}this.linkCache.set(e,this.absolute)}if(this[Dv](),this.stat.size===0)return this.end();this[Q6]()}[Q6](){nA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[R6](r)})}[R6](e){if(this.fd=e,this[Ghe])return this[T0]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[ZR]()}[ZR](){let{fd:e,buf:r,offset:s,length:a,pos:n}=this;nA.read(e,r,s,a,n,(c,f)=>{if(c)return this[T0](()=>this.emit("error",c));this[x6](f)})}[T0](e){nA.close(this.fd,e)}[x6](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[T0](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[T0](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;athis[D6]())}[T6](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[ZR]()}}),F6=class extends eT{[b6](){this[XR](nA.lstatSync(this.absolute))}[P6](){this[k6](nA.readlinkSync(this.absolute))}[Q6](){this[R6](nA.openSync(this.absolute,"r"))}[ZR](){let e=!0;try{let{fd:r,buf:s,offset:a,length:n,pos:c}=this,f=nA.readSync(r,s,a,n,c);this[x6](f),e=!1}finally{if(e)try{this[T0](()=>{})}catch{}}}[T6](e){e()}[T0](e){nA.closeSync(this.fd),e()}},Zit=Jhe(class extends qhe{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=rA(e.path),this.mode=this[$R](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=rA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let s=!1;if(!this.preservePaths){let[a,n]=Khe(this.path);a&&(this.path=n,s=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new Yhe({path:this[iA](this.path),linkpath:this.type==="Link"?this[iA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),s&&this.warn("TAR_ENTRY_INFO",`stripping ${s} from absolute path`,{entry:this,path:s+this.path}),this.header.encode()&&!this.noPax&&super.write(new Whe({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[iA](this.path),linkpath:this.type==="Link"?this[iA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[iA](e){return Vhe(e,this.prefix)}[$R](e){return zhe(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});eT.Sync=F6;eT.Tar=Zit;var Xit=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";Zhe.exports=eT});var cT=_((l3t,i0e)=>{"use strict";var aT=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},$it=bI(),est=h6(),tst=YR(),q6=N6(),rst=q6.Sync,nst=q6.Tar,ist=$x(),Xhe=Buffer.alloc(1024),nT=Symbol("onStat"),tT=Symbol("ended"),sA=Symbol("queue"),NI=Symbol("current"),gm=Symbol("process"),rT=Symbol("processing"),$he=Symbol("processJob"),oA=Symbol("jobs"),O6=Symbol("jobDone"),iT=Symbol("addFSEntry"),e0e=Symbol("addTarEntry"),_6=Symbol("stat"),H6=Symbol("readdir"),sT=Symbol("onreaddir"),oT=Symbol("pipe"),t0e=Symbol("entry"),L6=Symbol("entryOpt"),j6=Symbol("writeEntryClass"),n0e=Symbol("write"),M6=Symbol("ondrain"),lT=Ie("fs"),r0e=Ie("path"),sst=KR(),U6=QI(),W6=sst(class extends $it{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=U6(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[j6]=q6,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new est.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[M6]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[M6]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[sA]=new ist,this[oA]=0,this.jobs=+e.jobs||4,this[rT]=!1,this[tT]=!1}[n0e](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[tT]=!0,this[gm](),this}write(e){if(this[tT])throw new Error("write after end");return e instanceof tst?this[e0e](e):this[iT](e),this.flowing}[e0e](e){let r=U6(r0e.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let s=new aT(e.path,r,!1);s.entry=new nst(e,this[L6](s)),s.entry.on("end",a=>this[O6](s)),this[oA]+=1,this[sA].push(s)}this[gm]()}[iT](e){let r=U6(r0e.resolve(this.cwd,e));this[sA].push(new aT(e,r)),this[gm]()}[_6](e){e.pending=!0,this[oA]+=1;let r=this.follow?"stat":"lstat";lT[r](e.absolute,(s,a)=>{e.pending=!1,this[oA]-=1,s?this.emit("error",s):this[nT](e,a)})}[nT](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[gm]()}[H6](e){e.pending=!0,this[oA]+=1,lT.readdir(e.absolute,(r,s)=>{if(e.pending=!1,this[oA]-=1,r)return this.emit("error",r);this[sT](e,s)})}[sT](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[gm]()}[gm](){if(!this[rT]){this[rT]=!0;for(let e=this[sA].head;e!==null&&this[oA]this.warn(r,s,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[t0e](e){this[oA]+=1;try{return new this[j6](e.path,this[L6](e)).on("end",()=>this[O6](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[M6](){this[NI]&&this[NI].entry&&this[NI].entry.resume()}[oT](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,c=n==="./"?"":n.replace(/\/*$/,"/");this[iT](c+a)});let r=e.entry,s=this.zip;s?r.on("data",a=>{s.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),G6=class extends W6{constructor(e){super(e),this[j6]=rst}pause(){}resume(){}[_6](e){let r=this.follow?"statSync":"lstatSync";this[nT](e,lT[r](e.absolute))}[H6](e,r){this[sT](e,lT.readdirSync(e.absolute))}[oT](e){let r=e.entry,s=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,c=n==="./"?"":n.replace(/\/*$/,"/");this[iT](c+a)}),s?r.on("data",a=>{s.write(a)}):r.on("data",a=>{super[n0e](a)})}};W6.Sync=G6;i0e.exports=W6});var GI=_(bv=>{"use strict";var ost=bI(),ast=Ie("events").EventEmitter,fl=Ie("fs"),J6=fl.writev;if(!J6){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;J6=(r,s,a,n)=>{let c=(p,h)=>n(p,h,s),f=new e;f.oncomplete=c,t.writeBuffers(r,s,a,f)}}var HI=Symbol("_autoClose"),Yu=Symbol("_close"),Pv=Symbol("_ended"),ii=Symbol("_fd"),s0e=Symbol("_finished"),N0=Symbol("_flags"),Y6=Symbol("_flush"),K6=Symbol("_handleChunk"),z6=Symbol("_makeBuf"),hT=Symbol("_mode"),uT=Symbol("_needDrain"),UI=Symbol("_onerror"),jI=Symbol("_onopen"),V6=Symbol("_onread"),LI=Symbol("_onwrite"),O0=Symbol("_open"),Wp=Symbol("_path"),dm=Symbol("_pos"),aA=Symbol("_queue"),MI=Symbol("_read"),o0e=Symbol("_readSize"),F0=Symbol("_reading"),fT=Symbol("_remain"),a0e=Symbol("_size"),AT=Symbol("_write"),OI=Symbol("_writing"),pT=Symbol("_defaultFlag"),_I=Symbol("_errored"),gT=class extends ost{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[_I]=!1,this[ii]=typeof r.fd=="number"?r.fd:null,this[Wp]=e,this[o0e]=r.readSize||16*1024*1024,this[F0]=!1,this[a0e]=typeof r.size=="number"?r.size:1/0,this[fT]=this[a0e],this[HI]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[ii]=="number"?this[MI]():this[O0]()}get fd(){return this[ii]}get path(){return this[Wp]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[O0](){fl.open(this[Wp],"r",(e,r)=>this[jI](e,r))}[jI](e,r){e?this[UI](e):(this[ii]=r,this.emit("open",r),this[MI]())}[z6](){return Buffer.allocUnsafe(Math.min(this[o0e],this[fT]))}[MI](){if(!this[F0]){this[F0]=!0;let e=this[z6]();if(e.length===0)return process.nextTick(()=>this[V6](null,0,e));fl.read(this[ii],e,0,e.length,null,(r,s,a)=>this[V6](r,s,a))}}[V6](e,r,s){this[F0]=!1,e?this[UI](e):this[K6](r,s)&&this[MI]()}[Yu](){if(this[HI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,fl.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[UI](e){this[F0]=!0,this[Yu](),this.emit("error",e)}[K6](e,r){let s=!1;return this[fT]-=e,e>0&&(s=super.write(ethis[jI](e,r))}[jI](e,r){this[pT]&&this[N0]==="r+"&&e&&e.code==="ENOENT"?(this[N0]="w",this[O0]()):e?this[UI](e):(this[ii]=r,this.emit("open",r),this[Y6]())}end(e,r){return e&&this.write(e,r),this[Pv]=!0,!this[OI]&&!this[aA].length&&typeof this[ii]=="number"&&this[LI](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[Pv]?(this.emit("error",new Error("write() after end()")),!1):this[ii]===null||this[OI]||this[aA].length?(this[aA].push(e),this[uT]=!0,!1):(this[OI]=!0,this[AT](e),!0)}[AT](e){fl.write(this[ii],e,0,e.length,this[dm],(r,s)=>this[LI](r,s))}[LI](e,r){e?this[UI](e):(this[dm]!==null&&(this[dm]+=r),this[aA].length?this[Y6]():(this[OI]=!1,this[Pv]&&!this[s0e]?(this[s0e]=!0,this[Yu](),this.emit("finish")):this[uT]&&(this[uT]=!1,this.emit("drain"))))}[Y6](){if(this[aA].length===0)this[Pv]&&this[LI](null,0);else if(this[aA].length===1)this[AT](this[aA].pop());else{let e=this[aA];this[aA]=[],J6(this[ii],e,this[dm],(r,s)=>this[LI](r,s))}}[Yu](){if(this[HI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,fl.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},X6=class extends dT{[O0](){let e;if(this[pT]&&this[N0]==="r+")try{e=fl.openSync(this[Wp],this[N0],this[hT])}catch(r){if(r.code==="ENOENT")return this[N0]="w",this[O0]();throw r}else e=fl.openSync(this[Wp],this[N0],this[hT]);this[jI](null,e)}[Yu](){if(this[HI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,fl.closeSync(e),this.emit("close")}}[AT](e){let r=!0;try{this[LI](null,fl.writeSync(this[ii],e,0,e.length,this[dm])),r=!1}finally{if(r)try{this[Yu]()}catch{}}}};bv.ReadStream=gT;bv.ReadStreamSync=Z6;bv.WriteStream=dT;bv.WriteStreamSync=X6});var BT=_((f3t,h0e)=>{"use strict";var lst=KR(),cst=TI(),ust=Ie("events"),fst=$x(),Ast=1024*1024,pst=YR(),l0e=JR(),hst=h6(),$6=Buffer.from([31,139]),Lc=Symbol("state"),mm=Symbol("writeEntry"),Yp=Symbol("readEntry"),eG=Symbol("nextEntry"),c0e=Symbol("processEntry"),Mc=Symbol("extendedHeader"),xv=Symbol("globalExtendedHeader"),L0=Symbol("meta"),u0e=Symbol("emitMeta"),Di=Symbol("buffer"),Vp=Symbol("queue"),ym=Symbol("ended"),f0e=Symbol("emittedEnd"),Em=Symbol("emit"),Al=Symbol("unzip"),mT=Symbol("consumeChunk"),yT=Symbol("consumeChunkSub"),tG=Symbol("consumeBody"),A0e=Symbol("consumeMeta"),p0e=Symbol("consumeHeader"),ET=Symbol("consuming"),rG=Symbol("bufferConcat"),nG=Symbol("maybeEnd"),kv=Symbol("writing"),M0=Symbol("aborted"),IT=Symbol("onDone"),Im=Symbol("sawValidEntry"),CT=Symbol("sawNullBlock"),wT=Symbol("sawEOF"),gst=t=>!0;h0e.exports=lst(class extends ust{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Im]=null,this.on(IT,r=>{(this[Lc]==="begin"||this[Im]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(IT,e.ondone):this.on(IT,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||Ast,this.filter=typeof e.filter=="function"?e.filter:gst,this.writable=!0,this.readable=!1,this[Vp]=new fst,this[Di]=null,this[Yp]=null,this[mm]=null,this[Lc]="begin",this[L0]="",this[Mc]=null,this[xv]=null,this[ym]=!1,this[Al]=null,this[M0]=!1,this[CT]=!1,this[wT]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[p0e](e,r){this[Im]===null&&(this[Im]=!1);let s;try{s=new cst(e,r,this[Mc],this[xv])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(s.nullBlock)this[CT]?(this[wT]=!0,this[Lc]==="begin"&&(this[Lc]="header"),this[Em]("eof")):(this[CT]=!0,this[Em]("nullBlock"));else if(this[CT]=!1,!s.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:s});else if(!s.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:s});else{let a=s.type;if(/^(Symbolic)?Link$/.test(a)&&!s.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:s});else if(!/^(Symbolic)?Link$/.test(a)&&s.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:s});else{let n=this[mm]=new pst(s,this[Mc],this[xv]);if(!this[Im])if(n.remain){let c=()=>{n.invalid||(this[Im]=!0)};n.on("end",c)}else this[Im]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[Em]("ignoredEntry",n),this[Lc]="ignore",n.resume()):n.size>0&&(this[L0]="",n.on("data",c=>this[L0]+=c),this[Lc]="meta"):(this[Mc]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[Em]("ignoredEntry",n),this[Lc]=n.remain?"ignore":"header",n.resume()):(n.remain?this[Lc]="body":(this[Lc]="header",n.end()),this[Yp]?this[Vp].push(n):(this[Vp].push(n),this[eG]())))}}}[c0e](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Yp]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",s=>this[eG]()),r=!1)):(this[Yp]=null,r=!1),r}[eG](){do;while(this[c0e](this[Vp].shift()));if(!this[Vp].length){let e=this[Yp];!e||e.flowing||e.size===e.remain?this[kv]||this.emit("drain"):e.once("drain",s=>this.emit("drain"))}}[tG](e,r){let s=this[mm],a=s.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return s.write(n),s.blockRemain||(this[Lc]="header",this[mm]=null,s.end()),n.length}[A0e](e,r){let s=this[mm],a=this[tG](e,r);return this[mm]||this[u0e](s),a}[Em](e,r,s){!this[Vp].length&&!this[Yp]?this.emit(e,r,s):this[Vp].push([e,r,s])}[u0e](e){switch(this[Em]("meta",this[L0]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Mc]=l0e.parse(this[L0],this[Mc],!1);break;case"GlobalExtendedHeader":this[xv]=l0e.parse(this[L0],this[xv],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Mc]=this[Mc]||Object.create(null),this[Mc].path=this[L0].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Mc]=this[Mc]||Object.create(null),this[Mc].linkpath=this[L0].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[M0]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[M0])return;if(this[Al]===null&&e){if(this[Di]&&(e=Buffer.concat([this[Di],e]),this[Di]=null),e.length<$6.length)return this[Di]=e,!0;for(let s=0;this[Al]===null&&s<$6.length;s++)e[s]!==$6[s]&&(this[Al]=!1);if(this[Al]===null){let s=this[ym];this[ym]=!1,this[Al]=new hst.Unzip,this[Al].on("data",n=>this[mT](n)),this[Al].on("error",n=>this.abort(n)),this[Al].on("end",n=>{this[ym]=!0,this[mT]()}),this[kv]=!0;let a=this[Al][s?"end":"write"](e);return this[kv]=!1,a}}this[kv]=!0,this[Al]?this[Al].write(e):this[mT](e),this[kv]=!1;let r=this[Vp].length?!1:this[Yp]?this[Yp].flowing:!0;return!r&&!this[Vp].length&&this[Yp].once("drain",s=>this.emit("drain")),r}[rG](e){e&&!this[M0]&&(this[Di]=this[Di]?Buffer.concat([this[Di],e]):e)}[nG](){if(this[ym]&&!this[f0e]&&!this[M0]&&!this[ET]){this[f0e]=!0;let e=this[mm];if(e&&e.blockRemain){let r=this[Di]?this[Di].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[Di]&&e.write(this[Di]),e.end()}this[Em](IT)}}[mT](e){if(this[ET])this[rG](e);else if(!e&&!this[Di])this[nG]();else{if(this[ET]=!0,this[Di]){this[rG](e);let r=this[Di];this[Di]=null,this[yT](r)}else this[yT](e);for(;this[Di]&&this[Di].length>=512&&!this[M0]&&!this[wT];){let r=this[Di];this[Di]=null,this[yT](r)}this[ET]=!1}(!this[Di]||this[ym])&&this[nG]()}[yT](e){let r=0,s=e.length;for(;r+512<=s&&!this[M0]&&!this[wT];)switch(this[Lc]){case"begin":case"header":this[p0e](e,r),r+=512;break;case"ignore":case"body":r+=this[tG](e,r);break;case"meta":r+=this[A0e](e,r);break;default:throw new Error("invalid state: "+this[Lc])}r{"use strict";var dst=DI(),d0e=BT(),qI=Ie("fs"),mst=GI(),g0e=Ie("path"),iG=FI();y0e.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let s=dst(t);if(s.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!s.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Est(s,e),s.noResume||yst(s),s.file&&s.sync?Ist(s):s.file?Cst(s,r):m0e(s)};var yst=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Est=(t,e)=>{let r=new Map(e.map(n=>[iG(n),!0])),s=t.filter,a=(n,c)=>{let f=c||g0e.parse(n).root||".",p=n===f?!1:r.has(n)?r.get(n):a(g0e.dirname(n),f);return r.set(n,p),p};t.filter=s?(n,c)=>s(n,c)&&a(iG(n)):n=>a(iG(n))},Ist=t=>{let e=m0e(t),r=t.file,s=!0,a;try{let n=qI.statSync(r),c=t.maxReadSize||16*1024*1024;if(n.size{let r=new d0e(t),s=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((c,f)=>{r.on("error",f),r.on("end",c),qI.stat(a,(p,h)=>{if(p)f(p);else{let E=new mst.ReadStream(a,{readSize:s,size:h.size});E.on("error",f),E.pipe(r)}})});return e?n.then(e,e):n},m0e=t=>new d0e(t)});var v0e=_((p3t,B0e)=>{"use strict";var wst=DI(),ST=cT(),E0e=GI(),I0e=vT(),C0e=Ie("path");B0e.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let s=wst(t);if(s.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!s.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return s.file&&s.sync?Bst(s,e):s.file?vst(s,e,r):s.sync?Sst(s,e):Dst(s,e)};var Bst=(t,e)=>{let r=new ST.Sync(t),s=new E0e.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(s),w0e(r,e)},vst=(t,e,r)=>{let s=new ST(t),a=new E0e.WriteStream(t.file,{mode:t.mode||438});s.pipe(a);let n=new Promise((c,f)=>{a.on("error",f),a.on("close",c),s.on("error",f)});return sG(s,e),r?n.then(r,r):n},w0e=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?I0e({file:C0e.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:s=>t.add(s)}):t.add(r)}),t.end()},sG=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return I0e({file:C0e.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:s=>t.add(s)}).then(s=>sG(t,e));t.add(r)}t.end()},Sst=(t,e)=>{let r=new ST.Sync(t);return w0e(r,e),r},Dst=(t,e)=>{let r=new ST(t);return sG(r,e),r}});var oG=_((h3t,Q0e)=>{"use strict";var Pst=DI(),S0e=cT(),Zl=Ie("fs"),D0e=GI(),P0e=vT(),b0e=Ie("path"),x0e=TI();Q0e.exports=(t,e,r)=>{let s=Pst(t);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),s.sync?bst(s,e):kst(s,e,r)};var bst=(t,e)=>{let r=new S0e.Sync(t),s=!0,a,n;try{try{a=Zl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=Zl.openSync(t.file,"w+");else throw p}let c=Zl.fstatSync(a),f=Buffer.alloc(512);e:for(n=0;nc.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}s=!1,xst(t,r,n,a,e)}finally{if(s)try{Zl.closeSync(a)}catch{}}},xst=(t,e,r,s,a)=>{let n=new D0e.WriteStreamSync(t.file,{fd:s,start:r});e.pipe(n),Qst(e,a)},kst=(t,e,r)=>{e=Array.from(e);let s=new S0e(t),a=(c,f,p)=>{let h=(I,T)=>{I?Zl.close(c,N=>p(I)):p(null,T)},E=0;if(f===0)return h(null,0);let C=0,S=Buffer.alloc(512),b=(I,T)=>{if(I)return h(I);if(C+=T,C<512&&T)return Zl.read(c,S,C,S.length-C,E+C,b);if(E===0&&S[0]===31&&S[1]===139)return h(new Error("cannot append to compressed archives"));if(C<512)return h(null,E);let N=new x0e(S);if(!N.cksumValid)return h(null,E);let U=512*Math.ceil(N.size/512);if(E+U+512>f||(E+=U+512,E>=f))return h(null,E);t.mtimeCache&&t.mtimeCache.set(N.path,N.mtime),C=0,Zl.read(c,S,0,512,E,b)};Zl.read(c,S,0,512,E,b)},n=new Promise((c,f)=>{s.on("error",f);let p="r+",h=(E,C)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",Zl.open(t.file,p,h);if(E)return f(E);Zl.fstat(C,(S,b)=>{if(S)return Zl.close(C,()=>f(S));a(C,b.size,(I,T)=>{if(I)return f(I);let N=new D0e.WriteStream(t.file,{fd:C,start:T});s.pipe(N),N.on("error",f),N.on("close",c),k0e(s,e)})})};Zl.open(t.file,p,h)});return r?n.then(r,r):n},Qst=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?P0e({file:b0e.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:s=>t.add(s)}):t.add(r)}),t.end()},k0e=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return P0e({file:b0e.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:s=>t.add(s)}).then(s=>k0e(t,e));t.add(r)}t.end()}});var T0e=_((g3t,R0e)=>{"use strict";var Rst=DI(),Tst=oG();R0e.exports=(t,e,r)=>{let s=Rst(t);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),Fst(s),Tst(s,e,r)};var Fst=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,s)=>e(r,s)&&!(t.mtimeCache.get(r)>s.mtime):(r,s)=>!(t.mtimeCache.get(r)>s.mtime)}});var O0e=_((d3t,N0e)=>{var{promisify:F0e}=Ie("util"),U0=Ie("fs"),Nst=t=>{if(!t)t={mode:511,fs:U0};else if(typeof t=="object")t={mode:511,fs:U0,...t};else if(typeof t=="number")t={mode:t,fs:U0};else if(typeof t=="string")t={mode:parseInt(t,8),fs:U0};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||U0.mkdir,t.mkdirAsync=F0e(t.mkdir),t.stat=t.stat||t.fs.stat||U0.stat,t.statAsync=F0e(t.stat),t.statSync=t.statSync||t.fs.statSync||U0.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||U0.mkdirSync,t};N0e.exports=Nst});var M0e=_((m3t,L0e)=>{var Ost=process.platform,{resolve:Lst,parse:Mst}=Ie("path"),Ust=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=Lst(t),Ost==="win32"){let e=/[*|"<>?:]/,{root:r}=Mst(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};L0e.exports=Ust});var G0e=_((y3t,j0e)=>{var{dirname:U0e}=Ie("path"),_0e=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(s=>s.isDirectory()?r:void 0,s=>s.code==="ENOENT"?_0e(t,U0e(e),e):void 0),H0e=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(s){return s.code==="ENOENT"?H0e(t,U0e(e),e):void 0}};j0e.exports={findMade:_0e,findMadeSync:H0e}});var cG=_((E3t,W0e)=>{var{dirname:q0e}=Ie("path"),aG=(t,e,r)=>{e.recursive=!1;let s=q0e(t);return s===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return aG(s,e).then(n=>aG(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},lG=(t,e,r)=>{let s=q0e(t);if(e.recursive=!1,s===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return lG(t,e,lG(s,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};W0e.exports={mkdirpManual:aG,mkdirpManualSync:lG}});var J0e=_((I3t,V0e)=>{var{dirname:Y0e}=Ie("path"),{findMade:_st,findMadeSync:Hst}=G0e(),{mkdirpManual:jst,mkdirpManualSync:Gst}=cG(),qst=(t,e)=>(e.recursive=!0,Y0e(t)===t?e.mkdirAsync(t,e):_st(e,t).then(s=>e.mkdirAsync(t,e).then(()=>s).catch(a=>{if(a.code==="ENOENT")return jst(t,e);throw a}))),Wst=(t,e)=>{if(e.recursive=!0,Y0e(t)===t)return e.mkdirSync(t,e);let s=Hst(e,t);try{return e.mkdirSync(t,e),s}catch(a){if(a.code==="ENOENT")return Gst(t,e);throw a}};V0e.exports={mkdirpNative:qst,mkdirpNativeSync:Wst}});var X0e=_((C3t,Z0e)=>{var K0e=Ie("fs"),Yst=process.version,uG=Yst.replace(/^v/,"").split("."),z0e=+uG[0]>10||+uG[0]==10&&+uG[1]>=12,Vst=z0e?t=>t.mkdir===K0e.mkdir:()=>!1,Jst=z0e?t=>t.mkdirSync===K0e.mkdirSync:()=>!1;Z0e.exports={useNative:Vst,useNativeSync:Jst}});var ige=_((w3t,nge)=>{var WI=O0e(),YI=M0e(),{mkdirpNative:$0e,mkdirpNativeSync:ege}=J0e(),{mkdirpManual:tge,mkdirpManualSync:rge}=cG(),{useNative:Kst,useNativeSync:zst}=X0e(),VI=(t,e)=>(t=YI(t),e=WI(e),Kst(e)?$0e(t,e):tge(t,e)),Zst=(t,e)=>(t=YI(t),e=WI(e),zst(e)?ege(t,e):rge(t,e));VI.sync=Zst;VI.native=(t,e)=>$0e(YI(t),WI(e));VI.manual=(t,e)=>tge(YI(t),WI(e));VI.nativeSync=(t,e)=>ege(YI(t),WI(e));VI.manualSync=(t,e)=>rge(YI(t),WI(e));nge.exports=VI});var fge=_((B3t,uge)=>{"use strict";var Uc=Ie("fs"),Cm=Ie("path"),Xst=Uc.lchown?"lchown":"chown",$st=Uc.lchownSync?"lchownSync":"chownSync",oge=Uc.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),sge=(t,e,r)=>{try{return Uc[$st](t,e,r)}catch(s){if(s.code!=="ENOENT")throw s}},eot=(t,e,r)=>{try{return Uc.chownSync(t,e,r)}catch(s){if(s.code!=="ENOENT")throw s}},tot=oge?(t,e,r,s)=>a=>{!a||a.code!=="EISDIR"?s(a):Uc.chown(t,e,r,s)}:(t,e,r,s)=>s,fG=oge?(t,e,r)=>{try{return sge(t,e,r)}catch(s){if(s.code!=="EISDIR")throw s;eot(t,e,r)}}:(t,e,r)=>sge(t,e,r),rot=process.version,age=(t,e,r)=>Uc.readdir(t,e,r),not=(t,e)=>Uc.readdirSync(t,e);/^v4\./.test(rot)&&(age=(t,e,r)=>Uc.readdir(t,r));var DT=(t,e,r,s)=>{Uc[Xst](t,e,r,tot(t,e,r,a=>{s(a&&a.code!=="ENOENT"?a:null)}))},lge=(t,e,r,s,a)=>{if(typeof e=="string")return Uc.lstat(Cm.resolve(t,e),(n,c)=>{if(n)return a(n.code!=="ENOENT"?n:null);c.name=e,lge(t,c,r,s,a)});if(e.isDirectory())AG(Cm.resolve(t,e.name),r,s,n=>{if(n)return a(n);let c=Cm.resolve(t,e.name);DT(c,r,s,a)});else{let n=Cm.resolve(t,e.name);DT(n,r,s,a)}},AG=(t,e,r,s)=>{age(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return s();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return s(a)}if(a||!n.length)return DT(t,e,r,s);let c=n.length,f=null,p=h=>{if(!f){if(h)return s(f=h);if(--c===0)return DT(t,e,r,s)}};n.forEach(h=>lge(t,h,e,r,p))})},iot=(t,e,r,s)=>{if(typeof e=="string")try{let a=Uc.lstatSync(Cm.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&cge(Cm.resolve(t,e.name),r,s),fG(Cm.resolve(t,e.name),r,s)},cge=(t,e,r)=>{let s;try{s=not(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return fG(t,e,r);throw a}return s&&s.length&&s.forEach(a=>iot(t,a,e,r)),fG(t,e,r)};uge.exports=AG;AG.sync=cge});var gge=_((v3t,pG)=>{"use strict";var Age=ige(),_c=Ie("fs"),PT=Ie("path"),pge=fge(),Vu=QI(),bT=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},xT=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},kT=(t,e)=>t.get(Vu(e)),Qv=(t,e,r)=>t.set(Vu(e),r),sot=(t,e)=>{_c.stat(t,(r,s)=>{(r||!s.isDirectory())&&(r=new xT(t,r&&r.code||"ENOTDIR")),e(r)})};pG.exports=(t,e,r)=>{t=Vu(t);let s=e.umask,a=e.mode|448,n=(a&s)!==0,c=e.uid,f=e.gid,p=typeof c=="number"&&typeof f=="number"&&(c!==e.processUid||f!==e.processGid),h=e.preserve,E=e.unlink,C=e.cache,S=Vu(e.cwd),b=(N,U)=>{N?r(N):(Qv(C,t,!0),U&&p?pge(U,c,f,W=>b(W)):n?_c.chmod(t,a,r):r())};if(C&&kT(C,t)===!0)return b();if(t===S)return sot(t,b);if(h)return Age(t,{mode:a}).then(N=>b(null,N),b);let T=Vu(PT.relative(S,t)).split("/");QT(S,T,a,C,E,S,null,b)};var QT=(t,e,r,s,a,n,c,f)=>{if(!e.length)return f(null,c);let p=e.shift(),h=Vu(PT.resolve(t+"/"+p));if(kT(s,h))return QT(h,e,r,s,a,n,c,f);_c.mkdir(h,r,hge(h,e,r,s,a,n,c,f))},hge=(t,e,r,s,a,n,c,f)=>p=>{p?_c.lstat(t,(h,E)=>{if(h)h.path=h.path&&Vu(h.path),f(h);else if(E.isDirectory())QT(t,e,r,s,a,n,c,f);else if(a)_c.unlink(t,C=>{if(C)return f(C);_c.mkdir(t,r,hge(t,e,r,s,a,n,c,f))});else{if(E.isSymbolicLink())return f(new bT(t,t+"/"+e.join("/")));f(p)}}):(c=c||t,QT(t,e,r,s,a,n,c,f))},oot=t=>{let e=!1,r="ENOTDIR";try{e=_c.statSync(t).isDirectory()}catch(s){r=s.code}finally{if(!e)throw new xT(t,r)}};pG.exports.sync=(t,e)=>{t=Vu(t);let r=e.umask,s=e.mode|448,a=(s&r)!==0,n=e.uid,c=e.gid,f=typeof n=="number"&&typeof c=="number"&&(n!==e.processUid||c!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,C=Vu(e.cwd),S=N=>{Qv(E,t,!0),N&&f&&pge.sync(N,n,c),a&&_c.chmodSync(t,s)};if(E&&kT(E,t)===!0)return S();if(t===C)return oot(C),S();if(p)return S(Age.sync(t,s));let I=Vu(PT.relative(C,t)).split("/"),T=null;for(let N=I.shift(),U=C;N&&(U+="/"+N);N=I.shift())if(U=Vu(PT.resolve(U)),!kT(E,U))try{_c.mkdirSync(U,s),T=T||U,Qv(E,U,!0)}catch{let ee=_c.lstatSync(U);if(ee.isDirectory()){Qv(E,U,!0);continue}else if(h){_c.unlinkSync(U),_c.mkdirSync(U,s),T=T||U,Qv(E,U,!0);continue}else if(ee.isSymbolicLink())return new bT(U,U+"/"+I.join("/"))}return S(T)}});var gG=_((S3t,dge)=>{var hG=Object.create(null),{hasOwnProperty:aot}=Object.prototype;dge.exports=t=>(aot.call(hG,t)||(hG[t]=t.normalize("NFKD")),hG[t])});var Ige=_((D3t,Ege)=>{var mge=Ie("assert"),lot=gG(),cot=FI(),{join:yge}=Ie("path"),uot=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,fot=uot==="win32";Ege.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((C,S)=>(C.length&&(S=yge(C[C.length-1],S)),C.push(S||"/"),C),[]),s=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(C=>t.get(C)),dirs:[...E.dirs].map(C=>t.get(C))}},n=h=>{let{paths:E,dirs:C}=a(h);return E.every(S=>S[0]===h)&&C.every(S=>S[0]instanceof Set&&S[0].has(h))},c=h=>s.has(h)||!n(h)?!1:(s.add(h),h(()=>f(h)),!0),f=h=>{if(!s.has(h))return!1;let{paths:E,dirs:C}=e.get(h),S=new Set;return E.forEach(b=>{let I=t.get(b);mge.equal(I[0],h),I.length===1?t.delete(b):(I.shift(),typeof I[0]=="function"?S.add(I[0]):I[0].forEach(T=>S.add(T)))}),C.forEach(b=>{let I=t.get(b);mge(I[0]instanceof Set),I[0].size===1&&I.length===1?t.delete(b):I[0].size===1?(I.shift(),S.add(I[0])):I[0].delete(h)}),s.delete(h),S.forEach(b=>c(b)),!0};return{check:n,reserve:(h,E)=>{h=fot?["win32 parallelization disabled"]:h.map(S=>lot(cot(yge(S))).toLowerCase());let C=new Set(h.map(S=>r(S)).reduce((S,b)=>S.concat(b)));return e.set(E,{dirs:C,paths:h}),h.forEach(S=>{let b=t.get(S);b?b.push(E):t.set(S,[E])}),C.forEach(S=>{let b=t.get(S);b?b[b.length-1]instanceof Set?b[b.length-1].add(E):b.push(new Set([E])):t.set(S,[new Set([E])])}),c(E)}}}});var Bge=_((P3t,wge)=>{var Aot=process.platform,pot=Aot==="win32",hot=global.__FAKE_TESTING_FS__||Ie("fs"),{O_CREAT:got,O_TRUNC:dot,O_WRONLY:mot,UV_FS_O_FILEMAP:Cge=0}=hot.constants,yot=pot&&!!Cge,Eot=512*1024,Iot=Cge|dot|got|mot;wge.exports=yot?t=>t"w"});var vG=_((b3t,Lge)=>{"use strict";var Cot=Ie("assert"),wot=BT(),Mn=Ie("fs"),Bot=GI(),Jp=Ie("path"),Fge=gge(),vge=v6(),vot=Ige(),Sot=S6(),Xl=QI(),Dot=FI(),Pot=gG(),Sge=Symbol("onEntry"),yG=Symbol("checkFs"),Dge=Symbol("checkFs2"),FT=Symbol("pruneCache"),EG=Symbol("isReusable"),Hc=Symbol("makeFs"),IG=Symbol("file"),CG=Symbol("directory"),NT=Symbol("link"),Pge=Symbol("symlink"),bge=Symbol("hardlink"),xge=Symbol("unsupported"),kge=Symbol("checkPath"),_0=Symbol("mkdir"),Zo=Symbol("onError"),RT=Symbol("pending"),Qge=Symbol("pend"),JI=Symbol("unpend"),dG=Symbol("ended"),mG=Symbol("maybeClose"),wG=Symbol("skip"),Rv=Symbol("doChown"),Tv=Symbol("uid"),Fv=Symbol("gid"),Nv=Symbol("checkedCwd"),Nge=Ie("crypto"),Oge=Bge(),bot=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Ov=bot==="win32",xot=(t,e)=>{if(!Ov)return Mn.unlink(t,e);let r=t+".DELETE."+Nge.randomBytes(16).toString("hex");Mn.rename(t,r,s=>{if(s)return e(s);Mn.unlink(r,e)})},kot=t=>{if(!Ov)return Mn.unlinkSync(t);let e=t+".DELETE."+Nge.randomBytes(16).toString("hex");Mn.renameSync(t,e),Mn.unlinkSync(e)},Rge=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Tge=t=>Pot(Dot(Xl(t))).toLowerCase(),Qot=(t,e)=>{e=Tge(e);for(let r of t.keys()){let s=Tge(r);(s===e||s.indexOf(e+"/")===0)&&t.delete(r)}},Rot=t=>{for(let e of t.keys())t.delete(e)},Lv=class extends wot{constructor(e){if(e||(e={}),e.ondone=r=>{this[dG]=!0,this[mG]()},super(e),this[Nv]=!1,this.reservations=vot(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[RT]=0,this[dG]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||Ov,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=Xl(Jp.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[Sge](r))}warn(e,r,s={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(s.recoverable=!1),super.warn(e,r,s)}[mG](){this[dG]&&this[RT]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[kge](e){if(this.strip){let r=Xl(e.path).split("/");if(r.length=this.strip)e.linkpath=s.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=Xl(e.path),s=r.split("/");if(s.includes("..")||Ov&&/^[a-z]:\.\.$/i.test(s[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=Sot(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Jp.isAbsolute(e.path)?e.absolute=Xl(Jp.resolve(e.path)):e.absolute=Xl(Jp.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:Xl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Jp.win32.parse(e.absolute);e.absolute=r+vge.encode(e.absolute.substr(r.length));let{root:s}=Jp.win32.parse(e.path);e.path=s+vge.encode(e.path.substr(s.length))}return!0}[Sge](e){if(!this[kge](e))return e.resume();switch(Cot.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[yG](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[xge](e)}}[Zo](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[JI](),r.resume())}[_0](e,r,s){Fge(Xl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},s)}[Rv](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Tv](e){return Rge(this.uid,e.uid,this.processUid)}[Fv](e){return Rge(this.gid,e.gid,this.processGid)}[IG](e,r){let s=e.mode&4095||this.fmode,a=new Bot.WriteStream(e.absolute,{flags:Oge(e.size),mode:s,autoClose:!1});a.on("error",p=>{a.fd&&Mn.close(a.fd,()=>{}),a.write=()=>!0,this[Zo](p,e),r()});let n=1,c=p=>{if(p){a.fd&&Mn.close(a.fd,()=>{}),this[Zo](p,e),r();return}--n===0&&Mn.close(a.fd,h=>{h?this[Zo](h,e):this[JI](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let C=e.atime||new Date,S=e.mtime;Mn.futimes(E,C,S,b=>b?Mn.utimes(h,C,S,I=>c(I&&b)):c())}if(this[Rv](e)){n++;let C=this[Tv](e),S=this[Fv](e);Mn.fchown(E,C,S,b=>b?Mn.chown(h,C,S,I=>c(I&&b)):c())}c()});let f=this.transform&&this.transform(e)||e;f!==e&&(f.on("error",p=>{this[Zo](p,e),r()}),e.pipe(f)),f.pipe(a)}[CG](e,r){let s=e.mode&4095||this.dmode;this[_0](e.absolute,s,a=>{if(a){this[Zo](a,e),r();return}let n=1,c=f=>{--n===0&&(r(),this[JI](),e.resume())};e.mtime&&!this.noMtime&&(n++,Mn.utimes(e.absolute,e.atime||new Date,e.mtime,c)),this[Rv](e)&&(n++,Mn.chown(e.absolute,this[Tv](e),this[Fv](e),c)),c()})}[xge](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Pge](e,r){this[NT](e,e.linkpath,"symlink",r)}[bge](e,r){let s=Xl(Jp.resolve(this.cwd,e.linkpath));this[NT](e,s,"link",r)}[Qge](){this[RT]++}[JI](){this[RT]--,this[mG]()}[wG](e){this[JI](),e.resume()}[EG](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!Ov}[yG](e){this[Qge]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,s=>this[Dge](e,s))}[FT](e){e.type==="SymbolicLink"?Rot(this.dirCache):e.type!=="Directory"&&Qot(this.dirCache,e.absolute)}[Dge](e,r){this[FT](e);let s=f=>{this[FT](e),r(f)},a=()=>{this[_0](this.cwd,this.dmode,f=>{if(f){this[Zo](f,e),s();return}this[Nv]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let f=Xl(Jp.dirname(e.absolute));if(f!==this.cwd)return this[_0](f,this.dmode,p=>{if(p){this[Zo](p,e),s();return}c()})}c()},c=()=>{Mn.lstat(e.absolute,(f,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[wG](e),s();return}if(f||this[EG](e,p))return this[Hc](null,e,s);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=C=>this[Hc](C,e,s);return h?Mn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return Mn.rmdir(e.absolute,h=>this[Hc](h,e,s))}if(e.absolute===this.cwd)return this[Hc](null,e,s);xot(e.absolute,h=>this[Hc](h,e,s))})};this[Nv]?n():a()}[Hc](e,r,s){if(e){this[Zo](e,r),s();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[IG](r,s);case"Link":return this[bge](r,s);case"SymbolicLink":return this[Pge](r,s);case"Directory":case"GNUDumpDir":return this[CG](r,s)}}[NT](e,r,s,a){Mn[s](r,e.absolute,n=>{n?this[Zo](n,e):(this[JI](),e.resume()),a()})}},TT=t=>{try{return[null,t()]}catch(e){return[e,null]}},BG=class extends Lv{[Hc](e,r){return super[Hc](e,r,()=>{})}[yG](e){if(this[FT](e),!this[Nv]){let n=this[_0](this.cwd,this.dmode);if(n)return this[Zo](n,e);this[Nv]=!0}if(e.absolute!==this.cwd){let n=Xl(Jp.dirname(e.absolute));if(n!==this.cwd){let c=this[_0](n,this.dmode);if(c)return this[Zo](c,e)}}let[r,s]=TT(()=>Mn.lstatSync(e.absolute));if(s&&(this.keep||this.newer&&s.mtime>e.mtime))return this[wG](e);if(r||this[EG](e,s))return this[Hc](null,e);if(s.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(s.mode&4095)!==e.mode,[f]=c?TT(()=>{Mn.chmodSync(e.absolute,e.mode)}):[];return this[Hc](f,e)}let[n]=TT(()=>Mn.rmdirSync(e.absolute));this[Hc](n,e)}let[a]=e.absolute===this.cwd?[]:TT(()=>kot(e.absolute));this[Hc](a,e)}[IG](e,r){let s=e.mode&4095||this.fmode,a=f=>{let p;try{Mn.closeSync(n)}catch(h){p=h}(f||p)&&this[Zo](f||p,e),r()},n;try{n=Mn.openSync(e.absolute,Oge(e.size),s)}catch(f){return a(f)}let c=this.transform&&this.transform(e)||e;c!==e&&(c.on("error",f=>this[Zo](f,e)),e.pipe(c)),c.on("data",f=>{try{Mn.writeSync(n,f,0,f.length)}catch(p){a(p)}}),c.on("end",f=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{Mn.futimesSync(n,h,E)}catch(C){try{Mn.utimesSync(e.absolute,h,E)}catch{p=C}}}if(this[Rv](e)){let h=this[Tv](e),E=this[Fv](e);try{Mn.fchownSync(n,h,E)}catch(C){try{Mn.chownSync(e.absolute,h,E)}catch{p=p||C}}}a(p)})}[CG](e,r){let s=e.mode&4095||this.dmode,a=this[_0](e.absolute,s);if(a){this[Zo](a,e),r();return}if(e.mtime&&!this.noMtime)try{Mn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[Rv](e))try{Mn.chownSync(e.absolute,this[Tv](e),this[Fv](e))}catch{}r(),e.resume()}[_0](e,r){try{return Fge.sync(Xl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(s){return s}}[NT](e,r,s,a){try{Mn[s+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[Zo](n,e)}}};Lv.Sync=BG;Lge.exports=Lv});var jge=_((x3t,Hge)=>{"use strict";var Tot=DI(),OT=vG(),Uge=Ie("fs"),_ge=GI(),Mge=Ie("path"),SG=FI();Hge.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let s=Tot(t);if(s.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!s.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Fot(s,e),s.file&&s.sync?Not(s):s.file?Oot(s,r):s.sync?Lot(s):Mot(s)};var Fot=(t,e)=>{let r=new Map(e.map(n=>[SG(n),!0])),s=t.filter,a=(n,c)=>{let f=c||Mge.parse(n).root||".",p=n===f?!1:r.has(n)?r.get(n):a(Mge.dirname(n),f);return r.set(n,p),p};t.filter=s?(n,c)=>s(n,c)&&a(SG(n)):n=>a(SG(n))},Not=t=>{let e=new OT.Sync(t),r=t.file,s=Uge.statSync(r),a=t.maxReadSize||16*1024*1024;new _ge.ReadStreamSync(r,{readSize:a,size:s.size}).pipe(e)},Oot=(t,e)=>{let r=new OT(t),s=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((c,f)=>{r.on("error",f),r.on("close",c),Uge.stat(a,(p,h)=>{if(p)f(p);else{let E=new _ge.ReadStream(a,{readSize:s,size:h.size});E.on("error",f),E.pipe(r)}})});return e?n.then(e,e):n},Lot=t=>new OT.Sync(t),Mot=t=>new OT(t)});var Gge=_(bs=>{"use strict";bs.c=bs.create=v0e();bs.r=bs.replace=oG();bs.t=bs.list=vT();bs.u=bs.update=T0e();bs.x=bs.extract=jge();bs.Pack=cT();bs.Unpack=vG();bs.Parse=BT();bs.ReadEntry=YR();bs.WriteEntry=N6();bs.Header=TI();bs.Pax=JR();bs.types=m6()});var DG,qge,H0,Mv,Uv,Wge=Ze(()=>{DG=ut(Ld()),qge=Ie("worker_threads"),H0=Symbol("kTaskInfo"),Mv=class{constructor(e,r){this.fn=e;this.limit=(0,DG.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},Uv=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,DG.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let s=this.workers.pop();s?s.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new qge.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[H0])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[H0].resolve(r),e[H0]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[H0]?.reject(r),e[H0]=null}),e.on("exit",r=>{r!==0&&e[H0]?.reject(new Error(`Worker exited with code ${r}`)),e[H0]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((s,a)=>{r[H0]={resolve:s,reject:a},r.postMessage(e)})})}}});var Vge=_((T3t,Yge)=>{var PG;Yge.exports.getContent=()=>(typeof PG>"u"&&(PG=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),PG)});var ps={};Vt(ps,{convertToZip:()=>jot,convertToZipWorker:()=>kG,extractArchiveTo:()=>Xge,getDefaultTaskPool:()=>zge,getTaskPoolForConfiguration:()=>Zge,makeArchiveFromDirectory:()=>Hot});function Uot(t,e){switch(t){case"async":return new Mv(kG,{poolSize:e});case"workers":return new Uv((0,xG.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function zge(){return typeof bG>"u"&&(bG=Uot("workers",fs.availableParallelism())),bG}function Zge(t){return typeof t>"u"?zge():Yl(_ot,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new Mv(kG,{poolSize:r});case"workers":return new Uv((0,xG.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function kG(t){let{tmpFile:e,tgz:r,compressionLevel:s,extractBufferOpts:a}=t,n=new As(e,{create:!0,level:s,stats:$a.makeDefaultStats()}),c=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await Xge(c,n,a),n.saveAndClose(),e}async function Hot(t,{baseFs:e=new Yn,prefixPath:r=vt.root,compressionLevel:s,inMemory:a=!1}={}){let n;if(a)n=new As(null,{level:s});else{let f=await ce.mktempPromise(),p=J.join(f,"archive.zip");n=new As(p,{create:!0,level:s})}let c=J.resolve(vt.root,r);return await n.copyPromise(c,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function jot(t,e={}){let r=await ce.mktempPromise(),s=J.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??Zge(e.configuration)).run({tmpFile:s,tgz:t,compressionLevel:a,extractBufferOpts:n}),new As(s,{level:e.compressionLevel})}async function*Got(t){let e=new Kge.default.Parse,r=new Jge.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",s=>{r.write(s)}),e.on("error",s=>{r.destroy(s)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let s of r){let a=s;yield a,a.resume()}}async function Xge(t,e,{stripComponents:r=0,prefixPath:s=vt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let c=n.path.split(/\//g);return!!(c.some(f=>f==="..")||c.length<=r)}for await(let n of Got(t)){if(a(n))continue;let c=J.normalize(fe.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(c.length<=r)continue;let f=c.slice(r).join("/"),p=J.join(s,f),h=420;switch((n.type==="Directory"||(n.mode??0)&73)&&(h|=73),n.type){case"Directory":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.writeFileSync(p,await WE(n),{mode:h}),e.utimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break}}return e}var Jge,Kge,xG,bG,_ot,$ge=Ze(()=>{Ge();Dt();eA();Jge=Ie("stream"),Kge=ut(Gge());Wge();bc();xG=ut(Vge());_ot=new WeakMap});var tde=_((QG,ede)=>{(function(t,e){typeof QG=="object"?ede.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(QG,function(){function t(a,n){var c=n?"\u2514":"\u251C";return a?c+="\u2500 ":c+="\u2500\u2500\u2510",c}function e(a,n){var c=[];for(var f in a)a.hasOwnProperty(f)&&(n&&typeof a[f]=="function"||c.push(f));return c}function r(a,n,c,f,p,h,E){var C="",S=0,b,I,T=f.slice(0);if(T.push([n,c])&&f.length>0&&(f.forEach(function(U,W){W>0&&(C+=(U[1]?" ":"\u2502")+" "),!I&&U[0]===n&&(I=!0)}),C+=t(a,c)+a,p&&(typeof n!="object"||n instanceof Date)&&(C+=": "+n),I&&(C+=" (circular ref.)"),E(C)),!I&&typeof n=="object"){var N=e(n,h);N.forEach(function(U){b=++S===N.length,r(U,n[U],b,T,p,h,E)})}}var s={};return s.asLines=function(a,n,c,f){var p=typeof c!="function"?c:!1;r(".",a,!1,[],n,p,f||c)},s.asTree=function(a,n,c){var f="";return r(".",a,!1,[],n,c,function(p){f+=p+` `}),f},s})});var xs={};Vt(xs,{emitList:()=>qot,emitTree:()=>sde,treeNodeToJson:()=>ide,treeNodeToTreeify:()=>nde});function nde(t,{configuration:e}){let r={},s=0,a=(n,c)=>{let f=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of f){if(!h)continue;let{label:E,value:C,children:S}=h,b=[];typeof E<"u"&&b.push(zd(e,E,2)),typeof C<"u"&&b.push(Ht(e,C[0],C[1])),b.length===0&&b.push(zd(e,`${p}`,2));let I=b.join(": ").trim(),T=`\0${s++}\0`,N=c[`${T}${I}`]={};typeof S<"u"&&a(S,N)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function ide(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Zd(r.value[0],r.value[1])}let s=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,c]of s)c&&(a[Wot(n)]=e(c));return typeof r.value>"u"?a:{value:Zd(r.value[0],r.value[1]),children:a}};return e(t)}function qot(t,{configuration:e,stdout:r,json:s}){let a=t.map(n=>({value:n}));sde({children:a},{configuration:e,stdout:r,json:s})}function sde(t,{configuration:e,stdout:r,json:s,separators:a=0}){if(s){let c=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let f of c)f&&r.write(`${JSON.stringify(ide(f))} `);return}let n=(0,rde.asTree)(nde(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),a>=2)for(let c=0;c<2;++c)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 $2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function Wot(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var rde,ode=Ze(()=>{rde=ut(tde());xc()});var LT,ade=Ze(()=>{LT=class{constructor(e){this.releaseFunction=e;this.map=new Map}addOrCreate(e,r){let s=this.map.get(e);if(typeof s<"u"){if(s.refCount<=0)throw new Error(`Race condition in RefCountedMap. While adding a new key the refCount is: ${s.refCount} for ${JSON.stringify(e)}`);return s.refCount++,{value:s.value,release:()=>this.release(e)}}else{let a=r();return this.map.set(e,{refCount:1,value:a}),{value:a,release:()=>this.release(e)}}}release(e){let r=this.map.get(e);if(!r)throw new Error(`Unbalanced calls to release. No known instances of: ${JSON.stringify(e)}`);let s=r.refCount;if(s<=0)throw new Error(`Unbalanced calls to release. Too many release vs alloc refcount would become: ${s-1} of ${JSON.stringify(e)}`);s==1?(this.map.delete(e),this.releaseFunction(r.value)):r.refCount--}}});function _v(t){let e=t.match(Yot);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var lde,RG,TG,MT,Kr,Yot,FG=Ze(()=>{Ge();Dt();Dt();eA();lde=Ie("crypto"),RG=ut(Ie("fs"));ade();Rc();I0();bc();Wo();TG=YE(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),MT=YE(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Kr=class t{constructor(e,{configuration:r,immutable:s=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.refCountedZipFsCache=new LT(e=>{e.discardAndClose()});this.cacheId=`-${(0,lde.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=s,this.check=a;let{cacheSpec:n,cacheKey:c}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=c}static async find(e,{immutable:r,check:s}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:s});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),s=r!=="mixed"?`c${r}`:"";return{cacheKey:[MT,s].join(""),cacheSpec:s}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${nI(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=_v(r).hash.slice(0,10);return`${nI(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:s}=_v(e);if(r===null||r{let pe=new As,Be=J.join(vt.root,P8(e));return pe.mkdirSync(Be,{recursive:!0}),pe.writeJsonSync(J.join(Be,Er.manifest),{name:un(e),mocked:!0}),pe},E=async(pe,{isColdHit:Be,controlPath:Ce=null})=>{if(Ce===null&&c.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?_v(r).cacheKey:this.cacheKey,we=!c.skipIntegrityCheck||!r?`${g}/${await vQ(pe)}`:r;if(Ce!==null){let Ae=!c.skipIntegrityCheck||!r?`${this.cacheKey}/${await vQ(Ce)}`:r;if(we!==Ae)throw new jt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let ye=null;switch(r!==null&&we!==r&&(this.check?ye="throw":_v(r).cacheKey!==_v(we).cacheKey?ye="update":ye=this.configuration.get("checksumBehavior")),ye){case null:case"update":return{isValid:!0,hash:we};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new jt(18,"The remote archive doesn't match the expected checksum")}},C=async pe=>{if(!n)throw new Error(`Cache check required but no loader configured for ${Yr(this.configuration,e)}`);let Be=await n(),Ce=Be.getRealPath();Be.saveAndClose(),await ce.chmodPromise(Ce,420);let g=await E(pe,{controlPath:Ce,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},S=async()=>{if(f===null||!await ce.existsPromise(f)){let pe=await n(),Be=pe.getRealPath();return pe.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:f}},b=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${Yr(this.configuration,e)}`);if(this.immutable)throw new jt(56,`Cache entry required but missing for ${Yr(this.configuration,e)}`);let{path:pe,source:Be}=await S(),{hash:Ce}=await E(pe,{isColdHit:!0}),g=this.getLocatorPath(e,Ce),we=[];Be!=="mirror"&&f!==null&&we.push(async()=>{let Ae=`${f}${this.cacheId}`;await ce.copyFilePromise(pe,Ae,RG.default.constants.COPYFILE_FICLONE),await ce.chmodPromise(Ae,420),await ce.renamePromise(Ae,f)}),(!c.mirrorWriteOnly||f===null)&&we.push(async()=>{let Ae=`${g}${this.cacheId}`;await ce.copyFilePromise(pe,Ae,RG.default.constants.COPYFILE_FICLONE),await ce.chmodPromise(Ae,420),await ce.renamePromise(Ae,g)});let ye=c.mirrorWriteOnly?f??g:g;return await Promise.all(we.map(Ae=>Ae())),[!1,ye,Ce]},I=async()=>{let Be=(async()=>{let Ce=c.unstablePackages?.has(e.locatorHash),g=Ce||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,we=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,ye=!!c.mockedPackages?.has(e.locatorHash)&&(!this.check||!we),Ae=ye||we,se=Ae?s:a;if(se&&se(),Ae){let X=null,De=g;if(!ye)if(this.check)X=await C(De);else{let Te=await E(De,{isColdHit:!1});if(Te.isValid)X=Te.hash;else return b()}return[ye,De,X]}else{if(this.immutable&&Ce)throw new jt(56,`Cache entry required but missing for ${Yr(this.configuration,e)}; consider defining ${he.pretty(this.configuration,"supportedArchitectures",he.Type.CODE)} to cache packages for multiple systems`);return b()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let pe;pe=this.mutexes.get(e.locatorHash);)await pe;let[T,N,U]=await I();T||this.markedFiles.add(N);let W=()=>this.refCountedZipFsCache.addOrCreate(N,()=>T?h():new As(N,{baseFs:p,readOnly:!0})),ee,ie=new oE(()=>G4(()=>(ee=W(),ee.value),pe=>`Failed to open the cache entry for ${Yr(this.configuration,e)}: ${pe}`),J),ue=new _f(N,{baseFs:ie,pathUtils:J}),le=()=>{ee?.release()},me=c.unstablePackages?.has(e.locatorHash)?null:U;return[ue,le,me]}},Yot=/^(?:(?(?[0-9]+)(?.*))\/)?(?.*)$/});var UT,cde=Ze(()=>{UT=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(UT||{})});var Vot,KI,NG=Ze(()=>{Dt();wc();Tp();Wo();Vot=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,s)=>`${r}#commit=${s}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>xQ({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],KI=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let s=J.join(e.cwd,Er.lockfile);if(!ce.existsSync(s))return;let a=await ce.readFilePromise(s,"utf8"),n=as(a);if(Object.hasOwn(n,"__metadata"))return;let c=this.resolutions=new Map;for(let f of Object.keys(n)){let p=HB(f);if(!p){r.reportWarning(14,`Failed to parse the string "${f}" into a proper descriptor`);continue}let h=cl(p.range)?On(p,`npm:${p.range}`):p,{version:E,resolved:C}=n[f];if(!C)continue;let S;for(let[I,T]of Vot){let N=C.match(I);if(N){S=T(E,...N);break}}if(!S){r.reportWarning(14,`${ni(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${C}")`);continue}let b=h;try{let I=em(h.range),T=HB(I.selector,!0);T&&(b=T)}catch{}c.set(h.descriptorHash,Ws(b,S))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=B8(a),c=s.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(c,r,s)}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var lA,ude=Ze(()=>{Rc();Ev();xc();lA=class extends Ao{constructor({configuration:r,stdout:s,suggestInstall:a=!0}){super();this.errorCount=0;TB(this,{configuration:r}),this.configuration=r,this.stdout=s,this.suggestInstall=a}static async start(r,s){let a=new this(r);try{await s(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,s){return s()}async startSectionPromise(r,s){return await s()}startTimerSync(r,s,a){return(typeof s=="function"?s:a)()}async startTimerPromise(r,s,a){return await(typeof s=="function"?s:a)()}reportSeparator(){}reportInfo(r,s){}reportWarning(r,s){}reportError(r,s){this.errorCount+=1,this.stdout.write(`${Ht(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${s} `)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,s){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${Ht(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${Ht(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. `))}formatNameWithHyperlink(r){return jj(r,{configuration:this.configuration,json:!1})}}});var zI,OG=Ze(()=>{Wo();zI=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(DQ(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){let a=s.project.storedResolutions.get(e.descriptorHash);if(a){let c=s.project.originalPackages.get(a);if(c)return[c]}let n=s.project.originalPackages.get(DQ(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.originalPackages.get(e.locatorHash);if(!s)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return s}}});function Kp(){}function Jot(t,e,r,s,a){for(var n=0,c=e.length,f=0,p=0;nb.length?T:b}),h.value=t.join(E)}else h.value=t.join(r.slice(f,f+h.count));f+=h.count,h.added||(p+=h.count)}}var S=e[c-1];return c>1&&typeof S.value=="string"&&(S.added||S.removed)&&t.equals("",S.value)&&(e[c-2].value+=S.value,e.pop()),e}function Kot(t){return{newPos:t.newPos,components:t.components.slice(0)}}function zot(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function pde(t,e,r){return r=zot(r,{ignoreWhitespace:!0}),HG.diff(t,e,r)}function Zot(t,e,r){return jG.diff(t,e,r)}function _T(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_T=function(e){return typeof e}:_T=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_T(t)}function LG(t){return eat(t)||tat(t)||rat(t)||nat()}function eat(t){if(Array.isArray(t))return MG(t)}function tat(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function rat(t,e){if(t){if(typeof t=="string")return MG(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return MG(t,e)}}function MG(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,s=new Array(e);r"u"&&(c.context=4);var f=Zot(r,s,c);if(!f)return;f.push({value:"",lines:[]});function p(U){return U.map(function(W){return" "+W})}for(var h=[],E=0,C=0,S=[],b=1,I=1,T=function(W){var ee=f[W],ie=ee.lines||ee.value.replace(/\n$/,"").split(` `);if(ee.lines=ie,ee.added||ee.removed){var ue;if(!E){var le=f[W-1];E=b,C=I,le&&(S=c.context>0?p(le.lines.slice(-c.context)):[],E-=S.length,C-=S.length)}(ue=S).push.apply(ue,LG(ie.map(function(Ae){return(ee.added?"+":"-")+Ae}))),ee.added?I+=ie.length:b+=ie.length}else{if(E)if(ie.length<=c.context*2&&W=f.length-2&&ie.length<=c.context){var g=/\n$/.test(r),we=/\n$/.test(s),ye=ie.length==0&&S.length>Ce.oldLines;!g&&ye&&r.length>0&&S.splice(Ce.oldLines,0,"\\ No newline at end of file"),(!g&&!ye||!we)&&S.push("\\ No newline at end of file")}h.push(Ce),E=0,C=0,S=[]}b+=ie.length,I+=ie.length}},N=0;N{Kp.prototype={diff:function(e,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=s.callback;typeof s=="function"&&(a=s,s={}),this.options=s;var n=this;function c(T){return a?(setTimeout(function(){a(void 0,T)},0),!0):T}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var f=r.length,p=e.length,h=1,E=f+p;s.maxEditLength&&(E=Math.min(E,s.maxEditLength));var C=[{newPos:-1,components:[]}],S=this.extractCommon(C[0],r,e,0);if(C[0].newPos+1>=f&&S+1>=p)return c([{value:this.join(r),count:r.length}]);function b(){for(var T=-1*h;T<=h;T+=2){var N=void 0,U=C[T-1],W=C[T+1],ee=(W?W.newPos:0)-T;U&&(C[T-1]=void 0);var ie=U&&U.newPos+1=f&&ee+1>=p)return c(Jot(n,N.components,r,e,n.useLongestToken));C[T]=N}h++}if(a)(function T(){setTimeout(function(){if(h>E)return a();b()||T()},0)})();else for(;h<=E;){var I=b();if(I)return I}},pushComponent:function(e,r,s){var a=e[e.length-1];a&&a.added===r&&a.removed===s?e[e.length-1]={count:a.count+1,added:r,removed:s}:e.push({count:1,added:r,removed:s})},extractCommon:function(e,r,s,a){for(var n=r.length,c=s.length,f=e.newPos,p=f-a,h=0;f+1"u"?r:c}:s;return typeof t=="string"?t:JSON.stringify(UG(t,null,null,a),a," ")};Hv.equals=function(t,e){return Kp.prototype.equals.call(Hv,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};_G=new Kp;_G.tokenize=function(t){return t.slice()};_G.join=_G.removeEmpty=function(t){return t}});var HT,gde=Ze(()=>{Rc();HT=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.resolver.bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){throw new jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,s,a){throw new jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var ki,qG=Ze(()=>{Rc();ki=class extends Ao{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,s){return(typeof r=="function"?r:s)()}async startTimerPromise(e,r,s){return await(typeof r=="function"?r:s)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var dde,ZI,WG=Ze(()=>{Dt();dde=ut(wQ());oI();tm();xc();I0();Tp();Wo();ZI=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ut.tryFind(this.cwd)??new Ut,this.relativeCwd=J.relative(this.project.cwd,this.cwd)||vt.dot;let e=this.manifest.name?this.manifest.name:Da(null,`${this.computeCandidateName()}-${cs(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=On(e,`${Ei.protocol}${this.relativeCwd}`),this.anchoredLocator=Ws(e,`${Ei.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let s=await(0,dde.default)(r,{cwd:fe.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});s.sort(),await s.reduce(async(a,n)=>{let c=J.resolve(this.cwd,fe.toPortablePath(n)),f=await ce.existsPromise(J.join(c,"package.json"));await a,f&&this.workspacesCwds.add(c)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${GB(this.project.configuration,this)} (${Ht(this.project.configuration,J.join(this.cwd,Er.manifest),ht.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),s=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(s===Ei.protocol&&J.normalize(a)===this.relativeCwd||s===Ei.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=cl(a);return n?s===Ei.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${J.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ut.hardDependencies}={}){let r=new Set,s=a=>{for(let n of e)for(let c of a.manifest[n].values()){let f=this.project.tryWorkspaceByDescriptor(c);f===null||r.has(f)||(r.add(f),s(f))}};return s(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ut.hardDependencies}={}){let r=new Set,s=a=>{for(let n of this.project.workspaces)e.some(f=>[...n.manifest[f].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&_B(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),s(n))};return s(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let s of r.workspacesCwds){let a=this.project.workspacesByCwd.get(s);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=J.join(this.cwd,Ut.fileName),s=`${JSON.stringify(e,null,this.manifest.indent)} `;await ce.changeFilePromise(r,s,{automaticNewlines:!0}),this.manifest.raw=e}}});function uat({project:t,allDescriptors:e,allResolutions:r,allPackages:s,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:c=new Map,peerWarnings:f=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,C=[],S=new Map,b=new Map,I=new Map,T=new Map,N=new Map,U=new Map(t.workspaces.map(le=>{let me=le.anchoredLocator.locatorHash,pe=s.get(me);if(typeof pe>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[me,LB(pe)]})),W=()=>{let le=ce.mktempSync(),me=J.join(le,"stacktrace.log"),pe=String(C.length+1).length,Be=C.map((Ce,g)=>`${`${g+1}.`.padStart(pe," ")} ${ll(Ce)} `).join("");throw ce.writeFileSync(me,Be),ce.detachTemp(le),new jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${fe.fromPortablePath(me)}`)},ee=le=>{let me=r.get(le.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: The resolution should have been registered");let pe=s.get(me);if(!pe)throw new Error("Assertion failed: The package could not be found");return pe},ie=(le,me,pe,{top:Be,optional:Ce})=>{C.length>1e3&&W(),C.push(me);let g=ue(le,me,pe,{top:Be,optional:Ce});return C.pop(),g},ue=(le,me,pe,{top:Be,optional:Ce})=>{if(Ce||n.delete(me.locatorHash),a.has(me.locatorHash))return;a.add(me.locatorHash);let g=s.get(me.locatorHash);if(!g)throw new Error(`Assertion failed: The package (${Yr(t.configuration,me)}) should have been registered`);let we=new Set,ye=new Map,Ae=[],se=[],X=[],De=[];for(let Te of Array.from(g.dependencies.values())){if(g.peerDependencies.has(Te.identHash)&&g.locatorHash!==Be)continue;if(kp(Te))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Te.descriptorHash);let mt=Ce;if(!mt){let ke=g.dependenciesMeta.get(un(Te));if(typeof ke<"u"){let it=ke.get(null);typeof it<"u"&&it.optional&&(mt=!0)}}let j=r.get(Te.descriptorHash);if(!j)throw new Error(`Assertion failed: The resolution (${ni(t.configuration,Te)}) should have been registered`);let rt=U.get(j)||s.get(j);if(!rt)throw new Error(`Assertion failed: The package (${j}, resolved from ${ni(t.configuration,Te)}) should have been registered`);if(rt.peerDependencies.size===0){ie(Te,rt,new Map,{top:Be,optional:mt});continue}let Fe,Ne,be=new Set,Ve=new Map;Ae.push(()=>{Fe=S8(Te,me.locatorHash),Ne=D8(rt,me.locatorHash),g.dependencies.set(Te.identHash,Fe),r.set(Fe.descriptorHash,Ne.locatorHash),e.set(Fe.descriptorHash,Fe),s.set(Ne.locatorHash,Ne),Pp(T,Ne.locatorHash).add(Fe.descriptorHash),we.add(Ne.locatorHash)}),se.push(()=>{N.set(Ne.locatorHash,Ve);for(let ke of Ne.peerDependencies.values()){let Ue=Yl(ye,ke.identHash,()=>{let x=pe.get(ke.identHash)??null,w=g.dependencies.get(ke.identHash);return!w&&UB(me,ke)&&(le.identHash===me.identHash?w=le:(w=On(me,le.range),e.set(w.descriptorHash,w),r.set(w.descriptorHash,me.locatorHash),h.delete(w.descriptorHash),x=null)),w||(w=On(ke,"missing:")),{subject:me,ident:ke,provided:w,root:!x,requests:new Map,hash:`p${cs(me.locatorHash,ke.identHash).slice(0,6)}`}}).provided;if(Ue.range==="missing:"&&Ne.dependencies.has(ke.identHash)){Ne.peerDependencies.delete(ke.identHash);continue}if(Ve.set(ke.identHash,{requester:Ne,descriptor:ke,meta:Ne.peerDependenciesMeta.get(un(ke)),children:new Map}),Ne.dependencies.set(ke.identHash,Ue),kp(Ue)){let x=r.get(Ue.descriptorHash);Pp(I,x).add(Ne.locatorHash)}S.set(Ue.identHash,Ue),Ue.range==="missing:"&&be.add(Ue.identHash)}Ne.dependencies=new Map(qs(Ne.dependencies,([ke,it])=>un(it)))}),X.push(()=>{if(!s.has(Ne.locatorHash))return;let ke=E.get(rt.locatorHash);typeof ke=="number"&&ke>=2&&W();let it=E.get(rt.locatorHash),Ue=typeof it<"u"?it+1:1;E.set(rt.locatorHash,Ue),ie(Fe,Ne,Ve,{top:Be,optional:mt}),E.set(rt.locatorHash,Ue-1)}),De.push(()=>{let ke=r.get(Fe.descriptorHash);if(typeof ke>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let it=N.get(ke);if(typeof it>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let Ue of ye.values()){let x=it.get(Ue.ident.identHash);x&&(Ue.requests.set(Fe.descriptorHash,x),p.set(Ue.hash,Ue),Ue.root||pe.get(Ue.ident.identHash)?.children.set(Fe.descriptorHash,x))}if(s.has(Ne.locatorHash))for(let Ue of be)Ne.dependencies.delete(Ue)})}for(let Te of[...Ae,...se])Te();for(let Te of we){we.delete(Te);let mt=s.get(Te),j=cs(rI(mt).locatorHash,...Array.from(mt.dependencies.values(),be=>{let Ve=be.range!=="missing:"?r.get(be.descriptorHash):"missing:";if(typeof Ve>"u")throw new Error(`Assertion failed: Expected the resolution for ${ni(t.configuration,be)} to have been registered`);return Ve===Be?`${Ve} (top)`:Ve})),rt=b.get(j);if(typeof rt>"u"){b.set(j,mt);continue}let Fe=Pp(T,rt.locatorHash);for(let be of T.get(mt.locatorHash)??[])r.set(be,rt.locatorHash),Fe.add(be);s.delete(mt.locatorHash),a.delete(mt.locatorHash),we.delete(mt.locatorHash);let Ne=I.get(mt.locatorHash);if(Ne!==void 0){let be=Pp(I,rt.locatorHash);for(let Ve of Ne)be.add(Ve),we.add(Ve)}}for(let Te of[...X,...De])Te()};for(let le of t.workspaces){let me=le.anchoredLocator;h.delete(le.anchoredDescriptor.descriptorHash),ie(le.anchoredDescriptor,me,new Map,{top:me.locatorHash,optional:!1})}for(let le of p.values()){if(!le.root)continue;let me=s.get(le.subject.locatorHash);if(typeof me>"u")continue;for(let Be of le.requests.values()){let Ce=`p${cs(le.subject.locatorHash,un(le.ident),Be.requester.locatorHash).slice(0,6)}`;c.set(Ce,{subject:le.subject.locatorHash,requested:le.ident,rootRequester:Be.requester.locatorHash,allRequesters:Array.from(qB(Be),g=>g.requester.locatorHash)})}let pe=[...qB(le)];if(le.provided.range!=="missing:"){let Be=ee(le.provided),Ce=Be.version??"0.0.0",g=ye=>{if(ye.startsWith(Ei.protocol)){if(!t.tryWorkspaceByLocator(Be))return null;ye=ye.slice(Ei.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return ye},we=!0;for(let ye of pe){let Ae=g(ye.descriptor.range);if(Ae===null){we=!1;continue}if(!Xf(Ce,Ae)){we=!1;let se=`p${cs(le.subject.locatorHash,un(le.ident),ye.requester.locatorHash).slice(0,6)}`;f.push({type:1,subject:me,requested:le.ident,requester:ye.requester,version:Ce,hash:se,requirementCount:pe.length})}}if(!we){let ye=pe.map(Ae=>g(Ae.descriptor.range));f.push({type:3,node:le,range:ye.includes(null)?null:x8(ye),hash:le.hash})}}else{let Be=!0;for(let Ce of pe)if(!Ce.meta?.optional){Be=!1;let g=`p${cs(le.subject.locatorHash,un(le.ident),Ce.requester.locatorHash).slice(0,6)}`;f.push({type:0,subject:me,requested:le.ident,requester:Ce.requester,hash:g})}Be||f.push({type:2,node:le,hash:le.hash})}}}function*fat(t){let e=new Map;if("children"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,s]of e){yield{request:r,root:s};for(let a of r.children.values())e.has(a)||e.set(a,s)}}function Aat(t,e){let r=[],s=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let c=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof c>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let f=t.storedPackages.get(c);if(typeof f>"u")throw new Error("Assertion failed: Expected the package to be registered");let p=p0(fat(n.node),({request:C,root:S})=>Xf(f.version??"0.0.0",C.descriptor.range)?p0.skip:C===S?Xi(t.configuration,C.requester):`${Xi(t.configuration,C.requester)} (via ${Xi(t.configuration,S.requester)})`),h=[...qB(n.node)].length>1?"and other dependencies request":"requests",E=n.range?iI(t.configuration,n.range):Ht(t.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${Xi(t.configuration,n.node.ident)} is listed by your project with version ${jB(t.configuration,f.version??"0.0.0")} (${Ht(t.configuration,n.hash,ht.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let c=n.node.requests.size>1?" and other dependencies":"";s.push(`${Yr(t.configuration,n.node.subject)} doesn't provide ${Xi(t.configuration,n.node.ident)} (${Ht(t.configuration,n.hash,ht.CODE)}), requested by ${Xi(t.configuration,n.node.requests.values().next().value.requester)}${c}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ht(t.configuration,"yarn explain peer-requirements ",ht.CODE)} for details, where ${Ht(t.configuration,"",ht.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of qs(r,c=>JE.default(c)))e.reportWarning(60,n);for(let n of qs(s,c=>JE.default(c)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ht(t.configuration,"yarn explain peer-requirements",ht.CODE)} for details.`)}var jT,GT,Ede,JG,VG,KG,qT,sat,oat,mde,aat,lat,cat,$l,YG,WT,yde,Rt,Ide=Ze(()=>{Dt();Dt();wc();Yt();jT=Ie("crypto");GG();ql();GT=ut(Ld()),Ede=ut(Ai()),JG=Ie("util"),VG=ut(Ie("v8")),KG=ut(Ie("zlib"));FG();av();NG();OG();oI();R8();Rc();gde();Ev();qG();tm();WG();OQ();xc();I0();bc();hR();Vj();Tp();Wo();qT=YE(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),sat=3,oat=/ *, */g,mde=/\/$/,aat=32,lat=(0,JG.promisify)(KG.default.gzip),cat=(0,JG.promisify)(KG.default.gunzip),$l=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))($l||{}),YG={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},WT=(a=>(a[a.NotProvided=0]="NotProvided",a[a.NotCompatible=1]="NotCompatible",a[a.NodeNotProvided=2]="NodeNotProvided",a[a.NodeNotCompatible=3]="NodeNotCompatible",a))(WT||{}),yde=t=>cs(`${sat}`,t),Rt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new nt(`No project found in ${r}`);let s=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,ce.existsSync(J.join(n,Er.manifest))){s=n;break}a=J.dirname(n)}let c=new t(e.projectCwd,{configuration:e});ze.telemetry?.reportProject(c.cwd),await c.setupResolutions(),await c.setupWorkspaces(),ze.telemetry?.reportWorkspaceCount(c.workspaces.length),ze.telemetry?.reportDependencyCount(c.workspaces.reduce((I,T)=>I+T.manifest.dependencies.size+T.manifest.devDependencies.size,0));let f=c.tryWorkspaceByCwd(s);if(f)return{project:c,workspace:f,locator:f.anchoredLocator};let p=await c.findLocatorForLocation(`${s}/`,{strict:!0});if(p)return{project:c,locator:p,workspace:null};let h=Ht(e,c.cwd,ht.PATH),E=Ht(e,J.relative(c.cwd,s),ht.PATH),C=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,S=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,b=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new nt(`The nearest package directory (${Ht(e,s,ht.PATH)}) doesn't seem to be part of the project declared in ${Ht(e,c.cwd,ht.PATH)}. ${[C,S,b].join(` `)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=J.join(this.cwd,Er.lockfile),r=this.configuration.get("defaultLanguageName");if(ce.existsSync(e)){let s=await ce.readFilePromise(e,"utf8");this.lockFileChecksum=yde(s);let a=as(s);if(a.__metadata){let n=a.__metadata.version,c=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${f})`);let h=Qp(p.resolution,!0),E=new Ut;E.load(p,{yamlCompatibilityMode:!0});let C=E.version,S=E.languageName||r,b=p.linkType.toUpperCase(),I=p.conditions??null,T=E.dependencies,N=E.peerDependencies,U=E.dependenciesMeta,W=E.peerDependenciesMeta,ee=E.bin;if(p.checksum!=null){let ue=typeof c<"u"&&!p.checksum.includes("/")?`${c}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,ue)}let ie={...h,version:C,languageName:S,linkType:b,conditions:I,dependencies:T,peerDependencies:N,dependenciesMeta:U,peerDependenciesMeta:W,bin:ee};this.originalPackages.set(ie.locatorHash,ie);for(let ue of f.split(oat)){let le=C0(ue);n<=6&&(le=this.configuration.normalizeDependency(le),le=On(le,le.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(le.descriptorHash,le),this.storedResolutions.set(le.descriptorHash,h.locatorHash)}}}else s.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,GT.default)(4),s=async(a,n)=>{if(e.has(n))return a;e.add(n);let c=new ZI(n,{project:this});await r(()=>c.setup());let f=a.then(()=>{this.addWorkspace(c)});return Array.from(c.workspacesCwds).reduce(s,f)};await s(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${Xi(this.configuration,e.anchoredLocator)}: ${fe.fromPortablePath(e.cwd)} conflicts with ${fe.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){J.isAbsolute(e)||(e=J.resolve(this.cwd,e)),e=J.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let s of this.workspaces)J.relative(s.cwd,e).startsWith("../")||r&&r.cwd.length>=s.cwd.length||(r=s);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Xi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Ei.protocol)){let s=e.range.slice(Ei.protocol.length);if(s!=="^"&&s!=="~"&&s!=="*"&&!cl(s))return this.tryWorkspaceByCwd(s)}let r=this.tryWorkspaceByIdent(e);return r===null||(kp(e)&&(e=MB(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${ni(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Gu(e)&&(e=rI(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${Yr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof r<"u"&&!s.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,s]of this.storedResolutions)s===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[s,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(s)}for(let s of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(s,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(s.locatorHash);let n=r.get(s.locatorHash);if(n){r.delete(s.locatorHash);for(let c of n)this.deleteDescriptor(c)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,s]of e.dependencies)kp(s)&&e.dependencies.set(r,MB(s))}getDependencyMeta(e,r){let s={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(un(e));if(!n)return s;let c=n.get(null);if(c&&Object.assign(s,c),r===null||!Ede.default.valid(r))return s;for(let[f,p]of n)f!==null&&f===r&&Object.assign(s,p);return s}async findLocatorForLocation(e,{strict:r=!1}={}){let s=new ki,a=this.configuration.getLinkers(),n={project:this,report:s};for(let c of a){let f=await c.findPackageLocator(e,n);if(f){if(r&&(await c.findPackageLocation(f,n)).replace(mde,"")!==e.replace(mde,""))continue;return f}}return null}async loadUserConfig(){let e=J.join(this.cwd,".pnp.cjs");await ce.existsPromise(e)&&bp(e).setup();let r=J.join(this.cwd,"yarn.config.cjs");return await ce.existsPromise(r)?bp(r):null}async preparePackage(e,{resolver:r,resolveOptions:s}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[c,f]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,f,this,n,f,{resolver:r,resolveOptions:s});if(!UB(f,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,s);n.dependencies.set(c,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),s=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new KI(a);await n.setup(this,{report:e.report});let c=e.lockfileOnly?[new HT(a)]:[n,a],f=new rm([new zI(a),...c]),p=new rm([...c]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:f}:{project:this,report:e.report,resolver:f,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},C=new Map,S=new Map,b=new Map,I=new Map,T=new Map,N=new Map,U=this.topLevelWorkspace.anchoredLocator,W=new Set,ee=[],ie=lj(),ue=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ao.progressViaTitle(),async se=>{let X=async rt=>{let Fe=await qE(async()=>await f.resolve(rt,E),ke=>`${Yr(this.configuration,rt)}: ${ke}`);if(!_B(rt,Fe))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Yr(this.configuration,rt)} to ${Yr(this.configuration,Fe)})`);I.set(Fe.locatorHash,Fe),!r.delete(Fe.locatorHash)&&!this.tryWorkspaceByLocator(Fe)&&s.push(Fe);let be=await this.preparePackage(Fe,{resolver:f,resolveOptions:E}),Ve=Uu([...be.dependencies.values()].map(ke=>j(ke)));return ee.push(Ve),Ve.catch(()=>{}),S.set(be.locatorHash,be),be},De=async rt=>{let Fe=T.get(rt.locatorHash);if(typeof Fe<"u")return Fe;let Ne=Promise.resolve().then(()=>X(rt));return T.set(rt.locatorHash,Ne),Ne},Te=async(rt,Fe)=>{let Ne=await j(Fe);return C.set(rt.descriptorHash,rt),b.set(rt.descriptorHash,Ne.locatorHash),Ne},mt=async rt=>{se.setTitle(ni(this.configuration,rt));let Fe=this.resolutionAliases.get(rt.descriptorHash);if(typeof Fe<"u")return Te(rt,this.storedDescriptors.get(Fe));let Ne=f.getResolutionDependencies(rt,E),be=Object.fromEntries(await Uu(Object.entries(Ne).map(async([it,Ue])=>{let x=f.bindDescriptor(Ue,U,E),w=await j(x);return W.add(w.locatorHash),[it,w]}))),ke=(await qE(async()=>await f.getCandidates(rt,be,E),it=>`${ni(this.configuration,rt)}: ${it}`))[0];if(typeof ke>"u")throw new jt(82,`${ni(this.configuration,rt)}: No candidates found`);if(e.checkResolutions){let{locators:it}=await p.getSatisfying(rt,be,[ke],{...E,resolver:p});if(!it.find(Ue=>Ue.locatorHash===ke.locatorHash))throw new jt(78,`Invalid resolution ${FB(this.configuration,rt,ke)}`)}return C.set(rt.descriptorHash,rt),b.set(rt.descriptorHash,ke.locatorHash),De(ke)},j=rt=>{let Fe=N.get(rt.descriptorHash);if(typeof Fe<"u")return Fe;C.set(rt.descriptorHash,rt);let Ne=Promise.resolve().then(()=>mt(rt));return N.set(rt.descriptorHash,Ne),Ne};for(let rt of this.workspaces){let Fe=rt.anchoredDescriptor;ee.push(j(Fe))}for(;ee.length>0;){let rt=[...ee];ee.length=0,await Uu(rt)}});let le=Wl(r.values(),se=>this.tryWorkspaceByLocator(se)?Wl.skip:se);if(s.length>0||le.length>0){let se=new Set(this.workspaces.flatMap(rt=>{let Fe=S.get(rt.anchoredLocator.locatorHash);if(!Fe)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(Fe.dependencies.values(),Ne=>{let be=b.get(Ne.descriptorHash);if(!be)throw new Error("Assertion failed: The resolution should have been registered");return be})})),X=rt=>se.has(rt.locatorHash)?"0":"1",De=rt=>ll(rt),Te=qs(s,[X,De]),mt=qs(le,[X,De]),j=e.report.getRecommendedLength();Te.length>0&&e.report.reportInfo(85,`${Ht(this.configuration,"+",ht.ADDED)} ${Xk(this.configuration,Te,j)}`),mt.length>0&&e.report.reportInfo(85,`${Ht(this.configuration,"-",ht.REMOVED)} ${Xk(this.configuration,mt,j)}`)}let me=new Set(this.resolutionAliases.values()),pe=new Set(S.keys()),Be=new Set,Ce=new Map,g=[],we=new Map;uat({project:this,accessibleLocators:Be,volatileDescriptors:me,optionalBuilds:pe,peerRequirements:Ce,peerWarnings:g,peerRequirementNodes:we,allDescriptors:C,allResolutions:b,allPackages:S});for(let se of W)pe.delete(se);for(let se of me)C.delete(se),b.delete(se);let ye=new Set,Ae=new Set;for(let se of S.values())se.conditions!=null&&pe.has(se.locatorHash)&&(QQ(se,ue)||(QQ(se,ie)&&e.report.reportWarningOnce(77,`${Yr(this.configuration,se)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ht(this.configuration,"supportedArchitectures",ht.SETTING)} setting`),Ae.add(se.locatorHash)),ye.add(se.locatorHash));this.storedResolutions=b,this.storedDescriptors=C,this.storedPackages=S,this.accessibleLocators=Be,this.conditionalLocators=ye,this.disabledLocators=Ae,this.originalPackages=I,this.optionalBuilds=pe,this.peerRequirements=Ce,this.peerWarnings=g,this.peerRequirementNodes=we}async fetchEverything({cache:e,report:r,fetcher:s,mode:a,persistProject:n=!0}){let c={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},f=s||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:f,report:r,cacheOptions:c},h=Array.from(new Set(qs(this.storedResolutions.values(),[I=>{let T=this.storedPackages.get(I);if(!T)throw new Error("Assertion failed: The locator should have been registered");return ll(T)}])));a==="update-lockfile"&&(h=h.filter(I=>!this.storedChecksums.has(I)));let E=!1,C=Ao.progressViaCounter(h.length);await r.reportProgress(C);let S=(0,GT.default)(aat);if(await Uu(h.map(I=>S(async()=>{let T=this.storedPackages.get(I);if(!T)throw new Error("Assertion failed: The locator should have been registered");if(Gu(T))return;let N;try{N=await f.fetch(T,p)}catch(U){U.message=`${Yr(this.configuration,T)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}N.checksum!=null?this.storedChecksums.set(T.locatorHash,N.checksum):this.storedChecksums.delete(T.locatorHash),N.releaseFs&&N.releaseFs()}).finally(()=>{C.tick()}))),E)throw E;let b=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||b){let T=(await Promise.all([...r.cacheMisses].map(async le=>{let me=this.storedPackages.get(le),pe=this.storedChecksums.get(le)??null,Be=e.getLocatorPath(me,pe);return(await ce.statPromise(Be)).size}))).reduce((le,me)=>le+me,0)-(b?.size??0),N=r.cacheMisses.size,U=b?.count??0,W=`${Wk(N,{zero:"No new packages",one:"A package was",more:`${Ht(this.configuration,N,ht.NUMBER)} packages were`})} added to the project`,ee=`${Wk(U,{zero:"none were",one:"one was",more:`${Ht(this.configuration,U,ht.NUMBER)} were`})} removed`,ie=T!==0?` (${Ht(this.configuration,T,ht.SIZE_DIFF)})`:"",ue=U>0?N>0?`${W}, and ${ee}${ie}.`:`${W}, but ${ee}${ie}.`:`${W}${ie}.`;r.reportInfo(13,ue)}}async linkEverything({cache:e,report:r,fetcher:s,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},c=s||this.configuration.makeFetcher(),f={checksums:this.storedChecksums,project:this,cache:e,fetcher:c,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(ye=>{let Ae=ye.makeInstaller(h),se=ye.getCustomDataKey(),X=this.linkersCustomData.get(se);return typeof X<"u"&&Ae.attachCustomData(X),[ye,Ae]})),C=new Map,S=new Map,b=new Map,I=new Map(await Uu([...this.accessibleLocators].map(async ye=>{let Ae=this.storedPackages.get(ye);if(!Ae)throw new Error("Assertion failed: The locator should have been registered");return[ye,await c.fetch(Ae,f)]}))),T=[],N=new Set,U=[];for(let ye of this.accessibleLocators){let Ae=this.storedPackages.get(ye);if(typeof Ae>"u")throw new Error("Assertion failed: The locator should have been registered");let se=I.get(Ae.locatorHash);if(typeof se>"u")throw new Error("Assertion failed: The fetch result should have been registered");let X=[],De=mt=>{X.push(mt)},Te=this.tryWorkspaceByLocator(Ae);if(Te!==null){let mt=[],{scripts:j}=Te.manifest;for(let Fe of["preinstall","install","postinstall"])j.has(Fe)&&mt.push({type:0,script:Fe});try{for(let[Fe,Ne]of E)if(Fe.supportsPackage(Ae,h)&&(await Ne.installPackage(Ae,se,{holdFetchResult:De})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{X.length===0?se.releaseFs?.():T.push(Uu(X).catch(()=>{}).then(()=>{se.releaseFs?.()}))}let rt=J.join(se.packageFs.getRealPath(),se.prefixPath);S.set(Ae.locatorHash,rt),!Gu(Ae)&&mt.length>0&&b.set(Ae.locatorHash,{buildDirectives:mt,buildLocations:[rt]})}else{let mt=p.find(Fe=>Fe.supportsPackage(Ae,h));if(!mt)throw new jt(12,`${Yr(this.configuration,Ae)} isn't supported by any available linker`);let j=E.get(mt);if(!j)throw new Error("Assertion failed: The installer should have been registered");let rt;try{rt=await j.installPackage(Ae,se,{holdFetchResult:De})}finally{X.length===0?se.releaseFs?.():T.push(Uu(X).then(()=>{}).then(()=>{se.releaseFs?.()}))}C.set(Ae.locatorHash,mt),S.set(Ae.locatorHash,rt.packageLocation),rt.buildRequest&&rt.packageLocation&&(rt.buildRequest.skipped?(N.add(Ae.locatorHash),this.skippedBuilds.has(Ae.locatorHash)||U.push([Ae,rt.buildRequest.explain])):b.set(Ae.locatorHash,{buildDirectives:rt.buildRequest.directives,buildLocations:[rt.packageLocation]}))}}let W=new Map;for(let ye of this.accessibleLocators){let Ae=this.storedPackages.get(ye);if(!Ae)throw new Error("Assertion failed: The locator should have been registered");let se=this.tryWorkspaceByLocator(Ae)!==null,X=async(De,Te)=>{let mt=S.get(Ae.locatorHash);if(typeof mt>"u")throw new Error(`Assertion failed: The package (${Yr(this.configuration,Ae)}) should have been registered`);let j=[];for(let rt of Ae.dependencies.values()){let Fe=this.storedResolutions.get(rt.descriptorHash);if(typeof Fe>"u")throw new Error(`Assertion failed: The resolution (${ni(this.configuration,rt)}, from ${Yr(this.configuration,Ae)})should have been registered`);let Ne=this.storedPackages.get(Fe);if(typeof Ne>"u")throw new Error(`Assertion failed: The package (${Fe}, resolved from ${ni(this.configuration,rt)}) should have been registered`);let be=this.tryWorkspaceByLocator(Ne)===null?C.get(Fe):null;if(typeof be>"u")throw new Error(`Assertion failed: The package (${Fe}, resolved from ${ni(this.configuration,rt)}) should have been registered`);be===De||be===null?S.get(Ne.locatorHash)!==null&&j.push([rt,Ne]):!se&&mt!==null&&xB(W,Fe).push(mt)}mt!==null&&await Te.attachInternalDependencies(Ae,j)};if(se)for(let[De,Te]of E)De.supportsPackage(Ae,h)&&await X(De,Te);else{let De=C.get(Ae.locatorHash);if(!De)throw new Error("Assertion failed: The linker should have been found");let Te=E.get(De);if(!Te)throw new Error("Assertion failed: The installer should have been registered");await X(De,Te)}}for(let[ye,Ae]of W){let se=this.storedPackages.get(ye);if(!se)throw new Error("Assertion failed: The package should have been registered");let X=C.get(se.locatorHash);if(!X)throw new Error("Assertion failed: The linker should have been found");let De=E.get(X);if(!De)throw new Error("Assertion failed: The installer should have been registered");await De.attachExternalDependents(se,Ae)}let ee=new Map;for(let[ye,Ae]of E){let se=await Ae.finalizeInstall();for(let X of se?.records??[])X.buildRequest.skipped?(N.add(X.locator.locatorHash),this.skippedBuilds.has(X.locator.locatorHash)||U.push([X.locator,X.buildRequest.explain])):b.set(X.locator.locatorHash,{buildDirectives:X.buildRequest.directives,buildLocations:X.buildLocations});typeof se?.customData<"u"&&ee.set(ye.getCustomDataKey(),se.customData)}if(this.linkersCustomData=ee,await Uu(T),a==="skip-build")return;for(let[,ye]of qs(U,([Ae])=>ll(Ae)))ye(r);let ie=new Set(b.keys()),ue=(0,jT.createHash)("sha512");ue.update(process.versions.node),await this.configuration.triggerHook(ye=>ye.globalHashGeneration,this,ye=>{ue.update("\0"),ue.update(ye)});let le=ue.digest("hex"),me=new Map,pe=ye=>{let Ae=me.get(ye.locatorHash);if(typeof Ae<"u")return Ae;let se=this.storedPackages.get(ye.locatorHash);if(typeof se>"u")throw new Error("Assertion failed: The package should have been registered");let X=(0,jT.createHash)("sha512");X.update(ye.locatorHash),me.set(ye.locatorHash,"");for(let De of se.dependencies.values()){let Te=this.storedResolutions.get(De.descriptorHash);if(typeof Te>"u")throw new Error(`Assertion failed: The resolution (${ni(this.configuration,De)}) should have been registered`);let mt=this.storedPackages.get(Te);if(typeof mt>"u")throw new Error("Assertion failed: The package should have been registered");X.update(pe(mt))}return Ae=X.digest("hex"),me.set(ye.locatorHash,Ae),Ae},Be=(ye,Ae)=>{let se=(0,jT.createHash)("sha512");se.update(le),se.update(pe(ye));for(let X of Ae)se.update(X);return se.digest("hex")},Ce=new Map,g=!1,we=ye=>{let Ae=new Set([ye.locatorHash]);for(let se of Ae){let X=this.storedPackages.get(se);if(!X)throw new Error("Assertion failed: The package should have been registered");for(let De of X.dependencies.values()){let Te=this.storedResolutions.get(De.descriptorHash);if(!Te)throw new Error(`Assertion failed: The resolution (${ni(this.configuration,De)}) should have been registered`);if(Te!==ye.locatorHash&&ie.has(Te))return!1;let mt=this.storedPackages.get(Te);if(!mt)throw new Error("Assertion failed: The package should have been registered");let j=this.tryWorkspaceByLocator(mt);if(j){if(j.anchoredLocator.locatorHash!==ye.locatorHash&&ie.has(j.anchoredLocator.locatorHash))return!1;Ae.add(j.anchoredLocator.locatorHash)}Ae.add(Te)}}return!0};for(;ie.size>0;){let ye=ie.size,Ae=[];for(let se of ie){let X=this.storedPackages.get(se);if(!X)throw new Error("Assertion failed: The package should have been registered");if(!we(X))continue;let De=b.get(X.locatorHash);if(!De)throw new Error("Assertion failed: The build directive should have been registered");let Te=Be(X,De.buildLocations);if(this.storedBuildState.get(X.locatorHash)===Te){Ce.set(X.locatorHash,Te),ie.delete(se);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(X.locatorHash)?r.reportInfo(8,`${Yr(this.configuration,X)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${Yr(this.configuration,X)} must be built because it never has been before or the last one failed`);let mt=De.buildLocations.map(async j=>{if(!J.isAbsolute(j))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${j})`);for(let rt of De.buildDirectives){let Fe=`# This file contains the result of Yarn building a package (${ll(X)}) `;switch(rt.type){case 0:Fe+=`# Script name: ${rt.script} `;break;case 1:Fe+=`# Script code: ${rt.script} `;break}let Ne=null;if(!await ce.mktempPromise(async Ve=>{let ke=J.join(Ve,"build.log"),{stdout:it,stderr:Ue}=this.configuration.getSubprocessStreams(ke,{header:Fe,prefix:Yr(this.configuration,X),report:r}),x;try{switch(rt.type){case 0:x=await OR(X,rt.script,[],{cwd:j,project:this,stdin:Ne,stdout:it,stderr:Ue});break;case 1:x=await Gj(X,rt.script,[],{cwd:j,project:this,stdin:Ne,stdout:it,stderr:Ue});break}}catch(y){Ue.write(y.stack),x=1}if(it.end(),Ue.end(),x===0)return!0;ce.detachTemp(Ve);let w=`${Yr(this.configuration,X)} couldn't be built successfully (exit code ${Ht(this.configuration,x,ht.NUMBER)}, logs can be found here: ${Ht(this.configuration,ke,ht.PATH)})`,P=this.optionalBuilds.has(X.locatorHash);return P?r.reportInfo(9,w):r.reportError(9,w),zpe&&r.reportFold(fe.fromPortablePath(ke),ce.readFileSync(ke,"utf8")),P}))return!1}return!0});Ae.push(...mt,Promise.allSettled(mt).then(j=>{ie.delete(se),j.every(rt=>rt.status==="fulfilled"&&rt.value===!0)&&Ce.set(X.locatorHash,Te)}))}if(await Uu(Ae),ye===ie.size){let se=Array.from(ie).map(X=>{let De=this.storedPackages.get(X);if(!De)throw new Error("Assertion failed: The package should have been registered");return Yr(this.configuration,De)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${se})`);break}}this.storedBuildState=Ce,this.skippedBuilds=N}async installWithNewReport(e,r){return(await Ot.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");ze.telemetry?.reportInstall(r);let s=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,C)=>{e.report.reportWarning(E,C)},reportError:(E,C)=>{e.report.reportError(E,C),s=!0}})}),s)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,C]of E)for(let S of C)S.status="inactive";let n=J.join(this.cwd,Er.lockfile),c=null;if(e.immutable)try{c=await ce.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new jt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{Aat(this,e.report);for(let[,E]of a)for(let[,C]of E)for(let S of C)if(S.userProvided){let b=Ht(this.configuration,S,ht.PACKAGE_EXTENSION);switch(S.status){case"inactive":e.report.reportWarning(68,`${b}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${b}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(c!==null){let E=Ed(c,this.generateLockfile());if(E!==c){let C=hde(n,n,c,E,void 0,void 0,{maxEditLength:100});if(C){e.report.reportSeparator();for(let S of C.hunks){e.report.reportInfo(null,`@@ -${S.oldStart},${S.oldLines} +${S.newStart},${S.newLines} @@`);for(let b of S.lines)b.startsWith("+")?e.report.reportError(28,Ht(this.configuration,b,ht.ADDED)):b.startsWith("-")?e.report.reportError(28,Ht(this.configuration,b,ht.REMOVED)):e.report.reportInfo(null,Ht(this.configuration,b,"grey"))}e.report.reportSeparator()}throw new jt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,C]of E)for(let S of C)S.userProvided&&S.status==="active"&&ze.telemetry?.reportPackageExtension(Zd(S,ht.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let f=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(f.map(async E=>SQ(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Ht(this.configuration,"mode=update-lockfile",ht.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(f.map(async C=>SQ(C,{cwd:this.cwd})));for(let C=0;C{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,C)=>{e.report.reportWarning(E,C)},reportError:(E,C)=>{e.report.reportError(E,C),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,c]of this.storedResolutions.entries()){let f=e.get(c);f||e.set(c,f=new Set),f.add(n)}let r={},{cacheKey:s}=Kr.getCacheKey(this.configuration);r.__metadata={version:qT,cacheKey:s};for(let[n,c]of e.entries()){let f=this.originalPackages.get(n);if(!f)continue;let p=[];for(let C of c){let S=this.storedDescriptors.get(C);if(!S)throw new Error("Assertion failed: The descriptor should have been registered");p.push(S)}let h=p.map(C=>al(C)).sort().join(", "),E=new Ut;E.version=f.linkType==="HARD"?f.version:"0.0.0-use.local",E.languageName=f.languageName,E.dependencies=new Map(f.dependencies),E.peerDependencies=new Map(f.peerDependencies),E.dependenciesMeta=new Map(f.dependenciesMeta),E.peerDependenciesMeta=new Map(f.peerDependenciesMeta),E.bin=new Map(f.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:f.linkType.toLowerCase(),resolution:ll(f),checksum:this.storedChecksums.get(f.locatorHash),conditions:f.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} `+nl(r)}async persistLockfile(){let e=J.join(this.cwd,Er.lockfile),r="";try{r=await ce.readFilePromise(e,"utf8")}catch{}let s=this.generateLockfile(),a=Ed(r,s);a!==r&&(await ce.writeFilePromise(e,a),this.lockFileChecksum=yde(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let c of Object.values(YG))e.push(...c);let r=Kd(this,e),s=VG.default.serialize(r),a=cs(s);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await ce.mkdirPromise(J.dirname(n),{recursive:!0}),await ce.writeFilePromise(n,await lat(s)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:s=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let c=await cat(await ce.readFilePromise(a));n=VG.default.deserialize(c),this.installStateChecksum=cs(c)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),s&&Object.assign(this,Kd(n,YG.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,Kd(n,YG.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ki}),await this.persistInstallStateFile()}async persist(){let e=(0,GT.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let s=new Set([".gitignore"]);if(!j8(e.cwd,this.cwd)||!await ce.existsPromise(e.cwd))return null;let a=[];for(let c of await ce.readdirPromise(e.cwd)){if(s.has(c))continue;let f=J.resolve(e.cwd,c);e.markedFiles.has(f)||(e.immutable?r.reportError(56,`${Ht(this.configuration,J.basename(f),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(ce.lstatPromise(f).then(async p=>(await ce.removePromise(f),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((c,f)=>c+f,0)}}}});function pat(t){let s=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),c=n+a,f=t.state.lastTips??s*864e5,p=f+864e5+8*36e5-t.timeZone,h=c<=t.timeNow,E=p<=t.timeNow,C=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(C={},C.lastUpdate=h?t.timeNow:n,C.lastTips=f,C.blocks=h?{}:t.state.blocks,C.displayedTips=t.state.displayedTips),{nextState:C,triggerUpdate:h,triggerTips:E,nextTips:E?s*864e5:f}}var XI,Cde=Ze(()=>{Dt();yv();I0();AR();bc();Tp();XI=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let s=this.getRegistryPath();this.isNew=!ce.existsSync(s),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),s=f=>f&&fn?Xf(fn,f):!1,a=e.map((f,p)=>p).filter(f=>e[f]&&s(e[f]?.selector));if(a.length===0)return null;let n=a.filter(f=>!r.has(f));if(n.length===0){let f=Math.floor(a.length*.2);this.displayedTips=f>0?this.displayedTips.slice(-f):[],n=a.filter(p=>!r.has(p))}let c=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(c),this.commitTips(),e[c]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){Pp(this.values,e).add(r)}reportEnumerator(e,r){Pp(this.enumerators,e).add(cs(r))}reportHit(e,r="*"){let s=j4(this.hits,e),a=Yl(s,r,()=>0);s.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return J.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),s;try{s=ce.readJsonSync(r)}catch{s={}}let{nextState:a,triggerUpdate:n,triggerTips:c,nextTips:f}=pat({state:s,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=f,this.displayedTips=s.displayedTips??[],a!==null)try{ce.mkdirSync(J.dirname(r),{recursive:!0}),ce.writeJsonSync(r,a)}catch{return!1}if(c&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=s.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=C=>aj(h,C,{configuration:this.configuration}).catch(()=>{});for(let[C,S]of Object.entries(s.blocks??{})){if(Object.keys(S).length===0)continue;let b=S;b.userId=C,b.reportType="primary";for(let N of Object.keys(b.enumerators??{}))b.enumerators[N]=b.enumerators[N].length;E(b);let I=new Map,T=20;for(let[N,U]of Object.entries(b.values))U.length>0&&I.set(N,U.slice(0,T));for(;I.size>0;){let N={};N.userId=C,N.reportType="secondary",N.metrics={};for(let[U,W]of I)N.metrics[U]=W.shift(),W.length===0&&I.delete(U);E(N)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=ce.readJsonSync(e)}catch{r={}}let s=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[s]=a[s]??{};for(let c of this.hits.keys()){let f=n.hits=n.hits??{},p=f[c]=f[c]??{};for(let[h,E]of this.hits.get(c))p[h]=(p[h]??0)+E}for(let c of["values","enumerators"])for(let f of this[c].keys()){let p=n[c]=n[c]??{};p[f]=[...new Set([...p[f]??[],...this[c].get(f)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),ce.mkdirSync(J.dirname(e),{recursive:!0}),ce.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var jv={};Vt(jv,{BuildDirectiveType:()=>UT,CACHE_CHECKPOINT:()=>TG,CACHE_VERSION:()=>MT,Cache:()=>Kr,Configuration:()=>ze,DEFAULT_RC_FILENAME:()=>hj,FormatType:()=>ope,InstallMode:()=>$l,LEGACY_PLUGINS:()=>ov,LOCKFILE_VERSION:()=>qT,LegacyMigrationResolver:()=>KI,LightReport:()=>lA,LinkType:()=>VE,LockfileResolver:()=>zI,Manifest:()=>Ut,MessageName:()=>Br,MultiFetcher:()=>aI,PackageExtensionStatus:()=>Y4,PackageExtensionType:()=>W4,PeerWarningType:()=>WT,Project:()=>Rt,Report:()=>Ao,ReportError:()=>jt,SettingsType:()=>wI,StreamReport:()=>Ot,TAG_REGEXP:()=>Mp,TelemetryManager:()=>XI,ThrowReport:()=>ki,VirtualFetcher:()=>lI,WindowsLinkType:()=>ER,Workspace:()=>ZI,WorkspaceFetcher:()=>cI,WorkspaceResolver:()=>Ei,YarnVersion:()=>fn,execUtils:()=>qr,folderUtils:()=>NQ,formatUtils:()=>he,hashUtils:()=>Nn,httpUtils:()=>ln,miscUtils:()=>je,nodeUtils:()=>fs,parseMessageName:()=>jx,reportOptionDeprecations:()=>SI,scriptUtils:()=>In,semverUtils:()=>Fr,stringifyMessageName:()=>Yf,structUtils:()=>G,tgzUtils:()=>ps,treeUtils:()=>xs});var Ge=Ze(()=>{gR();OQ();xc();I0();AR();bc();hR();Vj();Tp();Wo();$ge();ode();FG();av();av();cde();NG();ude();OG();oI();Gx();Q8();Ide();Rc();Ev();Cde();qG();T8();F8();tm();WG();yv();ule()});var Pde=_((OHt,qv)=>{"use strict";var gat=process.env.TERM_PROGRAM==="Hyper",dat=process.platform==="win32",vde=process.platform==="linux",zG={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Sde=Object.assign({},zG,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),Dde=Object.assign({},zG,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:vde?"\u25B8":"\u276F",pointerSmall:vde?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});qv.exports=dat&&!gat?Sde:Dde;Reflect.defineProperty(qv.exports,"common",{enumerable:!1,value:zG});Reflect.defineProperty(qv.exports,"windows",{enumerable:!1,value:Sde});Reflect.defineProperty(qv.exports,"other",{enumerable:!1,value:Dde})});var Ju=_((LHt,ZG)=>{"use strict";var mat=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),yat=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,bde=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let c=n.open=`\x1B[${n.codes[0]}m`,f=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(f)&&(h=h.replace(p,f+c));let C=c+h+f;return E?C.replace(/\r*\n/g,`${f}$&${c}`):C},n},r=(n,c,f)=>typeof n=="function"?n(c):n.wrap(c,f),s=(n,c)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let f=""+n,p=f.includes(` `),h=c.length;for(h>0&&c.includes("unstyle")&&(c=[...new Set(["unstyle",...c])].reverse());h-- >0;)f=r(t.styles[c[h]],f,p);return f},a=(n,c,f)=>{t.styles[n]=e({name:n,codes:c}),(t.keys[f]||(t.keys[f]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>s(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=yat,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,c)=>{let f=typeof c=="string"?t[c]:c;if(typeof f!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");f.stack||(Reflect.defineProperty(f,"name",{value:n}),t.styles[n]=f,f.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>s(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(f.stack):f.stack,p}})},t.theme=n=>{if(!mat(n))throw new TypeError("Expected theme to be an object");for(let c of Object.keys(n))t.alias(c,n[c]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=Pde(),t.define=a,t};ZG.exports=bde();ZG.exports.create=bde});var Xo=_(pn=>{"use strict";var Eat=Object.prototype.toString,jc=Ju(),xde=!1,XG=[],kde={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};pn.longest=(t,e)=>t.reduce((r,s)=>Math.max(r,e?s[e].length:s.length),0);pn.hasColor=t=>!!t&&jc.hasColor(t);var VT=pn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);pn.nativeType=t=>Eat.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");pn.isAsyncFn=t=>pn.nativeType(t)==="asyncfunction";pn.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";pn.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;pn.scrollDown=(t=[])=>[...t.slice(1),t[0]];pn.scrollUp=(t=[])=>[t.pop(),...t];pn.reorder=(t=[])=>{let e=t.slice();return e.sort((r,s)=>r.index>s.index?1:r.index{let s=t.length,a=r===s?0:r<0?s-1:r,n=t[e];t[e]=t[a],t[a]=n};pn.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};pn.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};pn.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:s=` `+r,width:a=80}=e,n=(s+r).match(/[^\S\n]/g)||[];a-=n.length;let c=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,f=t.trim(),p=new RegExp(c,"g"),h=f.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(s)};pn.unmute=t=>{let e=t.stack.find(s=>jc.keys.color.includes(s));return e?jc[e]:t.stack.find(s=>s.slice(2)==="bg")?jc[e.slice(2)]:s=>s};pn.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";pn.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>jc.keys.color.includes(s));if(e){let s=jc["bg"+pn.pascal(e)];return s?s.black:t}let r=t.stack.find(s=>s.slice(0,2)==="bg");return r?jc[r.slice(2).toLowerCase()]||t:jc.none};pn.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>jc.keys.color.includes(s)),r=t.stack.find(s=>s.slice(0,2)==="bg");if(e&&!r)return jc[kde[e]||e];if(r){let s=r.slice(2).toLowerCase(),a=kde[s];return a&&jc["bg"+pn.pascal(a)]||t}return jc.none};pn.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),s=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+s};pn.set=(t={},e="",r)=>e.split(".").reduce((s,a,n,c)=>{let f=c.length-1>n?s[a]||{}:r;return!pn.isObject(f)&&n{let s=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return s??r};pn.mixin=(t,e)=>{if(!VT(t))return e;if(!VT(e))return t;for(let r of Object.keys(e)){let s=Object.getOwnPropertyDescriptor(e,r);if(s.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&VT(s.value)){let a=Object.getOwnPropertyDescriptor(t,r);VT(a.value)?t[r]=pn.merge({},t[r],e[r]):Reflect.defineProperty(t,r,s)}else Reflect.defineProperty(t,r,s);else Reflect.defineProperty(t,r,s)}return t};pn.merge=(...t)=>{let e={};for(let r of t)pn.mixin(e,r);return e};pn.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let s of Object.keys(r)){let a=r[s];typeof a=="function"?pn.define(t,s,a.bind(e)):pn.define(t,s,a)}};pn.onExit=t=>{let e=(r,s)=>{xde||(xde=!0,XG.forEach(a=>a()),r===!0&&process.exit(128+s))};XG.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),XG.push(t)};pn.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};pn.defineExport=(t,e,r)=>{let s;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){s=a},get(){return s?s():r()}})}});var Qde=_(rC=>{"use strict";rC.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};rC.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};rC.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};rC.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};rC.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var Fde=_((_Ht,Tde)=>{"use strict";var Rde=Ie("readline"),Iat=Qde(),Cat=/^(?:\x1b)([a-zA-Z0-9])$/,wat=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Bat={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function vat(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function Sat(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var JT=(t="",e={})=>{let r,s={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=s.sequence||""),s.sequence=s.sequence||t||s.name,t==="\r")s.raw=void 0,s.name="return";else if(t===` `)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(r=Cat.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]);else if(r=wat.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),c=(r[3]||r[5]||1)-1;s.ctrl=!!(c&4),s.meta=!!(c&10),s.shift=!!(c&1),s.code=n,s.name=Bat[n],s.shift=vat(n)||s.shift,s.ctrl=Sat(n)||s.ctrl}return s};JT.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let s=Rde.createInterface({terminal:!0,input:r});Rde.emitKeypressEvents(r,s);let a=(f,p)=>e(f,JT(f,p),s),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),s.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),s.pause(),s.close()}};JT.action=(t,e,r)=>{let s={...Iat,...r};return e.ctrl?(e.action=s.ctrl[e.name],e):e.option&&s.option?(e.action=s.option[e.name],e):e.shift?(e.action=s.shift[e.name],e):(e.action=s.keys[e.name],e)};Tde.exports=JT});var Ode=_((HHt,Nde)=>{"use strict";Nde.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let s=e[r];typeof s=="number"&&(s={interval:s}),Dat(t,r,s)}};function Dat(t,e,r={}){let s=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;s.frames=r.frames||[],s.loading=!0;let n=setInterval(()=>{s.ms=Date.now()-s.start,s.tick++,t.render()},a);return s.stop=()=>{s.loading=!1,clearInterval(n)},Reflect.defineProperty(s,"interval",{value:n}),t.once("close",()=>s.stop()),s.stop}});var Mde=_((jHt,Lde)=>{"use strict";var{define:Pat,width:bat}=Xo(),$G=class{constructor(e){let r=e.options;Pat(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=bat(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Lde.exports=$G});var _de=_((GHt,Ude)=>{"use strict";var eq=Xo(),ho=Ju(),tq={default:ho.noop,noop:ho.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||eq.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||eq.complement(this.primary)},primary:ho.cyan,success:ho.green,danger:ho.magenta,strong:ho.bold,warning:ho.yellow,muted:ho.dim,disabled:ho.gray,dark:ho.dim.gray,underline:ho.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};tq.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(ho.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(ho.visible=t.styles.visible);let e=eq.merge({},tq,t.styles);delete e.merge;for(let r of Object.keys(ho))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>ho[r]});for(let r of Object.keys(ho.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>ho[r]});return e};Ude.exports=tq});var jde=_((qHt,Hde)=>{"use strict";var rq=process.platform==="win32",zp=Ju(),xat=Xo(),nq={...zp.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:zp.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:zp.symbols.question,submitted:zp.symbols.check,cancelled:zp.symbols.cross},separator:{pending:zp.symbols.pointerSmall,submitted:zp.symbols.middot,cancelled:zp.symbols.middot},radio:{off:rq?"( )":"\u25EF",on:rq?"(*)":"\u25C9",disabled:rq?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};nq.merge=t=>{let e=xat.merge({},zp.symbols,nq,t.symbols);return delete e.merge,e};Hde.exports=nq});var qde=_((WHt,Gde)=>{"use strict";var kat=_de(),Qat=jde(),Rat=Xo();Gde.exports=t=>{t.options=Rat.merge({},t.options.theme,t.options),t.symbols=Qat.merge(t.options),t.styles=kat.merge(t.options)}});var Kde=_((Vde,Jde)=>{"use strict";var Wde=process.env.TERM_PROGRAM==="Apple_Terminal",Tat=Ju(),iq=Xo(),Ku=Jde.exports=Vde,Ui="\x1B[",Yde="\x07",sq=!1,j0=Ku.code={bell:Yde,beep:Yde,beginning:`${Ui}G`,down:`${Ui}J`,esc:Ui,getPosition:`${Ui}6n`,hide:`${Ui}?25l`,line:`${Ui}2K`,lineEnd:`${Ui}K`,lineStart:`${Ui}1K`,restorePosition:Ui+(Wde?"8":"u"),savePosition:Ui+(Wde?"7":"s"),screen:`${Ui}2J`,show:`${Ui}?25h`,up:`${Ui}1J`},wm=Ku.cursor={get hidden(){return sq},hide(){return sq=!0,j0.hide},show(){return sq=!1,j0.show},forward:(t=1)=>`${Ui}${t}C`,backward:(t=1)=>`${Ui}${t}D`,nextLine:(t=1)=>`${Ui}E`.repeat(t),prevLine:(t=1)=>`${Ui}F`.repeat(t),up:(t=1)=>t?`${Ui}${t}A`:"",down:(t=1)=>t?`${Ui}${t}B`:"",right:(t=1)=>t?`${Ui}${t}C`:"",left:(t=1)=>t?`${Ui}${t}D`:"",to(t,e){return e?`${Ui}${e+1};${t+1}H`:`${Ui}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?wm.left(-t):t>0?wm.right(t):"",r+=e<0?wm.up(-e):e>0?wm.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:s,input:a,prompt:n,size:c,value:f}=t;if(s=iq.isPrimitive(s)?String(s):"",a=iq.isPrimitive(a)?String(a):"",f=iq.isPrimitive(f)?String(f):"",c){let p=Ku.cursor.up(c)+Ku.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Ku.cursor.left(h)),p}if(f||e){let p=!a&&s?-s.length:-a.length+r;return e&&(p-=e.length),a===""&&s&&!n.includes(s)&&(p+=s.length),Ku.cursor.move(p)}}},oq=Ku.erase={screen:j0.screen,up:j0.up,down:j0.down,line:j0.line,lineEnd:j0.lineEnd,lineStart:j0.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return oq.line+wm.to(0);let r=n=>[...Tat.unstyle(n)].length,s=t.split(/\r?\n/),a=0;for(let n of s)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(oq.line+wm.prevLine()).repeat(a-1)+oq.line+wm.to(0)}});var nC=_((YHt,Zde)=>{"use strict";var Fat=Ie("events"),zde=Ju(),aq=Fde(),Nat=Ode(),Oat=Mde(),Lat=qde(),pl=Xo(),Bm=Kde(),lq=class t extends Fat{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,Lat(this),Nat(this),this.state=new Oat(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Uat(this.options.margin),this.setMaxListeners(0),Mat(this)}async keypress(e,r={}){this.keypressed=!0;let s=aq.action(e,aq(e,r),this.options.actions);this.state.keypress=s,this.emit("keypress",e,s),this.emit("state",this.state.clone());let a=this.options[s.action]||this[s.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,s);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Bm.code.beep)}cursorHide(){this.stdout.write(Bm.cursor.hide()),pl.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Bm.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Bm.cursor.down(e)+Bm.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:s}=this.sections(),{cursor:a,initial:n="",input:c="",value:f=""}=this,p=this.state.size=s.length,h={after:r,cursor:a,initial:n,input:c,prompt:e,size:p,value:f},E=Bm.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:s}=this.state;s=zde.unstyle(s);let a=zde.unstyle(e),n=a.indexOf(s),c=a.slice(0,n),p=a.slice(n).split(` `),h=p[0],E=p[p.length-1],S=(s+(r?" "+r:"")).length,b=Se.call(this,this.value),this.result=()=>s.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,s){let{options:a,state:n,symbols:c,timers:f}=this,p=f&&f[e];n.timer=p;let h=a[e]||n[e]||c[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let C=await this.resolve(E,n,r,s);return!C&&r&&r[e]?this.resolve(h,n,r,s):C}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,s=this.state;return s.timer=r,pl.isObject(e)&&(e=e[s.status]||e.pending),pl.hasColor(e)?e:(this.styles[s.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return pl.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,s=this.state;s.timer=r;let a=e[s.status]||e.pending||s.separator,n=await this.resolve(a,s);return pl.isObject(n)&&(n=n[s.status]||n.pending),pl.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let s=await this.element("pointer",e,r);if(typeof s=="string"&&pl.hasColor(s))return s;if(s){let a=this.styles,n=this.index===r,c=n?a.primary:h=>h,f=await this.resolve(s[n?"on":"off"]||s,this.state),p=pl.hasColor(f)?f:c(f);return n?p:" ".repeat(f.length)}}async indicator(e,r){let s=await this.element("indicator",e,r);if(typeof s=="string"&&pl.hasColor(s))return s;if(s){let a=this.styles,n=e.enabled===!0,c=n?a.success:a.dark,f=s[n?"on":"off"]||s;return pl.hasColor(f)?f:c(f)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return pl.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return pl.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||pl.height(this.stdout,25)}get width(){return this.options.columns||pl.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,s=[r,e].find(this.isValue.bind(this));return this.isValue(s)?s:this.initial}static get prompt(){return e=>new this(e).run()}};function Mat(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],s=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?s.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function Uat(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` `:" ",s=[];for(let a=0;a<4;a++){let n=r(a);e[a]?s.push(n.repeat(e[a])):s.push("")}return s}Zde.exports=lq});var eme=_((VHt,$de)=>{"use strict";var _at=Xo(),Xde={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return Xde.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};$de.exports=(t,e={})=>{let r=_at.merge({},Xde,e.roles);return r[t]||r.default}});var Wv=_((JHt,nme)=>{"use strict";var Hat=Ju(),jat=nC(),Gat=eme(),KT=Xo(),{reorder:cq,scrollUp:qat,scrollDown:Wat,isObject:tme,swap:Yat}=KT,uq=class extends jat{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:s,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");tme(r)&&(r=Object.keys(r)),Array.isArray(r)?(s!=null&&(this.index=this.findIndex(s)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(s!=null&&(r=s),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let s=[],a=0,n=async(c,f)=>{typeof c=="function"&&(c=await c.call(this)),c instanceof Promise&&(c=await c);for(let p=0;p(this.state.loadingChoices=!1,c))}async toChoice(e,r,s){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=Gat(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,KT.define(e,"parent",s),e.level=s?s.level+1:1,e.indent==null&&(e.indent=s?s.indent+" ":e.indent||""),e.path=s?s.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Hat.unstyle(e.message).length));let c={...e};return e.reset=(f=c.input,p=c.value)=>{for(let h of Object.keys(c))e[h]=c[h];e.input=f,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,s){let a=await this.toChoice(e,r,s);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,s){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,s);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let s=e.parent;for(;s;){let a=s.choices.filter(n=>this.isDisabled(n));s.enabled=a.every(n=>n.enabled===!0),s=s.parent}return rme(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=s=>{let a=Number(s);if(a>this.choices.length-1)return this.alert();let n=this.focused,c=this.choices.find(f=>a===f.index);if(!c.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(c)===-1){let f=cq(this.choices),p=f.indexOf(c);if(n.index>p){let h=f.slice(p,p+this.limit),E=f.filter(C=>!h.includes(C));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=f.slice(h).concat(f.slice(0,h))}}return this.index=this.choices.indexOf(c),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(s=>{let a=this.choices.length,n=this.num,c=(f=!1,p)=>{clearTimeout(this.numberTimeout),f&&(p=r(n)),this.num="",s(p)};if(n==="0"||n.length===1&&+(n+"0")>a)return c(!0);if(Number(n)>a)return c(!1,this.alert());this.numberTimeout=setTimeout(()=>c(!0),this.delay)})}home(){return this.choices=cq(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=cq(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,s=this.index;return this.options.scroll===!1&&s===0?this.alert():e>r&&s===0?this.scrollUp():(this.index=(s-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,s=this.index;return this.options.scroll===!1&&s===r-1?this.alert():e>r&&s===r-1?this.scrollDown():(this.index=(s+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=qat(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Wat(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Yat(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(s=>e[s]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(s=>!this.isDisabled(s));return e.enabled&&r.every(s=>this.isEnabled(s))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((s,a)=>(s[a]=this.find(a,r),s),{})}filter(e,r){let a=typeof e=="function"?e:(f,p)=>[f.name,p].includes(e),c=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?c.map(f=>f[r]):c}find(e,r){if(tme(e))return r?e[r]:e;let a=typeof e=="function"?e:(c,f)=>[c.name,f].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(c=>c.newChoice))return this.alert();let{reorder:r,sort:s}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&s!==!0&&(n=KT.reorder(n)),this.value=a?n.map(c=>c.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(s=>s.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let s=this.find(r);s&&(this.initial=s.index,this.focus(s,!0))}}}get choices(){return rme(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:s}=this,a=e.limit||this._limit||r.limit||s.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function rme(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(KT.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let s=r.choices.filter(a=>!t.isDisabled(a));r.enabled=s.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}nme.exports=uq});var G0=_((KHt,ime)=>{"use strict";var Vat=Wv(),fq=Xo(),Aq=class extends Vat{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let s=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!fq.hasColor(s)&&(s=this.styles.strong(s)),this.resolve(s,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),c=await this.resolve(e.hint,this.state,e,r);c&&!fq.hasColor(c)&&(c=this.styles.muted(c));let f=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],f+a+n,p,this.margin[1],c].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(fq.hasColor(p)||(p=this.styles.disabled(p)),h()):(s&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,c)=>await this.renderChoice(n,c)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let s=this.margin[0]+r.join(` `),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,s].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,s="",a=await this.header(),n=await this.prefix(),c=await this.separator(),f=await this.message();this.options.promptLine!==!1&&(s=[n,f,c,""].join(" "),this.state.prompt=s);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();p&&(s+=p),h&&!s.includes(h)&&(s+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(s+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,s,E,C].filter(Boolean).join(` `)),this.write(this.margin[2]),this.restore()}};ime.exports=Aq});var ome=_((zHt,sme)=>{"use strict";var Jat=G0(),Kat=(t,e)=>{let r=t.toLowerCase();return s=>{let n=s.toLowerCase().indexOf(r),c=e(s.slice(n,n+r.length));return n>=0?s.slice(0,n)+c+s.slice(n+r.length):s}},pq=class extends Jat{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:s}=this.state;return this.input=s.slice(0,r)+e+s.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let s=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(s))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Kat(this.input,e),s=this.choices;this.choices=s.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=s}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};sme.exports=pq});var gq=_((ZHt,ame)=>{"use strict";var hq=Xo();ame.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:s="",pos:a,showCursor:n=!0,color:c}=e,f=c||t.styles.placeholder,p=hq.inverse(t.styles.primary),h=T=>p(t.styles.black(T)),E=r,C=" ",S=h(C);if(t.blink&&t.blink.off===!0&&(h=T=>T,S=""),n&&a===0&&s===""&&r==="")return h(C);if(n&&a===0&&(r===s||r===""))return h(s[0])+f(s.slice(1));s=hq.isPrimitive(s)?`${s}`:"",r=hq.isPrimitive(r)?`${r}`:"";let b=s&&s.startsWith(r)&&s!==r,I=b?h(s[r.length]):S;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),I=""),n===!1&&(I=""),b){let T=t.styles.unstyle(E+I);return E+I+f(s.slice(T.length))}return E+I}});var zT=_((XHt,lme)=>{"use strict";var zat=Ju(),Zat=G0(),Xat=gq(),dq=class extends Zat{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:s,input:a}=r;return r.value=r.input=a.slice(0,s)+e+a.slice(s),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:s}=e;return e.value=e.input=s.slice(0,r-1)+s.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:s}=e;if(s[r]===void 0)return this.alert();let a=`${s}`.slice(0,r)+`${s}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:s}=e;return r&&r.startsWith(s)&&s!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let s=await this.resolve(e.separator,this.state,e,r)||":";return s?" "+this.styles.disabled(s):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:s,styles:a}=this,{cursor:n,initial:c="",name:f,hint:p,input:h=""}=e,{muted:E,submitted:C,primary:S,danger:b}=a,I=p,T=this.index===r,N=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),W=e.message;this.align==="right"&&(W=W.padStart(this.longest+1," ")),this.align==="left"&&(W=W.padEnd(this.longest+1," "));let ee=this.values[f]=h||c,ie=h?"success":"dark";await N.call(e,ee,this.state)!==!0&&(ie="danger");let ue=a[ie],le=ue(await this.indicator(e,r))+(e.pad||""),me=this.indent(e),pe=()=>[me,le,W+U,h,I].filter(Boolean).join(" ");if(s.submitted)return W=zat.unstyle(W),h=C(h),I="",pe();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=Xat(this,{input:h,initial:c,pos:n,showCursor:T,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[f]=await e.result.call(this,ee,e,r)),T&&(W=S(W)),e.error?h+=(h?" ":"")+b(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),pe()}async submit(){return this.value=this.values,super.base.submit.call(this)}};lme.exports=dq});var mq=_(($Ht,ume)=>{"use strict";var $at=zT(),elt=()=>{throw new Error("expected prompt to have a custom authenticate method")},cme=(t=elt)=>{class e extends $at{constructor(s){super(s)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(s){return cme(s)}}return e};ume.exports=cme()});var pme=_((ejt,Ame)=>{"use strict";var tlt=mq();function rlt(t,e){return t.username===this.options.username&&t.password===this.options.password}var fme=(t=rlt)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(s){return this.options.showPassword?s:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(s.length))}}];class r extends tlt.create(t){constructor(a){super({...a,choices:e})}static create(a){return fme(a)}}return r};Ame.exports=fme()});var ZT=_((tjt,hme)=>{"use strict";var nlt=nC(),{isPrimitive:ilt,hasColor:slt}=Xo(),yq=class extends nlt{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:s}=this;return s.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return ilt(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return slt(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=this.styles.muted(this.default),f=[s,n,c,a].filter(Boolean).join(" ");this.state.prompt=f;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),C=await this.error()||await this.hint(),S=await this.footer();C&&!f.includes(C)&&(E+=" "+C),f+=" "+E,this.clear(r),this.write([p,f,S].filter(Boolean).join(` `)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};hme.exports=yq});var dme=_((rjt,gme)=>{"use strict";var olt=ZT(),Eq=class extends olt{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};gme.exports=Eq});var yme=_((njt,mme)=>{"use strict";var alt=G0(),llt=zT(),iC=llt.prototype,Iq=class extends alt{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let s=this.focused,a=s.parent||{};return!s.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():iC.dispatch.call(this,e,r)}append(e,r){return iC.append.call(this,e,r)}delete(e,r){return iC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?iC.next.call(this):super.next()}prev(){return this.focused.editable?iC.prev.call(this):super.prev()}async indicator(e,r){let s=e.indicator||"",a=e.editable?s:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?iC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let s=r.parent?this.value[r.parent.name]:this.value;if(r.editable?s=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(s=r.enabled===!0),e=await r.validate(s,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};mme.exports=Iq});var vm=_((ijt,Eme)=>{"use strict";var clt=nC(),ult=gq(),{isPrimitive:flt}=Xo(),Cq=class extends clt{constructor(e){super(e),this.initial=flt(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let s=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!s||s.name!=="return")?this.append(` `,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:s}=this.state;this.input=`${s}`.slice(0,r)+e+`${s}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),s=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=s,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):ult(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),s=await this.separator(),a=await this.message(),n=[r,a,s].filter(Boolean).join(" ");this.state.prompt=n;let c=await this.header(),f=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!f.includes(p)&&(f+=" "+p),n+=" "+f,this.clear(e),this.write([c,n,h].filter(Boolean).join(` `)),this.restore()}};Eme.exports=Cq});var Cme=_((sjt,Ime)=>{"use strict";var Alt=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),XT=t=>Alt(t).filter(Boolean);Ime.exports=(t,e={},r="")=>{let{past:s=[],present:a=""}=e,n,c;switch(t){case"prev":case"undo":return n=s.slice(0,s.length-1),c=s[s.length-1]||"",{past:XT([r,...n]),present:c};case"next":case"redo":return n=s.slice(1),c=s[0]||"",{past:XT([...n,r]),present:c};case"save":return{past:XT([...s,r]),present:""};case"remove":return c=XT(s.filter(f=>f!==r)),a="",c.length&&(a=c.pop()),{past:c,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var Bq=_((ojt,Bme)=>{"use strict";var plt=vm(),wme=Cme(),wq=class extends plt{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let s=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:s},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=wme(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=wme("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Bme.exports=wq});var Sme=_((ajt,vme)=>{"use strict";var hlt=vm(),vq=class extends hlt{format(){return""}};vme.exports=vq});var Pme=_((ljt,Dme)=>{"use strict";var glt=vm(),Sq=class extends glt{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Dme.exports=Sq});var xme=_((cjt,bme)=>{"use strict";var dlt=G0(),Dq=class extends dlt{constructor(e){super({...e,multiple:!0})}};bme.exports=Dq});var bq=_((ujt,kme)=>{"use strict";var mlt=vm(),Pq=class extends mlt{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,s=this.toNumber(this.input);return s>this.max+r?this.alert():(this.input=`${s+r}`,this.render())}down(e){let r=e||this.minor,s=this.toNumber(this.input);return sthis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};kme.exports=Pq});var Rme=_((fjt,Qme)=>{Qme.exports=bq()});var Fme=_((Ajt,Tme)=>{"use strict";var ylt=vm(),xq=class extends ylt{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Tme.exports=xq});var Lme=_((pjt,Ome)=>{"use strict";var Elt=Ju(),Ilt=Wv(),Nme=Xo(),kq=class extends Ilt{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((s,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let s=0;s=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(s=>` ${s.name} - ${s.message}`)].map(s=>this.styles.muted(s)).join(` `)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let s=this.scaleLength-r.join("").length,a=Math.round(s/(r.length-1)),c=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),f=" ".repeat(this.widths[0]);return this.margin[3]+f+this.margin[1]+c}scaleIndicator(e,r,s){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,s);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let s=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return s.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!Nme.hasColor(n)&&(n=this.styles.muted(n));let c=I=>this.margin[3]+I.replace(/\s+$/,"").padEnd(this.widths[0]," "),f=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),C=this.margin[1]+this.margin[3];this.scaleLength=Elt.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-C.length);let b=Nme.wordWrap(h,{width:this.widths[0],newline:f}).split(` `).map(I=>c(I)+this.margin[1]);return s&&(E=this.styles.info(E),b=b.map(I=>this.styles.info(I))),b[0]+=E,this.linebreak&&b.push(""),[p+a,b.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),s=await this.renderScaleHeading();return this.margin[0]+[s,...r.map(a=>a.join(" "))].join(` `)}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c="";this.options.promptLine!==!1&&(c=[s,n,a,""].join(" "),this.state.prompt=c);let f=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),C=await this.renderChoices(),S=await this.footer(),b=this.emptyError;p&&(c+=p),E&&!c.includes(E)&&(c+=" "+E),e&&!p&&!C.trim()&&this.multiple&&b!=null&&(c+=this.styles.danger(b)),this.clear(r),this.write([f,c,h,C,S].filter(Boolean).join(` `)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Ome.exports=kq});var _me=_((hjt,Ume)=>{"use strict";var Mme=Ju(),Clt=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",Rq=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Clt(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},wlt=async(t={},e={},r=s=>s)=>{let s=new Set,a=t.fields||[],n=t.template,c=[],f=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,C=()=>n[++E],S=()=>n[E+1],b=I=>{I.line=h,c.push(I)};for(b({type:"bos",value:""});Eie.name===U.key);U.field=a.find(ie=>ie.name===U.key),ee||(ee=new Rq(U),f.push(ee)),ee.lines.push(U.line-1);continue}let T=c[c.length-1];T.type==="text"&&T.line===h?T.value+=I:b({type:"text",value:I})}return b({type:"eos",value:""}),{input:n,tabstops:c,unique:s,keys:p,items:f}};Ume.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),s={...e.values,...e.initial},{tabstops:a,items:n,keys:c}=await wlt(e,s),f=Qq("result",t,e),p=Qq("format",t,e),h=Qq("validate",t,e,!0),E=t.isValue.bind(t);return async(C={},S=!1)=>{let b=0;C.required=r,C.items=n,C.keys=c,C.output="";let I=async(W,ee,ie,ue)=>{let le=await h(W,ee,ie,ue);return le===!1?"Invalid field "+ie.name:le};for(let W of a){let ee=W.value,ie=W.key;if(W.type!=="template"){ee&&(C.output+=ee);continue}if(W.type==="template"){let ue=n.find(Ce=>Ce.name===ie);e.required===!0&&C.required.add(ue.name);let le=[ue.input,C.values[ue.value],ue.value,ee].find(E),pe=(ue.field||{}).message||W.inner;if(S){let Ce=await I(C.values[ie],C,ue,b);if(Ce&&typeof Ce=="string"||Ce===!1){C.invalid.set(ie,Ce);continue}C.invalid.delete(ie);let g=await f(C.values[ie],C,ue,b);C.output+=Mme.unstyle(g);continue}ue.placeholder=!1;let Be=ee;ee=await p(ee,C,ue,b),le!==ee?(C.values[ie]=le,ee=t.styles.typing(le),C.missing.delete(pe)):(C.values[ie]=void 0,le=`<${pe}>`,ee=t.styles.primary(le),ue.placeholder=!0,C.required.has(ie)&&C.missing.add(pe)),C.missing.has(pe)&&C.validating&&(ee=t.styles.warning(le)),C.invalid.has(ie)&&C.validating&&(ee=t.styles.danger(le)),b===C.index&&(Be!==ee?ee=t.styles.underline(ee):ee=t.styles.heading(Mme.unstyle(ee))),b++}ee&&(C.output+=ee)}let T=C.output.split(` `).map(W=>" "+W),N=n.length,U=0;for(let W of n)C.invalid.has(W.name)&&W.lines.forEach(ee=>{T[ee][0]===" "&&(T[ee]=C.styles.danger(C.symbols.bullet)+T[ee].slice(1))}),t.isValue(C.values[W.name])&&U++;return C.completed=(U/N*100).toFixed(0),C.output=T.join(` `),C.output}};function Qq(t,e,r,s){return(a,n,c,f)=>typeof c.field[t]=="function"?c.field[t].call(e,a,n,c,f):[s,a].find(p=>e.isValue(p))}});var jme=_((gjt,Hme)=>{"use strict";var Blt=Ju(),vlt=_me(),Slt=nC(),Tq=class extends Slt{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await vlt(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let s=this.getItem(),a=s.input.slice(0,this.cursor),n=s.input.slice(this.cursor);this.input=s.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),s=e.input.slice(0,this.cursor-1);this.input=e.input=`${s}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:s,size:a}=this.state,n=[this.options.newline,` `].find(W=>W!=null),c=await this.prefix(),f=await this.separator(),p=await this.message(),h=[c,p,f].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),C=await this.error()||"",S=await this.hint()||"",b=s?"":await this.interpolate(this.state),I=this.state.key=r[e]||"",T=await this.format(I),N=await this.footer();T&&(h+=" "+T),S&&!T&&this.state.completed===0&&(h+=" "+S),this.clear(a);let U=[E,h,b,N,C.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:s,index:a}=this.state,n=r.find(c=>c.name===s[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:s,values:a}=this.state;if(e.size){let f="";for(let[p,h]of e)f+=`Invalid ${p}: ${h} `;return this.state.error=f,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let c=Blt.unstyle(s).split(` `).map(f=>f.slice(1)).join(` `);return this.value={values:a,result:c},super.submit()}};Hme.exports=Tq});var qme=_((djt,Gme)=>{"use strict";var Dlt="(Use + to sort)",Plt=G0(),Fq=class extends Plt{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Dlt].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let s=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+s:n+s}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};Gme.exports=Fq});var Yme=_((mjt,Wme)=>{"use strict";var blt=Wv(),Nq=class extends blt{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(s=>this.styles.muted(s)),this.state.header=r.join(` `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let s of r)s.scale=xlt(5,this.options),s.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],s=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!s,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=this.term==="Hyper",n=a?9:8,c=a?"":" ",f=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=ee=>(ee?this.styles.success("\u25C9"):"\u25EF")+c,E=r+1+".",C=s?this.styles.heading:this.styles.noop,S=await this.resolve(e.message,this.state,e,r),b=this.indent(e),I=b+e.scale.map((ee,ie)=>h(ie===e.scaleIdx)).join(f),T=ee=>ee===e.scaleIdx?C(ee):ee,N=b+e.scale.map((ee,ie)=>T(ie)).join(p),U=()=>[E,S].filter(Boolean).join(" "),W=()=>[U(),I,N," "].filter(Boolean).join(` `);return s&&(I=this.styles.cyan(I),N=this.styles.cyan(N)),W()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(s,a)=>await this.renderChoice(s,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` `)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=[s,n,a].filter(Boolean).join(" ");this.state.prompt=c;let f=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();(p||!h)&&(c+=" "+p),h&&!c.includes(h)&&(c+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(c+=this.styles.danger(this.emptyError)),this.clear(r),this.write([c,f,E,C].filter(Boolean).join(` `)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function xlt(t,e={}){if(Array.isArray(e.scale))return e.scale.map(s=>({...s}));let r=[];for(let s=1;s{Vme.exports=Bq()});var zme=_((Ejt,Kme)=>{"use strict";var klt=ZT(),Oq=class extends klt{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=s=>this.styles.primary.underline(s);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),s=await this.prefix(),a=await this.separator(),n=await this.message(),c=await this.format(),f=await this.error()||await this.hint(),p=await this.footer(),h=[s,n,a,c].join(" ");this.state.prompt=h,f&&!h.includes(f)&&(h+=" "+f),this.clear(e),this.write([r,h,p].filter(Boolean).join(` `)),this.write(this.margin[2]),this.restore()}};Kme.exports=Oq});var Xme=_((Ijt,Zme)=>{"use strict";var Qlt=G0(),Lq=class extends Qlt{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let s=await super.toChoices(e,r);if(s.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>s.length)throw new Error("Please specify the index of the correct answer from the list of choices");return s}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Zme.exports=Lq});var eye=_(Mq=>{"use strict";var $me=Xo(),ks=(t,e)=>{$me.defineExport(Mq,t,e),$me.defineExport(Mq,t.toLowerCase(),e)};ks("AutoComplete",()=>ome());ks("BasicAuth",()=>pme());ks("Confirm",()=>dme());ks("Editable",()=>yme());ks("Form",()=>zT());ks("Input",()=>Bq());ks("Invisible",()=>Sme());ks("List",()=>Pme());ks("MultiSelect",()=>xme());ks("Numeral",()=>Rme());ks("Password",()=>Fme());ks("Scale",()=>Lme());ks("Select",()=>G0());ks("Snippet",()=>jme());ks("Sort",()=>qme());ks("Survey",()=>Yme());ks("Text",()=>Jme());ks("Toggle",()=>zme());ks("Quiz",()=>Xme())});var rye=_((wjt,tye)=>{tye.exports={ArrayPrompt:Wv(),AuthPrompt:mq(),BooleanPrompt:ZT(),NumberPrompt:bq(),StringPrompt:vm()}});var Vv=_((Bjt,iye)=>{"use strict";var nye=Ie("assert"),_q=Ie("events"),q0=Xo(),zu=class extends _q{constructor(e,r){super(),this.options=q0.merge({},e),this.answers={...r}}register(e,r){if(q0.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}nye.equal(typeof r,"function","expected a function");let s=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[s]=r:this.prompts[s]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(q0.merge({},this.options,r))}catch(s){return Promise.reject(s)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=q0.merge({},this.options,e),{type:s,name:a}=e,{set:n,get:c}=q0;if(typeof s=="function"&&(s=await s.call(this,e,this.answers)),!s)return this.answers[a];nye(this.prompts[s],`Prompt "${s}" is not registered`);let f=new this.prompts[s](r),p=c(this.answers,a);f.state.answers=this.answers,f.enquirer=this,a&&f.on("submit",E=>{this.emit("answer",a,E,f),n(this.answers,a,E)});let h=f.emit.bind(f);return f.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",f,this),r.autofill&&p!=null?(f.value=f.input=p,r.autofill==="show"&&await f.submit()):p=f.value=await f.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||nC()}static get prompts(){return eye()}static get types(){return rye()}static get prompt(){let e=(r,...s)=>{let a=new this(...s),n=a.emit.bind(a);return a.emit=(...c)=>(e.emit(...c),n(...c)),a.prompt(r)};return q0.mixinEmitter(e,new _q),e}};q0.mixinEmitter(zu,new _q);var Uq=zu.prompts;for(let t of Object.keys(Uq)){let e=t.toLowerCase(),r=s=>new Uq[t](s).run();zu.prompt[e]=r,zu[e]=r,zu[t]||Reflect.defineProperty(zu,t,{get:()=>Uq[t]})}var Yv=t=>{q0.defineExport(zu,t,()=>zu.types[t])};Yv("ArrayPrompt");Yv("AuthPrompt");Yv("BooleanPrompt");Yv("NumberPrompt");Yv("StringPrompt");iye.exports=zu});var Aye=_((Y6t,_lt)=>{_lt.exports={name:"@yarnpkg/cli",version:"4.10.3",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-catalog":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-jsr":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-catalog"]}},repository:{type:"git",url:"git+https://github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var t5=_((v9t,vye)=>{"use strict";vye.exports=function(e,r){r===!0&&(r=0);var s="";if(typeof e=="string")try{s=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(s=e.protocol);var a=s.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var Dye=_((S9t,Sye)=>{"use strict";var oct=t5();function act(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=oct(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}Sye.exports=act});var xye=_((D9t,bye)=>{"use strict";var lct=Dye();function cct(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var uct=cct(lct),fct="text/plain",Act="us-ascii",Pye=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),pct=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:s,data:a,hash:n}=r.groups,c=s.split(";");n=e?"":n;let f=!1;c[c.length-1]==="base64"&&(c.pop(),f=!0);let p=(c.shift()||"").toLowerCase(),E=[...c.map(C=>{let[S,b=""]=C.split("=").map(I=>I.trim());return S==="charset"&&(b=b.toLowerCase(),b===Act)?"":`${S}${b?`=${b}`:""}`}).filter(Boolean)];return f&&E.push("base64"),(E.length>0||p&&p!==fct)&&E.unshift(p),`data:${E.join(";")},${f?a.trim():a}${n?`#${n}`:""}`};function hct(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return pct(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let c=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,f=0,p="";for(;;){let E=c.exec(a.pathname);if(!E)break;let C=E[0],S=E.index,b=a.pathname.slice(f,S);p+=b.replace(/\/{2,}/g,"/"),p+=C,f=S+C.length}let h=a.pathname.slice(f,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let c=a.pathname.split("/"),f=c[c.length-1];Pye(f,e.removeDirectoryIndex)&&(c=c.slice(0,-1),a.pathname=c.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let c of[...a.searchParams.keys()])Pye(c,e.removeQueryParameters)&&a.searchParams.delete(c);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var r5=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,s=n=>{let c=new Error(n);throw c.subject_url=t,c};(typeof t!="string"||!t.trim())&&s("Invalid url."),t.length>r5.MAX_INPUT_LENGTH&&s("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=hct(t,e));let a=uct.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):s("URL parsing failed.")}return a};r5.MAX_INPUT_LENGTH=2048;bye.exports=r5});var Rye=_((P9t,Qye)=>{"use strict";var gct=t5();function kye(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=gct(t);if(t=t.substring(t.indexOf("://")+3),kye(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@"){"use strict";var dct=xye(),Tye=Rye();function mct(t){var e=dct(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Tye(e.protocols)||e.protocols.length===0&&Tye(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Fye.exports=mct});var Lye=_((x9t,Oye)=>{"use strict";var yct=Nye();function n5(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=yct(t),s=r.resource.split("."),a=null;switch(r.toString=function(N){return n5.stringify(this,N)},r.source=s.length>2?s.slice(1-s.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=s[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var c=a.indexOf("-",2),f=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),C=a.indexOf("raw",2),S=a.indexOf("edit",2);n=c>0?c-1:f>0?f-1:p>0?p-1:h>0?h-1:E>0?E-1:C>0?C-1:S>0?S-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var b=a.length>n&&a[n+1]==="-"?n+1:n;a.length>b+2&&["raw","src","blob","tree","edit"].indexOf(a[b+1])>=0&&(r.filepathtype=a[b+1],r.ref=a[b+2],a.length>b+3&&(r.filepath=a.slice(b+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var I=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,T=I.exec(r.pathname);return T!=null&&(r.source="bitbucket-server",T[1]==="users"?r.owner="~"+T[2]:r.owner=T[2],r.organization=r.owner,r.name=T[3],a=T[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}n5.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",s=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+s+"@"+t.resource+r+"/"+t.full_name+a:s+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+s+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?Ect(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+Ict(t)+a;default:return t.href}};function Ect(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function Ict(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}Oye.exports=n5});function Fct(t,e){return e===1&&Tct.has(t[0])}function nS(t){let e=Array.isArray(t)?t:Mu(t);return e.map((s,a)=>Qct.test(s)?`[${s}]`:Rct.test(s)&&!Fct(e,a)?`.${s}`:`[${JSON.stringify(s)}]`).join("").replace(/^\./,"")}function Nct(t,e){let r=[];if(e.methodName!==null&&r.push(he.pretty(t,e.methodName,he.Type.CODE)),e.file!==null){let s=[];s.push(he.pretty(t,e.file,he.Type.PATH)),e.line!==null&&(s.push(he.pretty(t,e.line,he.Type.NUMBER)),e.column!==null&&s.push(he.pretty(t,e.column,he.Type.NUMBER))),r.push(`(${s.join(he.pretty(t,":","grey"))})`)}return r.join(" ")}function nF(t,{manifestUpdates:e,reportedErrors:r},{fix:s}={}){let a=new Map,n=new Map,c=[...r.keys()].map(f=>[f,new Map]);for(let[f,p]of[...c,...e]){let h=r.get(f)?.map(b=>({text:b,fixable:!1}))??[],E=!1,C=t.getWorkspaceByCwd(f),S=C.manifest.exportTo({});for(let[b,I]of p){if(I.size>1){let T=[...I].map(([N,U])=>{let W=he.pretty(t.configuration,N,he.Type.INSPECT),ee=U.size>0?Nct(t.configuration,U.values().next().value):null;return ee!==null?` ${W} at ${ee}`:` ${W}`}).join("");h.push({text:`Conflict detected in constraint targeting ${he.pretty(t.configuration,b,he.Type.CODE)}; conflicting values are:${T}`,fixable:!1})}else{let[[T]]=I,N=va(S,b);if(JSON.stringify(N)===JSON.stringify(T))continue;if(!s){let U=typeof N>"u"?`Missing field ${he.pretty(t.configuration,b,he.Type.CODE)}; expected ${he.pretty(t.configuration,T,he.Type.INSPECT)}`:typeof T>"u"?`Extraneous field ${he.pretty(t.configuration,b,he.Type.CODE)} currently set to ${he.pretty(t.configuration,N,he.Type.INSPECT)}`:`Invalid field ${he.pretty(t.configuration,b,he.Type.CODE)}; expected ${he.pretty(t.configuration,T,he.Type.INSPECT)}, found ${he.pretty(t.configuration,N,he.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof T>"u"?A0(S,b):Jd(S,b,T),E=!0}E&&a.set(C,S)}h.length>0&&n.set(C,h)}return{changedWorkspaces:a,remainingErrors:n}}function Zye(t,{configuration:e}){let r={children:[]};for(let[s,a]of t){let n=[];for(let f of a){let p=f.text.split(/\n/);f.fixable&&(p[0]=`${he.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:he.tuple(he.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:he.tuple(he.Type.NO_HINT,h)}))})}let c={value:he.tuple(he.Type.LOCATOR,s.anchoredLocator),children:je.sortMap(n,f=>f.value[1])};r.children.push(c)}return r.children=je.sortMap(r.children,s=>s.value[1]),r}var WC,Qct,Rct,Tct,iS=Ze(()=>{Ge();ql();WC=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let s=Object.hasOwn(e,r)?e[r]:void 0;if(typeof s>"u")continue;je.getArrayWithDefault(this.indexes[r],s).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let s=[],a;for(let[c,f]of r){let p=c,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){s.push([p,f]);continue}let E=new Set(h.get(f)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let C of a)E.has(C)||a.delete(C);if(a.size===0)break}let n=[...a??[]];return s.length>0&&(n=n.filter(c=>{for(let[f,p]of s)if(!(typeof p<"u"?Object.hasOwn(c,f)&&c[f]===p:Object.hasOwn(c,f)===!1))return!1;return!0})),n}},Qct=/^[0-9]+$/,Rct=/^[a-zA-Z0-9_]+$/,Tct=new Set(["scripts",...Ut.allDependencies])});var Xye=_((CYt,m5)=>{var Oct;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(!t.type.is_variable(f)&&!t.type.is_integer(f))s.throw_error(t.error.type("integer",f,n.indicator));else if(t.type.is_integer(f)&&f.value<0)s.throw_error(t.error.domain("not_less_than_zero",f,n.indicator));else{var p=new t.type.Term("length",[c,new t.type.Num(0,!1),f]);t.type.is_integer(f)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),s.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(f))s.throw_error(t.error.type("integer",f,n.indicator));else if(f.value<0)s.throw_error(t.error.domain("not_less_than_zero",f,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E0;C--)E[C].equals(E[C-1])&&E.splice(C,1);for(var S=new t.type.Term("[]"),C=E.length-1;C>=0;C--)S=new t.type.Term(".",[E[C],S]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[S,f])),a.substitution,a)])}}},"msort/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else{for(var p=[],h=c;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))s.throw_error(t.error.type("list",c,n.indicator));else{for(var E=p.sort(t.compare),C=new t.type.Term("[]"),S=E.length-1;S>=0;S--)C=new t.type.Term(".",[E[S],C]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[C,f])),a.substitution,a)])}}},"keysort/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else{for(var p=[],h,E=c;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){s.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){s.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))s.throw_error(t.error.type("list",c,n.indicator));else{for(var C=p.sort(t.compare),S=new t.type.Term("[]"),b=C.length-1;b>=0;b--)S=new t.type.Term(".",[new t.type.Term("-",[C[b],C[b].pair]),S]),delete C[b].pair;s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[S,f])),a.substitution,a)])}}},"take/3":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f)||t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(f))s.throw_error(t.error.type("list",f,n.indicator));else if(!t.type.is_integer(c))s.throw_error(t.error.type("integer",c,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type("list",p,n.indicator));else{for(var h=c.value,E=[],C=f;h>0&&C.indicator==="./2";)E.push(C.args[0]),C=C.args[1],h--;if(h===0){for(var S=new t.type.Term("[]"),h=E.length-1;h>=0;h--)S=new t.type.Term(".",[E[h],S]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[S,p])),a.substitution,a)])}}},"drop/3":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f)||t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(f))s.throw_error(t.error.type("list",f,n.indicator));else if(!t.type.is_integer(c))s.throw_error(t.error.type("integer",c,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type("list",p,n.indicator));else{for(var h=c.value,E=[],C=f;h>0&&C.indicator==="./2";)E.push(C.args[0]),C=C.args[1],h--;h===0&&s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[C,p])),a.substitution,a)])}},"reverse/2":function(s,a,n){var c=n.args[0],f=n.args[1],p=t.type.is_instantiated_list(c),h=t.type.is_instantiated_list(f);if(t.type.is_variable(c)&&t.type.is_variable(f))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(c)&&!t.type.is_fully_list(c))s.throw_error(t.error.type("list",c,n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else if(!p&&!h)s.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?c:f,C=new t.type.Term("[]",[]);E.indicator==="./2";)C=new t.type.Term(".",[E.args[0],C]),E=E.args[1];s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[C,p?f:c])),a.substitution,a)])}},"list_to_set/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else{for(var p=c,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")s.throw_error(t.error.type("list",c,n.indicator));else{for(var E=[],C=new t.type.Term("[]",[]),S,b=0;b=0;b--)C=new t.type.Term(".",[E[b],C]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[f,C])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof m5<"u"?m5.exports=function(s){t=s,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(Oct)});var pEe=_($r=>{"use strict";var Pm=process.platform==="win32",y5="aes-256-cbc",Lct="sha256",tEe="The current environment doesn't support interactive reading from TTY.",si=Ie("fs"),$ye=process.binding("tty_wrap").TTY,I5=Ie("child_process"),V0=Ie("path"),C5={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Zp="none",Xu,VC,eEe=!1,Y0,sF,E5,Mct=0,D5="",Dm=[],oF,rEe=!1,w5=!1,sS=!1;function nEe(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(s){return"#"+s.charCodeAt(0)+";"})}return sF.concat(function(r){var s=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&s.push("--"+a):r[a]==="string"&&t[a]&&s.push("--"+a,e(t[a]))}),s}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Uct(t,e){function r(U){var W,ee="",ie;for(E5=E5||Ie("os").tmpdir();;){W=V0.join(E5,U+ee);try{ie=si.openSync(W,"wx")}catch(ue){if(ue.code==="EEXIST"){ee++;continue}else throw ue}si.closeSync(ie);break}return W}var s,a,n,c={},f,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),C=r("readline-sync.exit"),S=r("readline-sync.done"),b=Ie("crypto"),I,T,N;I=b.createHash(Lct),I.update(""+process.pid+Mct+++Math.random()),N=I.digest("hex"),T=b.createDecipher(y5,N),s=nEe(t),Pm?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+Y0+"%Q%"+s.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+C+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+y5+"%Q% %Q%"+N+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+S+"%Q%"]):(a="/bin/sh",n=["-c",'("'+Y0+'"'+s.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+C+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+y5+'" "'+N+'" >"'+h+'"; echo 1 >"'+S+'"']),sS&&sS("_execFileSync",s);try{I5.spawn(a,n,e)}catch(U){c.error=new Error(U.message),c.error.method="_execFileSync - spawn",c.error.program=a,c.error.args=n}for(;si.readFileSync(S,{encoding:t.encoding}).trim()!=="1";);return(f=si.readFileSync(C,{encoding:t.encoding}).trim())==="0"?c.input=T.update(si.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+T.final(t.encoding):(p=si.readFileSync(E,{encoding:t.encoding}).trim(),c.error=new Error(tEe+(p?` `+p:"")),c.error.method="_execFileSync",c.error.program=a,c.error.args=n,c.error.extMessage=p,c.error.exitCode=+f),si.unlinkSync(h),si.unlinkSync(E),si.unlinkSync(C),si.unlinkSync(S),c}function _ct(t){var e,r={},s,a={env:process.env,encoding:t.encoding};if(Y0||(Pm?process.env.PSModulePath?(Y0="powershell.exe",sF=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(Y0="cscript.exe",sF=["//nologo",__dirname+"\\read.cs.js"]):(Y0="/bin/sh",sF=[__dirname+"/read.sh"])),Pm&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),I5.execFileSync){e=nEe(t),sS&&sS("execFileSync",e);try{r.input=I5.execFileSync(Y0,e,a)}catch(n){s=n.stderr?(n.stderr+"").trim():"",r.error=new Error(tEe+(s?` `+s:"")),r.error.method="execFileSync",r.error.program=Y0,r.error.args=e,r.error.extMessage=s,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Uct(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function B5(t){var e="",r=t.display,s=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=_ct(t);if(n.error)throw n.error;return n.input}return w5&&w5(t),function(){var n,c,f;function p(){return n||(n=process.binding("fs"),c=process.binding("constants")),n}if(typeof Zp=="string")if(Zp=null,Pm){if(f=function(h){var E=h.replace(/^\D+/,"").split("."),C=0;return(E[0]=+E[0])&&(C+=E[0]*1e4),(E[1]=+E[1])&&(C+=E[1]*100),(E[2]=+E[2])&&(C+=E[2]),C}(process.version),!(f>=20302&&f<40204||f>=5e4&&f<50100||f>=50600&&f<60200)&&process.stdin.isTTY)process.stdin.pause(),Zp=process.stdin.fd,VC=process.stdin._handle;else try{Zp=p().open("CONIN$",c.O_RDWR,parseInt("0666",8)),VC=new $ye(Zp,!0)}catch{}if(process.stdout.isTTY)Xu=process.stdout.fd;else{try{Xu=si.openSync("\\\\.\\CON","w")}catch{}if(typeof Xu!="number")try{Xu=p().open("CONOUT$",c.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Zp=si.openSync("/dev/tty","r"),VC=process.stdin._handle}catch{}}else try{Zp=si.openSync("/dev/tty","r"),VC=new $ye(Zp,!1)}catch{}if(process.stdout.isTTY)Xu=process.stdout.fd;else try{Xu=si.openSync("/dev/tty","w")}catch{}}}(),function(){var n,c,f=!t.hideEchoBack&&!t.keyIn,p,h,E,C,S;oF="";function b(I){return I===eEe?!0:VC.setRawMode(I)!==0?!1:(eEe=I,!0)}if(rEe||!VC||typeof Xu!="number"&&(t.display||!f)){e=a();return}if(t.display&&(si.writeSync(Xu,t.display),t.display=""),!t.displayOnly){if(!b(!f)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(c=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=si.readSync(Zp,p,0,h)}catch(I){if(I.code!=="EOF"){b(!1),e+=a();return}}if(E>0?(C=p.toString(t.encoding,0,E),oF+=C):(C=` `,oF+="\0"),C&&typeof(S=(C.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(C=S,n=!0),C&&(C=C.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),C&&c&&(C=C.replace(c,"")),C&&(f||(t.hideEchoBack?t.mask&&si.writeSync(Xu,new Array(C.length+1).join(t.mask)):si.writeSync(Xu,C)),e+=C),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!f&&!s&&si.writeSync(Xu,` `),b(!1)}}(),t.print&&!s&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` `),t.encoding),t.displayOnly?"":D5=t.keepWhitespace||t.keyIn?e:e.trim()}function Hct(t,e){var r=[];function s(a){a!=null&&(Array.isArray(a)?a.forEach(s):(!e||e(a))&&r.push(a))}return s(t),r}function P5(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Vs(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(C5),t.unshift(C5))),t.reduce(function(s,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var c;if(a.hasOwnProperty(n))switch(c=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":c=c!=null?c+"":"",c&&n!=="limitMessage"&&(c=c.replace(/[\r\n]/g,"")),s[n]=c;break;case"bufferSize":!isNaN(c=parseInt(c,10))&&typeof c=="number"&&(s[n]=c);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":s[n]=!!c;break;case"limit":case"trueValue":case"falseValue":s[n]=Hct(c,function(f){var p=typeof f;return p==="string"||p==="number"||p==="function"||f instanceof RegExp}).map(function(f){return typeof f=="string"?f.replace(/[\r\n]/g,""):f});break;case"print":case"phContent":case"preCheck":s[n]=typeof c=="function"?c:void 0;break;case"prompt":case"display":s[n]=c??"";break}})),s},{})}function v5(t,e,r){return e.some(function(s){var a=typeof s;return a==="string"?r?t===s:t.toLowerCase()===s.toLowerCase():a==="number"?parseFloat(t)===s:a==="function"?s(t):s instanceof RegExp?s.test(t):!1})}function b5(t,e){var r=V0.normalize(Pm?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=V0.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+P5(r)+"(?=\\/|\\\\|$)",Pm?"i":""),"~")}function JC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",s=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(c,f,p,h,E,C){var S;return f||typeof(S=e(E))!="string"?p:S?(h||"")+S+(C||""):""}return t.replace(s,n).replace(a,n)}function iEe(t,e,r){var s,a=[],n=-1,c=0,f="",p;function h(E,C){return C.length>3?(E.push(C[0]+"..."+C[C.length-1]),p=!0):C.length&&(E=E.concat(C)),E}return s=t.reduce(function(E,C){return E.concat((C+"").split(""))},[]).reduce(function(E,C){var S,b;return e||(C=C.toLowerCase()),S=/^\d$/.test(C)?1:/^[A-Z]$/.test(C)?2:/^[a-z]$/.test(C)?3:0,r&&S===0?f+=C:(b=C.charCodeAt(0),S&&S===n&&b===c+1?a.push(C):(E=h(E,a),a=[C],n=S),c=b),E},[]),s=h(s,a),f&&(s.push(f),p=!0),{values:s,suppressed:p}}function sEe(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function oEe(t,e){var r,s,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":s=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=iEe(s,e.caseSensitive),s=a.values):s=s.filter(function(c){var f=typeof c;return f==="string"||f==="number"}),r=sEe(s,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=D5;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=V0.basename(r):t==="cwdHome"&&(r=b5(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(c){return c.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Dm[Dm.length-n]||"")}return r}function aEe(t){var e=/^(.)-(.)$/.exec(t),r="",s,a,n,c;if(!e)return null;for(s=e[1].charCodeAt(0),a=e[2].charCodeAt(0),c=s And the length must be: $`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(b){return b==="charlist"?r.text:b==="length"?s+"..."+a:null}}),c,f,p,h,E,C,S;for(e=e||{},c=JC(e.charlist?e.charlist+"":"$",aEe),(isNaN(s=parseInt(e.min,10))||typeof s!="number")&&(s=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+P5(c)+"]{"+s+","+a+"}$"),r=iEe([c],n.caseSensitive,!0),r.text=sEe(r.values,r.suppressed),f=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!S;)n.limit=h,n.limitMessage=E,C=$r.question(t,n),n.limit=[C,""],n.limitMessage=p,S=$r.question(f,n);return C};function uEe(t,e,r){var s;function a(n){return s=r(n),!isNaN(s)&&typeof s=="number"}return $r.question(t,Vs({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),s}$r.questionInt=function(t,e){return uEe(t,e,function(r){return parseInt(r,10)})};$r.questionFloat=function(t,e){return uEe(t,e,parseFloat)};$r.questionPath=function(t,e){var r,s="",a=Vs({hideEchoBack:!1,limitMessage:`$Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var c,f,p;n=b5(n,!0),s="";function h(E){E.split(/\/|\\/).reduce(function(C,S){var b=V0.resolve(C+=S+V0.sep);if(!si.existsSync(b))si.mkdirSync(b);else if(!si.statSync(b).isDirectory())throw new Error("Non directory already exists: "+b);return C},"")}try{if(c=si.existsSync(n),r=c?si.realpathSync(n):V0.resolve(n),!e.hasOwnProperty("exists")&&!c||typeof e.exists=="boolean"&&e.exists!==c)return s=(c?"Already exists":"No such file or directory")+": "+r,!1;if(!c&&e.create&&(e.isDirectory?h(r):(h(V0.dirname(r)),si.closeSync(si.openSync(r,"w"))),r=si.realpathSync(r)),c&&(e.min||e.max||e.isFile||e.isDirectory)){if(f=si.statSync(r),e.isFile&&!f.isFile())return s="Not file: "+r,!1;if(e.isDirectory&&!f.isDirectory())return s="Not directory: "+r,!1;if(e.min&&f.size<+e.min||e.max&&f.size>+e.max)return s="Size "+f.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(s=p),!1}catch(E){return s=E+"",!1}return!0},phContent:function(n){return n==="error"?s:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),$r.question(t,a),r};function fEe(t,e){var r={},s={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(s[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=S5(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&s.hasOwnProperty(n)?s[n].apply(a,r.args.slice(1)):s.hasOwnProperty("_")?s._.apply(a,r.args):null,{res:a,forceNext:!1}},s.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),s.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=S5(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}$r.promptCL=function(t,e){var r=Vs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),s=fEe(t,r);return r.limit=s.limit,r.preCheck=s.preCheck,$r.prompt(r),s.args};$r.promptLoop=function(t,e){for(var r=Vs({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t($r.prompt(r)););};$r.promptCLLoop=function(t,e){var r=Vs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),s=fEe(t,r);for(r.limit=s.limit,r.preCheck=s.preCheck;$r.prompt(r),!s.hRes;);};$r.promptSimShell=function(t){return $r.prompt(Vs({hideEchoBack:!1,history:!0},t,{prompt:function(){return Pm?"$>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$$ "}()}))};function AEe(t,e,r){var s;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),s=$r.keyIn(t,Vs(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof s=="boolean"?s:""}$r.keyInYN=function(t,e){return AEe(t,e)};$r.keyInYNStrict=function(t,e){return AEe(t,e,"yn")};$r.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),$r.keyIn(t,Vs({limit:null},e,{hideEchoBack:!0,mask:""}))};$r.keyInSelect=function(t,e,r){var s=Vs({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},c=49,f=` `;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(c);a+=E,n[E]=h,f+="["+E+"] "+(p+"").trim()+` `,c=c===57?97:c+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,f+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` `),s.limit=a,f+=` `,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$]: "),f+=e),n[$r.keyIn(f,s).toLowerCase()]};$r.getRawInput=function(){return oF};function oS(t,e){var r;return e.length&&(r={},r[t]=e[0]),$r.setDefaultOptions(r)[t]}$r.setPrint=function(){return oS("print",arguments)};$r.setPrompt=function(){return oS("prompt",arguments)};$r.setEncoding=function(){return oS("encoding",arguments)};$r.setMask=function(){return oS("mask",arguments)};$r.setBufferSize=function(){return oS("bufferSize",arguments)}});var x5=_((BYt,ec)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,P,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:P,get:function(z,Z){return Z===this.text.length||Z>this.text.length?"end_of_file":this.text.substring(Z,Z+z)},put:function(z,Z){return Z==="end_of_file"?(this.text+=z,!0):Z==="past_end_of_file"?null:(this.text=this.text.substring(0,Z)+z+this.text.substring(Z+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var Z=Math.floor(z/2);if(this.text.length<=Z)return-1;var $=n(this.text[Math.floor(z/2)],0);return z%2===0?$&255:$/256>>>0},put_byte:function(z,Z){var $=Z==="end_of_stream"?this.text.length:Math.floor(Z/2);if(this.text.length<$)return null;var oe=this.text.length===$?-1:n(this.text[Math.floor(Z/2)],0);return Z%2===0?(oe=oe/256>>>0,oe=(oe&255)<<8|z&255):(oe=oe&255,oe=(z&255)<<8|oe&255),this.text.length===$?this.text+=c(oe):this.text=this.text.substring(0,$)+c(oe)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,P){for(var y;tau_user_input.buffer.length\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function N(w,P){return w.get_flag("char_conversion").id==="on"?P.replace(/./g,function(y){return w.get_char_conversion(y)}):P}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var P,y=0,F=0,z=0,Z=[],$=!1;if(w){var oe=this.tokens[w-1];y=oe.len,P=N(this.thread,this.text.substr(oe.len)),F=oe.line,z=oe.start}else P=this.text;if(/^\s*$/.test(P))return null;for(;P!=="";){var xe=[],Re=!1;if(/^\n/.exec(P)!==null){F++,z=0,y++,P=P.replace(/\n/,""),$=!0;continue}for(var lt in T)if(T.hasOwnProperty(lt)){var Ct=T[lt].exec(P);Ct&&xe.push({value:Ct[0],name:lt,matches:Ct})}if(!xe.length)return this.set_last_tokens([{value:P,matches:[],name:"lexical",line:F,start:z}]);var oe=r(xe,function(br,Ir){return br.value.length>=Ir.value.length?br:Ir});switch(oe.start=z,oe.line=F,P=P.replace(oe.value,""),z+=oe.value.length,y+=oe.value.length,oe.name){case"atom":oe.raw=oe.value,oe.value.charAt(0)==="'"&&(oe.value=S(oe.value.substr(1,oe.value.length-2),"'"),oe.value===null&&(oe.name="lexical",oe.value="unknown escape sequence"));break;case"number":oe.float=oe.value.substring(0,2)!=="0x"&&oe.value.match(/[.eE]/)!==null&&oe.value!=="0'.",oe.value=I(oe.value),oe.blank=Re;break;case"string":var qt=oe.value.charAt(0);oe.value=S(oe.value.substr(1,oe.value.length-2),qt),oe.value===null&&(oe.name="lexical",oe.value="unknown escape sequence");break;case"whitespace":var ir=Z[Z.length-1];ir&&(ir.space=!0),Re=!0;continue;case"r_bracket":Z.length>0&&Z[Z.length-1].name==="l_bracket"&&(oe=Z.pop(),oe.name="atom",oe.value="{}",oe.raw="{}",oe.space=!1);break;case"r_brace":Z.length>0&&Z[Z.length-1].name==="l_brace"&&(oe=Z.pop(),oe.name="atom",oe.value="[]",oe.raw="[]",oe.space=!1);break}oe.len=y,Z.push(oe),Re=!1}var bt=this.set_last_tokens(Z);return bt.length===0?null:bt};function W(w,P,y,F,z){if(!P[y])return{type:f,value:x.error.syntax(P[y-1],"expression expected",!0)};var Z;if(F==="0"){var $=P[y];switch($.name){case"number":return{type:p,len:y+1,value:new x.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new x.type.Var($.value)};case"string":var oe;switch(w.get_flag("double_quotes").id){case"atom":oe=new j($.value,[]);break;case"codes":oe=new j("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)oe=new j(".",[new x.type.Num(n($.value,xe),!1),oe]);break;case"chars":oe=new j("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)oe=new j(".",[new x.type.Term($.value.charAt(xe),[]),oe]);break}return{type:p,len:y+1,value:oe};case"l_paren":var bt=W(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name==="r_paren"?(bt.len++,bt):{type:f,derived:!0,value:x.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],") or operator expected",!P[bt.len])};case"l_bracket":var bt=W(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name==="r_bracket"?(bt.len++,bt.value=new j("{}",[bt.value]),bt):{type:f,derived:!0,value:x.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],"} or operator expected",!P[bt.len])}}var Re=ee(w,P,y,z);return Re.type===p||Re.derived||(Re=ie(w,P,y),Re.type===p||Re.derived)?Re:{type:f,derived:!1,value:x.error.syntax(P[y],"unexpected token")}}var lt=w.__get_max_priority(),Ct=w.__get_next_priority(F),qt=y;if(P[y].name==="atom"&&P[y+1]&&(P[y].space||P[y+1].name!=="l_paren")){var $=P[y++],ir=w.__lookup_operator_classes(F,$.value);if(ir&&ir.indexOf("fy")>-1){var bt=W(w,P,y,F,z);if(bt.type!==f)return $.value==="-"&&!$.space&&x.type.is_number(bt.value)?{value:new x.type.Num(-bt.value.value,bt.value.is_float),len:bt.len,type:p}:{value:new x.type.Term($.value,[bt.value]),len:bt.len,type:p};Z=bt}else if(ir&&ir.indexOf("fx")>-1){var bt=W(w,P,y,Ct,z);if(bt.type!==f)return{value:new x.type.Term($.value,[bt.value]),len:bt.len,type:p};Z=bt}}y=qt;var bt=W(w,P,y,Ct,z);if(bt.type===p){y=bt.len;var $=P[y];if(P[y]&&(P[y].name==="atom"&&w.__lookup_operator_classes(F,$.value)||P[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var gn=Ct,br=F,ir=w.__lookup_operator_classes(F,$.value);if(ir.indexOf("xf")>-1)return{value:new x.type.Term($.value,[bt.value]),len:++bt.len,type:p};if(ir.indexOf("xfx")>-1){var Ir=W(w,P,y+1,gn,z);return Ir.type===p?{value:new x.type.Term($.value,[bt.value,Ir.value]),len:Ir.len,type:p}:(Ir.derived=!0,Ir)}else if(ir.indexOf("xfy")>-1){var Ir=W(w,P,y+1,br,z);return Ir.type===p?{value:new x.type.Term($.value,[bt.value,Ir.value]),len:Ir.len,type:p}:(Ir.derived=!0,Ir)}else if(bt.type!==f)for(;;){y=bt.len;var $=P[y];if($&&$.name==="atom"&&w.__lookup_operator_classes(F,$.value)){var ir=w.__lookup_operator_classes(F,$.value);if(ir.indexOf("yf")>-1)bt={value:new x.type.Term($.value,[bt.value]),len:++y,type:p};else if(ir.indexOf("yfx")>-1){var Ir=W(w,P,++y,gn,z);if(Ir.type===f)return Ir.derived=!0,Ir;y=Ir.len,bt={value:new x.type.Term($.value,[bt.value,Ir.value]),len:y,type:p}}else break}else break}}else Z={type:f,value:x.error.syntax(P[bt.len-1],"operator expected")};return bt}return bt}function ee(w,P,y,F){if(!P[y]||P[y].name==="atom"&&P[y].raw==="."&&!F&&(P[y].space||!P[y+1]||P[y+1].name!=="l_paren"))return{type:f,derived:!1,value:x.error.syntax(P[y-1],"unfounded token")};var z=P[y],Z=[];if(P[y].name==="atom"&&P[y].raw!==","){if(y++,P[y-1].space)return{type:p,len:y,value:new x.type.Term(z.value,Z)};if(P[y]&&P[y].name==="l_paren"){if(P[y+1]&&P[y+1].name==="r_paren")return{type:f,derived:!0,value:x.error.syntax(P[y+1],"argument expected")};var $=W(w,P,++y,"999",!0);if($.type===f)return $.derived?$:{type:f,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],"argument expected",!P[y])};for(Z.push($.value),y=$.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if($=W(w,P,y+1,"999",!0),$.type===f)return $.derived?$:{type:f,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};Z.push($.value),y=$.len}if(P[y]&&P[y].name==="r_paren")y++;else return{type:f,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],", or ) expected",!P[y])}}return{type:p,len:y,value:new x.type.Term(z.value,Z)}}return{type:f,derived:!1,value:x.error.syntax(P[y],"term expected")}}function ie(w,P,y){if(!P[y])return{type:f,derived:!1,value:x.error.syntax(P[y-1],"[ expected")};if(P[y]&&P[y].name==="l_brace"){var F=W(w,P,++y,"999",!0),z=[F.value],Z=void 0;if(F.type===f)return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:new x.type.Term("[]",[])}:{type:f,derived:!0,value:x.error.syntax(P[y],"] expected")};for(y=F.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(F=W(w,P,y+1,"999",!0),F.type===f)return F.derived?F:{type:f,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};z.push(F.value),y=F.len}var $=!1;if(P[y]&&P[y].name==="bar"){if($=!0,F=W(w,P,y+1,"999",!0),F.type===f)return F.derived?F:{type:f,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};Z=F.value,y=F.len}return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:g(z,Z)}:{type:f,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],$?"] expected":", or | or ] expected",!P[y])}}return{type:f,derived:!1,value:x.error.syntax(P[y],"list expected")}}function ue(w,P,y){var F=P[y].line,z=W(w,P,y,w.__get_max_priority(),!1),Z=null,$;if(z.type!==f)if(y=z.len,P[y]&&P[y].name==="atom"&&P[y].raw===".")if(y++,x.type.is_term(z.value)){if(z.value.indicator===":-/2"?(Z=new x.type.Rule(z.value.args[0],Ce(z.value.args[1])),$={value:Z,len:y,type:p}):z.value.indicator==="-->/2"?(Z=pe(new x.type.Rule(z.value.args[0],z.value.args[1]),w),Z.body=Ce(Z.body),$={value:Z,len:y,type:x.type.is_rule(Z)?p:f}):(Z=new x.type.Rule(z.value,null),$={value:Z,len:y,type:p}),Z){var oe=Z.singleton_variables();oe.length>0&&w.throw_warning(x.warning.singleton(oe,Z.head.indicator,F))}return $}else return{type:f,value:x.error.syntax(P[y],"callable expected")};else return{type:f,value:x.error.syntax(P[y]?P[y]:P[y-1],". or operator expected")};return z}function le(w,P,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),z={},Z;F.new_text(P);var $=0,oe=F.get_tokens($);do{if(oe===null||!oe[$])break;var xe=ue(w,oe,$);if(xe.type===f)return new j("throw",[xe.value]);if(xe.value.body===null&&xe.value.head.indicator==="?-/1"){var Re=new it(w.session);Re.add_goal(xe.value.head.args[0]),Re.answer(function(Ct){x.type.is_error(Ct)?w.throw_warning(Ct.args[0]):(Ct===!1||Ct===null)&&w.throw_warning(x.warning.failed_goal(xe.value.head.args[0],xe.len))}),$=xe.len;var lt=!0}else if(xe.value.body===null&&xe.value.head.indicator===":-/1"){var lt=w.run_directive(xe.value.head.args[0]);$=xe.len,xe.value.head.args[0].indicator==="char_conversion/2"&&(oe=F.get_tokens($),$=0)}else{Z=xe.value.head.indicator,y.reconsult!==!1&&z[Z]!==!0&&!w.is_multifile_predicate(Z)&&(w.session.rules[Z]=a(w.session.rules[Z]||[],function(qt){return qt.dynamic}),z[Z]=!0);var lt=w.add_rule(xe.value,y);$=xe.len}if(!lt)return lt}while(!0);return!0}function me(w,P){var y=new U(w);y.new_text(P);var F=0;do{var z=y.get_tokens(F);if(z===null)break;var Z=W(w,z,0,w.__get_max_priority(),!1);if(Z.type!==f){var $=Z.len,oe=$;if(z[$]&&z[$].name==="atom"&&z[$].raw===".")w.add_goal(Ce(Z.value));else{var xe=z[$];return new j("throw",[x.error.syntax(xe||z[$-1],". or operator expected",!xe)])}F=Z.len+1}else return new j("throw",[Z.value])}while(!0);return!0}function pe(w,P){w=w.rename(P);var y=P.next_free_variable(),F=Be(w.body,y,P);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new j(w.head.id,w.head.args),w)}function Be(w,P,y){var F;if(x.type.is_term(w)&&w.indicator==="!/0")return{value:w,variable:P,error:!1};if(x.type.is_term(w)&&w.indicator===",/2"){var z=Be(w.args[0],P,y);if(z.error)return z;var Z=Be(w.args[1],z.variable,y);return Z.error?Z:{value:new j(",",[z.value,Z.value]),variable:Z.variable,error:!1}}else{if(x.type.is_term(w)&&w.indicator==="{}/1")return{value:w.args[0],variable:P,error:!1};if(x.type.is_empty_list(w))return{value:new j("true",[]),variable:P,error:!1};if(x.type.is_list(w)){F=y.next_free_variable();for(var $=w,oe;$.indicator==="./2";)oe=$,$=$.args[1];return x.type.is_variable($)?{value:x.error.instantiation("DCG"),variable:P,error:!0}:x.type.is_empty_list($)?(oe.args[1]=F,{value:new j("=",[P,w]),variable:F,error:!1}):{value:x.error.type("list",w,"DCG"),variable:P,error:!0}}else return x.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([P,F]),w=new j(w.id,w.args),{value:w,variable:F,error:!1}):{value:x.error.type("callable",w,"DCG"),variable:P,error:!0}}}function Ce(w){return x.type.is_variable(w)?new j("call",[w]):x.type.is_term(w)&&[",/2",";/2","->/2"].indexOf(w.indicator)!==-1?new j(w.id,[Ce(w.args[0]),Ce(w.args[1])]):w}function g(w,P){for(var y=P||new x.type.Term("[]",[]),F=w.length-1;F>=0;F--)y=new x.type.Term(".",[w[F],y]);return y}function we(w,P){for(var y=w.length-1;y>=0;y--)w[y]===P&&w.splice(y,1)}function ye(w){for(var P={},y=[],F=0;F=0;P--)if(w.charAt(P)==="/")return new j("/",[new j(w.substring(0,P)),new Te(parseInt(w.substring(P+1)),!1)])}function De(w){this.id=w}function Te(w,P){this.is_float=P!==void 0?P:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var mt=0;function j(w,P,y){this.ref=y||++mt,this.id=w,this.args=P||[],this.indicator=w+"/"+this.args.length}var rt=0;function Fe(w,P,y,F,z,Z){this.id=rt++,this.stream=w,this.mode=P,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=z!==void 0?z:!0,this.eof_action=Z!==void 0?Z:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Ne(w){w=w||{},this.links=w}function be(w,P,y){P=P||new Ne,y=y||null,this.goal=w,this.substitution=P,this.parent=y}function Ve(w,P,y){this.head=w,this.body=P,this.dynamic=y||!1}function ke(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new it(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Fe(typeof ec<"u"&&ec.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Fe(typeof ec<"u"&&ec.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof ec<"u"&&ec.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(P){return P.substitution},this.format_error=function(P){return P.goal},this.flag={bounded:x.flag.bounded.value,max_integer:x.flag.max_integer.value,min_integer:x.flag.min_integer.value,integer_rounding_function:x.flag.integer_rounding_function.value,char_conversion:x.flag.char_conversion.value,debug:x.flag.debug.value,max_arity:x.flag.max_arity.value,unknown:x.flag.unknown.value,double_quotes:x.flag.double_quotes.value,occurs_check:x.flag.occurs_check.value,dialect:x.flag.dialect.value,version_data:x.flag.version_data.value,nodejs:x.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function it(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function Ue(w,P,y){this.id=w,this.rules=P,this.exports=y,x.module[w]=this}Ue.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},De.prototype.unify=function(w,P){if(P&&e(w.variables(),this.id)!==-1&&!x.type.is_variable(w))return null;var y={};return y[this.id]=w,new Ne(y)},Te.prototype.unify=function(w,P){return x.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new Ne:null},j.prototype.unify=function(w,P){if(x.type.is_term(w)&&this.indicator===w.indicator){for(var y=new Ne,F=0;F=0){var F=this.args[0].value,z=Math.floor(F/26),Z=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[Z]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(w)+"}";case"./2":for(var $="["+this.args[0].toString(w),oe=this.args[1];oe.indicator==="./2";)$+=", "+oe.args[0].toString(w),oe=oe.args[1];return oe.indicator!=="[]/0"&&($+="|"+oe.toString(w)),$+="]",$;case",/2":return"("+this.args[0].toString(w)+", "+this.args[1].toString(w)+")";default:var xe=this.id,Re=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Re===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(xe)&&xe!=="{}"&&xe!=="[]"&&(xe="'"+b(xe)+"'"),xe+(this.args.length?"("+s(this.args,function(ir){return ir.toString(w)}).join(", ")+")":"");var lt=Re.priority>P.priority||Re.priority===P.priority&&(Re.class==="xfy"&&this.indicator!==P.indicator||Re.class==="yfx"&&this.indicator!==P.indicator||this.indicator===P.indicator&&Re.class==="yfx"&&y==="right"||this.indicator===P.indicator&&Re.class==="xfy"&&y==="left");Re.indicator=this.indicator;var Ct=lt?"(":"",qt=lt?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Re.class)!==-1?Ct+xe+" "+this.args[0].toString(w,Re)+qt:["yf","xf"].indexOf(Re.class)!==-1?Ct+this.args[0].toString(w,Re)+" "+xe+qt:Ct+this.args[0].toString(w,Re,"left")+" "+this.id+" "+this.args[1].toString(w,Re,"right")+qt}},Fe.prototype.toString=function(w){return"("+this.id+")"},Ne.prototype.toString=function(w){var P="{";for(var y in this.links)this.links.hasOwnProperty(y)&&(P!=="{"&&(P+=", "),P+=y+"/"+this.links[y].toString(w));return P+="}",P},be.prototype.toString=function(w){return this.goal===null?"<"+this.substitution.toString(w)+">":"<"+this.goal.toString(w)+", "+this.substitution.toString(w)+">"},Ve.prototype.toString=function(w){return this.body?this.head.toString(w)+" :- "+this.body.toString(w)+".":this.head.toString(w)+"."},ke.prototype.toString=function(w){for(var P="",y=0;y=0;z--)F=new j(".",[P[z],F]);return F}return new j(this.id,s(this.args,function(Z){return Z.apply(w)}),this.ref)},Fe.prototype.apply=function(w){return this},Ve.prototype.apply=function(w){return new Ve(this.head.apply(w),this.body!==null?this.body.apply(w):null)},Ne.prototype.apply=function(w){var P,y={};for(P in this.links)this.links.hasOwnProperty(P)&&(y[P]=this.links[P].apply(w));return new Ne(y)},j.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},j.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new j(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new j(",",[w,this.args[1]]):w},j.prototype.search=function(w){if(x.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var P=0;PP&&F0&&(P=this.head_point().substitution.domain());e(P,x.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id==="_")return new De(x.format_variable(this.session.rename));this.session.renamed_variables[w.id]=x.format_variable(this.session.rename)}return new De(this.session.renamed_variables[w.id])},ke.prototype.next_free_variable=function(){return this.thread.next_free_variable()},it.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,x.format_variable(this.session.rename))!==-1;)this.session.rename++;return new De(x.format_variable(this.session.rename))},ke.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},it.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},ke.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},it.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},ke.prototype.prepend=function(w){return this.thread.prepend(w)},it.prototype.prepend=function(w){for(var P=w.length-1;P>=0;P--)this.points.push(w[P])},ke.prototype.success=function(w,P){return this.thread.success(w,P)},it.prototype.success=function(w,y){var y=typeof y>"u"?w:y;this.prepend([new be(w.goal.replace(null),w.substitution,y)])},ke.prototype.throw_error=function(w){return this.thread.throw_error(w)},it.prototype.throw_error=function(w){this.prepend([new be(new j("throw",[w]),new Ne,null,null)])},ke.prototype.step_rule=function(w,P){return this.thread.step_rule(w,P)},it.prototype.step_rule=function(w,P){var y=P.indicator;if(w==="user"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],z=0;z1)&&this.again()},ke.prototype.answers=function(w,P,y){return this.thread.answers(w,P,y)},it.prototype.answers=function(w,P,y){var F=P||1e3,z=this;if(P<=0){y&&y();return}this.answer(function(Z){w(Z),Z!==!1?setTimeout(function(){z.answers(w,P-1,y)},1):y&&y()})},ke.prototype.again=function(w){return this.thread.again(w)},it.prototype.again=function(w){for(var P,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!x.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):x.type.is_error(this.head_point().goal)?(P=this.session.format_error(this.points.pop()),this.points=[],z(P)):(this.debugger&&this.debugger_states.push(this.head_point()),P=this.session.format_success(this.points.pop()),z(P))}},ke.prototype.unfold=function(w){if(w.body===null)return!1;var P=w.head,y=w.body,F=y.select(),z=new it(this),Z=[];z.add_goal(F),z.step();for(var $=z.points.length-1;$>=0;$--){var oe=z.points[$],xe=P.apply(oe.substitution),Re=y.replace(oe.goal);Re!==null&&(Re=Re.apply(oe.substitution)),Z.push(new Ve(xe,Re))}var lt=this.rules[P.indicator],Ct=e(lt,w);return Z.length>0&&Ct!==-1?(lt.splice.apply(lt,[Ct,1].concat(Z)),!0):!1},it.prototype.unfold=function(w){return this.session.unfold(w)},De.prototype.interpret=function(w){return x.error.instantiation(w.level)},Te.prototype.interpret=function(w){return this},j.prototype.interpret=function(w){return x.type.is_unitary_list(this)?this.args[0].interpret(w):x.operate(w,this)},De.prototype.compare=function(w){return this.idw.id?1:0},Te.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.valuew.value)return 1},j.prototype.compare=function(w){if(this.args.lengthw.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var P=0;PF)return 1;if(w.constructor===Te){if(w.is_float&&P.is_float)return 0;if(w.is_float)return-1;if(P.is_float)return 1}return 0},is_substitution:function(w){return w instanceof Ne},is_state:function(w){return w instanceof be},is_rule:function(w){return w instanceof Ve},is_variable:function(w){return w instanceof De},is_stream:function(w){return w instanceof Fe},is_anonymous_var:function(w){return w instanceof De&&w.id==="_"},is_callable:function(w){return w instanceof j},is_number:function(w){return w instanceof Te},is_integer:function(w){return w instanceof Te&&!w.is_float},is_float:function(w){return w instanceof Te&&w.is_float},is_term:function(w){return w instanceof j},is_atom:function(w){return w instanceof j&&w.args.length===0},is_ground:function(w){if(w instanceof De)return!1;if(w instanceof j){for(var P=0;P0},is_list:function(w){return w instanceof j&&(w.indicator==="[]/0"||w.indicator==="./2")},is_empty_list:function(w){return w instanceof j&&w.indicator==="[]/0"},is_non_empty_list:function(w){return w instanceof j&&w.indicator==="./2"},is_fully_list:function(w){for(;w instanceof j&&w.indicator==="./2";)w=w.args[1];return w instanceof De||w instanceof j&&w.indicator==="[]/0"},is_instantiated_list:function(w){for(;w instanceof j&&w.indicator==="./2";)w=w.args[1];return w instanceof j&&w.indicator==="[]/0"},is_unitary_list:function(w){return w instanceof j&&w.indicator==="./2"&&w.args[1]instanceof j&&w.args[1].indicator==="[]/0"},is_character:function(w){return w instanceof j&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Te&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Te&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof j&&x.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof j&&x.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof j&&x.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof j&&w.indicator==="throw/1"},is_predicate_indicator:function(w){return w instanceof j&&w.indicator==="//2"&&w.args[0]instanceof j&&w.args[0].args.length===0&&w.args[1]instanceof Te&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof j&&w.args.length===0&&x.flag[w.id]!==void 0},is_value_flag:function(w,P){if(!x.type.is_flag(w))return!1;for(var y in x.flag[w.id].allowed)if(x.flag[w.id].allowed.hasOwnProperty(y)&&x.flag[w.id].allowed[y].equals(P))return!0;return!1},is_io_mode:function(w){return x.type.is_atom(w)&&["read","write","append"].indexOf(w.id)!==-1},is_stream_option:function(w){return x.type.is_term(w)&&(w.indicator==="alias/1"&&x.type.is_atom(w.args[0])||w.indicator==="reposition/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="type/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary")||w.indicator==="eof_action/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))},is_stream_position:function(w){return x.type.is_integer(w)&&w.value>=0||x.type.is_atom(w)&&(w.id==="end_of_stream"||w.id==="past_end_of_stream")},is_stream_property:function(w){return x.type.is_term(w)&&(w.indicator==="input/0"||w.indicator==="output/0"||w.indicator==="alias/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0]))||w.indicator==="file_name/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0]))||w.indicator==="position/1"&&(x.type.is_variable(w.args[0])||x.type.is_stream_position(w.args[0]))||w.indicator==="reposition/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))||w.indicator==="type/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary"))||w.indicator==="mode/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="read"||w.args[0].id==="write"||w.args[0].id==="append"))||w.indicator==="eof_action/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))||w.indicator==="end_of_stream/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="at"||w.args[0].id==="past"||w.args[0].id==="not")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return x.type.is_term(w)&&["variables/1","variable_names/1","singletons/1"].indexOf(w.indicator)!==-1},is_write_option:function(w){return x.type.is_term(w)&&(w.indicator==="quoted/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="ignore_ops/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="numbervars/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))},is_close_option:function(w){return x.type.is_term(w)&&w.indicator==="force/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")},is_modifiable_flag:function(w){return x.type.is_flag(w)&&x.flag[w.id].changeable},is_module:function(w){return w instanceof j&&w.indicator==="library/1"&&w.args[0]instanceof j&&w.args[0].args.length===0&&x.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(w){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(w,P){return w}},"-/1":{type_args:null,type_result:null,fn:function(w,P){return-w}},"\\/1":{type_args:!1,type_result:!1,fn:function(w,P){return~w}},"abs/1":{type_args:null,type_result:null,fn:function(w,P){return Math.abs(w)}},"sign/1":{type_args:null,type_result:null,fn:function(w,P){return Math.sign(w)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(w,P){return w-parseInt(w)}},"float/1":{type_args:null,type_result:!0,fn:function(w,P){return parseFloat(w)}},"floor/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.floor(w)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},"round/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.round(w)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.ceil(w)}},"sin/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.sin(w)}},"cos/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.cos(w)}},"tan/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.tan(w)}},"asin/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.asin(w)}},"acos/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.acos(w)}},"atan/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.atan(w)}},"atan2/2":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.atan2(w,P)}},"exp/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.exp(w)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.sqrt(w)}},"log/1":{type_args:null,type_result:!0,fn:function(w,P){return w>0?Math.log(w):x.error.evaluation("undefined",P.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(w,P,y){return w+P}},"-/2":{type_args:null,type_result:null,fn:function(w,P,y){return w-P}},"*/2":{type_args:null,type_result:null,fn:function(w,P,y){return w*P}},"//2":{type_args:null,type_result:!0,fn:function(w,P,y){return P?w/P:x.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?parseInt(w/P):x.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.pow(w,P)}},"^/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.pow(w,P)}},"<>/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w>>P}},"/\\/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w&P}},"\\//2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w|P}},"xor/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w^P}},"rem/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w%P:x.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w-parseInt(w/P)*P:x.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.max(w,P)}},"min/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.min(w,P)}}}},directive:{"dynamic/1":function(w,P){var y=P.args[0];if(x.type.is_variable(y))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_compound(y)||y.indicator!=="//2")w.throw_error(x.error.type("predicate_indicator",y,P.indicator));else if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_atom(y.args[0]))w.throw_error(x.error.type("atom",y.args[0],P.indicator));else if(!x.type.is_integer(y.args[1]))w.throw_error(x.error.type("integer",y.args[1],P.indicator));else{var F=P.args[0].args[0].id+"/"+P.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},"multifile/1":function(w,P){var y=P.args[0];x.type.is_variable(y)?w.throw_error(x.error.instantiation(P.indicator)):!x.type.is_compound(y)||y.indicator!=="//2"?w.throw_error(x.error.type("predicate_indicator",y,P.indicator)):x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1])?w.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y.args[0])?x.type.is_integer(y.args[1])?w.session.multifile_predicates[P.args[0].args[0].id+"/"+P.args[0].args[1].value]=!0:w.throw_error(x.error.type("integer",y.args[1],P.indicator)):w.throw_error(x.error.type("atom",y.args[0],P.indicator))},"set_prolog_flag/2":function(w,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?w.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y)?x.type.is_flag(y)?x.type.is_value_flag(y,F)?x.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(x.error.permission("modify","flag",y)):w.throw_error(x.error.domain("flag_value",new j("+",[y,F]),P.indicator)):w.throw_error(x.error.domain("prolog_flag",y,P.indicator)):w.throw_error(x.error.type("atom",y,P.indicator))},"use_module/1":function(w,P){var y=P.args[0];if(x.type.is_variable(y))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_term(y))w.throw_error(x.error.type("term",y,P.indicator));else if(x.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},"char_conversion/2":function(w,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?w.throw_error(x.error.instantiation(P.indicator)):x.type.is_character(y)?x.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(x.error.type("character",F,P.indicator)):w.throw_error(x.error.type("character",y,P.indicator))},"op/3":function(w,P){var y=P.args[0],F=P.args[1],z=P.args[2];if(x.type.is_variable(y)||x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_integer(y))w.throw_error(x.error.type("integer",y,P.indicator));else if(!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,P.indicator));else if(!x.type.is_atom(z))w.throw_error(x.error.type("atom",z,P.indicator));else if(y.value<0||y.value>1200)w.throw_error(x.error.domain("operator_priority",y,P.indicator));else if(z.id===",")w.throw_error(x.error.permission("modify","operator",z,P.indicator));else if(z.id==="|"&&(y.value<1001||F.id.length!==3))w.throw_error(x.error.permission("modify","operator",z,P.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)w.throw_error(x.error.domain("operator_specifier",F,P.indicator));else{var Z={prefix:null,infix:null,postfix:null};for(var $ in w.session.__operators)if(w.session.__operators.hasOwnProperty($)){var oe=w.session.__operators[$][z.id];oe&&(e(oe,"fx")!==-1&&(Z.prefix={priority:$,type:"fx"}),e(oe,"fy")!==-1&&(Z.prefix={priority:$,type:"fy"}),e(oe,"xf")!==-1&&(Z.postfix={priority:$,type:"xf"}),e(oe,"yf")!==-1&&(Z.postfix={priority:$,type:"yf"}),e(oe,"xfx")!==-1&&(Z.infix={priority:$,type:"xfx"}),e(oe,"xfy")!==-1&&(Z.infix={priority:$,type:"xfy"}),e(oe,"yfx")!==-1&&(Z.infix={priority:$,type:"yfx"}))}var xe;switch(F.id){case"fy":case"fx":xe="prefix";break;case"yf":case"xf":xe="postfix";break;default:xe="infix";break}if(((Z.prefix&&xe==="prefix"||Z.postfix&&xe==="postfix"||Z.infix&&xe==="infix")&&Z[xe].type!==F.id||Z.infix&&xe==="postfix"||Z.postfix&&xe==="infix")&&y.value!==0)w.throw_error(x.error.permission("create","operator",z,P.indicator));else return Z[xe]&&(we(w.session.__operators[Z[xe].priority][z.id],F.id),w.session.__operators[Z[xe].priority][z.id].length===0&&delete w.session.__operators[Z[xe].priority][z.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][z.id]||(w.session.__operators[y.value][z.id]=[]),w.session.__operators[y.value][z.id].push(F.id)),!0}}},predicate:{"op/3":function(w,P,y){x.directive["op/3"](w,y)&&w.success(P)},"current_op/3":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=[];for(var oe in w.session.__operators)for(var xe in w.session.__operators[oe])for(var Re=0;Re/2"){var F=w.points,z=w.session.format_success,Z=w.session.format_error;w.session.format_success=function(Re){return Re.substitution},w.session.format_error=function(Re){return Re.goal},w.points=[new be(y.args[0].args[0],P.substitution,P)];var $=function(Re){w.points=F,w.session.format_success=z,w.session.format_error=Z,Re===!1?w.prepend([new be(P.goal.replace(y.args[1]),P.substitution,P)]):x.type.is_error(Re)?w.throw_error(Re.args[0]):Re===null?(w.prepend([P]),w.__calls.shift()(null)):w.prepend([new be(P.goal.replace(y.args[0].args[1]).apply(Re),P.substitution.apply(Re),P)])};w.__calls.unshift($)}else{var oe=new be(P.goal.replace(y.args[0]),P.substitution,P),xe=new be(P.goal.replace(y.args[1]),P.substitution,P);w.prepend([oe,xe])}},"!/0":function(w,P,y){var F,z,Z=[];for(F=P,z=null;F.parent!==null&&F.parent.goal.search(y);)if(z=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id==="call"&&$.search(y)){F=z;break}}for(var oe=w.points.length-1;oe>=0;oe--){for(var xe=w.points[oe],Re=xe.parent;Re!==null&&Re!==F.parent;)Re=Re.parent;Re===null&&Re!==F.parent&&Z.push(xe)}w.points=Z.reverse(),w.success(P)},"\\+/1":function(w,P,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(w.level)):x.type.is_callable(F)?w.prepend([new be(P.goal.replace(new j(",",[new j(",",[new j("call",[F]),new j("!",[])]),new j("fail",[])])),P.substitution,P),new be(P.goal.replace(null),P.substitution,P)]):w.throw_error(x.error.type("callable",F,w.level))},"->/2":function(w,P,y){var F=P.goal.replace(new j(",",[y.args[0],new j(",",[new j("!"),y.args[1]])]));w.prepend([new be(F,P.substitution,P)])},"fail/0":function(w,P,y){},"false/0":function(w,P,y){},"true/0":function(w,P,y){w.success(P)},"call/1":se(1),"call/2":se(2),"call/3":se(3),"call/4":se(4),"call/5":se(5),"call/6":se(6),"call/7":se(7),"call/8":se(8),"once/1":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(",",[new j("call",[F]),new j("!",[])])),P.substitution,P)])},"forall/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j("\\+",[new j(",",[new j("call",[F]),new j("\\+",[new j("call",[z])])])])),P.substitution,P)])},"repeat/0":function(w,P,y){w.prepend([new be(P.goal.replace(null),P.substitution,P),P])},"throw/1":function(w,P,y){x.type.is_variable(y.args[0])?w.throw_error(x.error.instantiation(w.level)):w.throw_error(y.args[0])},"catch/3":function(w,P,y){var F=w.points;w.points=[],w.prepend([new be(y.args[0],P.substitution,P)]);var z=w.session.format_success,Z=w.session.format_error;w.session.format_success=function(oe){return oe.substitution},w.session.format_error=function(oe){return oe.goal};var $=function(oe){var xe=w.points;if(w.points=F,w.session.format_success=z,w.session.format_error=Z,x.type.is_error(oe)){for(var Re=[],lt=w.points.length-1;lt>=0;lt--){for(var ir=w.points[lt],Ct=ir.parent;Ct!==null&&Ct!==P.parent;)Ct=Ct.parent;Ct===null&&Ct!==P.parent&&Re.push(ir)}w.points=Re;var qt=w.get_flag("occurs_check").indicator==="true/0",ir=new be,bt=x.unify(oe.args[0],y.args[1],qt);bt!==null?(ir.substitution=P.substitution.apply(bt),ir.goal=P.goal.replace(y.args[2]).apply(bt),ir.parent=P,w.prepend([ir])):w.throw_error(oe.args[0])}else if(oe!==!1){for(var gn=oe===null?[]:[new be(P.goal.apply(oe).replace(null),P.substitution.apply(oe),P)],br=[],lt=xe.length-1;lt>=0;lt--){br.push(xe[lt]);var Ir=xe[lt].goal!==null?xe[lt].goal.select():null;if(x.type.is_term(Ir)&&Ir.indicator==="!/0")break}var Or=s(br,function(nn){return nn.goal===null&&(nn.goal=new j("true",[])),nn=new be(P.goal.replace(new j("catch",[nn.goal,y.args[1],y.args[2]])),P.substitution.apply(nn.substitution),nn.parent),nn.exclude=y.args[0].variables(),nn}).reverse();w.prepend(Or),w.prepend(gn),oe===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift($)},"=/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=new be,Z=x.unify(y.args[0],y.args[1],F);Z!==null&&(z.goal=P.goal.apply(Z).replace(null),z.substitution=P.substitution.apply(Z),z.parent=P,w.prepend([z]))},"unify_with_occurs_check/2":function(w,P,y){var F=new be,z=x.unify(y.args[0],y.args[1],!0);z!==null&&(F.goal=P.goal.apply(z).replace(null),F.substitution=P.substitution.apply(z),F.parent=P,w.prepend([F]))},"\\=/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=x.unify(y.args[0],y.args[1],F);z===null&&w.success(P)},"subsumes_term/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=x.unify(y.args[1],y.args[0],F);z!==null&&y.args[1].apply(z).equals(y.args[1])&&w.success(P)},"findall/3":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(z))w.throw_error(x.error.type("callable",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else{var $=w.next_free_variable(),oe=new j(",",[z,new j("=",[$,F])]),xe=w.points,Re=w.session.limit,lt=w.session.format_success;w.session.format_success=function(ir){return ir.substitution},w.add_goal(oe,!0,P);var Ct=[],qt=function(ir){if(ir!==!1&&ir!==null&&!x.type.is_error(ir))w.__calls.unshift(qt),Ct.push(ir.links[$.id]),w.session.limit=w.current_limit;else if(w.points=xe,w.session.limit=Re,w.session.format_success=lt,x.type.is_error(ir))w.throw_error(ir.args[0]);else if(w.current_limit>0){for(var bt=new j("[]"),gn=Ct.length-1;gn>=0;gn--)bt=new j(".",[Ct[gn],bt]);w.prepend([new be(P.goal.replace(new j("=",[Z,bt])),P.substitution,P)])}};w.__calls.unshift(qt)}},"bagof/3":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(Z))w.throw_error(x.error.type("callable",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))w.throw_error(x.error.type("list",$,y.indicator));else{var oe=w.next_free_variable(),xe;Z.indicator==="^/2"?(xe=Z.args[0].variables(),Z=Z.args[1]):xe=[],xe=xe.concat(z.variables());for(var Re=Z.variables().filter(function(Or){return e(xe,Or)===-1}),lt=new j("[]"),Ct=Re.length-1;Ct>=0;Ct--)lt=new j(".",[new De(Re[Ct]),lt]);var qt=new j(",",[Z,new j("=",[oe,new j(",",[lt,z])])]),ir=w.points,bt=w.session.limit,gn=w.session.format_success;w.session.format_success=function(Or){return Or.substitution},w.add_goal(qt,!0,P);var br=[],Ir=function(Or){if(Or!==!1&&Or!==null&&!x.type.is_error(Or)){w.__calls.unshift(Ir);var nn=!1,ai=Or.links[oe.id].args[0],Io=Or.links[oe.id].args[1];for(var ts in br)if(br.hasOwnProperty(ts)){var $s=br[ts];if($s.variables.equals(ai)){$s.answers.push(Io),nn=!0;break}}nn||br.push({variables:ai,answers:[Io]}),w.session.limit=w.current_limit}else if(w.points=ir,w.session.limit=bt,w.session.format_success=gn,x.type.is_error(Or))w.throw_error(Or.args[0]);else if(w.current_limit>0){for(var Co=[],Hi=0;Hi=0;wo--)eo=new j(".",[Or[wo],eo]);Co.push(new be(P.goal.replace(new j(",",[new j("=",[lt,br[Hi].variables]),new j("=",[$,eo])])),P.substitution,P))}w.prepend(Co)}};w.__calls.unshift(Ir)}},"setof/3":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(Z))w.throw_error(x.error.type("callable",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))w.throw_error(x.error.type("list",$,y.indicator));else{var oe=w.next_free_variable(),xe;Z.indicator==="^/2"?(xe=Z.args[0].variables(),Z=Z.args[1]):xe=[],xe=xe.concat(z.variables());for(var Re=Z.variables().filter(function(Or){return e(xe,Or)===-1}),lt=new j("[]"),Ct=Re.length-1;Ct>=0;Ct--)lt=new j(".",[new De(Re[Ct]),lt]);var qt=new j(",",[Z,new j("=",[oe,new j(",",[lt,z])])]),ir=w.points,bt=w.session.limit,gn=w.session.format_success;w.session.format_success=function(Or){return Or.substitution},w.add_goal(qt,!0,P);var br=[],Ir=function(Or){if(Or!==!1&&Or!==null&&!x.type.is_error(Or)){w.__calls.unshift(Ir);var nn=!1,ai=Or.links[oe.id].args[0],Io=Or.links[oe.id].args[1];for(var ts in br)if(br.hasOwnProperty(ts)){var $s=br[ts];if($s.variables.equals(ai)){$s.answers.push(Io),nn=!0;break}}nn||br.push({variables:ai,answers:[Io]}),w.session.limit=w.current_limit}else if(w.points=ir,w.session.limit=bt,w.session.format_success=gn,x.type.is_error(Or))w.throw_error(Or.args[0]);else if(w.current_limit>0){for(var Co=[],Hi=0;Hi=0;wo--)eo=new j(".",[Or[wo],eo]);Co.push(new be(P.goal.replace(new j(",",[new j("=",[lt,br[Hi].variables]),new j("=",[$,eo])])),P.substitution,P))}w.prepend(Co)}};w.__calls.unshift(Ir)}},"functor/3":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(z)&&(x.type.is_variable(Z)||x.type.is_variable($)))w.throw_error(x.error.instantiation("functor/3"));else if(!x.type.is_variable($)&&!x.type.is_integer($))w.throw_error(x.error.type("integer",y.args[2],"functor/3"));else if(!x.type.is_variable(Z)&&!x.type.is_atomic(Z))w.throw_error(x.error.type("atomic",y.args[1],"functor/3"));else if(x.type.is_integer(Z)&&x.type.is_integer($)&&$.value!==0)w.throw_error(x.error.type("atom",y.args[1],"functor/3"));else if(x.type.is_variable(z)){if(y.args[2].value>=0){for(var oe=[],xe=0;xe<$.value;xe++)oe.push(w.next_free_variable());var Re=x.type.is_integer(Z)?Z:new j(Z.id,oe);w.prepend([new be(P.goal.replace(new j("=",[z,Re])),P.substitution,P)])}}else{var lt=x.type.is_integer(z)?z:new j(z.id,[]),Ct=x.type.is_integer(z)?new Te(0,!1):new Te(z.args.length,!1),qt=new j(",",[new j("=",[lt,Z]),new j("=",[Ct,$])]);w.prepend([new be(P.goal.replace(qt),P.substitution,P)])}},"arg/3":function(w,P,y){if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))w.throw_error(x.error.instantiation(y.indicator));else if(y.args[0].value<0)w.throw_error(x.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!x.type.is_compound(y.args[1]))w.throw_error(x.error.type("compound",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var z=new j("=",[y.args[1].args[F-1],y.args[2]]);w.prepend([new be(P.goal.replace(z),P.substitution,P)])}}},"=../2":function(w,P,y){var F;if(x.type.is_variable(y.args[0])&&(x.type.is_variable(y.args[1])||x.type.is_non_empty_list(y.args[1])&&x.type.is_variable(y.args[1].args[0])))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_fully_list(y.args[1]))w.throw_error(x.error.type("list",y.args[1],y.indicator));else if(x.type.is_variable(y.args[0])){if(!x.type.is_variable(y.args[1])){var Z=[];for(F=y.args[1].args[1];F.indicator==="./2";)Z.push(F.args[0]),F=F.args[1];x.type.is_variable(y.args[0])&&x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):Z.length===0&&x.type.is_compound(y.args[1].args[0])?w.throw_error(x.error.type("atomic",y.args[1].args[0],y.indicator)):Z.length>0&&(x.type.is_compound(y.args[1].args[0])||x.type.is_number(y.args[1].args[0]))?w.throw_error(x.error.type("atom",y.args[1].args[0],y.indicator)):Z.length===0?w.prepend([new be(P.goal.replace(new j("=",[y.args[1].args[0],y.args[0]],P)),P.substitution,P)]):w.prepend([new be(P.goal.replace(new j("=",[new j(y.args[1].args[0].id,Z),y.args[0]])),P.substitution,P)])}}else{if(x.type.is_atomic(y.args[0]))F=new j(".",[y.args[0],new j("[]")]);else{F=new j("[]");for(var z=y.args[0].args.length-1;z>=0;z--)F=new j(".",[y.args[0].args[z],F]);F=new j(".",[new j(y.args[0].id),F])}w.prepend([new be(P.goal.replace(new j("=",[F,y.args[1]])),P.substitution,P)])}},"copy_term/2":function(w,P,y){var F=y.args[0].rename(w);w.prepend([new be(P.goal.replace(new j("=",[F,y.args[1]])),P.substitution,P.parent)])},"term_variables/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(!x.type.is_fully_list(z))w.throw_error(x.error.type("list",z,y.indicator));else{var Z=g(s(ye(F.variables()),function($){return new De($)}));w.prepend([new be(P.goal.replace(new j("=",[z,Z])),P.substitution,P)])}},"clause/2":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_callable(y.args[1]))w.throw_error(x.error.type("callable",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var z in w.session.rules[y.args[0].indicator])if(w.session.rules[y.args[0].indicator].hasOwnProperty(z)){var Z=w.session.rules[y.args[0].indicator][z];w.session.renamed_variables={},Z=Z.rename(w),Z.body===null&&(Z.body=new j("true"));var $=new j(",",[new j("=",[Z.head,y.args[0]]),new j("=",[Z.body,y.args[1]])]);F.push(new be(P.goal.replace($),P.substitution,P))}w.prepend(F)}else w.throw_error(x.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(w,P,y){var F=y.args[0];if(!x.type.is_variable(F)&&(!x.type.is_compound(F)||F.indicator!=="//2"))w.throw_error(x.error.type("predicate_indicator",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[0])&&!x.type.is_atom(F.args[0]))w.throw_error(x.error.type("atom",F.args[0],y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[1])&&!x.type.is_integer(F.args[1]))w.throw_error(x.error.type("integer",F.args[1],y.indicator));else{var z=[];for(var Z in w.session.rules)if(w.session.rules.hasOwnProperty(Z)){var $=Z.lastIndexOf("/"),oe=Z.substr(0,$),xe=parseInt(Z.substr($+1,Z.length-($+1))),Re=new j("/",[new j(oe),new Te(xe,!1)]),lt=new j("=",[Re,F]);z.push(new be(P.goal.replace(lt),P.substitution,P))}w.prepend(z)}},"asserta/1":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=Ce(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?w.throw_error(x.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new Ve(F,z,!0)].concat(w.session.rules[F.indicator]),w.success(P)):w.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(x.error.type("callable",F,y.indicator))}},"assertz/1":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=Ce(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?w.throw_error(x.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new Ve(F,z,!0)),w.success(P)):w.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(x.error.type("callable",F,y.indicator))}},"retract/1":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=y.args[0].args[1]):(F=y.args[0],z=new j("true")),typeof P.retract>"u")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var Z=[],$=0;$w.get_flag("max_arity").value)w.throw_error(x.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(P)):w.throw_error(x.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_atom(y.args[0]))w.throw_error(x.error.type("atom",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_integer(y.args[1]))w.throw_error(x.error.type("integer",y.args[1],y.indicator));else if(x.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(x.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new Te(y.args[0].id.length,!1);w.prepend([new be(P.goal.replace(new j("=",[F,y.args[1]])),P.substitution,P)])}},"atom_concat/3":function(w,P,y){var F,z,Z=y.args[0],$=y.args[1],oe=y.args[2];if(x.type.is_variable(oe)&&(x.type.is_variable(Z)||x.type.is_variable($)))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_atom(Z))w.throw_error(x.error.type("atom",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_atom($))w.throw_error(x.error.type("atom",$,y.indicator));else if(!x.type.is_variable(oe)&&!x.type.is_atom(oe))w.throw_error(x.error.type("atom",oe,y.indicator));else{var xe=x.type.is_variable(Z),Re=x.type.is_variable($);if(!xe&&!Re)z=new j("=",[oe,new j(Z.id+$.id)]),w.prepend([new be(P.goal.replace(z),P.substitution,P)]);else if(xe&&!Re)F=oe.id.substr(0,oe.id.length-$.id.length),F+$.id===oe.id&&(z=new j("=",[Z,new j(F)]),w.prepend([new be(P.goal.replace(z),P.substitution,P)]));else if(Re&&!xe)F=oe.id.substr(Z.id.length),Z.id+F===oe.id&&(z=new j("=",[$,new j(F)]),w.prepend([new be(P.goal.replace(z),P.substitution,P)]));else{for(var lt=[],Ct=0;Ct<=oe.id.length;Ct++){var qt=new j(oe.id.substr(0,Ct)),ir=new j(oe.id.substr(Ct));z=new j(",",[new j("=",[qt,Z]),new j("=",[ir,$])]),lt.push(new be(P.goal.replace(z),P.substitution,P))}w.prepend(lt)}}},"sub_atom/5":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2],oe=y.args[3],xe=y.args[4];if(x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_integer(Z))w.throw_error(x.error.type("integer",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_integer($))w.throw_error(x.error.type("integer",$,y.indicator));else if(!x.type.is_variable(oe)&&!x.type.is_integer(oe))w.throw_error(x.error.type("integer",oe,y.indicator));else if(x.type.is_integer(Z)&&Z.value<0)w.throw_error(x.error.domain("not_less_than_zero",Z,y.indicator));else if(x.type.is_integer($)&&$.value<0)w.throw_error(x.error.domain("not_less_than_zero",$,y.indicator));else if(x.type.is_integer(oe)&&oe.value<0)w.throw_error(x.error.domain("not_less_than_zero",oe,y.indicator));else{var Re=[],lt=[],Ct=[];if(x.type.is_variable(Z))for(F=0;F<=z.id.length;F++)Re.push(F);else Re.push(Z.value);if(x.type.is_variable($))for(F=0;F<=z.id.length;F++)lt.push(F);else lt.push($.value);if(x.type.is_variable(oe))for(F=0;F<=z.id.length;F++)Ct.push(F);else Ct.push(oe.value);var qt=[];for(var ir in Re)if(Re.hasOwnProperty(ir)){F=Re[ir];for(var bt in lt)if(lt.hasOwnProperty(bt)){var gn=lt[bt],br=z.id.length-F-gn;if(e(Ct,br)!==-1&&F+gn+br===z.id.length){var Ir=z.id.substr(F,gn);if(z.id===z.id.substr(0,F)+Ir+z.id.substr(F+gn,br)){var Or=new j("=",[new j(Ir),xe]),nn=new j("=",[Z,new Te(F)]),ai=new j("=",[$,new Te(gn)]),Io=new j("=",[oe,new Te(br)]),ts=new j(",",[new j(",",[new j(",",[nn,ai]),Io]),Or]);qt.push(new be(P.goal.replace(ts),P.substitution,P))}}}}w.prepend(qt)}},"atom_chars/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var oe=z,xe=x.type.is_variable(F),Re="";oe.indicator==="./2";){if(x.type.is_character(oe.args[0]))Re+=oe.args[0].id;else if(x.type.is_variable(oe.args[0])&&xe){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type("character",oe.args[0],y.indicator));return}oe=oe.args[1]}x.type.is_variable(oe)&&xe?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)?w.throw_error(x.error.type("list",z,y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[new j(Re),F])),P.substitution,P)])}else{for(var Z=new j("[]"),$=F.id.length-1;$>=0;$--)Z=new j(".",[new j(F.id.charAt($)),Z]);w.prepend([new be(P.goal.replace(new j("=",[z,Z])),P.substitution,P)])}},"atom_codes/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var oe=z,xe=x.type.is_variable(F),Re="";oe.indicator==="./2";){if(x.type.is_character_code(oe.args[0]))Re+=c(oe.args[0].value);else if(x.type.is_variable(oe.args[0])&&xe){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.representation("character_code",y.indicator));return}oe=oe.args[1]}x.type.is_variable(oe)&&xe?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)?w.throw_error(x.error.type("list",z,y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[new j(Re),F])),P.substitution,P)])}else{for(var Z=new j("[]"),$=F.id.length-1;$>=0;$--)Z=new j(".",[new Te(n(F.id,$),!1),Z]);w.prepend([new be(P.goal.replace(new j("=",[z,Z])),P.substitution,P)])}},"char_code/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_character(F))w.throw_error(x.error.type("character",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type("integer",z,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character_code(z))w.throw_error(x.error.representation("character_code",y.indicator));else if(x.type.is_variable(z)){var Z=new Te(n(F.id,0),!1);w.prepend([new be(P.goal.replace(new j("=",[Z,z])),P.substitution,P)])}else{var $=new j(c(z.value));w.prepend([new be(P.goal.replace(new j("=",[$,F])),P.substitution,P)])}},"number_chars/2":function(w,P,y){var F,z=y.args[0],Z=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))w.throw_error(x.error.type("number",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(Z)){var oe=Z,xe=!0;for(F="";oe.indicator==="./2";){if(x.type.is_character(oe.args[0]))F+=oe.args[0].id;else if(x.type.is_variable(oe.args[0]))xe=!1;else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type("character",oe.args[0],y.indicator));return}oe=oe.args[1]}if(xe=xe&&x.type.is_empty_list(oe),!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)){w.throw_error(x.error.type("list",Z,y.indicator));return}if(!xe&&$){w.throw_error(x.error.instantiation(y.indicator));return}else if(xe)if(x.type.is_variable(oe)&&$){w.throw_error(x.error.instantiation(y.indicator));return}else{var Re=w.parse(F),lt=Re.value;!x.type.is_number(lt)||Re.tokens[Re.tokens.length-1].space?w.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[z,lt])),P.substitution,P)]);return}}if(!$){F=z.toString();for(var Ct=new j("[]"),qt=F.length-1;qt>=0;qt--)Ct=new j(".",[new j(F.charAt(qt)),Ct]);w.prepend([new be(P.goal.replace(new j("=",[Z,Ct])),P.substitution,P)])}}},"number_codes/2":function(w,P,y){var F,z=y.args[0],Z=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))w.throw_error(x.error.type("number",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(Z)){var oe=Z,xe=!0;for(F="";oe.indicator==="./2";){if(x.type.is_character_code(oe.args[0]))F+=c(oe.args[0].value);else if(x.type.is_variable(oe.args[0]))xe=!1;else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type("character_code",oe.args[0],y.indicator));return}oe=oe.args[1]}if(xe=xe&&x.type.is_empty_list(oe),!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)){w.throw_error(x.error.type("list",Z,y.indicator));return}if(!xe&&$){w.throw_error(x.error.instantiation(y.indicator));return}else if(xe)if(x.type.is_variable(oe)&&$){w.throw_error(x.error.instantiation(y.indicator));return}else{var Re=w.parse(F),lt=Re.value;!x.type.is_number(lt)||Re.tokens[Re.tokens.length-1].space?w.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[z,lt])),P.substitution,P)]);return}}if(!$){F=z.toString();for(var Ct=new j("[]"),qt=F.length-1;qt>=0;qt--)Ct=new j(".",[new Te(n(F,qt),!1),Ct]);w.prepend([new be(P.goal.replace(new j("=",[Z,Ct])),P.substitution,P)])}}},"upcase_atom/2":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?w.throw_error(x.error.type("atom",z,y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[z,new j(F.id.toUpperCase(),[])])),P.substitution,P)]):w.throw_error(x.error.type("atom",F,y.indicator))},"downcase_atom/2":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?w.throw_error(x.error.type("atom",z,y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[z,new j(F.id.toLowerCase(),[])])),P.substitution,P)]):w.throw_error(x.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j("atomic_list_concat",[F,new j("",[]),z])),P.substitution,P)])},"atomic_list_concat/3":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(z)||x.type.is_variable(F)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_list(F))w.throw_error(x.error.type("list",F,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_atom(Z))w.throw_error(x.error.type("atom",Z,y.indicator));else if(x.type.is_variable(Z)){for(var oe="",xe=F;x.type.is_term(xe)&&xe.indicator==="./2";){if(!x.type.is_atom(xe.args[0])&&!x.type.is_number(xe.args[0])){w.throw_error(x.error.type("atomic",xe.args[0],y.indicator));return}oe!==""&&(oe+=z.id),x.type.is_atom(xe.args[0])?oe+=xe.args[0].id:oe+=""+xe.args[0].value,xe=xe.args[1]}oe=new j(oe,[]),x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_term(xe)||xe.indicator!=="[]/0"?w.throw_error(x.error.type("list",F,y.indicator)):w.prepend([new be(P.goal.replace(new j("=",[oe,Z])),P.substitution,P)])}else{var $=g(s(Z.id.split(z.id),function(Re){return new j(Re,[])}));w.prepend([new be(P.goal.replace(new j("=",[$,F])),P.substitution,P)])}},"@=/2":function(w,P,y){x.compare(y.args[0],y.args[1])>0&&w.success(P)},"@>=/2":function(w,P,y){x.compare(y.args[0],y.args[1])>=0&&w.success(P)},"compare/3":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)w.throw_error(x.type.domain("order",F,y.indicator));else{var $=x.compare(z,Z);$=$===0?"=":$===-1?"<":">",w.prepend([new be(P.goal.replace(new j("=",[F,new j($,[])])),P.substitution,P)])}},"is/2":function(w,P,y){var F=y.args[1].interpret(w);x.type.is_number(F)?w.prepend([new be(P.goal.replace(new j("=",[y.args[0],F],w.level)),P.substitution,P)]):w.throw_error(F)},"between/3":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_integer(F))w.throw_error(x.error.type("integer",F,y.indicator));else if(!x.type.is_integer(z))w.throw_error(x.error.type("integer",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_integer(Z))w.throw_error(x.error.type("integer",Z,y.indicator));else if(x.type.is_variable(Z)){var $=[new be(P.goal.replace(new j("=",[Z,F])),P.substitution,P)];F.value=Z.value&&w.success(P)},"succ/2":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)&&x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_integer(F)?w.throw_error(x.error.type("integer",F,y.indicator)):!x.type.is_variable(z)&&!x.type.is_integer(z)?w.throw_error(x.error.type("integer",z,y.indicator)):!x.type.is_variable(F)&&F.value<0?w.throw_error(x.error.domain("not_less_than_zero",F,y.indicator)):!x.type.is_variable(z)&&z.value<0?w.throw_error(x.error.domain("not_less_than_zero",z,y.indicator)):(x.type.is_variable(z)||z.value>0)&&(x.type.is_variable(F)?w.prepend([new be(P.goal.replace(new j("=",[F,new Te(z.value-1,!1)])),P.substitution,P)]):w.prepend([new be(P.goal.replace(new j("=",[z,new Te(F.value+1,!1)])),P.substitution,P)]))},"=:=/2":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F===0&&w.success(P)},"=\\=/2":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F!==0&&w.success(P)},"/2":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F>0&&w.success(P)},">=/2":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F>=0&&w.success(P)},"var/1":function(w,P,y){x.type.is_variable(y.args[0])&&w.success(P)},"atom/1":function(w,P,y){x.type.is_atom(y.args[0])&&w.success(P)},"atomic/1":function(w,P,y){x.type.is_atomic(y.args[0])&&w.success(P)},"compound/1":function(w,P,y){x.type.is_compound(y.args[0])&&w.success(P)},"integer/1":function(w,P,y){x.type.is_integer(y.args[0])&&w.success(P)},"float/1":function(w,P,y){x.type.is_float(y.args[0])&&w.success(P)},"number/1":function(w,P,y){x.type.is_number(y.args[0])&&w.success(P)},"nonvar/1":function(w,P,y){x.type.is_variable(y.args[0])||w.success(P)},"ground/1":function(w,P,y){y.variables().length===0&&w.success(P)},"acyclic_term/1":function(w,P,y){for(var F=P.substitution.apply(P.substitution),z=y.args[0].variables(),Z=0;Z0?bt[bt.length-1]:null,bt!==null&&(qt=W(w,bt,0,w.__get_max_priority(),!1))}if(qt.type===p&&qt.len===bt.length-1&&gn.value==="."){qt=qt.value.rename(w);var br=new j("=",[z,qt]);if(oe.variables){var Ir=g(s(ye(qt.variables()),function(Or){return new De(Or)}));br=new j(",",[br,new j("=",[oe.variables,Ir])])}if(oe.variable_names){var Ir=g(s(ye(qt.variables()),function(nn){var ai;for(ai in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(ai)&&w.session.renamed_variables[ai]===nn)break;return new j("=",[new j(ai,[]),new De(nn)])}));br=new j(",",[br,new j("=",[oe.variable_names,Ir])])}if(oe.singletons){var Ir=g(s(new Ve(qt,null).singleton_variables(),function(nn){var ai;for(ai in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(ai)&&w.session.renamed_variables[ai]===nn)break;return new j("=",[new j(ai,[]),new De(nn)])}));br=new j(",",[br,new j("=",[oe.singletons,Ir])])}w.prepend([new be(P.goal.replace(br),P.substitution,P)])}else qt.type===p?w.throw_error(x.error.syntax(bt[qt.len],"unexpected token",!1)):w.throw_error(qt.value)}}},"write/1":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("write",[new De("S"),F])])),P.substitution,P)])},"write/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j("write_term",[F,z,new j(".",[new j("quoted",[new j("false",[])]),new j(".",[new j("ignore_ops",[new j("false")]),new j(".",[new j("numbervars",[new j("true")]),new j("[]",[])])])])])),P.substitution,P)])},"writeq/1":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("writeq",[new De("S"),F])])),P.substitution,P)])},"writeq/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j("write_term",[F,z,new j(".",[new j("quoted",[new j("true",[])]),new j(".",[new j("ignore_ops",[new j("false")]),new j(".",[new j("numbervars",[new j("true")]),new j("[]",[])])])])])),P.substitution,P)])},"write_canonical/1":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("write_canonical",[new De("S"),F])])),P.substitution,P)])},"write_canonical/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j("write_term",[F,z,new j(".",[new j("quoted",[new j("true",[])]),new j(".",[new j("ignore_ops",[new j("true")]),new j(".",[new j("numbervars",[new j("false")]),new j("[]",[])])])])])),P.substitution,P)])},"write_term/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("write_term",[new De("S"),F,z])])),P.substitution,P)])},"write_term/3":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if($.input)w.throw_error(x.error.permission("output","stream",F,y.indicator));else if($.type==="binary")w.throw_error(x.error.permission("output","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(x.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var oe={},xe=Z,Re;x.type.is_term(xe)&&xe.indicator==="./2";){if(Re=xe.args[0],x.type.is_variable(Re)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_write_option(Re)){w.throw_error(x.error.domain("write_option",Re,y.indicator));return}oe[Re.id]=Re.args[0].id==="true",xe=xe.args[1]}if(xe.indicator!=="[]/0"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type("list",Z,y.indicator));return}else{oe.session=w.session;var lt=z.toString(oe);$.stream.put(lt,$.position),typeof $.position=="number"&&($.position+=lt.length),w.success(P)}}},"halt/0":function(w,P,y){w.points=[]},"halt/1":function(w,P,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(F)?w.points=[]:w.throw_error(x.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_flag(F))w.throw_error(x.error.domain("prolog_flag",F,y.indicator));else{var Z=[];for(var $ in x.flag)if(x.flag.hasOwnProperty($)){var oe=new j(",",[new j("=",[new j($),F]),new j("=",[w.get_flag($),z])]);Z.push(new be(P.goal.replace(oe),P.substitution,P))}w.prepend(Z)}},"set_prolog_flag/2":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?x.type.is_flag(F)?x.type.is_value_flag(F,z)?x.type.is_modifiable_flag(F)?(w.session.flag[F.id]=z,w.success(P)):w.throw_error(x.error.permission("modify","flag",F)):w.throw_error(x.error.domain("flag_value",new j("+",[F,z]),y.indicator)):w.throw_error(x.error.domain("prolog_flag",F,y.indicator)):w.throw_error(x.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new j("true"),new j("false")],value:new j("true"),changeable:!1},max_integer:{allowed:[new Te(Number.MAX_SAFE_INTEGER)],value:new Te(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Te(Number.MIN_SAFE_INTEGER)],value:new Te(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new j("down"),new j("toward_zero")],value:new j("toward_zero"),changeable:!1},char_conversion:{allowed:[new j("on"),new j("off")],value:new j("on"),changeable:!0},debug:{allowed:[new j("on"),new j("off")],value:new j("off"),changeable:!0},max_arity:{allowed:[new j("unbounded")],value:new j("unbounded"),changeable:!1},unknown:{allowed:[new j("error"),new j("fail"),new j("warning")],value:new j("error"),changeable:!0},double_quotes:{allowed:[new j("chars"),new j("codes"),new j("atom")],value:new j("codes"),changeable:!0},occurs_check:{allowed:[new j("false"),new j("true")],value:new j("false"),changeable:!0},dialect:{allowed:[new j("tau")],value:new j("tau"),changeable:!1},version_data:{allowed:[new j("tau",[new Te(t.major,!1),new Te(t.minor,!1),new Te(t.patch,!1),new j(t.status)])],value:new j("tau",[new Te(t.major,!1),new Te(t.minor,!1),new Te(t.patch,!1),new j(t.status)]),changeable:!1},nodejs:{allowed:[new j("yes"),new j("no")],value:new j(typeof ec<"u"&&ec.exports?"yes":"no"),changeable:!1}},unify:function(w,P,y){y=y===void 0?!1:y;for(var F=[{left:w,right:P}],z={};F.length!==0;){var Z=F.pop();if(w=Z.left,P=Z.right,x.type.is_term(w)&&x.type.is_term(P)){if(w.indicator!==P.indicator)return null;for(var $=0;$z.value?1:0:z}else return F},operate:function(w,P){if(x.type.is_operator(P)){for(var y=x.type.is_operator(P),F=[],z,Z=!1,$=0;$w.get_flag("max_integer").value||z0?w.start+w.matches[0].length:w.start,z=y?new j("token_not_found"):new j("found",[new j(w.value.toString())]),Z=new j(".",[new j("line",[new Te(w.line+1)]),new j(".",[new j("column",[new Te(F+1)]),new j(".",[z,new j("[]",[])])])]);return new j("error",[new j("syntax_error",[new j(P)]),Z])},syntax_by_predicate:function(w,P){return new j("error",[new j("syntax_error",[new j(w)]),X(P)])}},warning:{singleton:function(w,P,y){for(var F=new j("[]"),z=w.length-1;z>=0;z--)F=new j(".",[new De(w[z]),F]);return new j("warning",[new j("singleton_variables",[F,X(P)]),new j(".",[new j("line",[new Te(y,!1)]),new j("[]")])])},failed_goal:function(w,P){return new j("warning",[new j("failed_goal",[w]),new j(".",[new j("line",[new Te(P,!1)]),new j("[]")])])}},format_variable:function(w){return"_"+w},format_answer:function(w,P,F){P instanceof ke&&(P=P.thread);var F=F||{};if(F.session=P?P.session:void 0,x.type.is_error(w))return"uncaught exception: "+w.args[0].toString();if(w===!1)return"false.";if(w===null)return"limit exceeded ;";var z=0,Z="";if(x.type.is_substitution(w)){var $=w.domain(!0);w=w.filter(function(Re,lt){return!x.type.is_variable(lt)||$.indexOf(lt.id)!==-1&&Re!==lt.id})}for(var oe in w.links)w.links.hasOwnProperty(oe)&&(z++,Z!==""&&(Z+=", "),Z+=oe.toString(F)+" = "+w.links[oe].toString(F));var xe=typeof P>"u"||P.points.length>0?" ;":".";return z===0?"true"+xe:Z+xe},flatten_error:function(w){if(!x.type.is_error(w))return null;w=w.args[0];var P={};return P.type=w.args[0].id,P.thrown=P.type==="syntax_error"?null:w.args[1].id,P.expected=null,P.found=null,P.representation=null,P.existence=null,P.existence_type=null,P.line=null,P.column=null,P.permission_operation=null,P.permission_type=null,P.evaluation_type=null,P.type==="type_error"||P.type==="domain_error"?(P.expected=w.args[0].args[0].id,P.found=w.args[0].args[1].toString()):P.type==="syntax_error"?w.args[1].indicator==="./2"?(P.expected=w.args[0].args[0].id,P.found=w.args[1].args[1].args[1].args[0],P.found=P.found.id==="token_not_found"?P.found.id:P.found.args[0].id,P.line=w.args[1].args[0].args[0].value,P.column=w.args[1].args[1].args[0].args[0].value):P.thrown=w.args[1].id:P.type==="permission_error"?(P.found=w.args[0].args[2].toString(),P.permission_operation=w.args[0].args[0].id,P.permission_type=w.args[0].args[1].id):P.type==="evaluation_error"?P.evaluation_type=w.args[0].args[0].id:P.type==="representation_error"?P.representation=w.args[0].args[0].id:P.type==="existence_error"&&(P.existence=w.args[0].args[1].toString(),P.existence_type=w.args[0].args[0].id),P},create:function(w){return new x.type.Session(w)}};typeof ec<"u"?ec.exports=x:window.pl=x})()});function hEe(t,e,r){t.prepend(r.map(s=>new hl.default.type.State(e.goal.replace(s),e.substitution,e)))}function k5(t){let e=dEe.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function mEe(t,e){dEe.set(t,e),t.consult(`:- use_module(library(${qct.id})).`)}var hl,gEe,J0,jct,Gct,dEe,qct,yEe=Ze(()=>{Ge();ql();hl=ut(x5()),gEe=ut(Ie("vm")),{is_atom:J0,is_variable:jct,is_instantiated_list:Gct}=hl.default.type;dEe=new WeakMap;qct=new hl.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(t,e,r)=>{let[s,a,n]=r.args;if(!J0(s)||!J0(a)){t.throw_error(hl.default.error.instantiation(r.indicator));return}let c=G.parseIdent(s.id),f=G.makeDescriptor(c,a.id),h=k5(t).tryWorkspaceByDescriptor(f);jct(n)&&h!==null&&hEe(t,e,[new hl.default.type.Term("=",[n,new hl.default.type.Term(String(h.relativeCwd))])]),J0(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},"workspace_field/3":(t,e,r)=>{let[s,a,n]=r.args;if(!J0(s)||!J0(a)){t.throw_error(hl.default.error.instantiation(r.indicator));return}let f=k5(t).tryWorkspaceByCwd(s.id);if(f==null)return;let p=va(f.manifest.raw,a.id);typeof p>"u"||hEe(t,e,[new hl.default.type.Term("=",[n,new hl.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},"workspace_field_test/3":(t,e,r)=>{let[s,a,n]=r.args;t.prepend([new hl.default.type.State(e.goal.replace(new hl.default.type.Term("workspace_field_test",[s,a,n,new hl.default.type.Term("[]",[])])),e.substitution,e)])},"workspace_field_test/4":(t,e,r)=>{let[s,a,n,c]=r.args;if(!J0(s)||!J0(a)||!J0(n)||!Gct(c)){t.throw_error(hl.default.error.instantiation(r.indicator));return}let p=k5(t).tryWorkspaceByCwd(s.id);if(p==null)return;let h=va(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[S,b]of c.toJavaScript().entries())E[`$${S}`]=b;gEe.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var aS={};Vt(aS,{Constraints:()=>R5,DependencyType:()=>wEe});function go(t){if(t instanceof KC.default.type.Num)return t.value;if(t instanceof KC.default.type.Term)switch(t.indicator){case"throw/1":return go(t.args[0]);case"error/1":return go(t.args[0]);case"error/2":if(t.args[0]instanceof KC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(go(t.args[0]),...go(t.args[1]));{let e=go(t.args[0]);return e.message+=` (in ${go(t.args[1])})`,e}case"syntax_error/1":return new jt(43,`Syntax error: ${go(t.args[0])}`);case"existence_error/2":return new jt(44,`Existence error: ${go(t.args[0])} ${go(t.args[1])} not found`);case"instantiation_error/0":return new jt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:go(t.args[0])};case"column/1":return{column:go(t.args[0])};case"found/1":return{found:go(t.args[0])};case"./2":return[go(t.args[0])].concat(go(t.args[1]));case"//2":return`${go(t.args[0])}/${go(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function IEe(t){let e;try{e=go(t)}catch(r){throw typeof r=="string"?new jt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function bm(t){return t.id==="null"?null:`${t.toJavaScript()}`}function Wct(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function K0(t){return typeof t=="string"?`'${t}'`:"[]"}var CEe,KC,wEe,EEe,Q5,R5,lS=Ze(()=>{Ge();Ge();Dt();CEe=ut(Xye()),KC=ut(x5());iS();yEe();(0,CEe.default)(KC.default);wEe=(s=>(s.Dependencies="dependencies",s.DevDependencies="devDependencies",s.PeerDependencies="peerDependencies",s))(wEe||{}),EEe=["dependencies","devDependencies","peerDependencies"];Q5=class{constructor(e,r){let s=1e3*e.workspaces.length;this.session=KC.default.create(s),mEe(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw IEe(r);for(;;){let s=await this.fetchNextAnswer();if(s===null)throw new jt(79,"Resolution limit exceeded");if(!s)break;if(s.id==="throw")throw IEe(s);yield s}}};R5=class t{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");ce.existsSync(r)&&(this.source=ce.readFileSync(r,"utf8"))}static async find(e){return new t(e)}getProjectDatabase(){let e="";for(let r of EEe)e+=`dependency_type(${r}). `;for(let r of this.project.workspacesByCwd.values()){let s=r.relativeCwd;e+=`workspace(${K0(s)}). `,e+=`workspace_ident(${K0(s)}, ${K0(G.stringifyIdent(r.anchoredLocator))}). `,e+=`workspace_version(${K0(s)}, ${K0(r.manifest.version)}). `;for(let a of EEe)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${K0(s)}, ${K0(G.stringifyIdent(n))}, ${K0(n.range)}, ${a}). `}return e+=`workspace(_) :- false. `,e+=`workspace_ident(_, _) :- false. `,e+=`workspace_version(_, _) :- false. `,e+=`workspace_has_dependency(_, _, _, _) :- false. `,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. `,e+=`gen_enforced_field(_, _, _) :- false. `,e}get fullSource(){return`${this.getProjectDatabase()} ${this.source} ${this.getDeclarations()}`}createSession(){return new Q5(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),s=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:c,dependencyType:f}of e){let p=nS([f,G.stringifyIdent(n)]),h=je.getMapWithDefault(s,a.cwd);je.getMapWithDefault(h,p).set(c??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:c}of r){let f=nS(n),p=je.getMapWithDefault(s,a.cwd);je.getMapWithDefault(p,f).set(JSON.parse(c)??void 0,new Set)}return{manifestUpdates:s,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let s of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=J.resolve(this.project.cwd,bm(s.links.WorkspaceCwd)),n=bm(s.links.DependencyIdent),c=bm(s.links.DependencyRange),f=bm(s.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:c,dependencyType:f})}return je.sortMap(r,[({dependencyRange:s})=>s!==null?"0":"1",({workspace:s})=>G.stringifyIdent(s.anchoredLocator),({dependencyIdent:s})=>G.stringifyIdent(s)])}async genEnforcedFields(e){let r=[];for await(let s of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=J.resolve(this.project.cwd,bm(s.links.WorkspaceCwd)),n=bm(s.links.FieldPath),c=Wct(s.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let f=this.project.getWorkspaceByCwd(a);r.push({workspace:f,fieldPath:n,fieldValue:c})}return je.sortMap(r,[({workspace:s})=>G.stringifyIdent(s.anchoredLocator),({fieldPath:s})=>s])}async*query(e){let r=this.createSession();for await(let s of r.makeQuery(e)){let a={};for(let[n,c]of Object.entries(s.links))n!=="_"&&(a[n]=bm(c));yield a}}}});var QEe=_(uF=>{"use strict";Object.defineProperty(uF,"__esModule",{value:!0});function BS(t){let e=[...t.caches],r=e.shift();return r===void 0?kEe():{get(s,a,n={miss:()=>Promise.resolve()}){return r.get(s,a,n).catch(()=>BS({caches:e}).get(s,a,n))},set(s,a){return r.set(s,a).catch(()=>BS({caches:e}).set(s,a))},delete(s){return r.delete(s).catch(()=>BS({caches:e}).delete(s))},clear(){return r.clear().catch(()=>BS({caches:e}).clear())}}}function kEe(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}uF.createFallbackableCache=BS;uF.createNullCache=kEe});var TEe=_((iJt,REe)=>{REe.exports=QEe()});var FEe=_(Y5=>{"use strict";Object.defineProperty(Y5,"__esModule",{value:!0});function uut(t={serializable:!0}){let e={};return{get(r,s,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let c=s(),f=a&&a.miss||(()=>Promise.resolve());return c.then(p=>f(p)).then(()=>c)},set(r,s){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}Y5.createInMemoryCache=uut});var OEe=_((oJt,NEe)=>{NEe.exports=FEe()});var MEe=_($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});function fut(t,e,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===V5.WithinHeaders?s:{}},queryParameters(){return t===V5.WithinQueryParameters?s:{}}}}function Aut(t){let e=0,r=()=>(e++,new Promise(s=>{setTimeout(()=>{s(t(r))},Math.min(100*e,1e3))}));return t(r)}function LEe(t,e=(r,s)=>Promise.resolve()){return Object.assign(t,{wait(r){return LEe(t.then(s=>Promise.all([e(s,r),s])).then(s=>s[1]))}})}function put(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[r],t[r]=s}return t}function hut(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function gut(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var dut="4.22.1",mut=t=>()=>t.transporter.requester.destroy(),V5={WithinQueryParameters:0,WithinHeaders:1};$u.AuthMode=V5;$u.addMethods=hut;$u.createAuth=fut;$u.createRetryablePromise=Aut;$u.createWaitablePromise=LEe;$u.destroy=mut;$u.encode=gut;$u.shuffle=put;$u.version=dut});var vS=_((lJt,UEe)=>{UEe.exports=MEe()});var _Ee=_(J5=>{"use strict";Object.defineProperty(J5,"__esModule",{value:!0});var yut={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};J5.MethodEnum=yut});var SS=_((uJt,HEe)=>{HEe.exports=_Ee()});var rIe=_(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});var GEe=SS();function K5(t,e){let r=t||{},s=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(s[a]=r[a])}),{data:Object.entries(s).length>0?s:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var DS={Read:1,Write:2,Any:3},sw={Up:1,Down:2,Timeouted:3},qEe=2*60*1e3;function Z5(t,e=sw.Up){return{...t,status:e,lastUpdate:Date.now()}}function WEe(t){return t.status===sw.Up||Date.now()-t.lastUpdate>qEe}function YEe(t){return t.status===sw.Timeouted&&Date.now()-t.lastUpdate<=qEe}function X5(t){return typeof t=="string"?{protocol:"https",url:t,accept:DS.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||DS.Any}}function Eut(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(Z5(r))))).then(r=>{let s=r.filter(f=>WEe(f)),a=r.filter(f=>YEe(f)),n=[...s,...a],c=n.length>0?n.map(f=>X5(f)):e;return{getTimeout(f,p){return(a.length===0&&f===0?1:a.length+3+f)*p},statelessHosts:c}})}var Iut=({isTimedOut:t,status:e})=>!t&&~~e===0,Cut=t=>{let e=t.status;return t.isTimedOut||Iut(t)||~~(e/100)!==2&&~~(e/100)!==4},wut=({status:t})=>~~(t/100)===2,But=(t,e)=>Cut(t)?e.onRetry(t):wut(t)?e.onSuccess(t):e.onFail(t);function jEe(t,e,r,s){let a=[],n=ZEe(r,s),c=XEe(t,s),f=r.method,p=r.method!==GEe.MethodEnum.Get?{}:{...r.data,...s.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...s.queryParameters},E=0,C=(S,b)=>{let I=S.pop();if(I===void 0)throw tIe(z5(a));let T={data:n,headers:c,method:f,url:KEe(I,r.path,h),connectTimeout:b(E,t.timeouts.connect),responseTimeout:b(E,s.timeout)},N=W=>{let ee={request:T,response:W,host:I,triesLeft:S.length};return a.push(ee),ee},U={onSuccess:W=>VEe(W),onRetry(W){let ee=N(W);return W.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",$5(ee)),t.hostsCache.set(I,Z5(I,W.isTimedOut?sw.Timeouted:sw.Down))]).then(()=>C(S,b))},onFail(W){throw N(W),JEe(W,z5(a))}};return t.requester.send(T).then(W=>But(W,U))};return Eut(t.hostsCache,e).then(S=>C([...S.statelessHosts].reverse(),S.getTimeout))}function vut(t){let{hostsCache:e,logger:r,requester:s,requestsCache:a,responsesCache:n,timeouts:c,userAgent:f,hosts:p,queryParameters:h,headers:E}=t,C={hostsCache:e,logger:r,requester:s,requestsCache:a,responsesCache:n,timeouts:c,userAgent:f,headers:E,queryParameters:h,hosts:p.map(S=>X5(S)),read(S,b){let I=K5(b,C.timeouts.read),T=()=>jEe(C,C.hosts.filter(W=>(W.accept&DS.Read)!==0),S,I);if((I.cacheable!==void 0?I.cacheable:S.cacheable)!==!0)return T();let U={request:S,mappedRequestOptions:I,transporter:{queryParameters:C.queryParameters,headers:C.headers}};return C.responsesCache.get(U,()=>C.requestsCache.get(U,()=>C.requestsCache.set(U,T()).then(W=>Promise.all([C.requestsCache.delete(U),W]),W=>Promise.all([C.requestsCache.delete(U),Promise.reject(W)])).then(([W,ee])=>ee)),{miss:W=>C.responsesCache.set(U,W)})},write(S,b){return jEe(C,C.hosts.filter(I=>(I.accept&DS.Write)!==0),S,K5(b,C.timeouts.write))}};return C}function Sut(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let s=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(s)===-1&&(e.value=`${e.value}${s}`),e}};return e}function VEe(t){try{return JSON.parse(t.content)}catch(e){throw eIe(e.message,t)}}function JEe({content:t,status:e},r){let s=t;try{s=JSON.parse(t).message}catch{}return $Ee(s,e,r)}function Dut(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function KEe(t,e,r){let s=zEe(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return s.length&&(a+=`?${s}`),a}function zEe(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Dut("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function ZEe(t,e){if(t.method===GEe.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function XEe(t,e){let r={...t.headers,...e.headers},s={};return Object.keys(r).forEach(a=>{let n=r[a];s[a.toLowerCase()]=n}),s}function z5(t){return t.map(e=>$5(e))}function $5(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function $Ee(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function eIe(t,e){return{name:"DeserializationError",message:t,response:e}}function tIe(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Wi.CallEnum=DS;Wi.HostStatusEnum=sw;Wi.createApiError=$Ee;Wi.createDeserializationError=eIe;Wi.createMappedRequestOptions=K5;Wi.createRetryError=tIe;Wi.createStatefulHost=Z5;Wi.createStatelessHost=X5;Wi.createTransporter=vut;Wi.createUserAgent=Sut;Wi.deserializeFailure=JEe;Wi.deserializeSuccess=VEe;Wi.isStatefulHostTimeouted=YEe;Wi.isStatefulHostUp=WEe;Wi.serializeData=ZEe;Wi.serializeHeaders=XEe;Wi.serializeQueryParameters=zEe;Wi.serializeUrl=KEe;Wi.stackFrameWithoutCredentials=$5;Wi.stackTraceWithoutCredentials=z5});var PS=_((AJt,nIe)=>{nIe.exports=rIe()});var iIe=_(Z0=>{"use strict";Object.defineProperty(Z0,"__esModule",{value:!0});var ow=vS(),Put=PS(),bS=SS(),but=t=>{let e=t.region||"us",r=ow.createAuth(ow.AuthMode.WithinHeaders,t.appId,t.apiKey),s=Put.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return ow.addMethods({appId:a,transporter:s},t.methods)},xut=t=>(e,r)=>t.transporter.write({method:bS.MethodEnum.Post,path:"2/abtests",data:e},r),kut=t=>(e,r)=>t.transporter.write({method:bS.MethodEnum.Delete,path:ow.encode("2/abtests/%s",e)},r),Qut=t=>(e,r)=>t.transporter.read({method:bS.MethodEnum.Get,path:ow.encode("2/abtests/%s",e)},r),Rut=t=>e=>t.transporter.read({method:bS.MethodEnum.Get,path:"2/abtests"},e),Tut=t=>(e,r)=>t.transporter.write({method:bS.MethodEnum.Post,path:ow.encode("2/abtests/%s/stop",e)},r);Z0.addABTest=xut;Z0.createAnalyticsClient=but;Z0.deleteABTest=kut;Z0.getABTest=Qut;Z0.getABTests=Rut;Z0.stopABTest=Tut});var oIe=_((hJt,sIe)=>{sIe.exports=iIe()});var lIe=_(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0});var e9=vS(),Fut=PS(),aIe=SS(),Nut=t=>{let e=t.region||"us",r=e9.createAuth(e9.AuthMode.WithinHeaders,t.appId,t.apiKey),s=Fut.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return e9.addMethods({appId:t.appId,transporter:s},t.methods)},Out=t=>e=>t.transporter.read({method:aIe.MethodEnum.Get,path:"1/strategies/personalization"},e),Lut=t=>(e,r)=>t.transporter.write({method:aIe.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);xS.createPersonalizationClient=Nut;xS.getPersonalizationStrategy=Out;xS.setPersonalizationStrategy=Lut});var uIe=_((dJt,cIe)=>{cIe.exports=lIe()});var vIe=_(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Jt=vS(),gl=PS(),Pr=SS(),Mut=Ie("crypto");function fF(t){let e=r=>t.request(r).then(s=>{if(t.batch!==void 0&&t.batch(s.hits),!t.shouldStop(s))return s.cursor?e({cursor:s.cursor}):e({page:(r.page||0)+1})});return e({})}var Uut=t=>{let e=t.appId,r=Jt.createAuth(t.authMode!==void 0?t.authMode:Jt.AuthMode.WithinHeaders,e,t.apiKey),s=gl.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:gl.CallEnum.Read},{url:`${e}.algolia.net`,accept:gl.CallEnum.Write}].concat(Jt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:s,appId:e,addAlgoliaAgent(n,c){s.userAgent.add({segment:n,version:c})},clearCache(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(()=>{})}};return Jt.addMethods(a,t.methods)};function fIe(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function AIe(){return{name:"ObjectNotFoundError",message:"Object not found."}}function pIe(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var _ut=t=>(e,r)=>{let{queryParameters:s,...a}=r||{},n={acl:e,...s!==void 0?{queryParameters:s}:{}},c=(f,p)=>Jt.createRetryablePromise(h=>kS(t)(f.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:"1/keys",data:n},a),c)},Hut=t=>(e,r,s)=>{let a=gl.createMappedRequestOptions(s);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Pr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},jut=t=>(e,r,s)=>t.transporter.write({method:Pr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},s),Gut=t=>(e,r)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(s,a)=>aw(t)(s.taskID,a)),AF=t=>(e,r,s)=>{let a=(n,c)=>QS(t)(e,{methods:{waitTask:hs}}).waitTask(n.taskID,c);return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},s),a)},qut=t=>(e,r,s)=>AF(t)(e,r,{...s,scope:[hF.Rules]}),Wut=t=>(e,r,s)=>AF(t)(e,r,{...s,scope:[hF.Settings]}),Yut=t=>(e,r,s)=>AF(t)(e,r,{...s,scope:[hF.Synonyms]}),Vut=t=>(e,r)=>e.method===Pr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),Jut=t=>(e,r)=>{let s=(a,n)=>Jt.createRetryablePromise(c=>kS(t)(e,n).then(c).catch(f=>{if(f.status!==404)throw f}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode("1/keys/%s",e)},r),s)},Kut=t=>(e,r,s)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},zut=()=>(t,e)=>{let r=gl.serializeQueryParameters(e),s=Mut.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(s+r).toString("base64")},kS=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/keys/%s",e)},r),hIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/task/%s",e.toString())},r),Zut=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),Xut=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"1/logs"},e),$ut=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,s=e.match(r);if(s===null)throw pIe();return parseInt(s[1],10)-Math.round(new Date().getTime()/1e3)},eft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),tft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/clusters/mapping/%s",e)},r),rft=t=>e=>{let{retrieveMappings:r,...s}=e||{};return r===!0&&(s.getClusters=!0),t.transporter.read({method:Pr.MethodEnum.Get,path:"1/clusters/mapping/pending"},s)},QS=t=>(e,r={})=>{let s={transporter:t.transporter,appId:t.appId,indexName:e};return Jt.addMethods(s,r.methods)},nft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"1/keys"},e),ift=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"1/clusters"},e),sft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"1/indexes"},e),oft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:"1/clusters/mapping"},e),aft=t=>(e,r,s)=>{let a=(n,c)=>QS(t)(e,{methods:{waitTask:hs}}).waitTask(n.taskID,c);return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},s),a)},lft=t=>(e,r)=>{let s=(a,n)=>Promise.all(Object.keys(a.taskID).map(c=>QS(t)(c,{methods:{waitTask:hs}}).waitTask(a.taskID[c],n)));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),s)},cft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),uft=t=>(e,r)=>{let s=e.map(a=>({...a,params:gl.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Pr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:s},cacheable:!0},r)},fft=t=>(e,r)=>Promise.all(e.map(s=>{let{facetName:a,facetQuery:n,...c}=s.params;return QS(t)(s.indexName,{methods:{searchForFacetValues:CIe}}).searchForFacetValues(a,n,{...r,...c})})),Aft=t=>(e,r)=>{let s=gl.createMappedRequestOptions(r);return s.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Pr.MethodEnum.Delete,path:"1/clusters/mapping"},s)},pft=t=>(e,r,s)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},hft=t=>(e,r)=>{let s=(a,n)=>Jt.createRetryablePromise(c=>kS(t)(e,n).catch(f=>{if(f.status!==404)throw f;return c()}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/keys/%s/restore",e)},r),s)},gft=t=>(e,r,s)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},dft=t=>(e,r,s)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},s),mft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),yft=t=>(e,r)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(s,a)=>aw(t)(s.taskID,a)),Eft=t=>(e,r)=>{let s=Object.assign({},r),{queryParameters:a,...n}=r||{},c=a?{queryParameters:a}:{},f=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(s).filter(C=>f.indexOf(C)!==-1).every(C=>{if(Array.isArray(E[C])&&Array.isArray(s[C])){let S=E[C];return S.length===s[C].length&&S.every((b,I)=>b===s[C][I])}else return E[C]===s[C]}),h=(E,C)=>Jt.createRetryablePromise(S=>kS(t)(e,C).then(b=>p(b)?Promise.resolve():S()));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Put,path:Jt.encode("1/keys/%s",e),data:c},n),h)},aw=t=>(e,r)=>Jt.createRetryablePromise(s=>hIe(t)(e,r).then(a=>a.status!=="published"?s():void 0)),gIe=t=>(e,r)=>{let s=(a,n)=>hs(t)(a.taskID,n);return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),s)},Ift=t=>e=>fF({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),Cft=t=>e=>{let r={hitsPerPage:1e3,...e};return fF({shouldStop:s=>s.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},wft=t=>e=>{let r={hitsPerPage:1e3,...e};return fF({shouldStop:s=>s.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},pF=t=>(e,r,s)=>{let{batchSize:a,...n}=s||{},c={taskIDs:[],objectIDs:[]},f=(p=0)=>{let h=[],E;for(E=p;E({action:r,body:C})),n).then(C=>(c.objectIDs=c.objectIDs.concat(C.objectIDs),c.taskIDs.push(C.taskID),E++,f(E)))};return Jt.createWaitablePromise(f(),(p,h)=>Promise.all(p.taskIDs.map(E=>hs(t)(E,h))))},Bft=t=>e=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/clear",t.indexName)},e),(r,s)=>hs(t)(r.taskID,s)),vft=t=>e=>{let{forwardToReplicas:r,...s}=e||{},a=gl.createMappedRequestOptions(s);return r&&(a.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,c)=>hs(t)(n.taskID,c))},Sft=t=>e=>{let{forwardToReplicas:r,...s}=e||{},a=gl.createMappedRequestOptions(s);return r&&(a.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,c)=>hs(t)(n.taskID,c))},Dft=t=>(e,r)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(s,a)=>hs(t)(s.taskID,a)),Pft=t=>e=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode("1/indexes/%s",t.indexName)},e),(r,s)=>hs(t)(r.taskID,s)),bft=t=>(e,r)=>Jt.createWaitablePromise(dIe(t)([e],r).then(s=>({taskID:s.taskIDs[0]})),(s,a)=>hs(t)(s.taskID,a)),dIe=t=>(e,r)=>{let s=e.map(a=>({objectID:a}));return pF(t)(s,km.DeleteObject,r)},xft=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=gl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(c,f)=>hs(t)(c.taskID,f))},kft=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=gl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(c,f)=>hs(t)(c.taskID,f))},Qft=t=>e=>mIe(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Rft=t=>(e,r,s)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},s),Tft=t=>(e,r)=>{let{query:s,paginate:a,...n}=r||{},c=0,f=()=>IIe(t)(s||"",{...n,page:c}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:c};if(c++,a===!1||c>=p.nbPages)throw AIe();return f()});return f()},Fft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/indexes/%s/%s",t.indexName,e)},r),Nft=()=>(t,e)=>{for(let[r,s]of Object.entries(t.hits))if(s.objectID===e)return parseInt(r,10);return-1},Oft=t=>(e,r)=>{let{attributesToRetrieve:s,...a}=r||{},n=e.map(c=>({indexName:t.indexName,objectID:c,...s?{attributesToRetrieve:s}:{}}));return t.transporter.read({method:Pr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},Lft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),mIe=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Mft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),yIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Uft=t=>(e,r)=>Jt.createWaitablePromise(EIe(t)([e],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,a)=>hs(t)(s.taskID,a)),EIe=t=>(e,r)=>{let{createIfNotExists:s,...a}=r||{},n=s?km.PartialUpdateObject:km.PartialUpdateObjectNoCreate;return pF(t)(e,n,a)},_ft=t=>(e,r)=>{let{safe:s,autoGenerateObjectIDIfNotExist:a,batchSize:n,...c}=r||{},f=(I,T,N,U)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/operation",I),data:{operation:N,destination:T}},U),(W,ee)=>hs(t)(W.taskID,ee)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=t9({appId:t.appId,transporter:t.transporter,indexName:h}),C=[],S=f(t.indexName,h,"copy",{...c,scope:["settings","synonyms","rules"]});C.push(S);let b=(s?S.wait(c):S).then(()=>{let I=E(e,{...c,autoGenerateObjectIDIfNotExist:a,batchSize:n});return C.push(I),s?I.wait(c):I}).then(()=>{let I=f(h,t.indexName,"move",c);return C.push(I),s?I.wait(c):I}).then(()=>Promise.all(C)).then(([I,T,N])=>({objectIDs:T.objectIDs,taskIDs:[I.taskID,...T.taskIDs,N.taskID]}));return Jt.createWaitablePromise(b,(I,T)=>Promise.all(C.map(N=>N.wait(T))))},Hft=t=>(e,r)=>r9(t)(e,{...r,clearExistingRules:!0}),jft=t=>(e,r)=>n9(t)(e,{...r,clearExistingSynonyms:!0}),Gft=t=>(e,r)=>Jt.createWaitablePromise(t9(t)([e],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,a)=>hs(t)(s.taskID,a)),t9=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:s,...a}=r||{},n=s?km.AddObject:km.UpdateObject;if(n===km.UpdateObject){for(let c of e)if(c.objectID===void 0)return Jt.createWaitablePromise(Promise.reject(fIe()))}return pF(t)(e,n,a)},qft=t=>(e,r)=>r9(t)([e],r),r9=t=>(e,r)=>{let{forwardToReplicas:s,clearExistingRules:a,...n}=r||{},c=gl.createMappedRequestOptions(n);return s&&(c.queryParameters.forwardToReplicas=1),a&&(c.queryParameters.clearExistingRules=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},c),(f,p)=>hs(t)(f.taskID,p))},Wft=t=>(e,r)=>n9(t)([e],r),n9=t=>(e,r)=>{let{forwardToReplicas:s,clearExistingSynonyms:a,replaceExistingSynonyms:n,...c}=r||{},f=gl.createMappedRequestOptions(c);return s&&(f.queryParameters.forwardToReplicas=1),(n||a)&&(f.queryParameters.replaceExistingSynonyms=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},f),(p,h)=>hs(t)(p.taskID,h))},IIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),CIe=t=>(e,r,s)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},s),wIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),BIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Yft=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=gl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Put,path:Jt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(c,f)=>hs(t)(c.taskID,f))},hs=t=>(e,r)=>Jt.createRetryablePromise(s=>yIe(t)(e,r).then(a=>a.status!=="published"?s():void 0)),Vft={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},km={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},hF={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Jft={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Kft={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=Vft;Ft.BatchActionEnum=km;Ft.ScopeEnum=hF;Ft.StrategyEnum=Jft;Ft.SynonymEnum=Kft;Ft.addApiKey=_ut;Ft.assignUserID=Hut;Ft.assignUserIDs=jut;Ft.batch=gIe;Ft.browseObjects=Ift;Ft.browseRules=Cft;Ft.browseSynonyms=wft;Ft.chunkedBatch=pF;Ft.clearDictionaryEntries=Gut;Ft.clearObjects=Bft;Ft.clearRules=vft;Ft.clearSynonyms=Sft;Ft.copyIndex=AF;Ft.copyRules=qut;Ft.copySettings=Wut;Ft.copySynonyms=Yut;Ft.createBrowsablePromise=fF;Ft.createMissingObjectIDError=fIe;Ft.createObjectNotFoundError=AIe;Ft.createSearchClient=Uut;Ft.createValidUntilNotFoundError=pIe;Ft.customRequest=Vut;Ft.deleteApiKey=Jut;Ft.deleteBy=Dft;Ft.deleteDictionaryEntries=Kut;Ft.deleteIndex=Pft;Ft.deleteObject=bft;Ft.deleteObjects=dIe;Ft.deleteRule=xft;Ft.deleteSynonym=kft;Ft.exists=Qft;Ft.findAnswers=Rft;Ft.findObject=Tft;Ft.generateSecuredApiKey=zut;Ft.getApiKey=kS;Ft.getAppTask=hIe;Ft.getDictionarySettings=Zut;Ft.getLogs=Xut;Ft.getObject=Fft;Ft.getObjectPosition=Nft;Ft.getObjects=Oft;Ft.getRule=Lft;Ft.getSecuredApiKeyRemainingValidity=$ut;Ft.getSettings=mIe;Ft.getSynonym=Mft;Ft.getTask=yIe;Ft.getTopUserIDs=eft;Ft.getUserID=tft;Ft.hasPendingMappings=rft;Ft.initIndex=QS;Ft.listApiKeys=nft;Ft.listClusters=ift;Ft.listIndices=sft;Ft.listUserIDs=oft;Ft.moveIndex=aft;Ft.multipleBatch=lft;Ft.multipleGetObjects=cft;Ft.multipleQueries=uft;Ft.multipleSearchForFacetValues=fft;Ft.partialUpdateObject=Uft;Ft.partialUpdateObjects=EIe;Ft.removeUserID=Aft;Ft.replaceAllObjects=_ft;Ft.replaceAllRules=Hft;Ft.replaceAllSynonyms=jft;Ft.replaceDictionaryEntries=pft;Ft.restoreApiKey=hft;Ft.saveDictionaryEntries=gft;Ft.saveObject=Gft;Ft.saveObjects=t9;Ft.saveRule=qft;Ft.saveRules=r9;Ft.saveSynonym=Wft;Ft.saveSynonyms=n9;Ft.search=IIe;Ft.searchDictionaryEntries=dft;Ft.searchForFacetValues=CIe;Ft.searchRules=wIe;Ft.searchSynonyms=BIe;Ft.searchUserIDs=mft;Ft.setDictionarySettings=yft;Ft.setSettings=Yft;Ft.updateApiKey=Eft;Ft.waitAppTask=aw;Ft.waitTask=hs});var DIe=_((yJt,SIe)=>{SIe.exports=vIe()});var PIe=_(gF=>{"use strict";Object.defineProperty(gF,"__esModule",{value:!0});function zft(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var Zft={Debug:1,Info:2,Error:3};gF.LogLevelEnum=Zft;gF.createNullLogger=zft});var xIe=_((IJt,bIe)=>{bIe.exports=PIe()});var TIe=_(i9=>{"use strict";Object.defineProperty(i9,"__esModule",{value:!0});var kIe=Ie("http"),QIe=Ie("https"),Xft=Ie("url"),RIe={keepAlive:!0},$ft=new kIe.Agent(RIe),eAt=new QIe.Agent(RIe);function tAt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:s={}}={}){let a=e||t||$ft,n=r||t||eAt;return{send(c){return new Promise(f=>{let p=Xft.parse(c.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...s,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:c.method,headers:{...s&&s.headers?s.headers:{},...c.headers},...p.port!==void 0?{port:p.port||""}:{}},C=(p.protocol==="https:"?QIe:kIe).request(E,T=>{let N=[];T.on("data",U=>{N=N.concat(U)}),T.on("end",()=>{clearTimeout(b),clearTimeout(I),f({status:T.statusCode||0,content:Buffer.concat(N).toString(),isTimedOut:!1})})}),S=(T,N)=>setTimeout(()=>{C.abort(),f({status:0,content:N,isTimedOut:!0})},T*1e3),b=S(c.connectTimeout,"Connection timeout"),I;C.on("error",T=>{clearTimeout(b),clearTimeout(I),f({status:0,content:T.message,isTimedOut:!1})}),C.once("response",()=>{clearTimeout(b),I=S(c.responseTimeout,"Socket timeout")}),c.data!==void 0&&C.write(c.data),C.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}i9.createNodeHttpRequester=tAt});var NIe=_((wJt,FIe)=>{FIe.exports=TIe()});var UIe=_((BJt,MIe)=>{"use strict";var OIe=TEe(),rAt=OEe(),lw=oIe(),o9=vS(),s9=uIe(),Gt=DIe(),nAt=xIe(),iAt=NIe(),sAt=PS();function LIe(t,e,r){let s={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:iAt.createNodeHttpRequester(),logger:nAt.createNullLogger(),responsesCache:OIe.createNullCache(),requestsCache:OIe.createNullCache(),hostsCache:rAt.createInMemoryCache(),userAgent:sAt.createUserAgent(o9.version).add({segment:"Node.js",version:process.versions.node})},a={...s,...r},n=()=>c=>s9.createPersonalizationClient({...s,...c,methods:{getPersonalizationStrategy:s9.getPersonalizationStrategy,setPersonalizationStrategy:s9.setPersonalizationStrategy}});return Gt.createSearchClient({...a,methods:{search:Gt.multipleQueries,searchForFacetValues:Gt.multipleSearchForFacetValues,multipleBatch:Gt.multipleBatch,multipleGetObjects:Gt.multipleGetObjects,multipleQueries:Gt.multipleQueries,copyIndex:Gt.copyIndex,copySettings:Gt.copySettings,copyRules:Gt.copyRules,copySynonyms:Gt.copySynonyms,moveIndex:Gt.moveIndex,listIndices:Gt.listIndices,getLogs:Gt.getLogs,listClusters:Gt.listClusters,multipleSearchForFacetValues:Gt.multipleSearchForFacetValues,getApiKey:Gt.getApiKey,addApiKey:Gt.addApiKey,listApiKeys:Gt.listApiKeys,updateApiKey:Gt.updateApiKey,deleteApiKey:Gt.deleteApiKey,restoreApiKey:Gt.restoreApiKey,assignUserID:Gt.assignUserID,assignUserIDs:Gt.assignUserIDs,getUserID:Gt.getUserID,searchUserIDs:Gt.searchUserIDs,listUserIDs:Gt.listUserIDs,getTopUserIDs:Gt.getTopUserIDs,removeUserID:Gt.removeUserID,hasPendingMappings:Gt.hasPendingMappings,generateSecuredApiKey:Gt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Gt.getSecuredApiKeyRemainingValidity,destroy:o9.destroy,clearDictionaryEntries:Gt.clearDictionaryEntries,deleteDictionaryEntries:Gt.deleteDictionaryEntries,getDictionarySettings:Gt.getDictionarySettings,getAppTask:Gt.getAppTask,replaceDictionaryEntries:Gt.replaceDictionaryEntries,saveDictionaryEntries:Gt.saveDictionaryEntries,searchDictionaryEntries:Gt.searchDictionaryEntries,setDictionarySettings:Gt.setDictionarySettings,waitAppTask:Gt.waitAppTask,customRequest:Gt.customRequest,initIndex:c=>f=>Gt.initIndex(c)(f,{methods:{batch:Gt.batch,delete:Gt.deleteIndex,findAnswers:Gt.findAnswers,getObject:Gt.getObject,getObjects:Gt.getObjects,saveObject:Gt.saveObject,saveObjects:Gt.saveObjects,search:Gt.search,searchForFacetValues:Gt.searchForFacetValues,waitTask:Gt.waitTask,setSettings:Gt.setSettings,getSettings:Gt.getSettings,partialUpdateObject:Gt.partialUpdateObject,partialUpdateObjects:Gt.partialUpdateObjects,deleteObject:Gt.deleteObject,deleteObjects:Gt.deleteObjects,deleteBy:Gt.deleteBy,clearObjects:Gt.clearObjects,browseObjects:Gt.browseObjects,getObjectPosition:Gt.getObjectPosition,findObject:Gt.findObject,exists:Gt.exists,saveSynonym:Gt.saveSynonym,saveSynonyms:Gt.saveSynonyms,getSynonym:Gt.getSynonym,searchSynonyms:Gt.searchSynonyms,browseSynonyms:Gt.browseSynonyms,deleteSynonym:Gt.deleteSynonym,clearSynonyms:Gt.clearSynonyms,replaceAllObjects:Gt.replaceAllObjects,replaceAllSynonyms:Gt.replaceAllSynonyms,searchRules:Gt.searchRules,getRule:Gt.getRule,deleteRule:Gt.deleteRule,saveRule:Gt.saveRule,saveRules:Gt.saveRules,replaceAllRules:Gt.replaceAllRules,browseRules:Gt.browseRules,clearRules:Gt.clearRules}}),initAnalytics:()=>c=>lw.createAnalyticsClient({...s,...c,methods:{addABTest:lw.addABTest,getABTest:lw.getABTest,getABTests:lw.getABTests,stopABTest:lw.stopABTest,deleteABTest:lw.deleteABTest}}),initPersonalization:n,initRecommendation:()=>c=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(c))}})}LIe.version=o9.version;MIe.exports=LIe});var l9=_((vJt,a9)=>{var _Ie=UIe();a9.exports=_Ie;a9.exports.default=_Ie});var f9=_((DJt,GIe)=>{"use strict";var jIe=Object.getOwnPropertySymbols,aAt=Object.prototype.hasOwnProperty,lAt=Object.prototype.propertyIsEnumerable;function cAt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function uAt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var s=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(s.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}GIe.exports=uAt()?Object.assign:function(t,e){for(var r,s=cAt(t),a,n=1;n{"use strict";var p9=f9(),cw=60103,YIe=60106;Dn.Fragment=60107;Dn.StrictMode=60108;Dn.Profiler=60114;var VIe=60109,JIe=60110,KIe=60112;Dn.Suspense=60113;var zIe=60115,ZIe=60116;typeof Symbol=="function"&&Symbol.for&&(Gc=Symbol.for,cw=Gc("react.element"),YIe=Gc("react.portal"),Dn.Fragment=Gc("react.fragment"),Dn.StrictMode=Gc("react.strict_mode"),Dn.Profiler=Gc("react.profiler"),VIe=Gc("react.provider"),JIe=Gc("react.context"),KIe=Gc("react.forward_ref"),Dn.Suspense=Gc("react.suspense"),zIe=Gc("react.memo"),ZIe=Gc("react.lazy"));var Gc,qIe=typeof Symbol=="function"&&Symbol.iterator;function fAt(t){return t===null||typeof t!="object"?null:(t=qIe&&t[qIe]||t["@@iterator"],typeof t=="function"?t:null)}function RS(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r{"use strict";oCe.exports=sCe()});var yF=_((xJt,aCe)=>{function dAt(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}aCe.exports=dAt});var cCe=_((kJt,lCe)=>{var mAt=typeof global=="object"&&global&&global.Object===Object&&global;lCe.exports=mAt});var y9=_((QJt,uCe)=>{var yAt=cCe(),EAt=typeof self=="object"&&self&&self.Object===Object&&self,IAt=yAt||EAt||Function("return this")();uCe.exports=IAt});var ACe=_((RJt,fCe)=>{var CAt=y9(),wAt=function(){return CAt.Date.now()};fCe.exports=wAt});var hCe=_((TJt,pCe)=>{var BAt=/\s/;function vAt(t){for(var e=t.length;e--&&BAt.test(t.charAt(e)););return e}pCe.exports=vAt});var dCe=_((FJt,gCe)=>{var SAt=hCe(),DAt=/^\s+/;function PAt(t){return t&&t.slice(0,SAt(t)+1).replace(DAt,"")}gCe.exports=PAt});var E9=_((NJt,mCe)=>{var bAt=y9(),xAt=bAt.Symbol;mCe.exports=xAt});var CCe=_((OJt,ICe)=>{var yCe=E9(),ECe=Object.prototype,kAt=ECe.hasOwnProperty,QAt=ECe.toString,TS=yCe?yCe.toStringTag:void 0;function RAt(t){var e=kAt.call(t,TS),r=t[TS];try{t[TS]=void 0;var s=!0}catch{}var a=QAt.call(t);return s&&(e?t[TS]=r:delete t[TS]),a}ICe.exports=RAt});var BCe=_((LJt,wCe)=>{var TAt=Object.prototype,FAt=TAt.toString;function NAt(t){return FAt.call(t)}wCe.exports=NAt});var PCe=_((MJt,DCe)=>{var vCe=E9(),OAt=CCe(),LAt=BCe(),MAt="[object Null]",UAt="[object Undefined]",SCe=vCe?vCe.toStringTag:void 0;function _At(t){return t==null?t===void 0?UAt:MAt:SCe&&SCe in Object(t)?OAt(t):LAt(t)}DCe.exports=_At});var xCe=_((UJt,bCe)=>{function HAt(t){return t!=null&&typeof t=="object"}bCe.exports=HAt});var QCe=_((_Jt,kCe)=>{var jAt=PCe(),GAt=xCe(),qAt="[object Symbol]";function WAt(t){return typeof t=="symbol"||GAt(t)&&jAt(t)==qAt}kCe.exports=WAt});var NCe=_((HJt,FCe)=>{var YAt=dCe(),RCe=yF(),VAt=QCe(),TCe=NaN,JAt=/^[-+]0x[0-9a-f]+$/i,KAt=/^0b[01]+$/i,zAt=/^0o[0-7]+$/i,ZAt=parseInt;function XAt(t){if(typeof t=="number")return t;if(VAt(t))return TCe;if(RCe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=RCe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=YAt(t);var r=KAt.test(t);return r||zAt.test(t)?ZAt(t.slice(2),r?2:8):JAt.test(t)?TCe:+t}FCe.exports=XAt});var MCe=_((jJt,LCe)=>{var $At=yF(),I9=ACe(),OCe=NCe(),ept="Expected a function",tpt=Math.max,rpt=Math.min;function npt(t,e,r){var s,a,n,c,f,p,h=0,E=!1,C=!1,S=!0;if(typeof t!="function")throw new TypeError(ept);e=OCe(e)||0,$At(r)&&(E=!!r.leading,C="maxWait"in r,n=C?tpt(OCe(r.maxWait)||0,e):n,S="trailing"in r?!!r.trailing:S);function b(le){var me=s,pe=a;return s=a=void 0,h=le,c=t.apply(pe,me),c}function I(le){return h=le,f=setTimeout(U,e),E?b(le):c}function T(le){var me=le-p,pe=le-h,Be=e-me;return C?rpt(Be,n-pe):Be}function N(le){var me=le-p,pe=le-h;return p===void 0||me>=e||me<0||C&&pe>=n}function U(){var le=I9();if(N(le))return W(le);f=setTimeout(U,T(le))}function W(le){return f=void 0,S&&s?b(le):(s=a=void 0,c)}function ee(){f!==void 0&&clearTimeout(f),h=0,s=p=a=f=void 0}function ie(){return f===void 0?c:W(I9())}function ue(){var le=I9(),me=N(le);if(s=arguments,a=this,p=le,me){if(f===void 0)return I(p);if(C)return clearTimeout(f),f=setTimeout(U,e),b(p)}return f===void 0&&(f=setTimeout(U,e)),c}return ue.cancel=ee,ue.flush=ie,ue}LCe.exports=npt});var _Ce=_((GJt,UCe)=>{var ipt=MCe(),spt=yF(),opt="Expected a function";function apt(t,e,r){var s=!0,a=!0;if(typeof t!="function")throw new TypeError(opt);return spt(r)&&(s="leading"in r?!!r.leading:s,a="trailing"in r?!!r.trailing:a),ipt(t,e,{leading:s,maxWait:e,trailing:a})}UCe.exports=apt});var w9=_((qJt,C9)=>{"use strict";var Cn=C9.exports;C9.exports.default=Cn;var Zn="\x1B[",NS="\x1B]",fw="\x07",EF=";",HCe=process.env.TERM_PROGRAM==="Apple_Terminal";Cn.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Zn+(t+1)+"G":Zn+(e+1)+";"+(t+1)+"H"};Cn.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Zn+-t+"D":t>0&&(r+=Zn+t+"C"),e<0?r+=Zn+-e+"A":e>0&&(r+=Zn+e+"B"),r};Cn.cursorUp=(t=1)=>Zn+t+"A";Cn.cursorDown=(t=1)=>Zn+t+"B";Cn.cursorForward=(t=1)=>Zn+t+"C";Cn.cursorBackward=(t=1)=>Zn+t+"D";Cn.cursorLeft=Zn+"G";Cn.cursorSavePosition=HCe?"\x1B7":Zn+"s";Cn.cursorRestorePosition=HCe?"\x1B8":Zn+"u";Cn.cursorGetPosition=Zn+"6n";Cn.cursorNextLine=Zn+"E";Cn.cursorPrevLine=Zn+"F";Cn.cursorHide=Zn+"?25l";Cn.cursorShow=Zn+"?25h";Cn.eraseLines=t=>{let e="";for(let r=0;r[NS,"8",EF,EF,e,fw,t,NS,"8",EF,EF,fw].join("");Cn.image=(t,e={})=>{let r=`${NS}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+fw};Cn.iTerm={setCwd:(t=process.cwd())=>`${NS}50;CurrentDir=${t}${fw}`,annotation:(t,e={})=>{let r=`${NS}1337;`,s=typeof e.x<"u",a=typeof e.y<"u";if((s||a)&&!(s&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(s?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+fw}}});var GCe=_((WJt,B9)=>{"use strict";var jCe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};B9.exports=jCe;B9.exports.default=jCe});var WCe=_((YJt,CF)=>{"use strict";var lpt=GCe(),IF=new WeakMap,qCe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,s=0,a=t.displayName||t.name||"",n=function(...c){if(IF.set(n,++s),s===1)r=t.apply(this,c),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return lpt(n,t),IF.set(n,s),n};CF.exports=qCe;CF.exports.default=qCe;CF.exports.callCount=t=>{if(!IF.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return IF.get(t)}});var YCe=_((VJt,wF)=>{wF.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&wF.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&wF.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var D9=_((JJt,hw)=>{var Qi=global.process,Qm=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};Qm(Qi)?(VCe=Ie("assert"),Aw=YCe(),JCe=/^win/i.test(Qi.platform),OS=Ie("events"),typeof OS!="function"&&(OS=OS.EventEmitter),Qi.__signal_exit_emitter__?Js=Qi.__signal_exit_emitter__:(Js=Qi.__signal_exit_emitter__=new OS,Js.count=0,Js.emitted={}),Js.infinite||(Js.setMaxListeners(1/0),Js.infinite=!0),hw.exports=function(t,e){if(!Qm(global.process))return function(){};VCe.equal(typeof t,"function","a callback must be provided for exit handler"),pw===!1&&v9();var r="exit";e&&e.alwaysLast&&(r="afterexit");var s=function(){Js.removeListener(r,t),Js.listeners("exit").length===0&&Js.listeners("afterexit").length===0&&BF()};return Js.on(r,t),s},BF=function(){!pw||!Qm(global.process)||(pw=!1,Aw.forEach(function(e){try{Qi.removeListener(e,vF[e])}catch{}}),Qi.emit=SF,Qi.reallyExit=S9,Js.count-=1)},hw.exports.unload=BF,Rm=function(e,r,s){Js.emitted[e]||(Js.emitted[e]=!0,Js.emit(e,r,s))},vF={},Aw.forEach(function(t){vF[t]=function(){if(Qm(global.process)){var r=Qi.listeners(t);r.length===Js.count&&(BF(),Rm("exit",null,t),Rm("afterexit",null,t),JCe&&t==="SIGHUP"&&(t="SIGINT"),Qi.kill(Qi.pid,t))}}}),hw.exports.signals=function(){return Aw},pw=!1,v9=function(){pw||!Qm(global.process)||(pw=!0,Js.count+=1,Aw=Aw.filter(function(e){try{return Qi.on(e,vF[e]),!0}catch{return!1}}),Qi.emit=zCe,Qi.reallyExit=KCe)},hw.exports.load=v9,S9=Qi.reallyExit,KCe=function(e){Qm(global.process)&&(Qi.exitCode=e||0,Rm("exit",Qi.exitCode,null),Rm("afterexit",Qi.exitCode,null),S9.call(Qi,Qi.exitCode))},SF=Qi.emit,zCe=function(e,r){if(e==="exit"&&Qm(global.process)){r!==void 0&&(Qi.exitCode=r);var s=SF.apply(this,arguments);return Rm("exit",Qi.exitCode,null),Rm("afterexit",Qi.exitCode,null),s}else return SF.apply(this,arguments)}):hw.exports=function(){return function(){}};var VCe,Aw,JCe,OS,Js,BF,Rm,vF,pw,v9,S9,KCe,SF,zCe});var XCe=_((KJt,ZCe)=>{"use strict";var cpt=WCe(),upt=D9();ZCe.exports=cpt(()=>{upt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var P9=_(gw=>{"use strict";var fpt=XCe(),DF=!1;gw.show=(t=process.stderr)=>{t.isTTY&&(DF=!1,t.write("\x1B[?25h"))};gw.hide=(t=process.stderr)=>{t.isTTY&&(fpt(),DF=!0,t.write("\x1B[?25l"))};gw.toggle=(t,e)=>{t!==void 0&&(DF=t),DF?gw.show(e):gw.hide(e)}});var rwe=_(LS=>{"use strict";var twe=LS&&LS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(LS,"__esModule",{value:!0});var $Ce=twe(w9()),ewe=twe(P9()),Apt=(t,{showCursor:e=!1}={})=>{let r=0,s="",a=!1,n=c=>{!e&&!a&&(ewe.default.hide(),a=!0);let f=c+` `;f!==s&&(s=f,t.write($Ce.default.eraseLines(r)+f),r=f.split(` `).length)};return n.clear=()=>{t.write($Ce.default.eraseLines(r)),s="",r=0},n.done=()=>{s="",r=0,e||(ewe.default.show(),a=!1)},n};LS.default={create:Apt}});var nwe=_((XJt,ppt)=>{ppt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var owe=_(tc=>{"use strict";var swe=nwe(),uA=process.env;Object.defineProperty(tc,"_vendors",{value:swe.map(function(t){return t.constant})});tc.name=null;tc.isPR=null;swe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(s){return iwe(s)});if(tc[t.constant]=r,r)switch(tc.name=t.name,typeof t.pr){case"string":tc.isPR=!!uA[t.pr];break;case"object":"env"in t.pr?tc.isPR=t.pr.env in uA&&uA[t.pr.env]!==t.pr.ne:"any"in t.pr?tc.isPR=t.pr.any.some(function(s){return!!uA[s]}):tc.isPR=iwe(t.pr);break;default:tc.isPR=null}});tc.isCI=!!(uA.CI||uA.CONTINUOUS_INTEGRATION||uA.BUILD_NUMBER||uA.RUN_ID||tc.name);function iwe(t){return typeof t=="string"?!!uA[t]:Object.keys(t).every(function(e){return uA[e]===t[e]})}});var lwe=_((eKt,awe)=>{"use strict";awe.exports=owe().isCI});var uwe=_((tKt,cwe)=>{"use strict";var hpt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};cwe.exports=(t,{include:e,exclude:r}={})=>{let s=a=>{let n=c=>typeof c=="string"?a===c:c.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of hpt(t.constructor.prototype)){if(n==="constructor"||!s(n))continue;let c=Reflect.getOwnPropertyDescriptor(a,n);c&&typeof c.value=="function"&&(t[n]=t[n].bind(t))}return t}});var dwe=_(Vn=>{"use strict";var mw,_S,kF,F9;typeof performance=="object"&&typeof performance.now=="function"?(fwe=performance,Vn.unstable_now=function(){return fwe.now()}):(b9=Date,Awe=b9.now(),Vn.unstable_now=function(){return b9.now()-Awe});var fwe,b9,Awe;typeof window>"u"||typeof MessageChannel!="function"?(dw=null,x9=null,k9=function(){if(dw!==null)try{var t=Vn.unstable_now();dw(!0,t),dw=null}catch(e){throw setTimeout(k9,0),e}},mw=function(t){dw!==null?setTimeout(mw,0,t):(dw=t,setTimeout(k9,0))},_S=function(t,e){x9=setTimeout(t,e)},kF=function(){clearTimeout(x9)},Vn.unstable_shouldYield=function(){return!1},F9=Vn.unstable_forceFrameRate=function(){}):(pwe=window.setTimeout,hwe=window.clearTimeout,typeof console<"u"&&(gwe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof gwe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),MS=!1,US=null,PF=-1,Q9=5,R9=0,Vn.unstable_shouldYield=function(){return Vn.unstable_now()>=R9},F9=function(){},Vn.unstable_forceFrameRate=function(t){0>t||125>>1,a=t[s];if(a!==void 0&&0xF(c,r))p!==void 0&&0>xF(p,c)?(t[s]=p,t[f]=r,s=f):(t[s]=c,t[n]=r,s=n);else if(p!==void 0&&0>xF(p,r))t[s]=p,t[f]=r,s=f;else break e}}return e}return null}function xF(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var fA=[],X0=[],gpt=1,qc=null,$o=3,RF=!1,Tm=!1,HS=!1;function O9(t){for(var e=ef(X0);e!==null;){if(e.callback===null)QF(X0);else if(e.startTime<=t)QF(X0),e.sortIndex=e.expirationTime,N9(fA,e);else break;e=ef(X0)}}function L9(t){if(HS=!1,O9(t),!Tm)if(ef(fA)!==null)Tm=!0,mw(M9);else{var e=ef(X0);e!==null&&_S(L9,e.startTime-t)}}function M9(t,e){Tm=!1,HS&&(HS=!1,kF()),RF=!0;var r=$o;try{for(O9(e),qc=ef(fA);qc!==null&&(!(qc.expirationTime>e)||t&&!Vn.unstable_shouldYield());){var s=qc.callback;if(typeof s=="function"){qc.callback=null,$o=qc.priorityLevel;var a=s(qc.expirationTime<=e);e=Vn.unstable_now(),typeof a=="function"?qc.callback=a:qc===ef(fA)&&QF(fA),O9(e)}else QF(fA);qc=ef(fA)}if(qc!==null)var n=!0;else{var c=ef(X0);c!==null&&_S(L9,c.startTime-e),n=!1}return n}finally{qc=null,$o=r,RF=!1}}var dpt=F9;Vn.unstable_IdlePriority=5;Vn.unstable_ImmediatePriority=1;Vn.unstable_LowPriority=4;Vn.unstable_NormalPriority=3;Vn.unstable_Profiling=null;Vn.unstable_UserBlockingPriority=2;Vn.unstable_cancelCallback=function(t){t.callback=null};Vn.unstable_continueExecution=function(){Tm||RF||(Tm=!0,mw(M9))};Vn.unstable_getCurrentPriorityLevel=function(){return $o};Vn.unstable_getFirstCallbackNode=function(){return ef(fA)};Vn.unstable_next=function(t){switch($o){case 1:case 2:case 3:var e=3;break;default:e=$o}var r=$o;$o=e;try{return t()}finally{$o=r}};Vn.unstable_pauseExecution=function(){};Vn.unstable_requestPaint=dpt;Vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=$o;$o=t;try{return e()}finally{$o=r}};Vn.unstable_scheduleCallback=function(t,e,r){var s=Vn.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0s?(t.sortIndex=r,N9(X0,t),ef(fA)===null&&t===ef(X0)&&(HS?kF():HS=!0,_S(L9,r-s))):(t.sortIndex=a,N9(fA,t),Tm||RF||(Tm=!0,mw(M9))),t};Vn.unstable_wrapCallback=function(t){var e=$o;return function(){var r=$o;$o=e;try{return t.apply(this,arguments)}finally{$o=r}}}});var U9=_((nKt,mwe)=>{"use strict";mwe.exports=dwe()});var ywe=_((iKt,jS)=>{jS.exports=function(e){var r={},s=f9(),a=hn(),n=U9();function c(v){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+v,Q=1;Q_e||V[Se]!==ne[_e])return` `+V[Se].replace(" at new "," at ");while(1<=Se&&0<=_e);break}}}finally{ve=!1,Error.prepareStackTrace=Q}return(v=v?v.displayName||v.name:"")?oc(v):""}var ac=[],Oi=-1;function no(v){return{current:v}}function Tt(v){0>Oi||(v.current=ac[Oi],ac[Oi]=null,Oi--)}function xn(v,D){Oi++,ac[Oi]=v.current,v.current=D}var la={},ji=no(la),Li=no(!1),Na=la;function dn(v,D){var Q=v.type.contextTypes;if(!Q)return la;var H=v.stateNode;if(H&&H.__reactInternalMemoizedUnmaskedChildContext===D)return H.__reactInternalMemoizedMaskedChildContext;var V={},ne;for(ne in Q)V[ne]=D[ne];return H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=D,v.__reactInternalMemoizedMaskedChildContext=V),V}function Kn(v){return v=v.childContextTypes,v!=null}function Au(){Tt(Li),Tt(ji)}function yh(v,D,Q){if(ji.current!==la)throw Error(c(168));xn(ji,D),xn(Li,Q)}function Oa(v,D,Q){var H=v.stateNode;if(v=D.childContextTypes,typeof H.getChildContext!="function")return Q;H=H.getChildContext();for(var V in H)if(!(V in v))throw Error(c(108,g(D)||"Unknown",V));return s({},Q,H)}function La(v){return v=(v=v.stateNode)&&v.__reactInternalMemoizedMergedChildContext||la,Na=ji.current,xn(ji,v),xn(Li,Li.current),!0}function Ma(v,D,Q){var H=v.stateNode;if(!H)throw Error(c(169));Q?(v=Oa(v,D,Na),H.__reactInternalMemoizedMergedChildContext=v,Tt(Li),Tt(ji),xn(ji,v)):Tt(Li),xn(Li,Q)}var $e=null,Ua=null,hf=n.unstable_now;hf();var lc=0,wn=8;function ca(v){if(1&v)return wn=15,1;if(2&v)return wn=14,2;if(4&v)return wn=13,4;var D=24&v;return D!==0?(wn=12,D):v&32?(wn=11,32):(D=192&v,D!==0?(wn=10,D):v&256?(wn=9,256):(D=3584&v,D!==0?(wn=8,D):v&4096?(wn=7,4096):(D=4186112&v,D!==0?(wn=6,D):(D=62914560&v,D!==0?(wn=5,D):v&67108864?(wn=4,67108864):v&134217728?(wn=3,134217728):(D=805306368&v,D!==0?(wn=2,D):1073741824&v?(wn=1,1073741824):(wn=8,v))))))}function LA(v){switch(v){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function MA(v){switch(v){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(c(358,v))}}function ua(v,D){var Q=v.pendingLanes;if(Q===0)return wn=0;var H=0,V=0,ne=v.expiredLanes,Se=v.suspendedLanes,_e=v.pingedLanes;if(ne!==0)H=ne,V=wn=15;else if(ne=Q&134217727,ne!==0){var pt=ne&~Se;pt!==0?(H=ca(pt),V=wn):(_e&=ne,_e!==0&&(H=ca(_e),V=wn))}else ne=Q&~Se,ne!==0?(H=ca(ne),V=wn):_e!==0&&(H=ca(_e),V=wn);if(H===0)return 0;if(H=31-rs(H),H=Q&((0>H?0:1<Q;Q++)D.push(v);return D}function Ha(v,D,Q){v.pendingLanes|=D;var H=D-1;v.suspendedLanes&=H,v.pingedLanes&=H,v=v.eventTimes,D=31-rs(D),v[D]=Q}var rs=Math.clz32?Math.clz32:uc,cc=Math.log,pu=Math.LN2;function uc(v){return v===0?32:31-(cc(v)/pu|0)|0}var ja=n.unstable_runWithPriority,Mi=n.unstable_scheduleCallback,Is=n.unstable_cancelCallback,vl=n.unstable_shouldYield,gf=n.unstable_requestPaint,fc=n.unstable_now,wi=n.unstable_getCurrentPriorityLevel,Qn=n.unstable_ImmediatePriority,Ac=n.unstable_UserBlockingPriority,Ke=n.unstable_NormalPriority,st=n.unstable_LowPriority,St=n.unstable_IdlePriority,lr={},te=gf!==void 0?gf:function(){},Ee=null,Oe=null,dt=!1,Et=fc(),Pt=1e4>Et?fc:function(){return fc()-Et};function tr(){switch(wi()){case Qn:return 99;case Ac:return 98;case Ke:return 97;case st:return 96;case St:return 95;default:throw Error(c(332))}}function An(v){switch(v){case 99:return Qn;case 98:return Ac;case 97:return Ke;case 96:return st;case 95:return St;default:throw Error(c(332))}}function li(v,D){return v=An(v),ja(v,D)}function Gi(v,D,Q){return v=An(v),Mi(v,D,Q)}function Rn(){if(Oe!==null){var v=Oe;Oe=null,Is(v)}Ga()}function Ga(){if(!dt&&Ee!==null){dt=!0;var v=0;try{var D=Ee;li(99,function(){for(;vTn?(_n=kr,kr=null):_n=kr.sibling;var zr=Xt(et,kr,gt[Tn],Zt);if(zr===null){kr===null&&(kr=_n);break}v&&kr&&zr.alternate===null&&D(et,kr),qe=ne(zr,qe,Tn),Xn===null?Dr=zr:Xn.sibling=zr,Xn=zr,kr=_n}if(Tn===gt.length)return Q(et,kr),Dr;if(kr===null){for(;TnTn?(_n=kr,kr=null):_n=kr.sibling;var ci=Xt(et,kr,zr.value,Zt);if(ci===null){kr===null&&(kr=_n);break}v&&kr&&ci.alternate===null&&D(et,kr),qe=ne(ci,qe,Tn),Xn===null?Dr=ci:Xn.sibling=ci,Xn=ci,kr=_n}if(zr.done)return Q(et,kr),Dr;if(kr===null){for(;!zr.done;Tn++,zr=gt.next())zr=Lr(et,zr.value,Zt),zr!==null&&(qe=ne(zr,qe,Tn),Xn===null?Dr=zr:Xn.sibling=zr,Xn=zr);return Dr}for(kr=H(et,kr);!zr.done;Tn++,zr=gt.next())zr=zn(kr,et,Tn,zr.value,Zt),zr!==null&&(v&&zr.alternate!==null&&kr.delete(zr.key===null?Tn:zr.key),qe=ne(zr,qe,Tn),Xn===null?Dr=zr:Xn.sibling=zr,Xn=zr);return v&&kr.forEach(function(Du){return D(et,Du)}),Dr}return function(et,qe,gt,Zt){var Dr=typeof gt=="object"&>!==null&>.type===E&>.key===null;Dr&&(gt=gt.props.children);var Xn=typeof gt=="object"&>!==null;if(Xn)switch(gt.$$typeof){case p:e:{for(Xn=gt.key,Dr=qe;Dr!==null;){if(Dr.key===Xn){switch(Dr.tag){case 7:if(gt.type===E){Q(et,Dr.sibling),qe=V(Dr,gt.props.children),qe.return=et,et=qe;break e}break;default:if(Dr.elementType===gt.type){Q(et,Dr.sibling),qe=V(Dr,gt.props),qe.ref=yt(et,Dr,gt),qe.return=et,et=qe;break e}}Q(et,Dr);break}else D(et,Dr);Dr=Dr.sibling}gt.type===E?(qe=kf(gt.props.children,et.mode,Zt,gt.key),qe.return=et,et=qe):(Zt=sd(gt.type,gt.key,gt.props,null,et.mode,Zt),Zt.ref=yt(et,qe,gt),Zt.return=et,et=Zt)}return Se(et);case h:e:{for(Dr=gt.key;qe!==null;){if(qe.key===Dr)if(qe.tag===4&&qe.stateNode.containerInfo===gt.containerInfo&&qe.stateNode.implementation===gt.implementation){Q(et,qe.sibling),qe=V(qe,gt.children||[]),qe.return=et,et=qe;break e}else{Q(et,qe);break}else D(et,qe);qe=qe.sibling}qe=Qo(gt,et.mode,Zt),qe.return=et,et=qe}return Se(et)}if(typeof gt=="string"||typeof gt=="number")return gt=""+gt,qe!==null&&qe.tag===6?(Q(et,qe.sibling),qe=V(qe,gt),qe.return=et,et=qe):(Q(et,qe),qe=P2(gt,et.mode,Zt),qe.return=et,et=qe),Se(et);if(mf(gt))return yi(et,qe,gt,Zt);if(Ce(gt))return za(et,qe,gt,Zt);if(Xn&&gu(et,gt),typeof gt>"u"&&!Dr)switch(et.tag){case 1:case 22:case 0:case 11:case 15:throw Error(c(152,g(et.type)||"Component"))}return Q(et,qe)}}var Mg=By(!0),e2=By(!1),vh={},ur=no(vh),Ki=no(vh),yf=no(vh);function qa(v){if(v===vh)throw Error(c(174));return v}function Ug(v,D){xn(yf,D),xn(Ki,v),xn(ur,vh),v=mt(D),Tt(ur),xn(ur,v)}function du(){Tt(ur),Tt(Ki),Tt(yf)}function Ef(v){var D=qa(yf.current),Q=qa(ur.current);D=j(Q,v.type,D),Q!==D&&(xn(Ki,v),xn(ur,D))}function wt(v){Ki.current===v&&(Tt(ur),Tt(Ki))}var di=no(0);function GA(v){for(var D=v;D!==null;){if(D.tag===13){var Q=D.memoizedState;if(Q!==null&&(Q=Q.dehydrated,Q===null||gr(Q)||Bo(Q)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if(D.flags&64)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===v)break;for(;D.sibling===null;){if(D.return===null||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}var Wa=null,Aa=null,Ya=!1;function _g(v,D){var Q=Ka(5,null,null,0);Q.elementType="DELETED",Q.type="DELETED",Q.stateNode=D,Q.return=v,Q.flags=8,v.lastEffect!==null?(v.lastEffect.nextEffect=Q,v.lastEffect=Q):v.firstEffect=v.lastEffect=Q}function Sh(v,D){switch(v.tag){case 5:return D=aa(D,v.type,v.pendingProps),D!==null?(v.stateNode=D,!0):!1;case 6:return D=FA(D,v.pendingProps),D!==null?(v.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function Hg(v){if(Ya){var D=Aa;if(D){var Q=D;if(!Sh(v,D)){if(D=Me(Q),!D||!Sh(v,D)){v.flags=v.flags&-1025|2,Ya=!1,Wa=v;return}_g(Wa,Q)}Wa=v,Aa=cu(D)}else v.flags=v.flags&-1025|2,Ya=!1,Wa=v}}function vy(v){for(v=v.return;v!==null&&v.tag!==5&&v.tag!==3&&v.tag!==13;)v=v.return;Wa=v}function qA(v){if(!Z||v!==Wa)return!1;if(!Ya)return vy(v),Ya=!0,!1;var D=v.type;if(v.tag!==5||D!=="head"&&D!=="body"&&!it(D,v.memoizedProps))for(D=Aa;D;)_g(v,D),D=Me(D);if(vy(v),v.tag===13){if(!Z)throw Error(c(316));if(v=v.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(c(317));Aa=NA(v)}else Aa=Wa?Me(v.stateNode):null;return!0}function jg(){Z&&(Aa=Wa=null,Ya=!1)}var mu=[];function yu(){for(var v=0;vne))throw Error(c(301));ne+=1,bi=ns=null,D.updateQueue=null,If.current=re,v=Q(H,V)}while(Cf)}if(If.current=kt,D=ns!==null&&ns.next!==null,Eu=0,bi=ns=Gn=null,WA=!1,D)throw Error(c(300));return v}function is(){var v={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return bi===null?Gn.memoizedState=bi=v:bi=bi.next=v,bi}function bl(){if(ns===null){var v=Gn.alternate;v=v!==null?v.memoizedState:null}else v=ns.next;var D=bi===null?Gn.memoizedState:bi.next;if(D!==null)bi=D,ns=v;else{if(v===null)throw Error(c(310));ns=v,v={memoizedState:ns.memoizedState,baseState:ns.baseState,baseQueue:ns.baseQueue,queue:ns.queue,next:null},bi===null?Gn.memoizedState=bi=v:bi=bi.next=v}return bi}function bo(v,D){return typeof D=="function"?D(v):D}function wf(v){var D=bl(),Q=D.queue;if(Q===null)throw Error(c(311));Q.lastRenderedReducer=v;var H=ns,V=H.baseQueue,ne=Q.pending;if(ne!==null){if(V!==null){var Se=V.next;V.next=ne.next,ne.next=Se}H.baseQueue=V=ne,Q.pending=null}if(V!==null){V=V.next,H=H.baseState;var _e=Se=ne=null,pt=V;do{var Wt=pt.lane;if((Eu&Wt)===Wt)_e!==null&&(_e=_e.next={lane:0,action:pt.action,eagerReducer:pt.eagerReducer,eagerState:pt.eagerState,next:null}),H=pt.eagerReducer===v?pt.eagerState:v(H,pt.action);else{var Sr={lane:Wt,action:pt.action,eagerReducer:pt.eagerReducer,eagerState:pt.eagerState,next:null};_e===null?(Se=_e=Sr,ne=H):_e=_e.next=Sr,Gn.lanes|=Wt,Xg|=Wt}pt=pt.next}while(pt!==null&&pt!==V);_e===null?ne=H:_e.next=Se,vo(H,D.memoizedState)||(Je=!0),D.memoizedState=H,D.baseState=ne,D.baseQueue=_e,Q.lastRenderedState=H}return[D.memoizedState,Q.dispatch]}function Bf(v){var D=bl(),Q=D.queue;if(Q===null)throw Error(c(311));Q.lastRenderedReducer=v;var H=Q.dispatch,V=Q.pending,ne=D.memoizedState;if(V!==null){Q.pending=null;var Se=V=V.next;do ne=v(ne,Se.action),Se=Se.next;while(Se!==V);vo(ne,D.memoizedState)||(Je=!0),D.memoizedState=ne,D.baseQueue===null&&(D.baseState=ne),Q.lastRenderedState=ne}return[ne,H]}function xl(v,D,Q){var H=D._getVersion;H=H(D._source);var V=y?D._workInProgressVersionPrimary:D._workInProgressVersionSecondary;if(V!==null?v=V===H:(v=v.mutableReadLanes,(v=(Eu&v)===v)&&(y?D._workInProgressVersionPrimary=H:D._workInProgressVersionSecondary=H,mu.push(D))),v)return Q(D._source);throw mu.push(D),Error(c(350))}function yn(v,D,Q,H){var V=so;if(V===null)throw Error(c(349));var ne=D._getVersion,Se=ne(D._source),_e=If.current,pt=_e.useState(function(){return xl(V,D,Q)}),Wt=pt[1],Sr=pt[0];pt=bi;var Lr=v.memoizedState,Xt=Lr.refs,zn=Xt.getSnapshot,yi=Lr.source;Lr=Lr.subscribe;var za=Gn;return v.memoizedState={refs:Xt,source:D,subscribe:H},_e.useEffect(function(){Xt.getSnapshot=Q,Xt.setSnapshot=Wt;var et=ne(D._source);if(!vo(Se,et)){et=Q(D._source),vo(Sr,et)||(Wt(et),et=Bs(za),V.mutableReadLanes|=et&V.pendingLanes),et=V.mutableReadLanes,V.entangledLanes|=et;for(var qe=V.entanglements,gt=et;0Q?98:Q,function(){v(!0)}),li(97m2&&(D.flags|=64,V=!0,ZA(H,!1),D.lanes=33554432)}else{if(!V)if(v=GA(ne),v!==null){if(D.flags|=64,V=!0,v=v.updateQueue,v!==null&&(D.updateQueue=v,D.flags|=4),ZA(H,!0),H.tail===null&&H.tailMode==="hidden"&&!ne.alternate&&!Ya)return D=D.lastEffect=H.lastEffect,D!==null&&(D.nextEffect=null),null}else 2*Pt()-H.renderingStartTime>m2&&Q!==1073741824&&(D.flags|=64,V=!0,ZA(H,!1),D.lanes=33554432);H.isBackwards?(ne.sibling=D.child,D.child=ne):(v=H.last,v!==null?v.sibling=ne:D.child=ne,H.last=ne)}return H.tail!==null?(v=H.tail,H.rendering=v,H.tail=v.sibling,H.lastEffect=D.lastEffect,H.renderingStartTime=Pt(),v.sibling=null,D=di.current,xn(di,V?D&1|2:D&1),v):null;case 23:case 24:return B2(),v!==null&&v.memoizedState!==null!=(D.memoizedState!==null)&&H.mode!=="unstable-defer-without-hiding"&&(D.flags|=4),null}throw Error(c(156,D.tag))}function jL(v){switch(v.tag){case 1:Kn(v.type)&&Au();var D=v.flags;return D&4096?(v.flags=D&-4097|64,v):null;case 3:if(du(),Tt(Li),Tt(ji),yu(),D=v.flags,D&64)throw Error(c(285));return v.flags=D&-4097|64,v;case 5:return wt(v),null;case 13:return Tt(di),D=v.flags,D&4096?(v.flags=D&-4097|64,v):null;case 19:return Tt(di),null;case 4:return du(),null;case 10:return Og(v),null;case 23:case 24:return B2(),null;default:return null}}function Yg(v,D){try{var Q="",H=D;do Q+=$1(H),H=H.return;while(H);var V=Q}catch(ne){V=` Error generating stack: `+ne.message+` `+ne.stack}return{value:v,source:D,stack:V}}function Vg(v,D){try{console.error(D.value)}catch(Q){setTimeout(function(){throw Q})}}var qL=typeof WeakMap=="function"?WeakMap:Map;function i2(v,D,Q){Q=Dl(-1,Q),Q.tag=3,Q.payload={element:null};var H=D.value;return Q.callback=function(){_y||(_y=!0,y2=H),Vg(v,D)},Q}function Jg(v,D,Q){Q=Dl(-1,Q),Q.tag=3;var H=v.type.getDerivedStateFromError;if(typeof H=="function"){var V=D.value;Q.payload=function(){return Vg(v,D),H(V)}}var ne=v.stateNode;return ne!==null&&typeof ne.componentDidCatch=="function"&&(Q.callback=function(){typeof H!="function"&&(hc===null?hc=new Set([this]):hc.add(this),Vg(v,D));var Se=D.stack;this.componentDidCatch(D.value,{componentStack:Se!==null?Se:""})}),Q}var WL=typeof WeakSet=="function"?WeakSet:Set;function s2(v){var D=v.ref;if(D!==null)if(typeof D=="function")try{D(null)}catch(Q){xf(v,Q)}else D.current=null}function xy(v,D){switch(D.tag){case 0:case 11:case 15:case 22:return;case 1:if(D.flags&256&&v!==null){var Q=v.memoizedProps,H=v.memoizedState;v=D.stateNode,D=v.getSnapshotBeforeUpdate(D.elementType===D.type?Q:So(D.type,Q),H),v.__reactInternalSnapshotBeforeUpdate=D}return;case 3:F&&D.flags&256&&Rs(D.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(c(163))}function Rh(v,D){if(D=D.updateQueue,D=D!==null?D.lastEffect:null,D!==null){var Q=D=D.next;do{if((Q.tag&v)===v){var H=Q.destroy;Q.destroy=void 0,H!==void 0&&H()}Q=Q.next}while(Q!==D)}}function ub(v,D,Q){switch(Q.tag){case 0:case 11:case 15:case 22:if(D=Q.updateQueue,D=D!==null?D.lastEffect:null,D!==null){v=D=D.next;do{if((v.tag&3)===3){var H=v.create;v.destroy=H()}v=v.next}while(v!==D)}if(D=Q.updateQueue,D=D!==null?D.lastEffect:null,D!==null){v=D=D.next;do{var V=v;H=V.next,V=V.tag,V&4&&V&1&&(vb(Q,v),eM(Q,v)),v=H}while(v!==D)}return;case 1:v=Q.stateNode,Q.flags&4&&(D===null?v.componentDidMount():(H=Q.elementType===Q.type?D.memoizedProps:So(Q.type,D.memoizedProps),v.componentDidUpdate(H,D.memoizedState,v.__reactInternalSnapshotBeforeUpdate))),D=Q.updateQueue,D!==null&&Cy(Q,D,v);return;case 3:if(D=Q.updateQueue,D!==null){if(v=null,Q.child!==null)switch(Q.child.tag){case 5:v=Te(Q.child.stateNode);break;case 1:v=Q.child.stateNode}Cy(Q,D,v)}return;case 5:v=Q.stateNode,D===null&&Q.flags&4&&$s(v,Q.type,Q.memoizedProps,Q);return;case 6:return;case 4:return;case 12:return;case 13:Z&&Q.memoizedState===null&&(Q=Q.alternate,Q!==null&&(Q=Q.memoizedState,Q!==null&&(Q=Q.dehydrated,Q!==null&&uu(Q))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(c(163))}function fb(v,D){if(F)for(var Q=v;;){if(Q.tag===5){var H=Q.stateNode;D?dh(H):to(Q.stateNode,Q.memoizedProps)}else if(Q.tag===6)H=Q.stateNode,D?mh(H):jn(H,Q.memoizedProps);else if((Q.tag!==23&&Q.tag!==24||Q.memoizedState===null||Q===v)&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===v)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===v)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}}function ky(v,D){if(Ua&&typeof Ua.onCommitFiberUnmount=="function")try{Ua.onCommitFiberUnmount($e,D)}catch{}switch(D.tag){case 0:case 11:case 14:case 15:case 22:if(v=D.updateQueue,v!==null&&(v=v.lastEffect,v!==null)){var Q=v=v.next;do{var H=Q,V=H.destroy;if(H=H.tag,V!==void 0)if(H&4)vb(D,Q);else{H=D;try{V()}catch(ne){xf(H,ne)}}Q=Q.next}while(Q!==v)}break;case 1:if(s2(D),v=D.stateNode,typeof v.componentWillUnmount=="function")try{v.props=D.memoizedProps,v.state=D.memoizedState,v.componentWillUnmount()}catch(ne){xf(D,ne)}break;case 5:s2(D);break;case 4:F?gb(v,D):z&&z&&(D=D.stateNode.containerInfo,v=ou(D),RA(D,v))}}function Ab(v,D){for(var Q=D;;)if(ky(v,Q),Q.child===null||F&&Q.tag===4){if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}else Q.child.return=Q,Q=Q.child}function Qy(v){v.alternate=null,v.child=null,v.dependencies=null,v.firstEffect=null,v.lastEffect=null,v.memoizedProps=null,v.memoizedState=null,v.pendingProps=null,v.return=null,v.updateQueue=null}function pb(v){return v.tag===5||v.tag===3||v.tag===4}function hb(v){if(F){e:{for(var D=v.return;D!==null;){if(pb(D))break e;D=D.return}throw Error(c(160))}var Q=D;switch(D=Q.stateNode,Q.tag){case 5:var H=!1;break;case 3:D=D.containerInfo,H=!0;break;case 4:D=D.containerInfo,H=!0;break;default:throw Error(c(161))}Q.flags&16&&(Af(D),Q.flags&=-17);e:t:for(Q=v;;){for(;Q.sibling===null;){if(Q.return===null||pb(Q.return)){Q=null;break e}Q=Q.return}for(Q.sibling.return=Q.return,Q=Q.sibling;Q.tag!==5&&Q.tag!==6&&Q.tag!==18;){if(Q.flags&2||Q.child===null||Q.tag===4)continue t;Q.child.return=Q,Q=Q.child}if(!(Q.flags&2)){Q=Q.stateNode;break e}}H?o2(v,Q,D):a2(v,Q,D)}}function o2(v,D,Q){var H=v.tag,V=H===5||H===6;if(V)v=V?v.stateNode:v.stateNode.instance,D?eo(Q,v,D):Io(Q,v);else if(H!==4&&(v=v.child,v!==null))for(o2(v,D,Q),v=v.sibling;v!==null;)o2(v,D,Q),v=v.sibling}function a2(v,D,Q){var H=v.tag,V=H===5||H===6;if(V)v=V?v.stateNode:v.stateNode.instance,D?Hi(Q,v,D):ai(Q,v);else if(H!==4&&(v=v.child,v!==null))for(a2(v,D,Q),v=v.sibling;v!==null;)a2(v,D,Q),v=v.sibling}function gb(v,D){for(var Q=D,H=!1,V,ne;;){if(!H){H=Q.return;e:for(;;){if(H===null)throw Error(c(160));switch(V=H.stateNode,H.tag){case 5:ne=!1;break e;case 3:V=V.containerInfo,ne=!0;break e;case 4:V=V.containerInfo,ne=!0;break e}H=H.return}H=!0}if(Q.tag===5||Q.tag===6)Ab(v,Q),ne?QA(V,Q.stateNode):wo(V,Q.stateNode);else if(Q.tag===4){if(Q.child!==null){V=Q.stateNode.containerInfo,ne=!0,Q.child.return=Q,Q=Q.child;continue}}else if(ky(v,Q),Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return,Q.tag===4&&(H=!1)}Q.sibling.return=Q.return,Q=Q.sibling}}function l2(v,D){if(F){switch(D.tag){case 0:case 11:case 14:case 15:case 22:Rh(3,D);return;case 1:return;case 5:var Q=D.stateNode;if(Q!=null){var H=D.memoizedProps;v=v!==null?v.memoizedProps:H;var V=D.type,ne=D.updateQueue;D.updateQueue=null,ne!==null&&Co(Q,ne,V,v,H,D)}return;case 6:if(D.stateNode===null)throw Error(c(162));Q=D.memoizedProps,ts(D.stateNode,v!==null?v.memoizedProps:Q,Q);return;case 3:Z&&(D=D.stateNode,D.hydrate&&(D.hydrate=!1,OA(D.containerInfo)));return;case 12:return;case 13:db(D),Kg(D);return;case 19:Kg(D);return;case 17:return;case 23:case 24:fb(D,D.memoizedState!==null);return}throw Error(c(163))}switch(D.tag){case 0:case 11:case 14:case 15:case 22:Rh(3,D);return;case 12:return;case 13:db(D),Kg(D);return;case 19:Kg(D);return;case 3:Z&&(Q=D.stateNode,Q.hydrate&&(Q.hydrate=!1,OA(Q.containerInfo)));break;case 23:case 24:return}e:if(z){switch(D.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:D=D.stateNode,RA(D.containerInfo,D.pendingChildren);break e}throw Error(c(163))}}function db(v){v.memoizedState!==null&&(d2=Pt(),F&&fb(v.child,!0))}function Kg(v){var D=v.updateQueue;if(D!==null){v.updateQueue=null;var Q=v.stateNode;Q===null&&(Q=v.stateNode=new WL),D.forEach(function(H){var V=rM.bind(null,v,H);Q.has(H)||(Q.add(H),H.then(V,V))})}}function YL(v,D){return v!==null&&(v=v.memoizedState,v===null||v.dehydrated!==null)?(D=D.memoizedState,D!==null&&D.dehydrated===null):!1}var Ry=0,Ty=1,Fy=2,zg=3,Ny=4;if(typeof Symbol=="function"&&Symbol.for){var Zg=Symbol.for;Ry=Zg("selector.component"),Ty=Zg("selector.has_pseudo_class"),Fy=Zg("selector.role"),zg=Zg("selector.test_id"),Ny=Zg("selector.text")}function Oy(v){var D=$(v);if(D!=null){if(typeof D.memoizedProps["data-testname"]!="string")throw Error(c(364));return D}if(v=ir(v),v===null)throw Error(c(362));return v.stateNode.current}function Sf(v,D){switch(D.$$typeof){case Ry:if(v.type===D.value)return!0;break;case Ty:e:{D=D.value,v=[v,0];for(var Q=0;Q";case Ty:return":has("+(Df(v)||"")+")";case Fy:return'[role="'+v.value+'"]';case Ny:return'"'+v.value+'"';case zg:return'[data-testname="'+v.value+'"]';default:throw Error(c(365,v))}}function c2(v,D){var Q=[];v=[v,0];for(var H=0;HV&&(V=Se),Q&=~ne}if(Q=V,Q=Pt()-Q,Q=(120>Q?120:480>Q?480:1080>Q?1080:1920>Q?1920:3e3>Q?3e3:4320>Q?4320:1960*JL(Q/1960))-Q,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}ws!==5&&(ws=2),pt=Yg(pt,_e),Xt=Se;do{switch(Xt.tag){case 3:ne=pt,Xt.flags|=4096,D&=-D,Xt.lanes|=D;var Xn=i2(Xt,ne,D);Iy(Xt,Xn);break e;case 1:ne=pt;var kr=Xt.type,Tn=Xt.stateNode;if(!(Xt.flags&64)&&(typeof kr.getDerivedStateFromError=="function"||Tn!==null&&typeof Tn.componentDidCatch=="function"&&(hc===null||!hc.has(Tn)))){Xt.flags|=4096,D&=-D,Xt.lanes|=D;var _n=Jg(Xt,ne,D);Iy(Xt,_n);break e}}Xt=Xt.return}while(Xt!==null)}Bb(Q)}catch(zr){D=zr,zi===Q&&Q!==null&&(zi=Q=Q.return);continue}break}while(!0)}function Cb(){var v=My.current;return My.current=kt,v===null?kt:v}function id(v,D){var Q=xr;xr|=16;var H=Cb();so===v&&Ns===D||Oh(v,D);do try{zL();break}catch(V){Ib(v,V)}while(!0);if(Fg(),xr=Q,My.current=H,zi!==null)throw Error(c(261));return so=null,Ns=0,ws}function zL(){for(;zi!==null;)wb(zi)}function ZL(){for(;zi!==null&&!vl();)wb(zi)}function wb(v){var D=Pb(v.alternate,v,XA);v.memoizedProps=v.pendingProps,D===null?Bb(v):zi=D,f2.current=null}function Bb(v){var D=v;do{var Q=D.alternate;if(v=D.return,D.flags&2048){if(Q=jL(D),Q!==null){Q.flags&=2047,zi=Q;return}v!==null&&(v.firstEffect=v.lastEffect=null,v.flags|=2048)}else{if(Q=HL(Q,D,XA),Q!==null){zi=Q;return}if(Q=D,Q.tag!==24&&Q.tag!==23||Q.memoizedState===null||XA&1073741824||!(Q.mode&4)){for(var H=0,V=Q.child;V!==null;)H|=V.lanes|V.childLanes,V=V.sibling;Q.childLanes=H}v!==null&&!(v.flags&2048)&&(v.firstEffect===null&&(v.firstEffect=D.firstEffect),D.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=D.firstEffect),v.lastEffect=D.lastEffect),1Pt()-d2?Oh(v,0):h2|=Q),ga(v,D)}function rM(v,D){var Q=v.stateNode;Q!==null&&Q.delete(D),D=0,D===0&&(D=v.mode,D&2?D&4?(Bu===0&&(Bu=Th),D=kn(62914560&~Bu),D===0&&(D=4194304)):D=tr()===99?1:2:D=1),Q=ko(),v=Gy(v,D),v!==null&&(Ha(v,D,Q),ga(v,Q))}var Pb;Pb=function(v,D,Q){var H=D.lanes;if(v!==null)if(v.memoizedProps!==D.pendingProps||Li.current)Je=!0;else if(Q&H)Je=!!(v.flags&16384);else{switch(Je=!1,D.tag){case 3:Py(D),jg();break;case 5:Ef(D);break;case 1:Kn(D.type)&&La(D);break;case 4:Ug(D,D.stateNode.containerInfo);break;case 10:Ng(D,D.memoizedProps.value);break;case 13:if(D.memoizedState!==null)return Q&D.child.childLanes?r2(v,D,Q):(xn(di,di.current&1),D=qn(v,D,Q),D!==null?D.sibling:null);xn(di,di.current&1);break;case 19:if(H=(Q&D.childLanes)!==0,v.flags&64){if(H)return lb(v,D,Q);D.flags|=64}var V=D.memoizedState;if(V!==null&&(V.rendering=null,V.tail=null,V.lastEffect=null),xn(di,di.current),H)break;return null;case 23:case 24:return D.lanes=0,mi(v,D,Q)}return qn(v,D,Q)}else Je=!1;switch(D.lanes=0,D.tag){case 2:if(H=D.type,v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),v=D.pendingProps,V=dn(D,ji.current),df(D,Q),V=qg(null,D,H,v,V,Q),D.flags|=1,typeof V=="object"&&V!==null&&typeof V.render=="function"&&V.$$typeof===void 0){if(D.tag=1,D.memoizedState=null,D.updateQueue=null,Kn(H)){var ne=!0;La(D)}else ne=!1;D.memoizedState=V.state!==null&&V.state!==void 0?V.state:null,Bh(D);var Se=H.getDerivedStateFromProps;typeof Se=="function"&&_A(D,H,Se,v),V.updater=HA,D.stateNode=V,V._reactInternals=D,Po(D,H,v,Q),D=t2(null,D,H,!0,ne,Q)}else D.tag=0,At(null,D,V,Q),D=D.child;return D;case 16:V=D.elementType;e:{switch(v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),v=D.pendingProps,ne=V._init,V=ne(V._payload),D.type=V,ne=D.tag=iM(V),v=So(V,v),ne){case 0:D=JA(null,D,V,v,Q);break e;case 1:D=ab(null,D,V,v,Q);break e;case 11:D=dr(null,D,V,v,Q);break e;case 14:D=vr(null,D,V,So(V.type,v),H,Q);break e}throw Error(c(306,V,""))}return D;case 0:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:So(H,V),JA(v,D,H,V,Q);case 1:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:So(H,V),ab(v,D,H,V,Q);case 3:if(Py(D),H=D.updateQueue,v===null||H===null)throw Error(c(282));if(H=D.pendingProps,V=D.memoizedState,V=V!==null?V.element:null,Lg(v,D),UA(D,H,null,Q),H=D.memoizedState.element,H===V)jg(),D=qn(v,D,Q);else{if(V=D.stateNode,(ne=V.hydrate)&&(Z?(Aa=cu(D.stateNode.containerInfo),Wa=D,ne=Ya=!0):ne=!1),ne){if(Z&&(v=V.mutableSourceEagerHydrationData,v!=null))for(V=0;V=Wt&&ne>=Lr&&V<=Sr&&Se<=Xt){v.splice(D,1);break}else if(H!==Wt||Q.width!==pt.width||XtSe){if(!(ne!==Lr||Q.height!==pt.height||SrV)){Wt>H&&(pt.width+=Wt-H,pt.x=H),Srne&&(pt.height+=Lr-ne,pt.y=ne),XtQ&&(Q=Se)),Se ")+` No matching component was found for: `)+v.join(" > ")}return null},r.getPublicRootInstance=function(v){if(v=v.current,!v.child)return null;switch(v.child.tag){case 5:return Te(v.child.stateNode);default:return v.child.stateNode}},r.injectIntoDevTools=function(v){if(v={bundleType:v.bundleType,version:v.version,rendererPackageName:v.rendererPackageName,rendererConfig:v.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:f.ReactCurrentDispatcher,findHostInstanceByFiber:oM,findFiberByHostInstance:v.findFiberByHostInstance||aM,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")v=!1;else{var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!D.isDisabled&&D.supportsFiber)try{$e=D.inject(v),Ua=D}catch{}v=!0}return v},r.observeVisibleRects=function(v,D,Q,H){if(!qt)throw Error(c(363));v=u2(v,D);var V=nn(v,Q,H).disconnect;return{disconnect:function(){V()}}},r.registerMutableSourceForHydration=function(v,D){var Q=D._getVersion;Q=Q(D._source),v.mutableSourceEagerHydrationData==null?v.mutableSourceEagerHydrationData=[D,Q]:v.mutableSourceEagerHydrationData.push(D,Q)},r.runWithPriority=function(v,D){var Q=lc;try{return lc=v,D()}finally{lc=Q}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(v,D){var Q=xr;xr&=-2,xr|=8;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Rn())}},r.updateContainer=function(v,D,Q,H){var V=D.current,ne=ko(),Se=Bs(V);e:if(Q){Q=Q._reactInternals;t:{if(we(Q)!==Q||Q.tag!==1)throw Error(c(170));var _e=Q;do{switch(_e.tag){case 3:_e=_e.stateNode.context;break t;case 1:if(Kn(_e.type)){_e=_e.stateNode.__reactInternalMemoizedMergedChildContext;break t}}_e=_e.return}while(_e!==null);throw Error(c(171))}if(Q.tag===1){var pt=Q.type;if(Kn(pt)){Q=Oa(Q,pt,_e);break e}}Q=_e}else Q=la;return D.context===null?D.context=Q:D.pendingContext=Q,D=Dl(ne,Se),D.payload={element:v},H=H===void 0?null:H,H!==null&&(D.callback=H),Pl(V,D),Rl(V,Se,ne),Se},r}});var Iwe=_((sKt,Ewe)=>{"use strict";Ewe.exports=ywe()});var wwe=_((oKt,Cwe)=>{"use strict";var mpt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};Cwe.exports=mpt});var Dwe=_((aKt,Swe)=>{"use strict";var ypt=Object.assign||function(t){for(var e=1;e"}}]),t}(),Bwe=function(){TF(t,null,[{key:"fromJS",value:function(r){var s=r.width,a=r.height;return new t(s,a)}}]);function t(e,r){H9(this,t),this.width=e,this.height=r}return TF(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),vwe=function(){function t(e,r){H9(this,t),this.unit=e,this.value=r}return TF(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case tf.UNIT_POINT:return String(this.value);case tf.UNIT_PERCENT:return this.value+"%";case tf.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();Swe.exports=function(t,e){function r(c,f,p){var h=c[f];c[f]=function(){for(var E=arguments.length,C=Array(E),S=0;S1?C-1:0),b=1;b1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:tf.DIRECTION_LTR;return c.call(this,f,p,h)}),ypt({Config:e.Config,Node:e.Node,Layout:t("Layout",Ept),Size:t("Size",Bwe),Value:t("Value",vwe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},tf)}});var Pwe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Ie=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var s=nodeFS.readFileSync(e);return r?s:s.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,s){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):s()},a.onerror=s,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var s=enlargeMemory();if(!s)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var s=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return s},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,s,a,n){var c=getCFunc(e),f=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,s){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var c=typeof e=="string"?e:null,f;if(r==ALLOC_NONE?f=s:f=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,c?1:e.length)),a){var s=f,p;for(assert((f&3)==0),p=f+(n&-4);s>2]=0;for(p=f+n;s>0]=0;return f}if(c==="i8")return t.subarray||t.slice?HEAPU8.set(t,f):HEAPU8.set(new Uint8Array(t),f),f;for(var h=0,E,C,S;h>0],r|=s,!(s==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var c=1024,f;e>0;)f=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,c))),n=n?n+f:f,t+=c,e-=c;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var s,a,n,c,f,p,h="";;){if(s=t[e++],!s)return h;if(!(s&128)){h+=String.fromCharCode(s);continue}if(a=t[e++]&63,(s&224)==192){h+=String.fromCharCode((s&31)<<6|a);continue}if(n=t[e++]&63,(s&240)==224?s=(s&15)<<12|a<<6|n:(c=t[e++]&63,(s&248)==240?s=(s&7)<<18|a<<12|n<<6|c:(f=t[e++]&63,(s&252)==248?s=(s&3)<<24|a<<18|n<<12|c<<6|f:(p=t[e++]&63,s=(s&1)<<30|a<<24|n<<18|c<<12|f<<6|p))),s<65536)h+=String.fromCharCode(s);else{var E=s-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,s){if(!(s>0))return 0;for(var a=r,n=r+s-1,c=0;c=55296&&f<=57343&&(f=65536+((f&1023)<<10)|t.charCodeAt(++c)&1023),f<=127){if(r>=n)break;e[r++]=f}else if(f<=2047){if(r+1>=n)break;e[r++]=192|f>>6,e[r++]=128|f&63}else if(f<=65535){if(r+2>=n)break;e[r++]=224|f>>12,e[r++]=128|f>>6&63,e[r++]=128|f&63}else if(f<=2097151){if(r+3>=n)break;e[r++]=240|f>>18,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}else if(f<=67108863){if(r+4>=n)break;e[r++]=248|f>>24,e[r++]=128|f>>18&63,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}else{if(r+5>=n)break;e[r++]=252|f>>30,e[r++]=128|f>>24&63,e[r++]=128|f>>18&63,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&s<=57343&&(s=65536+((s&1023)<<10)|t.charCodeAt(++r)&1023),s<=127?++e:s<=2047?e+=2:s<=65535?e+=3:s<=2097151?e+=4:s<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),s=lengthBytesUTF8(r)+1,a=_malloc(s);stringToUTF8(r,a,s);var n=_malloc(4),c=e(a,0,0,n);if(getValue(n,"i32")===0&&c)return Pointer_stringify(c)}catch{}finally{a&&_free(a),n&&_free(n),c&&_free(c)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var s=demangle(r);return r===s?r:r+" ["+s+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` `+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var s=r>0?r:lengthBytesUTF8(t)+1,a=new Array(s),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(s&=255),e.push(String.fromCharCode(s))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var s,a;r&&(a=e+lengthBytesUTF8(t),s=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=s)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var s=0;s>0]=t.charCodeAt(s);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var s=e>>>16,a=e&65535,n=r>>>16,c=r&65535;return a*c+(s*c+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,s,a,n,c,f){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,s,a,n,c,f){return ASM_CONSTS[t](e,r,s,a,n,c,f)}function _emscripten_asm_const_iiiii(t,e,r,s,a){return ASM_CONSTS[t](e,r,s,a)}function _emscripten_asm_const_iiidddddd(t,e,r,s,a,n,c,f,p){return ASM_CONSTS[t](e,r,s,a,n,c,f,p)}function _emscripten_asm_const_iiididi(t,e,r,s,a,n,c){return ASM_CONSTS[t](e,r,s,a,n,c)}function _emscripten_asm_const_iiii(t,e,r,s){return ASM_CONSTS[t](e,r,s)}function _emscripten_asm_const_iiiid(t,e,r,s,a){return ASM_CONSTS[t](e,r,s,a)}function _emscripten_asm_const_iiiiii(t,e,r,s,a,n){return ASM_CONSTS[t](e,r,s,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,s){var a=arguments.length,n=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,r):s,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,s);else for(var f=t.length-1;f>=0;f--)(c=t[f])&&(n=(a<3?c(n):a>3?c(e,r,n):c(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,s){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=s/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var c=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,c)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(c){c.source===window&&c.data===s&&(c.stopPropagation(),r.shift()())};var a=n,r=[],s="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(f){r.push(f),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(f),window.postMessage({target:s})):window.postMessage(s,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,s,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=s;var n;typeof s<"u"?n=function(){Module.dynCall_vi(t,s)}:n=function(){Module.dynCall_v(t)};var c=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,C=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=C:(C=C+.5,Browser.mainLoop.remainingBlockers=(8*E+C)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),c1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(c0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,c,f,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(c)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(c)}))}catch(b){Runtime.warnOnce("Blob constructor present but fails: "+b+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var C=Browser.URLObject.createObjectURL(h),S=new Image;S.onload=function(){assert(S.complete,"Image "+c+" could not be decoded");var I=document.createElement("canvas");I.width=S.width,I.height=S.height;var T=I.getContext("2d");T.drawImage(S,0,0),Module.preloadedImages[c]=I,Browser.URLObject.revokeObjectURL(C),f&&f(n)},S.onerror=function(I){console.log("Image "+C+" could not be decoded"),p&&p()},S.src=C},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,c,f,p){var h=!1;function E(T){h||(h=!0,Module.preloadedAudios[c]=T,f&&f(n))}function C(){h||(h=!0,Module.preloadedAudios[c]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var S=new Blob([n],{type:Browser.getMimetype(c)})}catch{return C()}var b=Browser.URLObject.createObjectURL(S),I=new Audio;I.addEventListener("canplaythrough",function(){E(I)},!1),I.onerror=function(N){if(h)return;console.log("warning: browser could not fully decode audio "+c+", trying slower base64 approach");function U(W){for(var ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ie="=",ue="",le=0,me=0,pe=0;pe=6;){var Be=le>>me-6&63;me-=6,ue+=ee[Be]}return me==2?(ue+=ee[(le&3)<<4],ue+=ie+ie):me==4&&(ue+=ee[(le&15)<<2],ue+=ie),ue}I.src="data:audio/x-"+c.substr(-3)+";base64,"+U(n),E(I)},I.src=b,Browser.safeSetTimeout(function(){E(I)},1e4)}else return C()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var s=Module.canvas;s&&(s.requestPointerLock=s.requestPointerLock||s.mozRequestPointerLock||s.webkitRequestPointerLock||s.msRequestPointerLock||function(){},s.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},s.exitPointerLock=s.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&s.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,s){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var c={antialias:!1,alpha:!1};if(s)for(var f in s)c[f]=s[f];n=GL.createContext(t,c),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var s=Module.canvas;function a(){Browser.isFullscreen=!1;var c=s.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===c?(s.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},s.exitFullscreen=s.exitFullscreen.bind(document),Browser.lockPointer&&s.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(c.parentNode.insertBefore(s,c),c.parentNode.removeChild(c),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(s)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");s.parentNode.insertBefore(n,s),n.appendChild(s),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(s,a,n){return Browser.requestFullscreen(s,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,s=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var c=t.touch;if(c===void 0)return;var f=c.pageX-(a+e.left),p=c.pageY-(n+e.top);f=f*(r/e.width),p=p*(s/e.height);var h={x:f,y:p};if(t.type==="touchstart")Browser.lastTouches[c.identifier]=h,Browser.touches[c.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[c.identifier];E||(E=h),Browser.lastTouches[c.identifier]=E,Browser.touches[c.identifier]=h}return}var C=t.pageX-(a+e.left),S=t.pageY-(n+e.top);C=C*(r/e.width),S=S*(s/e.height),Browser.mouseMovementX=C-Browser.mouseX,Browser.mouseMovementY=S-Browser.mouseY,Browser.mouseX=C,Browser.mouseY=S}},asyncLoad:function(t,e,r,s){var a=s?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var s=Module.canvas;Browser.updateCanvasDimensions(s,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var s=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(s/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(s){return(typeof FS>"u"||!(s instanceof FS.ErrnoError))&&abort(s),-s.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,E,C,S,b){if(h==1){var I=C&896;(I==128||I==256||I==384)&&(p="X const")}var T;return b?T=E.replace("X",p).replace("Y",S):T=p.replace("X",E).replace("Y",S),T.replace(/([*&]) (?=[*&])/g,"$1")}function s(p,h,E,C,S){throw new Error(p+" type "+E.replace("X",h+"?")+(C?" with flag "+C:"")+" in "+S)}function a(p,h,E,C,S,b,I,T){b===void 0&&(b="X"),T===void 0&&(T=1);var N=E(p);if(N)return N;var U=C(p),W=U.placeholderFlag,ee=e[W];I&&ee&&(b=r(I[2],I[0],b,ee[0],"?",!0));var ie;W==0&&(ie="Unbound"),W>=10&&(ie="Corrupt"),T>20&&(ie="Deeply nested"),ie&&s(ie,p,b,W,S||"?");var ue=U.paramList[0],le=a(ue,h,E,C,S,b,ee,T+1),me,pe={flags:ee[0],id:p,name:"",paramList:[le]},Be=[],Ce="?";switch(U.placeholderFlag){case 1:me=le.spec;break;case 2:if((le.flags&15360)==1024&&le.spec.ptrSize==1){pe.flags=7168;break}case 3:case 6:case 5:me=le.spec,le.flags&15360;break;case 8:Ce=""+U.paramList[1],pe.paramList.push(U.paramList[1]);break;case 9:for(var g=0,we=U.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),s=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),c=SYSCALLS.get(),f=a;return FS.llseek(r,f,c),HEAP32[n>>2]=r.position,r.getdents&&f===0&&c===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),s=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,C){var S=___syscall146.buffers[E];assert(S),C===0||C===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(S,0)),S.length=0):S.push(C)});for(var c=0;c>2],p=HEAP32[s+(c*8+4)>>2],h=0;h"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var s=_nbind.typeNameTbl.NBind.proto;return s.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var s=HEAPU32[t.pagePtr];if(s){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],s=new r(e);return typeIdTbl[e.id]=s,_nbind.typeNameTbl[e.name]=s,s}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var s=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(s=[s[0],s.slice(1)]),{paramList:s,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},s=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+s];if(!a)throw new Error("dynCall_"+s+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,s){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,s)):(r.arity=s,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return s.heap=a[r.ptrSize*8],s.ptrSize=r.ptrSize,s}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,s){return s&&s.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,s=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,s,r),s}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushCString(a,s)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(s){return!!s},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,s){return s&&s.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(s){__extends(a,s);function a(n,c,f,p){var h=s.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=c,C=f,S=p;if(n!==_nbind.ptrMarker){var b=h.__nbindConstructor.apply(h,arguments);E=4608,S=HEAPU32[b/4],C=HEAPU32[b/4+1]}var I={configurable:!0,enumerable:!1,value:null,writable:!1},T={__nbindFlags:E,__nbindPtr:C};S&&(T.__nbindShared=S,_nbind.mark(h));for(var N=0,U=Object.keys(T);N>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?c=Buffer.from(n):c=new Buffer(n),c.copy(s)}else getBuffer(s).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,s,a,n){try{Module.dynCall_viiiii(t,e,r,s,a,n)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,s){try{return Module.dynCall_fiff(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,s,a){try{Module.dynCall_viddi(t,e,r,s,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,s){try{Module.dynCall_vidd(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,s){try{return Module.dynCall_iiii(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,s){try{return Module.dynCall_diii(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,s,a,n){try{Module.dynCall_viiddi(t,e,r,s,a,n)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,s,a,n,c){try{Module.dynCall_viiiiii(t,e,r,s,a,n,c)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,s,a,n){try{return Module.dynCall_iiiiii(t,e,r,s,a,n)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,s,a){try{Module.dynCall_viiid(t,e,r,s,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,s,a,n,c){try{Module.dynCall_viififi(t,e,r,s,a,n,c)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_viii(t,e,r,s){try{Module.dynCall_viii(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,s){try{Module.dynCall_viid(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,s,a){try{Module.dynCall_viiii(t,e,r,s,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var s=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),c=new t.Uint8Array(r),f=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),C=e.DYNAMICTOP_PTR|0,S=e.tempDoublePtr|0,b=e.ABORT|0,I=e.STACKTOP|0,T=e.STACK_MAX|0,N=e.cttz_i8|0,U=e.___dso_handle|0,W=0,ee=0,ie=0,ue=0,le=t.NaN,me=t.Infinity,pe=0,Be=0,Ce=0,g=0,we=0,ye=0,Ae=t.Math.floor,se=t.Math.abs,X=t.Math.sqrt,De=t.Math.pow,Te=t.Math.cos,mt=t.Math.sin,j=t.Math.tan,rt=t.Math.acos,Fe=t.Math.asin,Ne=t.Math.atan,be=t.Math.atan2,Ve=t.Math.exp,ke=t.Math.log,it=t.Math.ceil,Ue=t.Math.imul,x=t.Math.min,w=t.Math.max,P=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,Z=e.enlargeMemory,$=e.getTotalMemory,oe=e.abortOnCannotGrowMemory,xe=e.invoke_viiiii,Re=e.invoke_vif,lt=e.invoke_vid,Ct=e.invoke_fiff,qt=e.invoke_vi,ir=e.invoke_vii,bt=e.invoke_ii,gn=e.invoke_viddi,br=e.invoke_vidd,Ir=e.invoke_iiii,Or=e.invoke_diii,nn=e.invoke_di,ai=e.invoke_iid,Io=e.invoke_iii,ts=e.invoke_viiddi,$s=e.invoke_viiiiii,Co=e.invoke_dii,Hi=e.invoke_i,eo=e.invoke_iiiiii,wo=e.invoke_viiid,QA=e.invoke_viififi,Af=e.invoke_viii,dh=e.invoke_v,mh=e.invoke_viid,to=e.invoke_idd,jn=e.invoke_viiii,Rs=e._emscripten_asm_const_iiiii,ro=e._emscripten_asm_const_iiidddddd,ou=e._emscripten_asm_const_iiiid,au=e.__nbind_reference_external,lu=e._emscripten_asm_const_iiiiiiii,RA=e._removeAccessorPrefix,TA=e._typeModule,oa=e.__nbind_register_pool,aa=e.__decorate,FA=e._llvm_stackrestore,gr=e.___cxa_atexit,Bo=e.__extends,Me=e.__nbind_get_value_object,cu=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Cr=e._emscripten_set_main_loop_timing,pf=e.__nbind_register_primitive,NA=e.__nbind_register_type,OA=e._emscripten_memcpy_big,uu=e.__nbind_register_function,fu=e.___setErrNo,oc=e.__nbind_register_class,ve=e.__nbind_finish,Nt=e._abort,ac=e._nbind_value,Oi=e._llvm_stacksave,no=e.___syscall54,Tt=e._defineHidden,xn=e._emscripten_set_main_loop,la=e._emscripten_get_now,ji=e.__nbind_register_callback_signature,Li=e._emscripten_asm_const_iiiiii,Na=e.__nbind_free_external,dn=e._emscripten_asm_const_iiii,Kn=e._emscripten_asm_const_iiididi,Au=e.___syscall6,yh=e._atexit,Oa=e.___syscall140,La=e.___syscall146,Ma=y(0);let $e=y(0);function Ua(o){o=o|0;var l=0;return l=I,I=I+o|0,I=I+15&-16,l|0}function hf(){return I|0}function lc(o){o=o|0,I=o}function wn(o,l){o=o|0,l=l|0,I=o,T=l}function ca(o,l){o=o|0,l=l|0,W||(W=o,ee=l)}function LA(o){o=o|0,ye=o}function MA(){return ye|0}function ua(){var o=0,l=0;Qr(8104,8,400)|0,Qr(8504,408,540)|0,o=9044,l=o+44|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));s[9088]=0,s[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,gr(17,8104,U|0)|0}function Bl(o){o=o|0,dt(o+948|0)}function Mt(o){return o=y(o),((fb(o)|0)&2147483647)>>>0>2139095040|0}function kn(o,l,u){o=o|0,l=l|0,u=u|0;e:do if(n[o+(l<<3)+4>>2]|0)o=o+(l<<3)|0;else{if((l|2|0)==3&&n[o+60>>2]|0){o=o+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[o+52>>2]|0){o=o+48|0;break e}break}default:}if(n[o+68>>2]|0){o=o+64|0;break}else{o=(l|1|0)==5?948:u;break}}while(!1);return o|0}function fa(o){o=o|0;var l=0;return l=_b(1e3)|0,Ha(o,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Qr(l|0,8104,1e3)|0,s[o+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=o,l|0}function Ha(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;d=I,I=I+16|0,A=d,l||(n[A>>2]=u,Wg(o,5,3197,A)),I=d}function rs(){return fa(956)|0}function cc(o){o=o|0;var l=0;return l=Kt(1e3)|0,pu(l,o),Ha(n[o+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function pu(o,l){o=o|0,l=l|0;var u=0;Qr(o|0,l|0,948)|0,Dy(o+948|0,l+948|0),u=o+960|0,o=l+960|0,l=u+40|0;do n[u>>2]=n[o>>2],u=u+4|0,o=o+4|0;while((u|0)<(l|0))}function uc(o){o=o|0;var l=0,u=0,A=0,d=0;if(l=o+944|0,u=n[l>>2]|0,u|0&&(ja(u+948|0,o)|0,n[l>>2]=0),u=Mi(o)|0,u|0){l=0;do n[(Is(o,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(u|0))}u=o+948|0,A=n[u>>2]|0,d=o+952|0,l=n[d>>2]|0,(l|0)!=(A|0)&&(n[d>>2]=l+(~((l+-4-A|0)>>>2)<<2)),vl(u),Hb(o),n[2276]=(n[2276]|0)+-1}function ja(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0;A=n[o>>2]|0,k=o+4|0,u=n[k>>2]|0,m=u;e:do if((A|0)==(u|0))d=A,B=4;else for(o=A;;){if((n[o>>2]|0)==(l|0)){d=o,B=4;break e}if(o=o+4|0,(o|0)==(u|0)){o=0;break}}while(!1);return(B|0)==4&&((d|0)!=(u|0)?(A=d+4|0,o=m-A|0,l=o>>2,l&&(Q2(d|0,A|0,o|0)|0,u=n[k>>2]|0),o=d+(l<<2)|0,(u|0)==(o|0)||(n[k>>2]=u+(~((u+-4-o|0)>>>2)<<2)),o=1):o=0),o|0}function Mi(o){return o=o|0,(n[o+952>>2]|0)-(n[o+948>>2]|0)>>2|0}function Is(o,l){o=o|0,l=l|0;var u=0;return u=n[o+948>>2]|0,(n[o+952>>2]|0)-u>>2>>>0>l>>>0?o=n[u+(l<<2)>>2]|0:o=0,o|0}function vl(o){o=o|0;var l=0,u=0,A=0,d=0;A=I,I=I+32|0,l=A,d=n[o>>2]|0,u=(n[o+4>>2]|0)-d|0,((n[o+8>>2]|0)-d|0)>>>0>u>>>0&&(d=u>>2,ky(l,d,d,o+8|0),Ab(o,l),Qy(l)),I=A}function gf(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;M=Mi(o)|0;do if(M|0){if((n[(Is(o,0)|0)+944>>2]|0)==(o|0)){if(!(ja(o+948|0,l)|0))break;Qr(l+400|0,8504,540)|0,n[l+944>>2]=0,Oe(o);break}B=n[(n[o+976>>2]|0)+12>>2]|0,k=o+948|0,R=(B|0)==0,u=0,m=0;do A=n[(n[k>>2]|0)+(m<<2)>>2]|0,(A|0)==(l|0)?Oe(o):(d=cc(A)|0,n[(n[k>>2]|0)+(u<<2)>>2]=d,n[d+944>>2]=o,R||gU[B&15](A,d,o,u),u=u+1|0),m=m+1|0;while((m|0)!=(M|0));if(u>>>0>>0){R=o+948|0,k=o+952|0,B=u,u=n[k>>2]|0;do m=(n[R>>2]|0)+(B<<2)|0,A=m+4|0,d=u-A|0,l=d>>2,l&&(Q2(m|0,A|0,d|0)|0,u=n[k>>2]|0),d=u,A=m+(l<<2)|0,(d|0)!=(A|0)&&(u=d+(~((d+-4-A|0)>>>2)<<2)|0,n[k>>2]=u),B=B+1|0;while((B|0)!=(M|0))}}while(!1)}function fc(o){o=o|0;var l=0,u=0,A=0,d=0;wi(o,(Mi(o)|0)==0,2491),wi(o,(n[o+944>>2]|0)==0,2545),l=o+948|0,u=n[l>>2]|0,A=o+952|0,d=n[A>>2]|0,(d|0)!=(u|0)&&(n[A>>2]=d+(~((d+-4-u|0)>>>2)<<2)),vl(l),l=o+976|0,u=n[l>>2]|0,Qr(o|0,8104,1e3)|0,s[u+2>>0]|0&&(n[o+4>>2]=2,n[o+12>>2]=4),n[l>>2]=u}function wi(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;d=I,I=I+16|0,A=d,l||(n[A>>2]=u,xo(o,5,3197,A)),I=d}function Qn(){return n[2276]|0}function Ac(){var o=0;return o=_b(20)|0,Ke((o|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[o>>2]=n[239],n[o+4>>2]=n[240],n[o+8>>2]=n[241],n[o+12>>2]=n[242],n[o+16>>2]=n[243],o|0}function Ke(o,l){o=o|0,l=l|0;var u=0,A=0;A=I,I=I+16|0,u=A,o||(n[u>>2]=l,xo(0,5,3197,u)),I=A}function st(o){o=o|0,Hb(o),n[2277]=(n[2277]|0)+-1}function St(o,l){o=o|0,l=l|0;var u=0;l?(wi(o,(Mi(o)|0)==0,2629),u=1):(u=0,l=0),n[o+964>>2]=l,n[o+988>>2]=u}function lr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,m=A+8|0,d=A+4|0,B=A,n[d>>2]=l,wi(o,(n[l+944>>2]|0)==0,2709),wi(o,(n[o+964>>2]|0)==0,2763),te(o),l=o+948|0,n[B>>2]=(n[l>>2]|0)+(u<<2),n[m>>2]=n[B>>2],Ee(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=o,Oe(o),I=A}function te(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;if(u=Mi(o)|0,u|0&&(n[(Is(o,0)|0)+944>>2]|0)!=(o|0)){A=n[(n[o+976>>2]|0)+12>>2]|0,d=o+948|0,m=(A|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=cc(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=o,m||gU[A&15](B,k,o,l),l=l+1|0;while((l|0)!=(u|0))}}function Ee(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0;tt=I,I=I+64|0,q=tt+52|0,k=tt+48|0,ae=tt+28|0,Ye=tt+24|0,Le=tt+20|0,Qe=tt,A=n[o>>2]|0,m=A,l=A+((n[l>>2]|0)-m>>2<<2)|0,A=o+4|0,d=n[A>>2]|0,B=o+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[u>>2],n[A>>2]=(n[A>>2]|0)+4;break}pb(o,l,d,l+4|0),l>>>0<=u>>>0&&(u=(n[A>>2]|0)>>>0>u>>>0?u+4|0:u),n[l>>2]=n[u>>2]}else{A=(d-m>>2)+1|0,d=O(o)|0,d>>>0>>0&&sn(o),L=n[o>>2]|0,M=(n[B>>2]|0)-L|0,m=M>>1,ky(Qe,M>>2>>>0>>1>>>0?m>>>0>>0?A:m:d,l-L>>2,o+8|0),L=Qe+8|0,A=n[L>>2]|0,m=Qe+12|0,M=n[m>>2]|0,B=M,R=A;do if((A|0)==(M|0)){if(M=Qe+4|0,A=n[M>>2]|0,Xe=n[Qe>>2]|0,d=Xe,A>>>0<=Xe>>>0){A=B-d>>1,A=A|0?A:1,ky(ae,A,A>>>2,n[Qe+16>>2]|0),n[Ye>>2]=n[M>>2],n[Le>>2]=n[L>>2],n[k>>2]=n[Ye>>2],n[q>>2]=n[Le>>2],o2(ae,k,q),A=n[Qe>>2]|0,n[Qe>>2]=n[ae>>2],n[ae>>2]=A,A=ae+4|0,Xe=n[M>>2]|0,n[M>>2]=n[A>>2],n[A>>2]=Xe,A=ae+8|0,Xe=n[L>>2]|0,n[L>>2]=n[A>>2],n[A>>2]=Xe,A=ae+12|0,Xe=n[m>>2]|0,n[m>>2]=n[A>>2],n[A>>2]=Xe,Qy(ae),A=n[L>>2]|0;break}m=A,B=((m-d>>2)+1|0)/-2|0,k=A+(B<<2)|0,d=R-m|0,m=d>>2,m&&(Q2(k|0,A|0,d|0)|0,A=n[M>>2]|0),Xe=k+(m<<2)|0,n[L>>2]=Xe,n[M>>2]=A+(B<<2),A=Xe}while(!1);n[A>>2]=n[u>>2],n[L>>2]=(n[L>>2]|0)+4,l=hb(o,Qe,l)|0,Qy(Qe)}while(!1);return I=tt,l|0}function Oe(o){o=o|0;var l=0;do{if(l=o+984|0,s[l>>0]|0)break;s[l>>0]=1,h[o+504>>2]=y(le),o=n[o+944>>2]|0}while(o|0)}function dt(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),It(u))}function Et(o){return o=o|0,n[o+944>>2]|0}function Pt(o){o=o|0,wi(o,(n[o+964>>2]|0)!=0,2832),Oe(o)}function tr(o){return o=o|0,(s[o+984>>0]|0)!=0|0}function An(o,l){o=o|0,l=l|0,s6e(o,l,400)|0&&(Qr(o|0,l|0,400)|0,Oe(o))}function li(o){o=o|0;var l=$e;return l=y(h[o+44>>2]),o=Mt(l)|0,y(o?y(0):l)}function Gi(o){o=o|0;var l=$e;return l=y(h[o+48>>2]),Mt(l)|0&&(l=s[(n[o+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function Rn(o,l){o=o|0,l=l|0,n[o+980>>2]=l}function Ga(o){return o=o|0,n[o+980>>2]|0}function my(o,l){o=o|0,l=l|0;var u=0;u=o+4|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function X1(o){return o=o|0,n[o+4>>2]|0}function vo(o,l){o=o|0,l=l|0;var u=0;u=o+8|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function yy(o){return o=o|0,n[o+8>>2]|0}function Eh(o,l){o=o|0,l=l|0;var u=0;u=o+12|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function $1(o){return o=o|0,n[o+12>>2]|0}function So(o,l){o=o|0,l=l|0;var u=0;u=o+16|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Ih(o){return o=o|0,n[o+16>>2]|0}function Ch(o,l){o=o|0,l=l|0;var u=0;u=o+20|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function hu(o){return o=o|0,n[o+20>>2]|0}function wh(o,l){o=o|0,l=l|0;var u=0;u=o+24|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Fg(o){return o=o|0,n[o+24>>2]|0}function Ng(o,l){o=o|0,l=l|0;var u=0;u=o+28|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Og(o){return o=o|0,n[o+28>>2]|0}function Ey(o,l){o=o|0,l=l|0;var u=0;u=o+32|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function df(o){return o=o|0,n[o+32>>2]|0}function Do(o,l){o=o|0,l=l|0;var u=0;u=o+36|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Sl(o){return o=o|0,n[o+36>>2]|0}function Bh(o,l){o=o|0,l=y(l);var u=0;u=o+40|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Lg(o,l){o=o|0,l=y(l);var u=0;u=o+44|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Dl(o,l){o=o|0,l=y(l);var u=0;u=o+48|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Pl(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+52|0,d=o+56|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Iy(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+52|0,u=o+56|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function UA(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+52|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Cy(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+132+(l<<3)|0,l=o+132+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function wy(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+132+(l<<3)|0,l=o+132+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function _A(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+132+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function HA(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+60+(l<<3)|0,l=o+60+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function Y(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+60+(l<<3)|0,l=o+60+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function xt(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+60+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function jA(o,l){o=o|0,l=l|0;var u=0;u=o+60+(l<<3)+4|0,(n[u>>2]|0)!=3&&(h[o+60+(l<<3)>>2]=y(le),n[u>>2]=3,Oe(o))}function Po(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+204+(l<<3)|0,l=o+204+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function mf(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+204+(l<<3)|0,l=o+204+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function yt(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+204+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function gu(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+276+(l<<3)|0,l=o+276+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function By(o,l){return o=o|0,l=l|0,y(h[o+276+(l<<3)>>2])}function Mg(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+348|0,d=o+352|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function e2(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+348|0,u=o+352|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function vh(o){o=o|0;var l=0;l=o+352|0,(n[l>>2]|0)!=3&&(h[o+348>>2]=y(le),n[l>>2]=3,Oe(o))}function ur(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+348|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Ki(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+356|0,d=o+360|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function yf(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+356|0,u=o+360|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function qa(o){o=o|0;var l=0;l=o+360|0,(n[l>>2]|0)!=3&&(h[o+356>>2]=y(le),n[l>>2]=3,Oe(o))}function Ug(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+356|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function du(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+364|0,d=o+368|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ef(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+364|0,d=o+368|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function wt(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+364|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function di(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+372|0,d=o+376|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function GA(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+372|0,d=o+376|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Wa(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+372|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Aa(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+380|0,d=o+384|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ya(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+380|0,d=o+384|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function _g(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+380|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Sh(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+388|0,d=o+392|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Hg(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+388|0,d=o+392|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function vy(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+388|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function qA(o,l){o=o|0,l=y(l);var u=0;u=o+396|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function jg(o){return o=o|0,y(h[o+396>>2])}function mu(o){return o=o|0,y(h[o+400>>2])}function yu(o){return o=o|0,y(h[o+404>>2])}function If(o){return o=o|0,y(h[o+408>>2])}function Ts(o){return o=o|0,y(h[o+412>>2])}function Eu(o){return o=o|0,y(h[o+416>>2])}function Gn(o){return o=o|0,y(h[o+420>>2])}function ns(o,l){switch(o=o|0,l=l|0,wi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+424+(l<<2)>>2])}function bi(o,l){switch(o=o|0,l=l|0,wi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+448+(l<<2)>>2])}function WA(o,l){switch(o=o|0,l=l|0,wi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+472+(l<<2)>>2])}function Cf(o,l){o=o|0,l=l|0;var u=0,A=$e;return u=n[o+4>>2]|0,(u|0)==(n[l+4>>2]|0)?u?(A=y(h[o>>2]),o=y(se(y(A-y(h[l>>2]))))>2]=0,n[A+4>>2]=0,n[A+8>>2]=0,cu(A|0,o|0,l|0,0),xo(o,3,(s[A+11>>0]|0)<0?n[A>>2]|0:A,u),b6e(A),I=u}function is(o,l,u,A){o=y(o),l=y(l),u=u|0,A=A|0;var d=$e;o=y(o*l),d=y(cU(o,y(1)));do if(mn(d,y(0))|0)o=y(o-d);else{if(o=y(o-d),mn(d,y(1))|0){o=y(o+y(1));break}if(u){o=y(o+y(1));break}A||(d>y(.5)?d=y(1):(A=mn(d,y(.5))|0,d=y(A?1:0)),o=y(o+d))}while(!1);return y(o/l)}function bl(o,l,u,A,d,m,B,k,R,M,L,q,ae){o=o|0,l=y(l),u=u|0,A=y(A),d=d|0,m=y(m),B=B|0,k=y(k),R=y(R),M=y(M),L=y(L),q=y(q),ae=ae|0;var Ye=0,Le=$e,Qe=$e,tt=$e,Xe=$e,ct=$e,He=$e;return R>2]),Le!=y(0))?(tt=y(is(l,Le,0,0)),Xe=y(is(A,Le,0,0)),Qe=y(is(m,Le,0,0)),Le=y(is(k,Le,0,0))):(Qe=m,tt=l,Le=k,Xe=A),(d|0)==(o|0)?Ye=mn(Qe,tt)|0:Ye=0,(B|0)==(u|0)?ae=mn(Le,Xe)|0:ae=0,!Ye&&(ct=y(l-L),!(bo(o,ct,R)|0))&&!(wf(o,ct,d,R)|0)?Ye=Bf(o,ct,d,m,R)|0:Ye=1,!ae&&(He=y(A-q),!(bo(u,He,M)|0))&&!(wf(u,He,B,M)|0)?ae=Bf(u,He,B,k,M)|0:ae=1,ae=Ye&ae),ae|0}function bo(o,l,u){return o=o|0,l=y(l),u=y(u),(o|0)==1?o=mn(l,u)|0:o=0,o|0}function wf(o,l,u,A){return o=o|0,l=y(l),u=u|0,A=y(A),(o|0)==2&(u|0)==0?l>=A?o=1:o=mn(l,A)|0:o=0,o|0}function Bf(o,l,u,A,d){return o=o|0,l=y(l),u=u|0,A=y(A),d=y(d),(o|0)==2&(u|0)==2&A>l?d<=l?o=1:o=mn(l,d)|0:o=0,o|0}function xl(o,l,u,A,d,m,B,k,R,M,L){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=m|0,B=y(B),k=y(k),R=R|0,M=M|0,L=L|0;var q=0,ae=0,Ye=0,Le=0,Qe=$e,tt=$e,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=$e,Ro=$e,To=$e,Fo=0,Xa=0;cr=I,I=I+160|0,$t=cr+152|0,fr=cr+120|0,Gr=cr+104|0,He=cr+72|0,Le=cr+56|0,Lt=cr+8|0,ct=cr,We=(n[2279]|0)+1|0,n[2279]=We,Rr=o+984|0,s[Rr>>0]|0&&(n[o+512>>2]|0)!=(n[2278]|0)?Xe=4:(n[o+516>>2]|0)==(A|0)?Hr=0:Xe=4,(Xe|0)==4&&(n[o+520>>2]=0,n[o+924>>2]=-1,n[o+928>>2]=-1,h[o+932>>2]=y(-1),h[o+936>>2]=y(-1),Hr=1);e:do if(n[o+964>>2]|0)if(Qe=y(yn(o,2,B)),tt=y(yn(o,0,B)),q=o+916|0,To=y(h[q>>2]),Ro=y(h[o+920>>2]),Hn=y(h[o+932>>2]),bl(d,l,m,u,n[o+924>>2]|0,To,n[o+928>>2]|0,Ro,Hn,y(h[o+936>>2]),Qe,tt,L)|0)Xe=22;else if(Ye=n[o+520>>2]|0,!Ye)Xe=21;else for(ae=0;;){if(q=o+524+(ae*24|0)|0,Hn=y(h[q>>2]),Ro=y(h[o+524+(ae*24|0)+4>>2]),To=y(h[o+524+(ae*24|0)+16>>2]),bl(d,l,m,u,n[o+524+(ae*24|0)+8>>2]|0,Hn,n[o+524+(ae*24|0)+12>>2]|0,Ro,To,y(h[o+524+(ae*24|0)+20>>2]),Qe,tt,L)|0){Xe=22;break e}if(ae=ae+1|0,ae>>>0>=Ye>>>0){Xe=21;break}}else{if(R){if(q=o+916|0,!(mn(y(h[q>>2]),l)|0)){Xe=21;break}if(!(mn(y(h[o+920>>2]),u)|0)){Xe=21;break}if((n[o+924>>2]|0)!=(d|0)){Xe=21;break}q=(n[o+928>>2]|0)==(m|0)?q:0,Xe=22;break}if(Ye=n[o+520>>2]|0,!Ye)Xe=21;else for(ae=0;;){if(q=o+524+(ae*24|0)|0,mn(y(h[q>>2]),l)|0&&mn(y(h[o+524+(ae*24|0)+4>>2]),u)|0&&(n[o+524+(ae*24|0)+8>>2]|0)==(d|0)&&(n[o+524+(ae*24|0)+12>>2]|0)==(m|0)){Xe=22;break e}if(ae=ae+1|0,ae>>>0>=Ye>>>0){Xe=21;break}}}while(!1);do if((Xe|0)==21)s[11697]|0?(q=0,Xe=28):(q=0,Xe=31);else if((Xe|0)==22){if(ae=(s[11697]|0)!=0,!((q|0)!=0&(Hr^1)))if(ae){Xe=28;break}else{Xe=31;break}Le=q+16|0,n[o+908>>2]=n[Le>>2],Ye=q+20|0,n[o+912>>2]=n[Ye>>2],(s[11698]|0)==0|ae^1||(n[ct>>2]=Iu(We)|0,n[ct+4>>2]=We,xo(o,4,2972,ct),ae=n[o+972>>2]|0,ae|0&&ip[ae&127](o),d=pa(d,R)|0,m=pa(m,R)|0,Xa=+y(h[Le>>2]),Fo=+y(h[Ye>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+u,E[Lt+24>>3]=Xa,E[Lt+32>>3]=Fo,n[Lt+40>>2]=M,xo(o,4,2989,Lt))}while(!1);return(Xe|0)==28&&(ae=Iu(We)|0,n[Le>>2]=ae,n[Le+4>>2]=We,n[Le+8>>2]=Hr?3047:11699,xo(o,4,3038,Le),ae=n[o+972>>2]|0,ae|0&&ip[ae&127](o),Lt=pa(d,R)|0,Xe=pa(m,R)|0,n[He>>2]=Lt,n[He+4>>2]=Xe,E[He+8>>3]=+l,E[He+16>>3]=+u,n[He+24>>2]=M,xo(o,4,3049,He),Xe=31),(Xe|0)==31&&(Fs(o,l,u,A,d,m,B,k,R,L),s[11697]|0&&(ae=n[2279]|0,Lt=Iu(ae)|0,n[Gr>>2]=Lt,n[Gr+4>>2]=ae,n[Gr+8>>2]=Hr?3047:11699,xo(o,4,3083,Gr),ae=n[o+972>>2]|0,ae|0&&ip[ae&127](o),Lt=pa(d,R)|0,Gr=pa(m,R)|0,Fo=+y(h[o+908>>2]),Xa=+y(h[o+912>>2]),n[fr>>2]=Lt,n[fr+4>>2]=Gr,E[fr+8>>3]=Fo,E[fr+16>>3]=Xa,n[fr+24>>2]=M,xo(o,4,3092,fr)),n[o+516>>2]=A,q||(ae=o+520|0,q=n[ae>>2]|0,(q|0)==16&&(s[11697]|0&&xo(o,4,3124,$t),n[ae>>2]=0,q=0),R?q=o+916|0:(n[ae>>2]=q+1,q=o+524+(q*24|0)|0),h[q>>2]=l,h[q+4>>2]=u,n[q+8>>2]=d,n[q+12>>2]=m,n[q+16>>2]=n[o+908>>2],n[q+20>>2]=n[o+912>>2],q=0)),R&&(n[o+416>>2]=n[o+908>>2],n[o+420>>2]=n[o+912>>2],s[o+985>>0]=1,s[Rr>>0]=0),n[2279]=(n[2279]|0)+-1,n[o+512>>2]=n[2278],I=cr,Hr|(q|0)==0|0}function yn(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return A=y(K(o,l,u)),y(A+y(re(o,l,u)))}function xo(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=I,I=I+16|0,d=m,n[d>>2]=A,o?A=n[o+976>>2]|0:A=0,bh(A,o,l,u,d),I=m}function Iu(o){return o=o|0,(o>>>0>60?3201:3201+(60-o)|0)|0}function pa(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+32|0,u=d+12|0,A=d,n[u>>2]=n[254],n[u+4>>2]=n[255],n[u+8>>2]=n[256],n[A>>2]=n[257],n[A+4>>2]=n[258],n[A+8>>2]=n[259],(o|0)>2?o=11699:o=n[(l?A:u)+(o<<2)>>2]|0,I=d,o|0}function Fs(o,l,u,A,d,m,B,k,R,M){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=m|0,B=y(B),k=y(k),R=R|0,M=M|0;var L=0,q=0,ae=0,Ye=0,Le=$e,Qe=$e,tt=$e,Xe=$e,ct=$e,He=$e,We=$e,Lt=0,Gr=0,fr=0,$t=$e,Rr=$e,Hr=0,cr=$e,Hn=0,Ro=0,To=0,Fo=0,Xa=0,Wh=0,Yh=0,gc=0,Vh=0,Tf=0,Ff=0,Jh=0,Kh=0,zh=0,on=0,dc=0,Zh=0,bu=0,Xh=$e,$h=$e,Nf=$e,Of=$e,xu=$e,oo=0,Ll=0,ma=0,mc=0,op=0,ap=$e,Lf=$e,lp=$e,cp=$e,ao=$e,Ms=$e,yc=0,Wn=$e,up=$e,No=$e,ku=$e,Oo=$e,Qu=$e,fp=0,Ap=0,Ru=$e,lo=$e,Ec=0,pp=0,hp=0,gp=0,Nr=$e,ui=0,Us=0,Lo=0,co=0,Mr=0,Ar=0,Ic=0,zt=$e,dp=0,Bi=0;Ic=I,I=I+16|0,oo=Ic+12|0,Ll=Ic+8|0,ma=Ic+4|0,mc=Ic,wi(o,(d|0)==0|(Mt(l)|0)^1,3326),wi(o,(m|0)==0|(Mt(u)|0)^1,3406),Us=At(o,A)|0,n[o+496>>2]=Us,Mr=dr(2,Us)|0,Ar=dr(0,Us)|0,h[o+440>>2]=y(K(o,Mr,B)),h[o+444>>2]=y(re(o,Mr,B)),h[o+428>>2]=y(K(o,Ar,B)),h[o+436>>2]=y(re(o,Ar,B)),h[o+464>>2]=y(vr(o,Mr)),h[o+468>>2]=y(Un(o,Mr)),h[o+452>>2]=y(vr(o,Ar)),h[o+460>>2]=y(Un(o,Ar)),h[o+488>>2]=y(mi(o,Mr,B)),h[o+492>>2]=y(Cs(o,Mr,B)),h[o+476>>2]=y(mi(o,Ar,B)),h[o+484>>2]=y(Cs(o,Ar,B));do if(n[o+964>>2]|0)JA(o,l,u,d,m,B,k);else{if(Lo=o+948|0,co=(n[o+952>>2]|0)-(n[Lo>>2]|0)>>2,!co){ab(o,l,u,d,m,B,k);break}if(!R&&t2(o,l,u,d,m,B,k)|0)break;te(o),dc=o+508|0,s[dc>>0]=0,Mr=dr(n[o+4>>2]|0,Us)|0,Ar=Py(Mr,Us)|0,ui=de(Mr)|0,Zh=n[o+8>>2]|0,pp=o+28|0,bu=(n[pp>>2]|0)!=0,Oo=ui?B:k,Ru=ui?k:B,Xh=y(kh(o,Mr,B)),$h=y(r2(o,Mr,B)),Le=y(kh(o,Ar,B)),Qu=y(Va(o,Mr,B)),lo=y(Va(o,Ar,B)),fr=ui?d:m,Ec=ui?m:d,Nr=ui?Qu:lo,ct=ui?lo:Qu,ku=y(yn(o,2,B)),Xe=y(yn(o,0,B)),Qe=y(y(Xr(o+364|0,B))-Nr),tt=y(y(Xr(o+380|0,B))-Nr),He=y(y(Xr(o+372|0,k))-ct),We=y(y(Xr(o+388|0,k))-ct),Nf=ui?Qe:He,Of=ui?tt:We,ku=y(l-ku),l=y(ku-Nr),Mt(l)|0?Nr=l:Nr=y($n(y(pd(l,tt)),Qe)),up=y(u-Xe),l=y(up-ct),Mt(l)|0?No=l:No=y($n(y(pd(l,We)),He)),Qe=ui?Nr:No,Wn=ui?No:Nr;e:do if((fr|0)==1)for(A=0,q=0;;){if(L=Is(o,q)|0,!A)y(KA(L))>y(0)&&y(Qh(L))>y(0)?A=L:A=0;else if(n2(L)|0){Ye=0;break e}if(q=q+1|0,q>>>0>=co>>>0){Ye=A;break}}else Ye=0;while(!1);Lt=Ye+500|0,Gr=Ye+504|0,A=0,L=0,l=y(0),ae=0;do{if(q=n[(n[Lo>>2]|0)+(ae<<2)>>2]|0,(n[q+36>>2]|0)==1)by(q),s[q+985>>0]=1,s[q+984>>0]=0;else{vf(q),R&&Ph(q,At(q,Us)|0,Qe,Wn,Nr);do if((n[q+24>>2]|0)!=1)if((q|0)==(Ye|0)){n[Lt>>2]=n[2278],h[Gr>>2]=y(0);break}else{lb(o,q,Nr,d,No,Nr,No,m,Us,M);break}else L|0&&(n[L+960>>2]=q),n[q+960>>2]=0,L=q,A=A|0?A:q;while(!1);Ms=y(h[q+504>>2]),l=y(l+y(Ms+y(yn(q,Mr,Nr))))}ae=ae+1|0}while((ae|0)!=(co|0));for(To=l>Qe,yc=bu&((fr|0)==2&To)?1:fr,Hn=(Ec|0)==1,Xa=Hn&(R^1),Wh=(yc|0)==1,Yh=(yc|0)==2,gc=976+(Mr<<2)|0,Vh=(Ec|2|0)==2,zh=Hn&(bu^1),Tf=1040+(Ar<<2)|0,Ff=1040+(Mr<<2)|0,Jh=976+(Ar<<2)|0,Kh=(Ec|0)!=1,To=bu&((fr|0)!=0&To),Ro=o+976|0,Hn=Hn^1,l=Qe,Hr=0,Fo=0,Ms=y(0),xu=y(0);;){e:do if(Hr>>>0>>0)for(Gr=n[Lo>>2]|0,ae=0,We=y(0),He=y(0),tt=y(0),Qe=y(0),q=0,L=0,Ye=Hr;;){if(Lt=n[Gr+(Ye<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=Fo,(n[Lt+24>>2]|0)!=1)){if(Xe=y(yn(Lt,Mr,Nr)),on=n[gc>>2]|0,u=y(Xr(Lt+380+(on<<3)|0,Oo)),ct=y(h[Lt+504>>2]),u=y(pd(u,ct)),u=y($n(y(Xr(Lt+364+(on<<3)|0,Oo)),u)),bu&(ae|0)!=0&y(Xe+y(He+u))>l){m=ae,Xe=We,fr=Ye;break e}Xe=y(Xe+u),u=y(He+Xe),Xe=y(We+Xe),n2(Lt)|0&&(tt=y(tt+y(KA(Lt))),Qe=y(Qe-y(ct*y(Qh(Lt))))),L|0&&(n[L+960>>2]=Lt),n[Lt+960>>2]=0,ae=ae+1|0,L=Lt,q=q|0?q:Lt}else Xe=We,u=He;if(Ye=Ye+1|0,Ye>>>0>>0)We=Xe,He=u;else{m=ae,fr=Ye;break}}else m=0,Xe=y(0),tt=y(0),Qe=y(0),q=0,fr=Hr;while(!1);on=tt>y(0)&tty(0)&QeOf&((Mt(Of)|0)^1))l=Of,on=51;else if(s[(n[Ro>>2]|0)+3>>0]|0)on=51;else{if($t!=y(0)&&y(KA(o))!=y(0)){on=53;break}l=Xe,on=53}while(!1);if((on|0)==51&&(on=0,Mt(l)|0?on=53:(Rr=y(l-Xe),cr=l)),(on|0)==53&&(on=0,Xe>2]|0,Ye=Rry(0),He=y(Rr/$t),tt=y(0),Xe=y(0),l=y(0),L=q;do u=y(Xr(L+380+(ae<<3)|0,Oo)),Qe=y(Xr(L+364+(ae<<3)|0,Oo)),Qe=y(pd(u,y($n(Qe,y(h[L+504>>2]))))),Ye?(u=y(Qe*y(Qh(L))),u!=y(-0)&&(zt=y(Qe-y(ct*u)),ap=y(qn(L,Mr,zt,cr,Nr)),zt!=ap)&&(tt=y(tt-y(ap-Qe)),l=y(l+u))):Lt&&(Lf=y(KA(L)),Lf!=y(0))&&(zt=y(Qe+y(He*Lf)),lp=y(qn(L,Mr,zt,cr,Nr)),zt!=lp)&&(tt=y(tt-y(lp-Qe)),Xe=y(Xe-Lf)),L=n[L+960>>2]|0;while(L|0);if(l=y(We+l),Qe=y(Rr+tt),op)l=y(0);else{ct=y($t+Xe),Ye=n[gc>>2]|0,Lt=Qey(0),ct=y(Qe/ct),l=y(0);do{zt=y(Xr(q+380+(Ye<<3)|0,Oo)),tt=y(Xr(q+364+(Ye<<3)|0,Oo)),tt=y(pd(zt,y($n(tt,y(h[q+504>>2]))))),Lt?(zt=y(tt*y(Qh(q))),Qe=y(-zt),zt!=y(-0)?(zt=y(He*Qe),Qe=y(qn(q,Mr,y(tt+(Gr?Qe:zt)),cr,Nr))):Qe=tt):ae&&(cp=y(KA(q)),cp!=y(0))?Qe=y(qn(q,Mr,y(tt+y(ct*cp)),cr,Nr)):Qe=tt,l=y(l-y(Qe-tt)),Xe=y(yn(q,Mr,Nr)),u=y(yn(q,Ar,Nr)),Qe=y(Qe+Xe),h[Ll>>2]=Qe,n[mc>>2]=1,tt=y(h[q+396>>2]);e:do if(Mt(tt)|0){L=Mt(Wn)|0;do if(!L){if(To|(io(q,Ar,Wn)|0|Hn)||(ss(o,q)|0)!=4||(n[(kl(q,Ar)|0)+4>>2]|0)==3||(n[(Ql(q,Ar)|0)+4>>2]|0)==3)break;h[oo>>2]=Wn,n[ma>>2]=1;break e}while(!1);if(io(q,Ar,Wn)|0){L=n[q+992+(n[Jh>>2]<<2)>>2]|0,zt=y(u+y(Xr(L,Wn))),h[oo>>2]=zt,L=Kh&(n[L+4>>2]|0)==2,n[ma>>2]=((Mt(zt)|0|L)^1)&1;break}else{h[oo>>2]=Wn,n[ma>>2]=L?0:2;break}}else zt=y(Qe-Xe),$t=y(zt/tt),zt=y(tt*zt),n[ma>>2]=1,h[oo>>2]=y(u+(ui?$t:zt));while(!1);Cu(q,Mr,cr,Nr,mc,Ll),Cu(q,Ar,Wn,Nr,ma,oo);do if(!(io(q,Ar,Wn)|0)&&(ss(o,q)|0)==4){if((n[(kl(q,Ar)|0)+4>>2]|0)==3){L=0;break}L=(n[(Ql(q,Ar)|0)+4>>2]|0)!=3}else L=0;while(!1);zt=y(h[Ll>>2]),$t=y(h[oo>>2]),dp=n[mc>>2]|0,Bi=n[ma>>2]|0,xl(q,ui?zt:$t,ui?$t:zt,Us,ui?dp:Bi,ui?Bi:dp,Nr,No,R&(L^1),3488,M)|0,s[dc>>0]=s[dc>>0]|s[q+508>>0],q=n[q+960>>2]|0}while(q|0)}}else l=y(0);if(l=y(Rr+l),Bi=l>0]=Bi|c[dc>>0],Yh&l>y(0)?(L=n[gc>>2]|0,n[o+364+(L<<3)+4>>2]|0&&(ao=y(Xr(o+364+(L<<3)|0,Oo)),ao>=y(0))?Qe=y($n(y(0),y(ao-y(cr-l)))):Qe=y(0)):Qe=l,Lt=Hr>>>0>>0,Lt){Ye=n[Lo>>2]|0,ae=Hr,L=0;do q=n[Ye+(ae<<2)>>2]|0,n[q+24>>2]|0||(L=((n[(kl(q,Mr)|0)+4>>2]|0)==3&1)+L|0,L=L+((n[(Ql(q,Mr)|0)+4>>2]|0)==3&1)|0),ae=ae+1|0;while((ae|0)!=(fr|0));L?(Xe=y(0),u=y(0)):on=101}else on=101;e:do if((on|0)==101)switch(on=0,Zh|0){case 1:{L=0,Xe=y(Qe*y(.5)),u=y(0);break e}case 2:{L=0,Xe=Qe,u=y(0);break e}case 3:{if(m>>>0<=1){L=0,Xe=y(0),u=y(0);break e}u=y((m+-1|0)>>>0),L=0,Xe=y(0),u=y(y($n(Qe,y(0)))/u);break e}case 5:{u=y(Qe/y((m+1|0)>>>0)),L=0,Xe=u;break e}case 4:{u=y(Qe/y(m>>>0)),L=0,Xe=y(u*y(.5));break e}default:{L=0,Xe=y(0),u=y(0);break e}}while(!1);if(l=y(Xh+Xe),Lt){tt=y(Qe/y(L|0)),ae=n[Lo>>2]|0,q=Hr,Qe=y(0);do{L=n[ae+(q<<2)>>2]|0;e:do if((n[L+36>>2]|0)!=1){switch(n[L+24>>2]|0){case 1:{if(ha(L,Mr)|0){if(!R)break e;zt=y(zA(L,Mr,cr)),zt=y(zt+y(vr(o,Mr))),zt=y(zt+y(K(L,Mr,Nr))),h[L+400+(n[Ff>>2]<<2)>>2]=zt;break e}break}case 0:if(Bi=(n[(kl(L,Mr)|0)+4>>2]|0)==3,zt=y(tt+l),l=Bi?zt:l,R&&(Bi=L+400+(n[Ff>>2]<<2)|0,h[Bi>>2]=y(l+y(h[Bi>>2]))),Bi=(n[(Ql(L,Mr)|0)+4>>2]|0)==3,zt=y(tt+l),l=Bi?zt:l,Xa){zt=y(u+y(yn(L,Mr,Nr))),Qe=Wn,l=y(l+y(zt+y(h[L+504>>2])));break e}else{l=y(l+y(u+y(ZA(L,Mr,Nr)))),Qe=y($n(Qe,y(ZA(L,Ar,Nr))));break e}default:}R&&(zt=y(Xe+y(vr(o,Mr))),Bi=L+400+(n[Ff>>2]<<2)|0,h[Bi>>2]=y(zt+y(h[Bi>>2])))}while(!1);q=q+1|0}while((q|0)!=(fr|0))}else Qe=y(0);if(u=y($h+l),Vh?Xe=y(y(qn(o,Ar,y(lo+Qe),Ru,B))-lo):Xe=Wn,tt=y(y(qn(o,Ar,y(lo+(zh?Wn:Qe)),Ru,B))-lo),Lt&R){q=Hr;do{ae=n[(n[Lo>>2]|0)+(q<<2)>>2]|0;do if((n[ae+36>>2]|0)!=1){if((n[ae+24>>2]|0)==1){if(ha(ae,Ar)|0){if(zt=y(zA(ae,Ar,Wn)),zt=y(zt+y(vr(o,Ar))),zt=y(zt+y(K(ae,Ar,Nr))),L=n[Tf>>2]|0,h[ae+400+(L<<2)>>2]=zt,!(Mt(zt)|0))break}else L=n[Tf>>2]|0;zt=y(vr(o,Ar)),h[ae+400+(L<<2)>>2]=y(zt+y(K(ae,Ar,Nr)));break}L=ss(o,ae)|0;do if((L|0)==4){if((n[(kl(ae,Ar)|0)+4>>2]|0)==3){on=139;break}if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){on=139;break}if(io(ae,Ar,Wn)|0){l=Le;break}dp=n[ae+908+(n[gc>>2]<<2)>>2]|0,n[oo>>2]=dp,l=y(h[ae+396>>2]),Bi=Mt(l)|0,Qe=(n[S>>2]=dp,y(h[S>>2])),Bi?l=tt:(Rr=y(yn(ae,Ar,Nr)),zt=y(Qe/l),l=y(l*Qe),l=y(Rr+(ui?zt:l))),h[Ll>>2]=l,h[oo>>2]=y(y(yn(ae,Mr,Nr))+Qe),n[ma>>2]=1,n[mc>>2]=1,Cu(ae,Mr,cr,Nr,ma,oo),Cu(ae,Ar,Wn,Nr,mc,Ll),l=y(h[oo>>2]),Rr=y(h[Ll>>2]),zt=ui?l:Rr,l=ui?Rr:l,Bi=((Mt(zt)|0)^1)&1,xl(ae,zt,l,Us,Bi,((Mt(l)|0)^1)&1,Nr,No,1,3493,M)|0,l=Le}else on=139;while(!1);e:do if((on|0)==139){on=0,l=y(Xe-y(ZA(ae,Ar,Nr)));do if((n[(kl(ae,Ar)|0)+4>>2]|0)==3){if((n[(Ql(ae,Ar)|0)+4>>2]|0)!=3)break;l=y(Le+y($n(y(0),y(l*y(.5)))));break e}while(!1);if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){l=Le;break}if((n[(kl(ae,Ar)|0)+4>>2]|0)==3){l=y(Le+y($n(y(0),l)));break}switch(L|0){case 1:{l=Le;break e}case 2:{l=y(Le+y(l*y(.5)));break e}default:{l=y(Le+l);break e}}}while(!1);zt=y(Ms+l),Bi=ae+400+(n[Tf>>2]<<2)|0,h[Bi>>2]=y(zt+y(h[Bi>>2]))}while(!1);q=q+1|0}while((q|0)!=(fr|0))}if(Ms=y(Ms+tt),xu=y($n(xu,u)),m=Fo+1|0,fr>>>0>=co>>>0)break;l=cr,Hr=fr,Fo=m}do if(R){if(L=m>>>0>1,!L&&!(HL(o)|0))break;if(!(Mt(Wn)|0)){l=y(Wn-Ms);e:do switch(n[o+12>>2]|0){case 3:{Le=y(Le+l),He=y(0);break}case 2:{Le=y(Le+y(l*y(.5))),He=y(0);break}case 4:{Wn>Ms?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(Wn>Ms){Le=y(Le+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=L?He:y(0);break e}else{Le=y(Le+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(Fo>>>0)),He=Wn>Ms&L?He:y(0);break}default:He=y(0)}while(!1);if(m|0)for(Lt=1040+(Ar<<2)|0,Gr=976+(Ar<<2)|0,Ye=0,q=0;;){e:do if(q>>>0>>0)for(Qe=y(0),tt=y(0),l=y(0),ae=q;;){L=n[(n[Lo>>2]|0)+(ae<<2)>>2]|0;do if((n[L+36>>2]|0)!=1&&!(n[L+24>>2]|0)){if((n[L+940>>2]|0)!=(Ye|0))break e;if(jL(L,Ar)|0&&(zt=y(h[L+908+(n[Gr>>2]<<2)>>2]),l=y($n(l,y(zt+y(yn(L,Ar,Nr)))))),(ss(o,L)|0)!=5)break;ao=y(Yg(L)),ao=y(ao+y(K(L,0,Nr))),zt=y(h[L+912>>2]),zt=y(y(zt+y(yn(L,0,Nr)))-ao),ao=y($n(tt,ao)),zt=y($n(Qe,zt)),Qe=zt,tt=ao,l=y($n(l,y(ao+zt)))}while(!1);if(L=ae+1|0,L>>>0>>0)ae=L;else{ae=L;break}}else tt=y(0),l=y(0),ae=q;while(!1);if(ct=y(He+l),u=Le,Le=y(Le+ct),q>>>0>>0){Xe=y(u+tt),L=q;do{q=n[(n[Lo>>2]|0)+(L<<2)>>2]|0;e:do if((n[q+36>>2]|0)!=1&&!(n[q+24>>2]|0))switch(ss(o,q)|0){case 1:{zt=y(u+y(K(q,Ar,Nr))),h[q+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 3:{zt=y(y(Le-y(re(q,Ar,Nr)))-y(h[q+908+(n[Gr>>2]<<2)>>2])),h[q+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 2:{zt=y(u+y(y(ct-y(h[q+908+(n[Gr>>2]<<2)>>2]))*y(.5))),h[q+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 4:{if(zt=y(u+y(K(q,Ar,Nr))),h[q+400+(n[Lt>>2]<<2)>>2]=zt,io(q,Ar,Wn)|0||(ui?(Qe=y(h[q+908>>2]),l=y(Qe+y(yn(q,Mr,Nr))),tt=ct):(tt=y(h[q+912>>2]),tt=y(tt+y(yn(q,Ar,Nr))),l=ct,Qe=y(h[q+908>>2])),mn(l,Qe)|0&&mn(tt,y(h[q+912>>2]))|0))break e;xl(q,l,tt,Us,1,1,Nr,No,1,3501,M)|0;break e}case 5:{h[q+404>>2]=y(y(Xe-y(Yg(q)))+y(zA(q,0,Wn)));break e}default:break e}while(!1);L=L+1|0}while((L|0)!=(ae|0))}if(Ye=Ye+1|0,(Ye|0)==(m|0))break;q=ae}}}while(!1);if(h[o+908>>2]=y(qn(o,2,ku,B,B)),h[o+912>>2]=y(qn(o,0,up,k,B)),yc|0&&(fp=n[o+32>>2]|0,Ap=(yc|0)==2,!(Ap&(fp|0)!=2))?Ap&(fp|0)==2&&(l=y(Qu+cr),l=y($n(y(pd(l,y(Vg(o,Mr,xu,Oo)))),Qu)),on=198):(l=y(qn(o,Mr,xu,Oo,B)),on=198),(on|0)==198&&(h[o+908+(n[976+(Mr<<2)>>2]<<2)>>2]=l),Ec|0&&(hp=n[o+32>>2]|0,gp=(Ec|0)==2,!(gp&(hp|0)!=2))?gp&(hp|0)==2&&(l=y(lo+Wn),l=y($n(y(pd(l,y(Vg(o,Ar,y(lo+Ms),Ru)))),lo)),on=204):(l=y(qn(o,Ar,y(lo+Ms),Ru,B)),on=204),(on|0)==204&&(h[o+908+(n[976+(Ar<<2)>>2]<<2)>>2]=l),R){if((n[pp>>2]|0)==2){q=976+(Ar<<2)|0,ae=1040+(Ar<<2)|0,L=0;do Ye=Is(o,L)|0,n[Ye+24>>2]|0||(dp=n[q>>2]|0,zt=y(h[o+908+(dp<<2)>>2]),Bi=Ye+400+(n[ae>>2]<<2)|0,zt=y(zt-y(h[Bi>>2])),h[Bi>>2]=y(zt-y(h[Ye+908+(dp<<2)>>2]))),L=L+1|0;while((L|0)!=(co|0))}if(A|0){L=ui?yc:d;do qL(o,A,Nr,L,No,Us,M),A=n[A+960>>2]|0;while(A|0)}if(L=(Mr|2|0)==3,q=(Ar|2|0)==3,L|q){A=0;do ae=n[(n[Lo>>2]|0)+(A<<2)>>2]|0,(n[ae+36>>2]|0)!=1&&(L&&i2(o,ae,Mr),q&&i2(o,ae,Ar)),A=A+1|0;while((A|0)!=(co|0))}}}while(!1);I=Ic}function Dh(o,l){o=o|0,l=y(l);var u=0;Ha(o,l>=y(0),3147),u=l==y(0),h[o+4>>2]=u?y(0):l}function YA(o,l,u,A){o=o|0,l=y(l),u=y(u),A=A|0;var d=$e,m=$e,B=0,k=0,R=0;n[2278]=(n[2278]|0)+1,vf(o),io(o,2,l)|0?(d=y(Xr(n[o+992>>2]|0,l)),R=1,d=y(d+y(yn(o,2,l)))):(d=y(Xr(o+380|0,l)),d>=y(0)?R=2:(R=((Mt(l)|0)^1)&1,d=l)),io(o,0,u)|0?(m=y(Xr(n[o+996>>2]|0,u)),k=1,m=y(m+y(yn(o,0,l)))):(m=y(Xr(o+388|0,u)),m>=y(0)?k=2:(k=((Mt(u)|0)^1)&1,m=u)),B=o+976|0,xl(o,d,m,A,R,k,l,u,1,3189,n[B>>2]|0)|0&&(Ph(o,n[o+496>>2]|0,l,u,l),VA(o,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),s[11696]|0)&&Gg(o,7)}function vf(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;k=I,I=I+32|0,B=k+24|0,m=k+16|0,A=k+8|0,d=k,u=0;do l=o+380+(u<<3)|0,n[o+380+(u<<3)+4>>2]|0&&(R=l,M=n[R+4>>2]|0,L=A,n[L>>2]=n[R>>2],n[L+4>>2]=M,L=o+364+(u<<3)|0,M=n[L+4>>2]|0,R=d,n[R>>2]=n[L>>2],n[R+4>>2]=M,n[m>>2]=n[A>>2],n[m+4>>2]=n[A+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Cf(m,B)|0)||(l=o+348+(u<<3)|0),n[o+992+(u<<2)>>2]=l,u=u+1|0;while((u|0)!=2);I=k}function io(o,l,u){o=o|0,l=l|0,u=y(u);var A=0;switch(o=n[o+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[o+4>>2]|0){case 0:case 3:{o=0;break}case 1:{y(h[o>>2])>2])>2]|0){case 2:{l=y(y(y(h[o>>2])*l)/y(100));break}case 1:{l=y(h[o>>2]);break}default:l=y(le)}return y(l)}function Ph(o,l,u,A,d){o=o|0,l=l|0,u=y(u),A=y(A),d=y(d);var m=0,B=$e;l=n[o+944>>2]|0?l:1,m=dr(n[o+4>>2]|0,l)|0,l=Py(m,l)|0,u=y(ub(o,m,u)),A=y(ub(o,l,A)),B=y(u+y(K(o,m,d))),h[o+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,u=y(u+y(re(o,m,d))),h[o+400+(n[1e3+(m<<2)>>2]<<2)>>2]=u,u=y(A+y(K(o,l,d))),h[o+400+(n[1040+(l<<2)>>2]<<2)>>2]=u,d=y(A+y(re(o,l,d))),h[o+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function VA(o,l,u,A){o=o|0,l=y(l),u=y(u),A=y(A);var d=0,m=0,B=$e,k=$e,R=0,M=0,L=$e,q=0,ae=$e,Ye=$e,Le=$e,Qe=$e;if(l!=y(0)&&(d=o+400|0,Qe=y(h[d>>2]),m=o+404|0,Le=y(h[m>>2]),q=o+416|0,Ye=y(h[q>>2]),M=o+420|0,B=y(h[M>>2]),ae=y(Qe+u),L=y(Le+A),A=y(ae+Ye),k=y(L+B),R=(n[o+988>>2]|0)==1,h[d>>2]=y(is(Qe,l,0,R)),h[m>>2]=y(is(Le,l,0,R)),u=y(cU(y(Ye*l),y(1))),mn(u,y(0))|0?m=0:m=(mn(u,y(1))|0)^1,u=y(cU(y(B*l),y(1))),mn(u,y(0))|0?d=0:d=(mn(u,y(1))|0)^1,Qe=y(is(A,l,R&m,R&(m^1))),h[q>>2]=y(Qe-y(is(ae,l,0,R))),Qe=y(is(k,l,R&d,R&(d^1))),h[M>>2]=y(Qe-y(is(L,l,0,R))),m=(n[o+952>>2]|0)-(n[o+948>>2]|0)>>2,m|0)){d=0;do VA(Is(o,d)|0,l,ae,L),d=d+1|0;while((d|0)!=(m|0))}}function Sy(o,l,u,A,d){switch(o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,u|0){case 5:case 0:{o=dX(n[489]|0,A,d)|0;break}default:o=v6e(A,d)|0}return o|0}function Wg(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;d=I,I=I+16|0,m=d,n[m>>2]=A,bh(o,0,l,u,m),I=d}function bh(o,l,u,A,d){if(o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,o=o|0?o:956,LX[n[o+8>>2]&1](o,l,u,A,d)|0,(u|0)==5)Nt();else return}function pc(o,l,u){o=o|0,l=l|0,u=u|0,s[o+l>>0]=u&1}function Dy(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(xh(o,A),kt(o,n[l>>2]|0,n[u>>2]|0,A))}function xh(o,l){o=o|0,l=l|0;var u=0;if((O(o)|0)>>>0>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Kt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function kt(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function O(o){return o=o|0,1073741823}function K(o,l,u){return o=o|0,l=l|0,u=y(u),de(l)|0&&n[o+96>>2]|0?o=o+92|0:o=kn(o+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(Je(o,u))}function re(o,l,u){return o=o|0,l=l|0,u=y(u),de(l)|0&&n[o+104>>2]|0?o=o+100|0:o=kn(o+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(Je(o,u))}function de(o){return o=o|0,(o|1|0)==3|0}function Je(o,l){return o=o|0,l=y(l),(n[o+4>>2]|0)==3?l=y(0):l=y(Xr(o,l)),y(l)}function At(o,l){return o=o|0,l=l|0,o=n[o>>2]|0,(o|0?o:(l|0)>1?l:1)|0}function dr(o,l){o=o|0,l=l|0;var u=0;e:do if((l|0)==2){switch(o|0){case 2:{o=3;break e}case 3:break;default:{u=4;break e}}o=2}else u=4;while(!1);return o|0}function vr(o,l){o=o|0,l=l|0;var u=$e;return de(l)|0&&n[o+312>>2]|0&&(u=y(h[o+308>>2]),u>=y(0))||(u=y($n(y(h[(kn(o+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(u)}function Un(o,l){o=o|0,l=l|0;var u=$e;return de(l)|0&&n[o+320>>2]|0&&(u=y(h[o+316>>2]),u>=y(0))||(u=y($n(y(h[(kn(o+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(u)}function mi(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return de(l)|0&&n[o+240>>2]|0&&(A=y(Xr(o+236|0,u)),A>=y(0))||(A=y($n(y(Xr(kn(o+204|0,n[1040+(l<<2)>>2]|0,992)|0,u)),y(0)))),y(A)}function Cs(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return de(l)|0&&n[o+248>>2]|0&&(A=y(Xr(o+244|0,u)),A>=y(0))||(A=y($n(y(Xr(kn(o+204|0,n[1e3+(l<<2)>>2]|0,992)|0,u)),y(0)))),y(A)}function JA(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=$e,R=$e,M=$e,L=$e,q=$e,ae=$e,Ye=0,Le=0,Qe=0;Qe=I,I=I+16|0,Ye=Qe,Le=o+964|0,wi(o,(n[Le>>2]|0)!=0,3519),k=y(Va(o,2,l)),R=y(Va(o,0,l)),M=y(yn(o,2,l)),L=y(yn(o,0,l)),Mt(l)|0?q=l:q=y($n(y(0),y(y(l-M)-k))),Mt(u)|0?ae=u:ae=y($n(y(0),y(y(u-L)-R))),(A|0)==1&(d|0)==1?(h[o+908>>2]=y(qn(o,2,y(l-M),m,m)),l=y(qn(o,0,y(u-L),B,m))):(MX[n[Le>>2]&1](Ye,o,q,A,ae,d),q=y(k+y(h[Ye>>2])),ae=y(l-M),h[o+908>>2]=y(qn(o,2,(A|2|0)==2?q:ae,m,m)),ae=y(R+y(h[Ye+4>>2])),l=y(u-L),l=y(qn(o,0,(d|2|0)==2?ae:l,B,m))),h[o+912>>2]=l,I=Qe}function ab(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=$e,R=$e,M=$e,L=$e;M=y(Va(o,2,m)),k=y(Va(o,0,m)),L=y(yn(o,2,m)),R=y(yn(o,0,m)),l=y(l-L),h[o+908>>2]=y(qn(o,2,(A|2|0)==2?M:l,m,m)),u=y(u-R),h[o+912>>2]=y(qn(o,0,(d|2|0)==2?k:u,B,m))}function t2(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=0,R=$e,M=$e;return k=(A|0)==2,!(l<=y(0)&k)&&!(u<=y(0)&(d|0)==2)&&!((A|0)==1&(d|0)==1)?o=0:(R=y(yn(o,0,m)),M=y(yn(o,2,m)),k=l>2]=y(qn(o,2,k?y(0):l,m,m)),l=y(u-R),k=u>2]=y(qn(o,0,k?y(0):l,B,m)),o=1),o|0}function Py(o,l){return o=o|0,l=l|0,Jg(o)|0?o=dr(2,l)|0:o=0,o|0}function kh(o,l,u){return o=o|0,l=l|0,u=y(u),u=y(mi(o,l,u)),y(u+y(vr(o,l)))}function r2(o,l,u){return o=o|0,l=l|0,u=y(u),u=y(Cs(o,l,u)),y(u+y(Un(o,l)))}function Va(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return A=y(kh(o,l,u)),y(A+y(r2(o,l,u)))}function n2(o){return o=o|0,n[o+24>>2]|0?o=0:y(KA(o))!=y(0)?o=1:o=y(Qh(o))!=y(0),o|0}function KA(o){o=o|0;var l=$e;if(n[o+944>>2]|0){if(l=y(h[o+44>>2]),Mt(l)|0)return l=y(h[o+40>>2]),o=l>y(0)&((Mt(l)|0)^1),y(o?l:y(0))}else l=y(0);return y(l)}function Qh(o){o=o|0;var l=$e,u=0,A=$e;do if(n[o+944>>2]|0){if(l=y(h[o+48>>2]),Mt(l)|0){if(u=s[(n[o+976>>2]|0)+2>>0]|0,!(u<<24>>24)&&(A=y(h[o+40>>2]),A>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function by(o){o=o|0;var l=0,u=0;if(eE(o+400|0,0,540)|0,s[o+985>>0]=1,te(o),u=Mi(o)|0,u|0){l=o+948|0,o=0;do by(n[(n[l>>2]|0)+(o<<2)>>2]|0),o=o+1|0;while((o|0)!=(u|0))}}function lb(o,l,u,A,d,m,B,k,R,M){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=y(m),B=y(B),k=k|0,R=R|0,M=M|0;var L=0,q=$e,ae=0,Ye=0,Le=$e,Qe=$e,tt=0,Xe=$e,ct=0,He=$e,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=0,Ro=0;Hn=I,I=I+16|0,Gr=Hn+12|0,fr=Hn+8|0,$t=Hn+4|0,Rr=Hn,cr=dr(n[o+4>>2]|0,R)|0,We=de(cr)|0,q=y(Xr(WL(l)|0,We?m:B)),Lt=io(l,2,m)|0,Hr=io(l,0,B)|0;do if(!(Mt(q)|0)&&!(Mt(We?u:d)|0)){if(L=l+504|0,!(Mt(y(h[L>>2]))|0)&&(!(s2(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[L>>2]=y($n(q,y(Va(l,cr,m))))}else ae=7;while(!1);do if((ae|0)==7){if(ct=We^1,!(ct|Lt^1)){B=y(Xr(n[l+992>>2]|0,m)),h[l+504>>2]=y($n(B,y(Va(l,2,m))));break}if(!(We|Hr^1)){B=y(Xr(n[l+996>>2]|0,B)),h[l+504>>2]=y($n(B,y(Va(l,0,m))));break}h[Gr>>2]=y(le),h[fr>>2]=y(le),n[$t>>2]=0,n[Rr>>2]=0,Xe=y(yn(l,2,m)),He=y(yn(l,0,m)),Lt?(Le=y(Xe+y(Xr(n[l+992>>2]|0,m))),h[Gr>>2]=Le,n[$t>>2]=1,Ye=1):(Ye=0,Le=y(le)),Hr?(q=y(He+y(Xr(n[l+996>>2]|0,B))),h[fr>>2]=q,n[Rr>>2]=1,L=1):(L=0,q=y(le)),ae=n[o+32>>2]|0,We&(ae|0)==2?ae=2:Mt(Le)|0&&!(Mt(u)|0)&&(h[Gr>>2]=u,n[$t>>2]=2,Ye=2,Le=u),!((ae|0)==2&ct)&&Mt(q)|0&&!(Mt(d)|0)&&(h[fr>>2]=d,n[Rr>>2]=2,L=2,q=d),Qe=y(h[l+396>>2]),tt=Mt(Qe)|0;do if(tt)ae=Ye;else{if((Ye|0)==1&ct){h[fr>>2]=y(y(Le-Xe)/Qe),n[Rr>>2]=1,L=1,ae=1;break}We&(L|0)==1?(h[Gr>>2]=y(Qe*y(q-He)),n[$t>>2]=1,L=1,ae=1):ae=Ye}while(!1);Ro=Mt(u)|0,Ye=(ss(o,l)|0)!=4,!(We|Lt|((A|0)!=1|Ro)|(Ye|(ae|0)==1))&&(h[Gr>>2]=u,n[$t>>2]=1,!tt)&&(h[fr>>2]=y(y(u-Xe)/Qe),n[Rr>>2]=1,L=1),!(Hr|ct|((k|0)!=1|(Mt(d)|0))|(Ye|(L|0)==1))&&(h[fr>>2]=d,n[Rr>>2]=1,!tt)&&(h[Gr>>2]=y(Qe*y(d-He)),n[$t>>2]=1),Cu(l,2,m,m,$t,Gr),Cu(l,0,B,m,Rr,fr),u=y(h[Gr>>2]),d=y(h[fr>>2]),xl(l,u,d,R,n[$t>>2]|0,n[Rr>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(cr<<2)>>2]<<2)>>2]),h[l+504>>2]=y($n(B,y(Va(l,cr,m))))}while(!1);n[l+500>>2]=n[2278],I=Hn}function qn(o,l,u,A,d){return o=o|0,l=l|0,u=y(u),A=y(A),d=y(d),A=y(Vg(o,l,u,A)),y($n(A,y(Va(o,l,d))))}function ss(o,l){return o=o|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:o+16|0)>>2]|0,(l|0)==5&&Jg(n[o+4>>2]|0)|0&&(l=1),l|0}function kl(o,l){return o=o|0,l=l|0,de(l)|0&&n[o+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,o+60+(l<<3)|0}function Ql(o,l){return o=o|0,l=l|0,de(l)|0&&n[o+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,o+60+(l<<3)|0}function Cu(o,l,u,A,d,m){switch(o=o|0,l=l|0,u=y(u),A=y(A),d=d|0,m=m|0,u=y(Xr(o+380+(n[976+(l<<2)>>2]<<3)|0,u)),u=y(u+y(yn(o,l,A))),n[d>>2]|0){case 2:case 1:{d=Mt(u)|0,A=y(h[m>>2]),h[m>>2]=d|A>2]=2,h[m>>2]=u);break}default:}}function ha(o,l){return o=o|0,l=l|0,o=o+132|0,de(l)|0&&n[(kn(o,4,948)|0)+4>>2]|0?o=1:o=(n[(kn(o,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,o|0}function zA(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0;return o=o+132|0,de(l)|0&&(A=kn(o,4,948)|0,(n[A+4>>2]|0)!=0)?d=4:(A=kn(o,n[1040+(l<<2)>>2]|0,948)|0,n[A+4>>2]|0?d=4:u=y(0)),(d|0)==4&&(u=y(Xr(A,u))),y(u)}function ZA(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return A=y(h[o+908+(n[976+(l<<2)>>2]<<2)>>2]),A=y(A+y(K(o,l,u))),y(A+y(re(o,l,u)))}function HL(o){o=o|0;var l=0,u=0,A=0;e:do if(Jg(n[o+4>>2]|0)|0)l=0;else if((n[o+16>>2]|0)!=5)if(u=Mi(o)|0,!u)l=0;else for(l=0;;){if(A=Is(o,l)|0,!(n[A+24>>2]|0)&&(n[A+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=u>>>0){l=0;break}}else l=1;while(!1);return l|0}function jL(o,l){o=o|0,l=l|0;var u=$e;return u=y(h[o+908+(n[976+(l<<2)>>2]<<2)>>2]),u>=y(0)&((Mt(u)|0)^1)|0}function Yg(o){o=o|0;var l=$e,u=0,A=0,d=0,m=0,B=0,k=0,R=$e;if(u=n[o+968>>2]|0,u)R=y(h[o+908>>2]),l=y(h[o+912>>2]),l=y(TX[u&0](o,R,l)),wi(o,(Mt(l)|0)^1,3573);else{m=Mi(o)|0;do if(m|0){for(u=0,d=0;;){if(A=Is(o,d)|0,n[A+940>>2]|0){B=8;break}if((n[A+24>>2]|0)!=1)if(k=(ss(o,A)|0)==5,k){u=A;break}else u=u|0?u:A;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!u)break;return l=y(Yg(u)),y(l+y(h[u+404>>2]))}while(!1);l=y(h[o+912>>2])}return y(l)}function Vg(o,l,u,A){o=o|0,l=l|0,u=y(u),A=y(A);var d=$e,m=0;return Jg(l)|0?(l=1,m=3):de(l)|0?(l=0,m=3):(A=y(le),d=y(le)),(m|0)==3&&(d=y(Xr(o+364+(l<<3)|0,A)),A=y(Xr(o+380+(l<<3)|0,A))),m=A=y(0)&((Mt(A)|0)^1)),u=m?A:u,m=d>=y(0)&((Mt(d)|0)^1)&u>2]|0,m)|0,Le=Py(tt,m)|0,Qe=de(tt)|0,q=y(yn(l,2,u)),ae=y(yn(l,0,u)),io(l,2,u)|0?k=y(q+y(Xr(n[l+992>>2]|0,u))):ha(l,2)|0&&xy(l,2)|0?(k=y(h[o+908>>2]),R=y(vr(o,2)),R=y(k-y(R+y(Un(o,2)))),k=y(zA(l,2,u)),k=y(qn(l,2,y(R-y(k+y(Rh(l,2,u)))),u,u))):k=y(le),io(l,0,d)|0?R=y(ae+y(Xr(n[l+996>>2]|0,d))):ha(l,0)|0&&xy(l,0)|0?(R=y(h[o+912>>2]),ct=y(vr(o,0)),ct=y(R-y(ct+y(Un(o,0)))),R=y(zA(l,0,d)),R=y(qn(l,0,y(ct-y(R+y(Rh(l,0,d)))),d,u))):R=y(le),M=Mt(k)|0,L=Mt(R)|0;do if(M^L&&(Ye=y(h[l+396>>2]),!(Mt(Ye)|0)))if(M){k=y(q+y(y(R-ae)*Ye));break}else{ct=y(ae+y(y(k-q)/Ye)),R=L?ct:R;break}while(!1);L=Mt(k)|0,M=Mt(R)|0,L|M&&(He=(L^1)&1,A=u>y(0)&((A|0)!=0&L),k=Qe?k:A?u:k,xl(l,k,R,m,Qe?He:A?2:He,L&(M^1)&1,k,R,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(yn(l,2,u))),R=y(h[l+912>>2]),R=y(R+y(yn(l,0,u)))),xl(l,k,R,m,1,1,k,R,1,3635,B)|0,xy(l,tt)|0&&!(ha(l,tt)|0)?(He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),ct=y(ct-y(Un(o,tt))),ct=y(ct-y(re(l,tt,u))),ct=y(ct-y(Rh(l,tt,Qe?u:d))),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct):Xe=21;do if((Xe|0)==21){if(!(ha(l,tt)|0)&&(n[o+8>>2]|0)==1){He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(y(ct-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct;break}!(ha(l,tt)|0)&&(n[o+8>>2]|0)==2&&(He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct)}while(!1);xy(l,Le)|0&&!(ha(l,Le)|0)?(He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),ct=y(ct-y(Un(o,Le))),ct=y(ct-y(re(l,Le,u))),ct=y(ct-y(Rh(l,Le,Qe?d:u))),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct):Xe=30;do if((Xe|0)==30&&!(ha(l,Le)|0)){if((ss(o,l)|0)==2){He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(y(ct-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct;break}He=(ss(o,l)|0)==3,He^(n[o+28>>2]|0)==2&&(He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct)}while(!1)}function i2(o,l,u){o=o|0,l=l|0,u=u|0;var A=$e,d=0;d=n[976+(u<<2)>>2]|0,A=y(h[l+908+(d<<2)>>2]),A=y(y(h[o+908+(d<<2)>>2])-A),A=y(A-y(h[l+400+(n[1040+(u<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(u<<2)>>2]<<2)>>2]=A}function Jg(o){return o=o|0,(o|1|0)==1|0}function WL(o){o=o|0;var l=$e;switch(n[o+56>>2]|0){case 0:case 3:{l=y(h[o+40>>2]),l>y(0)&((Mt(l)|0)^1)?o=s[(n[o+976>>2]|0)+2>>0]|0?1056:992:o=1056;break}default:o=o+52|0}return o|0}function s2(o,l){return o=o|0,l=l|0,(s[o+l>>0]|0)!=0|0}function xy(o,l){return o=o|0,l=l|0,o=o+132|0,de(l)|0&&n[(kn(o,5,948)|0)+4>>2]|0?o=1:o=(n[(kn(o,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,o|0}function Rh(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0;return o=o+132|0,de(l)|0&&(A=kn(o,5,948)|0,(n[A+4>>2]|0)!=0)?d=4:(A=kn(o,n[1e3+(l<<2)>>2]|0,948)|0,n[A+4>>2]|0?d=4:u=y(0)),(d|0)==4&&(u=y(Xr(A,u))),y(u)}function ub(o,l,u){return o=o|0,l=l|0,u=y(u),ha(o,l)|0?u=y(zA(o,l,u)):u=y(-y(Rh(o,l,u))),y(u)}function fb(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function ky(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function Ab(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Qy(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&It(o)}function pb(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;if(B=o+4|0,k=n[B>>2]|0,d=k-A|0,m=d>>2,o=l+(m<<2)|0,o>>>0>>0){A=k;do n[A>>2]=n[o>>2],o=o+4|0,A=(n[B>>2]|0)+4|0,n[B>>2]=A;while(o>>>0>>0)}m|0&&Q2(k+(0-m<<2)|0,l|0,d|0)|0}function hb(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0;return k=l+4|0,R=n[k>>2]|0,d=n[o>>2]|0,B=u,m=B-d|0,A=R+(0-(m>>2)<<2)|0,n[k>>2]=A,(m|0)>0&&Qr(A|0,d|0,m|0)|0,d=o+4|0,m=l+8|0,A=(n[d>>2]|0)-B|0,(A|0)>0&&(Qr(n[m>>2]|0,u|0,A|0)|0,n[m>>2]=(n[m>>2]|0)+(A>>>2<<2)),B=n[o>>2]|0,n[o>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=o+8|0,u=l+12|0,o=n[B>>2]|0,n[B>>2]=n[u>>2],n[u>>2]=o,n[l>>2]=n[k>>2],R|0}function o2(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[u>>2]|0,(B|0)!=(m|0)){d=o+8|0,u=((m+-4-B|0)>>>2)+1|0,o=B,A=n[d>>2]|0;do n[A>>2]=n[o>>2],A=(n[d>>2]|0)+4|0,n[d>>2]=A,o=o+4|0;while((o|0)!=(m|0));n[l>>2]=B+(u<<2)}}function a2(){ua()}function gb(){var o=0;return o=Kt(4)|0,l2(o),o|0}function l2(o){o=o|0,n[o>>2]=Ac()|0}function db(o){o=o|0,o|0&&(Kg(o),It(o))}function Kg(o){o=o|0,st(n[o>>2]|0)}function YL(o,l,u){o=o|0,l=l|0,u=u|0,pc(n[o>>2]|0,l,u)}function Ry(o,l){o=o|0,l=y(l),Dh(n[o>>2]|0,l)}function Ty(o,l){return o=o|0,l=l|0,s2(n[o>>2]|0,l)|0}function Fy(){var o=0;return o=Kt(8)|0,zg(o,0),o|0}function zg(o,l){o=o|0,l=l|0,l?l=fa(n[l>>2]|0)|0:l=rs()|0,n[o>>2]=l,n[o+4>>2]=0,Rn(l,o)}function Ny(o){o=o|0;var l=0;return l=Kt(8)|0,zg(l,o),l|0}function Zg(o){o=o|0,o|0&&(Oy(o),It(o))}function Oy(o){o=o|0;var l=0;uc(n[o>>2]|0),l=o+4|0,o=n[l>>2]|0,n[l>>2]=0,o|0&&(Sf(o),It(o))}function Sf(o){o=o|0,Df(o)}function Df(o){o=o|0,o=n[o>>2]|0,o|0&&Na(o|0)}function c2(o){return o=o|0,Ga(o)|0}function u2(o){o=o|0;var l=0,u=0;u=o+4|0,l=n[u>>2]|0,n[u>>2]=0,l|0&&(Sf(l),It(l)),fc(n[o>>2]|0)}function Ly(o,l){o=o|0,l=l|0,An(n[o>>2]|0,n[l>>2]|0)}function VL(o,l){o=o|0,l=l|0,wh(n[o>>2]|0,l)}function JL(o,l,u){o=o|0,l=l|0,u=+u,Cy(n[o>>2]|0,l,y(u))}function My(o,l,u){o=o|0,l=l|0,u=+u,wy(n[o>>2]|0,l,y(u))}function f2(o,l){o=o|0,l=l|0,Eh(n[o>>2]|0,l)}function A2(o,l){o=o|0,l=l|0,So(n[o>>2]|0,l)}function xr(o,l){o=o|0,l=l|0,Ch(n[o>>2]|0,l)}function so(o,l){o=o|0,l=l|0,my(n[o>>2]|0,l)}function zi(o,l){o=o|0,l=l|0,Ng(n[o>>2]|0,l)}function Ns(o,l){o=o|0,l=l|0,vo(n[o>>2]|0,l)}function XA(o,l,u){o=o|0,l=l|0,u=+u,HA(n[o>>2]|0,l,y(u))}function p2(o,l,u){o=o|0,l=l|0,u=+u,Y(n[o>>2]|0,l,y(u))}function ws(o,l){o=o|0,l=l|0,jA(n[o>>2]|0,l)}function Uy(o,l){o=o|0,l=l|0,Ey(n[o>>2]|0,l)}function Th(o,l){o=o|0,l=l|0,Do(n[o>>2]|0,l)}function Xg(o,l){o=o|0,l=+l,Bh(n[o>>2]|0,y(l))}function Fh(o,l){o=o|0,l=+l,Pl(n[o>>2]|0,y(l))}function h2(o,l){o=o|0,l=+l,Iy(n[o>>2]|0,y(l))}function g2(o,l){o=o|0,l=+l,Lg(n[o>>2]|0,y(l))}function d2(o,l){o=o|0,l=+l,Dl(n[o>>2]|0,y(l))}function m2(o,l){o=o|0,l=+l,Mg(n[o>>2]|0,y(l))}function Pf(o,l){o=o|0,l=+l,e2(n[o>>2]|0,y(l))}function sr(o){o=o|0,vh(n[o>>2]|0)}function _y(o,l){o=o|0,l=+l,Ki(n[o>>2]|0,y(l))}function y2(o,l){o=o|0,l=+l,yf(n[o>>2]|0,y(l))}function hc(o){o=o|0,qa(n[o>>2]|0)}function bf(o,l){o=o|0,l=+l,du(n[o>>2]|0,y(l))}function $g(o,l){o=o|0,l=+l,Ef(n[o>>2]|0,y(l))}function ed(o,l){o=o|0,l=+l,di(n[o>>2]|0,y(l))}function E2(o,l){o=o|0,l=+l,GA(n[o>>2]|0,y(l))}function I2(o,l){o=o|0,l=+l,Aa(n[o>>2]|0,y(l))}function wu(o,l){o=o|0,l=+l,Ya(n[o>>2]|0,y(l))}function td(o,l){o=o|0,l=+l,Sh(n[o>>2]|0,y(l))}function C2(o,l){o=o|0,l=+l,Hg(n[o>>2]|0,y(l))}function Hy(o,l){o=o|0,l=+l,qA(n[o>>2]|0,y(l))}function Bu(o,l,u){o=o|0,l=l|0,u=+u,gu(n[o>>2]|0,l,y(u))}function jy(o,l,u){o=o|0,l=l|0,u=+u,Po(n[o>>2]|0,l,y(u))}function rd(o,l,u){o=o|0,l=l|0,u=+u,mf(n[o>>2]|0,l,y(u))}function nd(o){return o=o|0,Fg(n[o>>2]|0)|0}function ko(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,_A(d,n[l>>2]|0,u),Bs(o,d),I=A}function Bs(o,l){o=o|0,l=l|0,Rl(o,n[l+4>>2]|0,+y(h[l>>2]))}function Rl(o,l,u){o=o|0,l=l|0,u=+u,n[o>>2]=l,E[o+8>>3]=u}function Gy(o){return o=o|0,$1(n[o>>2]|0)|0}function ga(o){return o=o|0,Ih(n[o>>2]|0)|0}function mb(o){return o=o|0,hu(n[o>>2]|0)|0}function Nh(o){return o=o|0,X1(n[o>>2]|0)|0}function w2(o){return o=o|0,Og(n[o>>2]|0)|0}function KL(o){return o=o|0,yy(n[o>>2]|0)|0}function yb(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,xt(d,n[l>>2]|0,u),Bs(o,d),I=A}function Eb(o){return o=o|0,df(n[o>>2]|0)|0}function qy(o){return o=o|0,Sl(n[o>>2]|0)|0}function B2(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,UA(A,n[l>>2]|0),Bs(o,A),I=u}function Oh(o){return o=o|0,+ +y(li(n[o>>2]|0))}function Ib(o){return o=o|0,+ +y(Gi(n[o>>2]|0))}function Cb(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,ur(A,n[l>>2]|0),Bs(o,A),I=u}function id(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,Ug(A,n[l>>2]|0),Bs(o,A),I=u}function zL(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,wt(A,n[l>>2]|0),Bs(o,A),I=u}function ZL(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,Wa(A,n[l>>2]|0),Bs(o,A),I=u}function wb(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,_g(A,n[l>>2]|0),Bs(o,A),I=u}function Bb(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,vy(A,n[l>>2]|0),Bs(o,A),I=u}function $A(o){return o=o|0,+ +y(jg(n[o>>2]|0))}function XL(o,l){return o=o|0,l=l|0,+ +y(By(n[o>>2]|0,l))}function $L(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,yt(d,n[l>>2]|0,u),Bs(o,d),I=A}function vu(o,l,u){o=o|0,l=l|0,u=u|0,lr(n[o>>2]|0,n[l>>2]|0,u)}function eM(o,l){o=o|0,l=l|0,gf(n[o>>2]|0,n[l>>2]|0)}function vb(o){return o=o|0,Mi(n[o>>2]|0)|0}function tM(o){return o=o|0,o=Et(n[o>>2]|0)|0,o?o=c2(o)|0:o=0,o|0}function Sb(o,l){return o=o|0,l=l|0,o=Is(n[o>>2]|0,l)|0,o?o=c2(o)|0:o=0,o|0}function xf(o,l){o=o|0,l=l|0;var u=0,A=0;A=Kt(4)|0,Db(A,l),u=o+4|0,l=n[u>>2]|0,n[u>>2]=A,l|0&&(Sf(l),It(l)),St(n[o>>2]|0,1)}function Db(o,l){o=o|0,l=l|0,sM(o,l)}function rM(o,l,u,A,d,m){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0;var B=0,k=0;B=I,I=I+16|0,k=B,Pb(k,Ga(l)|0,+u,A,+d,m),h[o>>2]=y(+E[k>>3]),h[o+4>>2]=y(+E[k+8>>3]),I=B}function Pb(o,l,u,A,d,m){o=o|0,l=l|0,u=+u,A=A|0,d=+d,m=m|0;var B=0,k=0,R=0,M=0,L=0;B=I,I=I+32|0,L=B+8|0,M=B+20|0,R=B,k=B+16|0,E[L>>3]=u,n[M>>2]=A,E[R>>3]=d,n[k>>2]=m,Wy(o,n[l+4>>2]|0,L,M,R,k),I=B}function Wy(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0;B=I,I=I+16|0,k=B,Fl(k),l=Os(l)|0,bb(o,l,+E[u>>3],n[A>>2]|0,+E[d>>3],n[m>>2]|0),Nl(k),I=B}function Os(o){return o=o|0,n[o>>2]|0}function bb(o,l,u,A,d,m){o=o|0,l=l|0,u=+u,A=A|0,d=+d,m=m|0;var B=0;B=da(v2()|0)|0,u=+Ja(u),A=Yy(A)|0,d=+Ja(d),nM(o,Kn(0,B|0,l|0,+u,A|0,+d,Yy(m)|0)|0)}function v2(){var o=0;return s[7608]|0||(D2(9120),o=7608,n[o>>2]=1,n[o+4>>2]=0),9120}function da(o){return o=o|0,n[o+8>>2]|0}function Ja(o){return o=+o,+ +kf(o)}function Yy(o){return o=o|0,sd(o)|0}function nM(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+32|0,u=d,A=l,A&1?(Ka(u,0),Me(A|0,u|0)|0,S2(o,u),iM(u)):(n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2]),I=d}function Ka(o,l){o=o|0,l=l|0,Su(o,l),n[o+8>>2]=0,s[o+24>>0]=0}function S2(o,l){o=o|0,l=l|0,l=l+8|0,n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2]}function iM(o){o=o|0,s[o+24>>0]=0}function Su(o,l){o=o|0,l=l|0,n[o>>2]=l}function sd(o){return o=o|0,o|0}function kf(o){return o=+o,+o}function D2(o){o=o|0,Qo(o,P2()|0,4)}function P2(){return 1064}function Qo(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=ji(l|0,u+1|0)|0}function sM(o,l){o=o|0,l=l|0,l=n[l>>2]|0,n[o>>2]=l,au(l|0)}function xb(o){o=o|0;var l=0,u=0;u=o+4|0,l=n[u>>2]|0,n[u>>2]=0,l|0&&(Sf(l),It(l)),St(n[o>>2]|0,0)}function kb(o){o=o|0,Pt(n[o>>2]|0)}function Vy(o){return o=o|0,tr(n[o>>2]|0)|0}function oM(o,l,u,A){o=o|0,l=+l,u=+u,A=A|0,YA(n[o>>2]|0,y(l),y(u),A)}function aM(o){return o=o|0,+ +y(mu(n[o>>2]|0))}function v(o){return o=o|0,+ +y(If(n[o>>2]|0))}function D(o){return o=o|0,+ +y(yu(n[o>>2]|0))}function Q(o){return o=o|0,+ +y(Ts(n[o>>2]|0))}function H(o){return o=o|0,+ +y(Eu(n[o>>2]|0))}function V(o){return o=o|0,+ +y(Gn(n[o>>2]|0))}function ne(o,l){o=o|0,l=l|0,E[o>>3]=+y(mu(n[l>>2]|0)),E[o+8>>3]=+y(If(n[l>>2]|0)),E[o+16>>3]=+y(yu(n[l>>2]|0)),E[o+24>>3]=+y(Ts(n[l>>2]|0)),E[o+32>>3]=+y(Eu(n[l>>2]|0)),E[o+40>>3]=+y(Gn(n[l>>2]|0))}function Se(o,l){return o=o|0,l=l|0,+ +y(ns(n[o>>2]|0,l))}function _e(o,l){return o=o|0,l=l|0,+ +y(bi(n[o>>2]|0,l))}function pt(o,l){return o=o|0,l=l|0,+ +y(WA(n[o>>2]|0,l))}function Wt(){return Qn()|0}function Sr(){Lr(),Xt(),zn(),yi(),za(),et()}function Lr(){u4e(11713,4938,1)}function Xt(){x_e(10448)}function zn(){u_e(10408)}function yi(){TUe(10324)}function za(){HLe(10096)}function et(){qe(9132)}function qe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=0,Ro=0,To=0,Fo=0,Xa=0,Wh=0,Yh=0,gc=0,Vh=0,Tf=0,Ff=0,Jh=0,Kh=0,zh=0,on=0,dc=0,Zh=0,bu=0,Xh=0,$h=0,Nf=0,Of=0,xu=0,oo=0,Ll=0,ma=0,mc=0,op=0,ap=0,Lf=0,lp=0,cp=0,ao=0,Ms=0,yc=0,Wn=0,up=0,No=0,ku=0,Oo=0,Qu=0,fp=0,Ap=0,Ru=0,lo=0,Ec=0,pp=0,hp=0,gp=0,Nr=0,ui=0,Us=0,Lo=0,co=0,Mr=0,Ar=0,Ic=0;l=I,I=I+672|0,u=l+656|0,Ic=l+648|0,Ar=l+640|0,Mr=l+632|0,co=l+624|0,Lo=l+616|0,Us=l+608|0,ui=l+600|0,Nr=l+592|0,gp=l+584|0,hp=l+576|0,pp=l+568|0,Ec=l+560|0,lo=l+552|0,Ru=l+544|0,Ap=l+536|0,fp=l+528|0,Qu=l+520|0,Oo=l+512|0,ku=l+504|0,No=l+496|0,up=l+488|0,Wn=l+480|0,yc=l+472|0,Ms=l+464|0,ao=l+456|0,cp=l+448|0,lp=l+440|0,Lf=l+432|0,ap=l+424|0,op=l+416|0,mc=l+408|0,ma=l+400|0,Ll=l+392|0,oo=l+384|0,xu=l+376|0,Of=l+368|0,Nf=l+360|0,$h=l+352|0,Xh=l+344|0,bu=l+336|0,Zh=l+328|0,dc=l+320|0,on=l+312|0,zh=l+304|0,Kh=l+296|0,Jh=l+288|0,Ff=l+280|0,Tf=l+272|0,Vh=l+264|0,gc=l+256|0,Yh=l+248|0,Wh=l+240|0,Xa=l+232|0,Fo=l+224|0,To=l+216|0,Ro=l+208|0,Hn=l+200|0,cr=l+192|0,Hr=l+184|0,Rr=l+176|0,$t=l+168|0,fr=l+160|0,Gr=l+152|0,Lt=l+144|0,We=l+136|0,He=l+128|0,ct=l+120|0,Xe=l+112|0,tt=l+104|0,Qe=l+96|0,Le=l+88|0,Ye=l+80|0,ae=l+72|0,q=l+64|0,L=l+56|0,M=l+48|0,R=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,A=l,gt(o,3646),Zt(o,3651,2)|0,Dr(o,3665,2)|0,Xn(o,3682,18)|0,n[Ic>>2]=19,n[Ic+4>>2]=0,n[u>>2]=n[Ic>>2],n[u+4>>2]=n[Ic+4>>2],kr(o,3690,u)|0,n[Ar>>2]=1,n[Ar+4>>2]=0,n[u>>2]=n[Ar>>2],n[u+4>>2]=n[Ar+4>>2],Tn(o,3696,u)|0,n[Mr>>2]=2,n[Mr+4>>2]=0,n[u>>2]=n[Mr>>2],n[u+4>>2]=n[Mr+4>>2],_n(o,3706,u)|0,n[co>>2]=1,n[co+4>>2]=0,n[u>>2]=n[co>>2],n[u+4>>2]=n[co+4>>2],zr(o,3722,u)|0,n[Lo>>2]=2,n[Lo+4>>2]=0,n[u>>2]=n[Lo>>2],n[u+4>>2]=n[Lo+4>>2],zr(o,3734,u)|0,n[Us>>2]=3,n[Us+4>>2]=0,n[u>>2]=n[Us>>2],n[u+4>>2]=n[Us+4>>2],_n(o,3753,u)|0,n[ui>>2]=4,n[ui+4>>2]=0,n[u>>2]=n[ui>>2],n[u+4>>2]=n[ui+4>>2],_n(o,3769,u)|0,n[Nr>>2]=5,n[Nr+4>>2]=0,n[u>>2]=n[Nr>>2],n[u+4>>2]=n[Nr+4>>2],_n(o,3783,u)|0,n[gp>>2]=6,n[gp+4>>2]=0,n[u>>2]=n[gp>>2],n[u+4>>2]=n[gp+4>>2],_n(o,3796,u)|0,n[hp>>2]=7,n[hp+4>>2]=0,n[u>>2]=n[hp>>2],n[u+4>>2]=n[hp+4>>2],_n(o,3813,u)|0,n[pp>>2]=8,n[pp+4>>2]=0,n[u>>2]=n[pp>>2],n[u+4>>2]=n[pp+4>>2],_n(o,3825,u)|0,n[Ec>>2]=3,n[Ec+4>>2]=0,n[u>>2]=n[Ec>>2],n[u+4>>2]=n[Ec+4>>2],zr(o,3843,u)|0,n[lo>>2]=4,n[lo+4>>2]=0,n[u>>2]=n[lo>>2],n[u+4>>2]=n[lo+4>>2],zr(o,3853,u)|0,n[Ru>>2]=9,n[Ru+4>>2]=0,n[u>>2]=n[Ru>>2],n[u+4>>2]=n[Ru+4>>2],_n(o,3870,u)|0,n[Ap>>2]=10,n[Ap+4>>2]=0,n[u>>2]=n[Ap>>2],n[u+4>>2]=n[Ap+4>>2],_n(o,3884,u)|0,n[fp>>2]=11,n[fp+4>>2]=0,n[u>>2]=n[fp>>2],n[u+4>>2]=n[fp+4>>2],_n(o,3896,u)|0,n[Qu>>2]=1,n[Qu+4>>2]=0,n[u>>2]=n[Qu>>2],n[u+4>>2]=n[Qu+4>>2],ci(o,3907,u)|0,n[Oo>>2]=2,n[Oo+4>>2]=0,n[u>>2]=n[Oo>>2],n[u+4>>2]=n[Oo+4>>2],ci(o,3915,u)|0,n[ku>>2]=3,n[ku+4>>2]=0,n[u>>2]=n[ku>>2],n[u+4>>2]=n[ku+4>>2],ci(o,3928,u)|0,n[No>>2]=4,n[No+4>>2]=0,n[u>>2]=n[No>>2],n[u+4>>2]=n[No+4>>2],ci(o,3948,u)|0,n[up>>2]=5,n[up+4>>2]=0,n[u>>2]=n[up>>2],n[u+4>>2]=n[up+4>>2],ci(o,3960,u)|0,n[Wn>>2]=6,n[Wn+4>>2]=0,n[u>>2]=n[Wn>>2],n[u+4>>2]=n[Wn+4>>2],ci(o,3974,u)|0,n[yc>>2]=7,n[yc+4>>2]=0,n[u>>2]=n[yc>>2],n[u+4>>2]=n[yc+4>>2],ci(o,3983,u)|0,n[Ms>>2]=20,n[Ms+4>>2]=0,n[u>>2]=n[Ms>>2],n[u+4>>2]=n[Ms+4>>2],kr(o,3999,u)|0,n[ao>>2]=8,n[ao+4>>2]=0,n[u>>2]=n[ao>>2],n[u+4>>2]=n[ao+4>>2],ci(o,4012,u)|0,n[cp>>2]=9,n[cp+4>>2]=0,n[u>>2]=n[cp>>2],n[u+4>>2]=n[cp+4>>2],ci(o,4022,u)|0,n[lp>>2]=21,n[lp+4>>2]=0,n[u>>2]=n[lp>>2],n[u+4>>2]=n[lp+4>>2],kr(o,4039,u)|0,n[Lf>>2]=10,n[Lf+4>>2]=0,n[u>>2]=n[Lf>>2],n[u+4>>2]=n[Lf+4>>2],ci(o,4053,u)|0,n[ap>>2]=11,n[ap+4>>2]=0,n[u>>2]=n[ap>>2],n[u+4>>2]=n[ap+4>>2],ci(o,4065,u)|0,n[op>>2]=12,n[op+4>>2]=0,n[u>>2]=n[op>>2],n[u+4>>2]=n[op+4>>2],ci(o,4084,u)|0,n[mc>>2]=13,n[mc+4>>2]=0,n[u>>2]=n[mc>>2],n[u+4>>2]=n[mc+4>>2],ci(o,4097,u)|0,n[ma>>2]=14,n[ma+4>>2]=0,n[u>>2]=n[ma>>2],n[u+4>>2]=n[ma+4>>2],ci(o,4117,u)|0,n[Ll>>2]=15,n[Ll+4>>2]=0,n[u>>2]=n[Ll>>2],n[u+4>>2]=n[Ll+4>>2],ci(o,4129,u)|0,n[oo>>2]=16,n[oo+4>>2]=0,n[u>>2]=n[oo>>2],n[u+4>>2]=n[oo+4>>2],ci(o,4148,u)|0,n[xu>>2]=17,n[xu+4>>2]=0,n[u>>2]=n[xu>>2],n[u+4>>2]=n[xu+4>>2],ci(o,4161,u)|0,n[Of>>2]=18,n[Of+4>>2]=0,n[u>>2]=n[Of>>2],n[u+4>>2]=n[Of+4>>2],ci(o,4181,u)|0,n[Nf>>2]=5,n[Nf+4>>2]=0,n[u>>2]=n[Nf>>2],n[u+4>>2]=n[Nf+4>>2],zr(o,4196,u)|0,n[$h>>2]=6,n[$h+4>>2]=0,n[u>>2]=n[$h>>2],n[u+4>>2]=n[$h+4>>2],zr(o,4206,u)|0,n[Xh>>2]=7,n[Xh+4>>2]=0,n[u>>2]=n[Xh>>2],n[u+4>>2]=n[Xh+4>>2],zr(o,4217,u)|0,n[bu>>2]=3,n[bu+4>>2]=0,n[u>>2]=n[bu>>2],n[u+4>>2]=n[bu+4>>2],Du(o,4235,u)|0,n[Zh>>2]=1,n[Zh+4>>2]=0,n[u>>2]=n[Zh>>2],n[u+4>>2]=n[Zh+4>>2],lM(o,4251,u)|0,n[dc>>2]=4,n[dc+4>>2]=0,n[u>>2]=n[dc>>2],n[u+4>>2]=n[dc+4>>2],Du(o,4263,u)|0,n[on>>2]=5,n[on+4>>2]=0,n[u>>2]=n[on>>2],n[u+4>>2]=n[on+4>>2],Du(o,4279,u)|0,n[zh>>2]=6,n[zh+4>>2]=0,n[u>>2]=n[zh>>2],n[u+4>>2]=n[zh+4>>2],Du(o,4293,u)|0,n[Kh>>2]=7,n[Kh+4>>2]=0,n[u>>2]=n[Kh>>2],n[u+4>>2]=n[Kh+4>>2],Du(o,4306,u)|0,n[Jh>>2]=8,n[Jh+4>>2]=0,n[u>>2]=n[Jh>>2],n[u+4>>2]=n[Jh+4>>2],Du(o,4323,u)|0,n[Ff>>2]=9,n[Ff+4>>2]=0,n[u>>2]=n[Ff>>2],n[u+4>>2]=n[Ff+4>>2],Du(o,4335,u)|0,n[Tf>>2]=2,n[Tf+4>>2]=0,n[u>>2]=n[Tf>>2],n[u+4>>2]=n[Tf+4>>2],lM(o,4353,u)|0,n[Vh>>2]=12,n[Vh+4>>2]=0,n[u>>2]=n[Vh>>2],n[u+4>>2]=n[Vh+4>>2],od(o,4363,u)|0,n[gc>>2]=1,n[gc+4>>2]=0,n[u>>2]=n[gc>>2],n[u+4>>2]=n[gc+4>>2],ep(o,4376,u)|0,n[Yh>>2]=2,n[Yh+4>>2]=0,n[u>>2]=n[Yh>>2],n[u+4>>2]=n[Yh+4>>2],ep(o,4388,u)|0,n[Wh>>2]=13,n[Wh+4>>2]=0,n[u>>2]=n[Wh>>2],n[u+4>>2]=n[Wh+4>>2],od(o,4402,u)|0,n[Xa>>2]=14,n[Xa+4>>2]=0,n[u>>2]=n[Xa>>2],n[u+4>>2]=n[Xa+4>>2],od(o,4411,u)|0,n[Fo>>2]=15,n[Fo+4>>2]=0,n[u>>2]=n[Fo>>2],n[u+4>>2]=n[Fo+4>>2],od(o,4421,u)|0,n[To>>2]=16,n[To+4>>2]=0,n[u>>2]=n[To>>2],n[u+4>>2]=n[To+4>>2],od(o,4433,u)|0,n[Ro>>2]=17,n[Ro+4>>2]=0,n[u>>2]=n[Ro>>2],n[u+4>>2]=n[Ro+4>>2],od(o,4446,u)|0,n[Hn>>2]=18,n[Hn+4>>2]=0,n[u>>2]=n[Hn>>2],n[u+4>>2]=n[Hn+4>>2],od(o,4458,u)|0,n[cr>>2]=3,n[cr+4>>2]=0,n[u>>2]=n[cr>>2],n[u+4>>2]=n[cr+4>>2],ep(o,4471,u)|0,n[Hr>>2]=1,n[Hr+4>>2]=0,n[u>>2]=n[Hr>>2],n[u+4>>2]=n[Hr+4>>2],Qb(o,4486,u)|0,n[Rr>>2]=10,n[Rr+4>>2]=0,n[u>>2]=n[Rr>>2],n[u+4>>2]=n[Rr+4>>2],Du(o,4496,u)|0,n[$t>>2]=11,n[$t+4>>2]=0,n[u>>2]=n[$t>>2],n[u+4>>2]=n[$t+4>>2],Du(o,4508,u)|0,n[fr>>2]=3,n[fr+4>>2]=0,n[u>>2]=n[fr>>2],n[u+4>>2]=n[fr+4>>2],lM(o,4519,u)|0,n[Gr>>2]=4,n[Gr+4>>2]=0,n[u>>2]=n[Gr>>2],n[u+4>>2]=n[Gr+4>>2],yke(o,4530,u)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[u>>2]=n[Lt>>2],n[u+4>>2]=n[Lt+4>>2],Eke(o,4542,u)|0,n[We>>2]=12,n[We+4>>2]=0,n[u>>2]=n[We>>2],n[u+4>>2]=n[We+4>>2],Ike(o,4554,u)|0,n[He>>2]=13,n[He+4>>2]=0,n[u>>2]=n[He>>2],n[u+4>>2]=n[He+4>>2],Cke(o,4568,u)|0,n[ct>>2]=2,n[ct+4>>2]=0,n[u>>2]=n[ct>>2],n[u+4>>2]=n[ct+4>>2],wke(o,4578,u)|0,n[Xe>>2]=20,n[Xe+4>>2]=0,n[u>>2]=n[Xe>>2],n[u+4>>2]=n[Xe+4>>2],Bke(o,4587,u)|0,n[tt>>2]=22,n[tt+4>>2]=0,n[u>>2]=n[tt>>2],n[u+4>>2]=n[tt+4>>2],kr(o,4602,u)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[u>>2]=n[Qe>>2],n[u+4>>2]=n[Qe+4>>2],kr(o,4619,u)|0,n[Le>>2]=14,n[Le+4>>2]=0,n[u>>2]=n[Le>>2],n[u+4>>2]=n[Le+4>>2],vke(o,4629,u)|0,n[Ye>>2]=1,n[Ye+4>>2]=0,n[u>>2]=n[Ye>>2],n[u+4>>2]=n[Ye+4>>2],Ske(o,4637,u)|0,n[ae>>2]=4,n[ae+4>>2]=0,n[u>>2]=n[ae>>2],n[u+4>>2]=n[ae+4>>2],ep(o,4653,u)|0,n[q>>2]=5,n[q+4>>2]=0,n[u>>2]=n[q>>2],n[u+4>>2]=n[q+4>>2],ep(o,4669,u)|0,n[L>>2]=6,n[L+4>>2]=0,n[u>>2]=n[L>>2],n[u+4>>2]=n[L+4>>2],ep(o,4686,u)|0,n[M>>2]=7,n[M+4>>2]=0,n[u>>2]=n[M>>2],n[u+4>>2]=n[M+4>>2],ep(o,4701,u)|0,n[R>>2]=8,n[R+4>>2]=0,n[u>>2]=n[R>>2],n[u+4>>2]=n[R+4>>2],ep(o,4719,u)|0,n[k>>2]=9,n[k+4>>2]=0,n[u>>2]=n[k>>2],n[u+4>>2]=n[k+4>>2],ep(o,4736,u)|0,n[B>>2]=21,n[B+4>>2]=0,n[u>>2]=n[B>>2],n[u+4>>2]=n[B+4>>2],Dke(o,4754,u)|0,n[m>>2]=2,n[m+4>>2]=0,n[u>>2]=n[m>>2],n[u+4>>2]=n[m+4>>2],Qb(o,4772,u)|0,n[d>>2]=3,n[d+4>>2]=0,n[u>>2]=n[d>>2],n[u+4>>2]=n[d+4>>2],Qb(o,4790,u)|0,n[A>>2]=4,n[A+4>>2]=0,n[u>>2]=n[A>>2],n[u+4>>2]=n[A+4>>2],Qb(o,4808,u)|0,I=l}function gt(o,l){o=o|0,l=l|0;var u=0;u=RLe()|0,n[o>>2]=u,TLe(u,l),jh(n[o>>2]|0)}function Zt(o,l,u){return o=o|0,l=l|0,u=u|0,yLe(o,Bn(l)|0,u,0),o|0}function Dr(o,l,u){return o=o|0,l=l|0,u=u|0,rLe(o,Bn(l)|0,u,0),o|0}function Xn(o,l,u){return o=o|0,l=l|0,u=u|0,jOe(o,Bn(l)|0,u,0),o|0}function kr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DOe(o,l,d),I=A,o|0}function Tn(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aOe(o,l,d),I=A,o|0}function _n(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],WNe(o,l,d),I=A,o|0}function zr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xNe(o,l,d),I=A,o|0}function ci(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pNe(o,l,d),I=A,o|0}function Du(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZFe(o,l,d),I=A,o|0}function lM(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NFe(o,l,d),I=A,o|0}function od(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aFe(o,l,d),I=A,o|0}function ep(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],WTe(o,l,d),I=A,o|0}function Qb(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xTe(o,l,d),I=A,o|0}function yke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pTe(o,l,d),I=A,o|0}function Eke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZRe(o,l,d),I=A,o|0}function Ike(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ORe(o,l,d),I=A,o|0}function Cke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CRe(o,l,d),I=A,o|0}function wke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iRe(o,l,d),I=A,o|0}function Bke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],HQe(o,l,d),I=A,o|0}function vke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SQe(o,l,d),I=A,o|0}function Ske(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aQe(o,l,d),I=A,o|0}function Dke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pke(o,l,d),I=A,o|0}function Pke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bke(o,u,d,1),I=A}function Bn(o){return o=o|0,o|0}function bke(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=cM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=xke(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,kke(m,A)|0,A),I=d}function cM(){var o=0,l=0;if(s[7616]|0||(pz(9136),gr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(_r(9136)|0)){o=9136,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));pz(9136)}return 9136}function xke(o){return o=o|0,0}function kke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=cM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Az(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(Tke(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function vn(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0;B=I,I=I+32|0,ae=B+24|0,q=B+20|0,R=B+16|0,L=B+12|0,M=B+8|0,k=B+4|0,Ye=B,n[q>>2]=l,n[R>>2]=u,n[L>>2]=A,n[M>>2]=d,n[k>>2]=m,m=o+28|0,n[Ye>>2]=n[m>>2],n[ae>>2]=n[Ye>>2],Qke(o+24|0,ae,q,L,M,R,k)|0,n[m>>2]=n[n[m>>2]>>2],I=B}function Qke(o,l,u,A,d,m,B){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,o=Rke(l)|0,l=Kt(24)|0,fz(l+4|0,n[u>>2]|0,n[A>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[o>>2],n[o>>2]=l,l|0}function Rke(o){return o=o|0,n[o>>2]|0}function fz(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=A,n[o+12>>2]=d,n[o+16>>2]=m}function yr(o,l){return o=o|0,l=l|0,l|o|0}function Az(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function Tke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=Fke(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,Nke(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Az(m,A,u),n[R>>2]=(n[R>>2]|0)+12,Oke(o,k),Lke(k),I=M;return}}function Fke(o){return o=o|0,357913941}function Nke(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function Oke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Lke(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function pz(o){o=o|0,_ke(o)}function Mke(o){o=o|0,Uke(o+24|0)}function _r(o){return o=o|0,n[o>>2]|0}function Uke(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _ke(o){o=o|0;var l=0;l=en()|0,tn(o,2,3,l,Hke()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function en(){return 9228}function Hke(){return 1140}function jke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=Gke(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=qke(l,A)|0,I=u,l|0}function tn(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=A,n[o+12>>2]=d,n[o+16>>2]=m}function Gke(o){return o=o|0,(n[(cM()|0)+24>>2]|0)+(o*12|0)|0}function qke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+48|0,A=d,u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),sp[u&31](A,o),A=Wke(A)|0,I=d,A|0}function Wke(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=uM(hz()|0)|0,A?(fM(l,A),AM(u,l),Yke(o,u),o=pM(l)|0):o=Vke(o)|0,I=d,o|0}function hz(){var o=0;return s[7632]|0||(nQe(9184),gr(25,9184,U|0)|0,o=7632,n[o>>2]=1,n[o+4>>2]=0),9184}function uM(o){return o=o|0,n[o+36>>2]|0}function fM(o,l){o=o|0,l=l|0,n[o>>2]=l,n[o+4>>2]=o,n[o+8>>2]=0}function AM(o,l){o=o|0,l=l|0,n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=0}function Yke(o,l){o=o|0,l=l|0,Zke(l,o,o+8|0,o+16|0,o+24|0,o+32|0,o+40|0)|0}function pM(o){return o=o|0,n[(n[o+4>>2]|0)+8>>2]|0}function Vke(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0;R=I,I=I+16|0,u=R+4|0,A=R,d=Tl(8)|0,m=d,B=Kt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[o>>2],k=k+4|0,o=o+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Kt(8)|0,B=n[l>>2]|0,n[A>>2]=0,n[u>>2]=n[A>>2],gz(k,B,u),n[d>>2]=k,I=R,m|0}function gz(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1092,n[u+12>>2]=l,n[o+4>>2]=u}function Jke(o){o=o|0,$y(o),It(o)}function Kke(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function zke(o){o=o|0,It(o)}function Zke(o,l,u,A,d,m,B){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,m=Xke(n[o>>2]|0,l,u,A,d,m,B)|0,B=o+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function Xke(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0;var k=0,R=0;return k=I,I=I+16|0,R=k,Fl(R),o=Os(o)|0,B=$ke(o,+E[l>>3],+E[u>>3],+E[A>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Nl(R),I=k,B|0}function $ke(o,l,u,A,d,m,B){o=o|0,l=+l,u=+u,A=+A,d=+d,m=+m,B=+B;var k=0;return k=da(eQe()|0)|0,l=+Ja(l),u=+Ja(u),A=+Ja(A),d=+Ja(d),m=+Ja(m),ro(0,k|0,o|0,+l,+u,+A,+d,+m,+ +Ja(B))|0}function eQe(){var o=0;return s[7624]|0||(tQe(9172),o=7624,n[o>>2]=1,n[o+4>>2]=0),9172}function tQe(o){o=o|0,Qo(o,rQe()|0,6)}function rQe(){return 1112}function nQe(o){o=o|0,Lh(o)}function iQe(o){o=o|0,dz(o+24|0),mz(o+16|0)}function dz(o){o=o|0,oQe(o)}function mz(o){o=o|0,sQe(o)}function sQe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,It(u);while(l|0);n[o>>2]=0}function oQe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,It(u);while(l|0);n[o>>2]=0}function Lh(o){o=o|0;var l=0;n[o+16>>2]=0,n[o+20>>2]=0,l=o+24|0,n[l>>2]=0,n[o+28>>2]=l,n[o+36>>2]=0,s[o+40>>0]=0,s[o+41>>0]=0}function aQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lQe(o,u,d,0),I=A}function lQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=hM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=cQe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,uQe(m,A)|0,A),I=d}function hM(){var o=0,l=0;if(s[7640]|0||(Ez(9232),gr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(_r(9232)|0)){o=9232,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Ez(9232)}return 9232}function cQe(o){return o=o|0,0}function uQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=hM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],yz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(fQe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function yz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function fQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=AQe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,pQe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],yz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,hQe(o,k),gQe(k),I=M;return}}function AQe(o){return o=o|0,357913941}function pQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function hQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gQe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Ez(o){o=o|0,yQe(o)}function dQe(o){o=o|0,mQe(o+24|0)}function mQe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function yQe(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,EQe()|0,3),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EQe(){return 1144}function IQe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0;var m=0,B=0,k=0,R=0;m=I,I=I+16|0,B=m+8|0,k=m,R=CQe(o)|0,o=n[R+4>>2]|0,n[k>>2]=n[R>>2],n[k+4>>2]=o,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],wQe(l,B,u,A,d),I=m}function CQe(o){return o=o|0,(n[(hM()|0)+24>>2]|0)+(o*12|0)|0}function wQe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0;var m=0,B=0,k=0,R=0,M=0;M=I,I=I+16|0,B=M+2|0,k=M+1|0,R=M,m=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(m=n[(n[o>>2]|0)+m>>2]|0),Qf(B,u),u=+Rf(B,u),Qf(k,A),A=+Rf(k,A),tp(R,d),R=rp(R,d)|0,FX[m&1](o,u,A,R),I=M}function Qf(o,l){o=o|0,l=+l}function Rf(o,l){return o=o|0,l=+l,+ +vQe(l)}function tp(o,l){o=o|0,l=l|0}function rp(o,l){return o=o|0,l=l|0,BQe(l)|0}function BQe(o){return o=o|0,o|0}function vQe(o){return o=+o,+o}function SQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DQe(o,u,d,1),I=A}function DQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=gM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=PQe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,bQe(m,A)|0,A),I=d}function gM(){var o=0,l=0;if(s[7648]|0||(Cz(9268),gr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(_r(9268)|0)){o=9268,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Cz(9268)}return 9268}function PQe(o){return o=o|0,0}function bQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=gM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Iz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(xQe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Iz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function xQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=kQe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,QQe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Iz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,RQe(o,k),TQe(k),I=M;return}}function kQe(o){return o=o|0,357913941}function QQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function RQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function TQe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Cz(o){o=o|0,OQe(o)}function FQe(o){o=o|0,NQe(o+24|0)}function NQe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function OQe(o){o=o|0;var l=0;l=en()|0,tn(o,2,4,l,LQe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function LQe(){return 1160}function MQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=UQe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=_Qe(l,A)|0,I=u,l|0}function UQe(o){return o=o|0,(n[(gM()|0)+24>>2]|0)+(o*12|0)|0}function _Qe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),wz(gd[u&31](o)|0)|0}function wz(o){return o=o|0,o&1|0}function HQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jQe(o,u,d,0),I=A}function jQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=dM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=GQe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,qQe(m,A)|0,A),I=d}function dM(){var o=0,l=0;if(s[7656]|0||(vz(9304),gr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(_r(9304)|0)){o=9304,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));vz(9304)}return 9304}function GQe(o){return o=o|0,0}function qQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=dM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Bz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(WQe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Bz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function WQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=YQe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,VQe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Bz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,JQe(o,k),KQe(k),I=M;return}}function YQe(o){return o=o|0,357913941}function VQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function JQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function KQe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function vz(o){o=o|0,XQe(o)}function zQe(o){o=o|0,ZQe(o+24|0)}function ZQe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function XQe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,$Qe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function $Qe(){return 1164}function eRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=tRe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rRe(l,d,u),I=A}function tRe(o){return o=o|0,(n[(dM()|0)+24>>2]|0)+(o*12|0)|0}function rRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),Mh(d,u),u=Uh(d,u)|0,sp[A&31](o,u),_h(d),I=m}function Mh(o,l){o=o|0,l=l|0,nRe(o,l)}function Uh(o,l){return o=o|0,l=l|0,o|0}function _h(o){o=o|0,Sf(o)}function nRe(o,l){o=o|0,l=l|0,mM(o,l)}function mM(o,l){o=o|0,l=l|0,n[o>>2]=l}function iRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sRe(o,u,d,0),I=A}function sRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=yM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=oRe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,aRe(m,A)|0,A),I=d}function yM(){var o=0,l=0;if(s[7664]|0||(Dz(9340),gr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(_r(9340)|0)){o=9340,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Dz(9340)}return 9340}function oRe(o){return o=o|0,0}function aRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=yM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Sz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(lRe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Sz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function lRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=cRe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,uRe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Sz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,fRe(o,k),ARe(k),I=M;return}}function cRe(o){return o=o|0,357913941}function uRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function fRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function ARe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Dz(o){o=o|0,gRe(o)}function pRe(o){o=o|0,hRe(o+24|0)}function hRe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function gRe(o){o=o|0;var l=0;l=en()|0,tn(o,2,4,l,dRe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function dRe(){return 1180}function mRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=yRe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=ERe(l,d,u)|0,I=A,u|0}function yRe(o){return o=o|0,(n[(yM()|0)+24>>2]|0)+(o*12|0)|0}function ERe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),ad(d,u),d=ld(d,u)|0,d=Rb(hU[A&15](o,d)|0)|0,I=m,d|0}function ad(o,l){o=o|0,l=l|0}function ld(o,l){return o=o|0,l=l|0,IRe(l)|0}function Rb(o){return o=o|0,o|0}function IRe(o){return o=o|0,o|0}function CRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wRe(o,u,d,0),I=A}function wRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=EM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=BRe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,vRe(m,A)|0,A),I=d}function EM(){var o=0,l=0;if(s[7672]|0||(bz(9376),gr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(_r(9376)|0)){o=9376,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));bz(9376)}return 9376}function BRe(o){return o=o|0,0}function vRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=EM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Pz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(SRe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Pz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function SRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=DRe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,PRe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Pz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,bRe(o,k),xRe(k),I=M;return}}function DRe(o){return o=o|0,357913941}function PRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function bRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function xRe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function bz(o){o=o|0,RRe(o)}function kRe(o){o=o|0,QRe(o+24|0)}function QRe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function RRe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,xz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function xz(){return 1196}function TRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=FRe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=NRe(l,A)|0,I=u,l|0}function FRe(o){return o=o|0,(n[(EM()|0)+24>>2]|0)+(o*12|0)|0}function NRe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),Rb(gd[u&31](o)|0)|0}function ORe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LRe(o,u,d,1),I=A}function LRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=IM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=MRe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,URe(m,A)|0,A),I=d}function IM(){var o=0,l=0;if(s[7680]|0||(Qz(9412),gr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(_r(9412)|0)){o=9412,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Qz(9412)}return 9412}function MRe(o){return o=o|0,0}function URe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=IM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],kz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(_Re(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function kz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function _Re(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=HRe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,jRe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],kz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,GRe(o,k),qRe(k),I=M;return}}function HRe(o){return o=o|0,357913941}function jRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function GRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function qRe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Qz(o){o=o|0,VRe(o)}function WRe(o){o=o|0,YRe(o+24|0)}function YRe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function VRe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,Rz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Rz(){return 1200}function JRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=KRe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=zRe(l,A)|0,I=u,l|0}function KRe(o){return o=o|0,(n[(IM()|0)+24>>2]|0)+(o*12|0)|0}function zRe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),Tb(gd[u&31](o)|0)|0}function Tb(o){return o=o|0,o|0}function ZRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XRe(o,u,d,0),I=A}function XRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=CM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=$Re(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,eTe(m,A)|0,A),I=d}function CM(){var o=0,l=0;if(s[7688]|0||(Fz(9448),gr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(_r(9448)|0)){o=9448,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Fz(9448)}return 9448}function $Re(o){return o=o|0,0}function eTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=CM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Tz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(tTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Tz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function tTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=rTe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,nTe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Tz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,iTe(o,k),sTe(k),I=M;return}}function rTe(o){return o=o|0,357913941}function nTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function iTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function sTe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Fz(o){o=o|0,lTe(o)}function oTe(o){o=o|0,aTe(o+24|0)}function aTe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function lTe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,Nz()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Nz(){return 1204}function cTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=uTe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fTe(l,d,u),I=A}function uTe(o){return o=o|0,(n[(CM()|0)+24>>2]|0)+(o*12|0)|0}function fTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),wM(d,u),d=BM(d,u)|0,sp[A&31](o,d),I=m}function wM(o,l){o=o|0,l=l|0}function BM(o,l){return o=o|0,l=l|0,ATe(l)|0}function ATe(o){return o=o|0,o|0}function pTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hTe(o,u,d,0),I=A}function hTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=vM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=gTe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,dTe(m,A)|0,A),I=d}function vM(){var o=0,l=0;if(s[7696]|0||(Lz(9484),gr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(_r(9484)|0)){o=9484,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Lz(9484)}return 9484}function gTe(o){return o=o|0,0}function dTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=vM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Oz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(mTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Oz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function mTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=yTe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ETe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Oz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,ITe(o,k),CTe(k),I=M;return}}function yTe(o){return o=o|0,357913941}function ETe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function ITe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function CTe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Lz(o){o=o|0,vTe(o)}function wTe(o){o=o|0,BTe(o+24|0)}function BTe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function vTe(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,STe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function STe(){return 1212}function DTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=PTe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],bTe(l,m,u,A),I=d}function PTe(o){return o=o|0,(n[(vM()|0)+24>>2]|0)+(o*12|0)|0}function bTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),wM(m,u),m=BM(m,u)|0,ad(B,A),B=ld(B,A)|0,F2[d&15](o,m,B),I=k}function xTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kTe(o,u,d,1),I=A}function kTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=SM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=QTe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,RTe(m,A)|0,A),I=d}function SM(){var o=0,l=0;if(s[7704]|0||(Uz(9520),gr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(_r(9520)|0)){o=9520,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Uz(9520)}return 9520}function QTe(o){return o=o|0,0}function RTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=SM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Mz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(TTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Mz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function TTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=FTe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,NTe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Mz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,OTe(o,k),LTe(k),I=M;return}}function FTe(o){return o=o|0,357913941}function NTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function OTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function LTe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Uz(o){o=o|0,_Te(o)}function MTe(o){o=o|0,UTe(o+24|0)}function UTe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _Te(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,HTe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HTe(){return 1224}function jTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;return d=I,I=I+16|0,m=d+8|0,B=d,k=GTe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],A=+qTe(l,m,u),I=d,+A}function GTe(o){return o=o|0,(n[(SM()|0)+24>>2]|0)+(o*12|0)|0}function qTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(d,u),d=rp(d,u)|0,B=+kf(+OX[A&7](o,d)),I=m,+B}function WTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YTe(o,u,d,1),I=A}function YTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=DM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=VTe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,JTe(m,A)|0,A),I=d}function DM(){var o=0,l=0;if(s[7712]|0||(Hz(9556),gr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(_r(9556)|0)){o=9556,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Hz(9556)}return 9556}function VTe(o){return o=o|0,0}function JTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=DM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_z(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(KTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function _z(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function KTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=zTe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ZTe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],_z(m,A,u),n[R>>2]=(n[R>>2]|0)+12,XTe(o,k),$Te(k),I=M;return}}function zTe(o){return o=o|0,357913941}function ZTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function XTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function $Te(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Hz(o){o=o|0,rFe(o)}function eFe(o){o=o|0,tFe(o+24|0)}function tFe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function rFe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,nFe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function nFe(){return 1232}function iFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=sFe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=+oFe(l,d),I=A,+u}function sFe(o){return o=o|0,(n[(DM()|0)+24>>2]|0)+(o*12|0)|0}function oFe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),+ +kf(+NX[u&15](o))}function aFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lFe(o,u,d,1),I=A}function lFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=PM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=cFe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,uFe(m,A)|0,A),I=d}function PM(){var o=0,l=0;if(s[7720]|0||(Gz(9592),gr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(_r(9592)|0)){o=9592,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Gz(9592)}return 9592}function cFe(o){return o=o|0,0}function uFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=PM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],jz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(fFe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function jz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function fFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=AFe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,pFe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],jz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,hFe(o,k),gFe(k),I=M;return}}function AFe(o){return o=o|0,357913941}function pFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function hFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gFe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Gz(o){o=o|0,yFe(o)}function dFe(o){o=o|0,mFe(o+24|0)}function mFe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function yFe(o){o=o|0;var l=0;l=en()|0,tn(o,2,7,l,EFe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EFe(){return 1276}function IFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=CFe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=wFe(l,A)|0,I=u,l|0}function CFe(o){return o=o|0,(n[(PM()|0)+24>>2]|0)+(o*12|0)|0}function wFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+16|0,A=d,u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),sp[u&31](A,o),A=qz(A)|0,I=d,A|0}function qz(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=uM(Wz()|0)|0,A?(fM(l,A),AM(u,l),BFe(o,u),o=pM(l)|0):o=vFe(o)|0,I=d,o|0}function Wz(){var o=0;return s[7736]|0||(FFe(9640),gr(25,9640,U|0)|0,o=7736,n[o>>2]=1,n[o+4>>2]=0),9640}function BFe(o,l){o=o|0,l=l|0,bFe(l,o,o+8|0)|0}function vFe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Tl(8)|0,l=A,k=Kt(16)|0,n[k>>2]=n[o>>2],n[k+4>>2]=n[o+4>>2],n[k+8>>2]=n[o+8>>2],n[k+12>>2]=n[o+12>>2],m=l+4|0,n[m>>2]=k,o=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],bM(o,m,d),n[A>>2]=o,I=u,l|0}function bM(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1244,n[u+12>>2]=l,n[o+4>>2]=u}function SFe(o){o=o|0,$y(o),It(o)}function DFe(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function PFe(o){o=o|0,It(o)}function bFe(o,l,u){return o=o|0,l=l|0,u=u|0,l=xFe(n[o>>2]|0,l,u)|0,u=o+4|0,n[(n[u>>2]|0)+8>>2]=l,n[(n[u>>2]|0)+8>>2]|0}function xFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;return A=I,I=I+16|0,d=A,Fl(d),o=Os(o)|0,u=kFe(o,n[l>>2]|0,+E[u>>3])|0,Nl(d),I=A,u|0}function kFe(o,l,u){o=o|0,l=l|0,u=+u;var A=0;return A=da(QFe()|0)|0,l=Yy(l)|0,ou(0,A|0,o|0,l|0,+ +Ja(u))|0}function QFe(){var o=0;return s[7728]|0||(RFe(9628),o=7728,n[o>>2]=1,n[o+4>>2]=0),9628}function RFe(o){o=o|0,Qo(o,TFe()|0,2)}function TFe(){return 1264}function FFe(o){o=o|0,Lh(o)}function NFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OFe(o,u,d,1),I=A}function OFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=xM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=LFe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,MFe(m,A)|0,A),I=d}function xM(){var o=0,l=0;if(s[7744]|0||(Vz(9684),gr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(_r(9684)|0)){o=9684,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Vz(9684)}return 9684}function LFe(o){return o=o|0,0}function MFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=xM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Yz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(UFe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Yz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function UFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=_Fe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,HFe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Yz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,jFe(o,k),GFe(k),I=M;return}}function _Fe(o){return o=o|0,357913941}function HFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function jFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function GFe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Vz(o){o=o|0,YFe(o)}function qFe(o){o=o|0,WFe(o+24|0)}function WFe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function YFe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,VFe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function VFe(){return 1280}function JFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=KFe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=zFe(l,d,u)|0,I=A,u|0}function KFe(o){return o=o|0,(n[(xM()|0)+24>>2]|0)+(o*12|0)|0}function zFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return B=I,I=I+32|0,d=B,m=B+16|0,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(m,u),m=rp(m,u)|0,F2[A&15](d,o,m),m=qz(d)|0,I=B,m|0}function ZFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XFe(o,u,d,1),I=A}function XFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=kM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=$Fe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,eNe(m,A)|0,A),I=d}function kM(){var o=0,l=0;if(s[7752]|0||(Kz(9720),gr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(_r(9720)|0)){o=9720,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Kz(9720)}return 9720}function $Fe(o){return o=o|0,0}function eNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=kM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Jz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(tNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Jz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function tNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=rNe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,nNe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Jz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,iNe(o,k),sNe(k),I=M;return}}function rNe(o){return o=o|0,357913941}function nNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function iNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function sNe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Kz(o){o=o|0,lNe(o)}function oNe(o){o=o|0,aNe(o+24|0)}function aNe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function lNe(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,cNe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function cNe(){return 1288}function uNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=fNe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=ANe(l,A)|0,I=u,l|0}function fNe(o){return o=o|0,(n[(kM()|0)+24>>2]|0)+(o*12|0)|0}function ANe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),sd(gd[u&31](o)|0)|0}function pNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hNe(o,u,d,0),I=A}function hNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=QM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=gNe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,dNe(m,A)|0,A),I=d}function QM(){var o=0,l=0;if(s[7760]|0||(Zz(9756),gr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(_r(9756)|0)){o=9756,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Zz(9756)}return 9756}function gNe(o){return o=o|0,0}function dNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=QM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],zz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(mNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function zz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function mNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=yNe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ENe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],zz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,INe(o,k),CNe(k),I=M;return}}function yNe(o){return o=o|0,357913941}function ENe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function INe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function CNe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Zz(o){o=o|0,vNe(o)}function wNe(o){o=o|0,BNe(o+24|0)}function BNe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function vNe(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,SNe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function SNe(){return 1292}function DNe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=PNe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bNe(l,d,u),I=A}function PNe(o){return o=o|0,(n[(QM()|0)+24>>2]|0)+(o*12|0)|0}function bNe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),Qf(d,u),u=+Rf(d,u),RX[A&31](o,u),I=m}function xNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kNe(o,u,d,0),I=A}function kNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=RM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=QNe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,RNe(m,A)|0,A),I=d}function RM(){var o=0,l=0;if(s[7768]|0||($z(9792),gr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(_r(9792)|0)){o=9792,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));$z(9792)}return 9792}function QNe(o){return o=o|0,0}function RNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=RM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Xz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(TNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Xz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function TNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=FNe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,NNe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Xz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,ONe(o,k),LNe(k),I=M;return}}function FNe(o){return o=o|0,357913941}function NNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function ONe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function LNe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function $z(o){o=o|0,_Ne(o)}function MNe(o){o=o|0,UNe(o+24|0)}function UNe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _Ne(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,HNe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HNe(){return 1300}function jNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=GNe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],qNe(l,m,u,A),I=d}function GNe(o){return o=o|0,(n[(RM()|0)+24>>2]|0)+(o*12|0)|0}function qNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),tp(m,u),m=rp(m,u)|0,Qf(B,A),A=+Rf(B,A),_X[d&15](o,m,A),I=k}function WNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YNe(o,u,d,0),I=A}function YNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=TM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=VNe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,JNe(m,A)|0,A),I=d}function TM(){var o=0,l=0;if(s[7776]|0||(tZ(9828),gr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(_r(9828)|0)){o=9828,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));tZ(9828)}return 9828}function VNe(o){return o=o|0,0}function JNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=TM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],eZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(KNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function eZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function KNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=zNe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ZNe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],eZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,XNe(o,k),$Ne(k),I=M;return}}function zNe(o){return o=o|0,357913941}function ZNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function XNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function $Ne(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function tZ(o){o=o|0,rOe(o)}function eOe(o){o=o|0,tOe(o+24|0)}function tOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function rOe(o){o=o|0;var l=0;l=en()|0,tn(o,2,7,l,nOe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function nOe(){return 1312}function iOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=sOe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],oOe(l,d,u),I=A}function sOe(o){return o=o|0,(n[(TM()|0)+24>>2]|0)+(o*12|0)|0}function oOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(d,u),d=rp(d,u)|0,sp[A&31](o,d),I=m}function aOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lOe(o,u,d,0),I=A}function lOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=FM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=cOe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,uOe(m,A)|0,A),I=d}function FM(){var o=0,l=0;if(s[7784]|0||(nZ(9864),gr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(_r(9864)|0)){o=9864,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));nZ(9864)}return 9864}function cOe(o){return o=o|0,0}function uOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=FM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(fOe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function rZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function fOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=AOe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,pOe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],rZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,hOe(o,k),gOe(k),I=M;return}}function AOe(o){return o=o|0,357913941}function pOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function hOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function nZ(o){o=o|0,yOe(o)}function dOe(o){o=o|0,mOe(o+24|0)}function mOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function yOe(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,EOe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EOe(){return 1320}function IOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=COe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wOe(l,d,u),I=A}function COe(o){return o=o|0,(n[(FM()|0)+24>>2]|0)+(o*12|0)|0}function wOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),BOe(d,u),d=vOe(d,u)|0,sp[A&31](o,d),I=m}function BOe(o,l){o=o|0,l=l|0}function vOe(o,l){return o=o|0,l=l|0,SOe(l)|0}function SOe(o){return o=o|0,o|0}function DOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],POe(o,u,d,0),I=A}function POe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=NM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=bOe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,xOe(m,A)|0,A),I=d}function NM(){var o=0,l=0;if(s[7792]|0||(sZ(9900),gr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(_r(9900)|0)){o=9900,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));sZ(9900)}return 9900}function bOe(o){return o=o|0,0}function xOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=NM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],iZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(kOe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function iZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function kOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=QOe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ROe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],iZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,TOe(o,k),FOe(k),I=M;return}}function QOe(o){return o=o|0,357913941}function ROe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function TOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function FOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function sZ(o){o=o|0,LOe(o)}function NOe(o){o=o|0,OOe(o+24|0)}function OOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function LOe(o){o=o|0;var l=0;l=en()|0,tn(o,2,22,l,MOe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function MOe(){return 1344}function UOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;u=I,I=I+16|0,A=u+8|0,d=u,m=_Oe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],HOe(l,A),I=u}function _Oe(o){return o=o|0,(n[(NM()|0)+24>>2]|0)+(o*12|0)|0}function HOe(o,l){o=o|0,l=l|0;var u=0;u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),ip[u&127](o)}function jOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=OM()|0,o=GOe(u)|0,vn(m,l,d,o,qOe(u,A)|0,A)}function OM(){var o=0,l=0;if(s[7800]|0||(aZ(9936),gr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(_r(9936)|0)){o=9936,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));aZ(9936)}return 9936}function GOe(o){return o=o|0,o|0}function qOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=OM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(oZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(WOe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function oZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function WOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=YOe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,VOe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,oZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,JOe(o,d),KOe(d),I=k;return}}function YOe(o){return o=o|0,536870911}function VOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function JOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function KOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function aZ(o){o=o|0,XOe(o)}function zOe(o){o=o|0,ZOe(o+24|0)}function ZOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function XOe(o){o=o|0;var l=0;l=en()|0,tn(o,1,23,l,Nz()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function $Oe(o,l){o=o|0,l=l|0,tLe(n[(eLe(o)|0)>>2]|0,l)}function eLe(o){return o=o|0,(n[(OM()|0)+24>>2]|0)+(o<<3)|0}function tLe(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,wM(A,l),l=BM(A,l)|0,ip[o&127](l),I=u}function rLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=LM()|0,o=nLe(u)|0,vn(m,l,d,o,iLe(u,A)|0,A)}function LM(){var o=0,l=0;if(s[7808]|0||(cZ(9972),gr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(_r(9972)|0)){o=9972,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));cZ(9972)}return 9972}function nLe(o){return o=o|0,o|0}function iLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=LM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(lZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(sLe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function lZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function sLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=oLe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,aLe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,lZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,lLe(o,d),cLe(d),I=k;return}}function oLe(o){return o=o|0,536870911}function aLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function lLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function cLe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function cZ(o){o=o|0,ALe(o)}function uLe(o){o=o|0,fLe(o+24|0)}function fLe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function ALe(o){o=o|0;var l=0;l=en()|0,tn(o,1,9,l,pLe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function pLe(){return 1348}function hLe(o,l){return o=o|0,l=l|0,dLe(n[(gLe(o)|0)>>2]|0,l)|0}function gLe(o){return o=o|0,(n[(LM()|0)+24>>2]|0)+(o<<3)|0}function dLe(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,uZ(A,l),l=fZ(A,l)|0,l=Rb(gd[o&31](l)|0)|0,I=u,l|0}function uZ(o,l){o=o|0,l=l|0}function fZ(o,l){return o=o|0,l=l|0,mLe(l)|0}function mLe(o){return o=o|0,o|0}function yLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=MM()|0,o=ELe(u)|0,vn(m,l,d,o,ILe(u,A)|0,A)}function MM(){var o=0,l=0;if(s[7816]|0||(pZ(10008),gr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(_r(10008)|0)){o=10008,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));pZ(10008)}return 10008}function ELe(o){return o=o|0,o|0}function ILe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=MM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(AZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(CLe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function AZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function CLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=wLe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,BLe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,AZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,vLe(o,d),SLe(d),I=k;return}}function wLe(o){return o=o|0,536870911}function BLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function vLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function SLe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function pZ(o){o=o|0,bLe(o)}function DLe(o){o=o|0,PLe(o+24|0)}function PLe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function bLe(o){o=o|0;var l=0;l=en()|0,tn(o,1,15,l,xz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function xLe(o){return o=o|0,QLe(n[(kLe(o)|0)>>2]|0)|0}function kLe(o){return o=o|0,(n[(MM()|0)+24>>2]|0)+(o<<3)|0}function QLe(o){return o=o|0,Rb(Vb[o&7]()|0)|0}function RLe(){var o=0;return s[7832]|0||(_Le(10052),gr(25,10052,U|0)|0,o=7832,n[o>>2]=1,n[o+4>>2]=0),10052}function TLe(o,l){o=o|0,l=l|0,n[o>>2]=FLe()|0,n[o+4>>2]=NLe()|0,n[o+12>>2]=l,n[o+8>>2]=OLe()|0,n[o+32>>2]=2}function FLe(){return 11709}function NLe(){return 1188}function OLe(){return Fb()|0}function LLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(MLe(u),It(u)):l|0&&(Oy(l),It(l))}function Hh(o,l){return o=o|0,l=l|0,l&o|0}function MLe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function Fb(){var o=0;return s[7824]|0||(n[2511]=ULe()|0,n[2512]=0,o=7824,n[o>>2]=1,n[o+4>>2]=0),10044}function ULe(){return 0}function _Le(o){o=o|0,Lh(o)}function HLe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0;l=I,I=I+32|0,u=l+24|0,m=l+16|0,d=l+8|0,A=l,jLe(o,4827),GLe(o,4834,3)|0,qLe(o,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[u>>2]=n[m>>2],n[u+4>>2]=n[m+4>>2],WLe(o,4841,u)|0,n[d>>2]=1,n[d+4>>2]=0,n[u>>2]=n[d>>2],n[u+4>>2]=n[d+4>>2],YLe(o,4871,u)|0,n[A>>2]=10,n[A+4>>2]=0,n[u>>2]=n[A>>2],n[u+4>>2]=n[A+4>>2],VLe(o,4891,u)|0,I=l}function jLe(o,l){o=o|0,l=l|0;var u=0;u=SUe()|0,n[o>>2]=u,DUe(u,l),jh(n[o>>2]|0)}function GLe(o,l,u){return o=o|0,l=l|0,u=u|0,cUe(o,Bn(l)|0,u,0),o|0}function qLe(o,l,u){return o=o|0,l=l|0,u=u|0,JMe(o,Bn(l)|0,u,0),o|0}function WLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xMe(o,l,d),I=A,o|0}function YLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],uMe(o,l,d),I=A,o|0}function VLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JLe(o,l,d),I=A,o|0}function JLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KLe(o,u,d,1),I=A}function KLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=UM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=zLe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,ZLe(m,A)|0,A),I=d}function UM(){var o=0,l=0;if(s[7840]|0||(gZ(10100),gr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(_r(10100)|0)){o=10100,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));gZ(10100)}return 10100}function zLe(o){return o=o|0,0}function ZLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=UM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],hZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(XLe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function hZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function XLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=$Le(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,eMe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],hZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,tMe(o,k),rMe(k),I=M;return}}function $Le(o){return o=o|0,357913941}function eMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function tMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function rMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function gZ(o){o=o|0,sMe(o)}function nMe(o){o=o|0,iMe(o+24|0)}function iMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function sMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,oMe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function oMe(){return 1364}function aMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=lMe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=cMe(l,d,u)|0,I=A,u|0}function lMe(o){return o=o|0,(n[(UM()|0)+24>>2]|0)+(o*12|0)|0}function cMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(d,u),d=rp(d,u)|0,d=wz(hU[A&15](o,d)|0)|0,I=m,d|0}function uMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fMe(o,u,d,0),I=A}function fMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=_M()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=AMe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,pMe(m,A)|0,A),I=d}function _M(){var o=0,l=0;if(s[7848]|0||(mZ(10136),gr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(_r(10136)|0)){o=10136,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));mZ(10136)}return 10136}function AMe(o){return o=o|0,0}function pMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=_M()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],dZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(hMe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function dZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function hMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=gMe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,dMe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],dZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,mMe(o,k),yMe(k),I=M;return}}function gMe(o){return o=o|0,357913941}function dMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function mMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function yMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function mZ(o){o=o|0,CMe(o)}function EMe(o){o=o|0,IMe(o+24|0)}function IMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function CMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,9,l,wMe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function wMe(){return 1372}function BMe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=vMe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SMe(l,d,u),I=A}function vMe(o){return o=o|0,(n[(_M()|0)+24>>2]|0)+(o*12|0)|0}function SMe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=$e;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),DMe(d,u),B=y(PMe(d,u)),QX[A&1](o,B),I=m}function DMe(o,l){o=o|0,l=+l}function PMe(o,l){return o=o|0,l=+l,y(bMe(l))}function bMe(o){return o=+o,y(o)}function xMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kMe(o,u,d,0),I=A}function kMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=HM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=QMe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,RMe(m,A)|0,A),I=d}function HM(){var o=0,l=0;if(s[7856]|0||(EZ(10172),gr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(_r(10172)|0)){o=10172,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));EZ(10172)}return 10172}function QMe(o){return o=o|0,0}function RMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=HM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],yZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(TMe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function yZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function TMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=FMe(o)|0,m>>>0>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,NMe(k,ae>>>0>>1>>>0?q>>>0>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],yZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,OMe(o,k),LMe(k),I=M;return}}function FMe(o){return o=o|0,357913941}function NMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function OMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function LMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function EZ(o){o=o|0,_Me(o)}function MMe(o){o=o|0,UMe(o+24|0)}function UMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _Me(o){o=o|0;var l=0;l=en()|0,tn(o,2,3,l,HMe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HMe(){return 1380}function jMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=GMe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],qMe(l,m,u,A),I=d}function GMe(o){return o=o|0,(n[(HM()|0)+24>>2]|0)+(o*12|0)|0}function qMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),tp(m,u),m=rp(m,u)|0,WMe(B,A),B=YMe(B,A)|0,F2[d&15](o,m,B),I=k}function WMe(o,l){o=o|0,l=l|0}function YMe(o,l){return o=o|0,l=l|0,VMe(l)|0}function VMe(o){return o=o|0,(o|0)!=0|0}function JMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=jM()|0,o=KMe(u)|0,vn(m,l,d,o,zMe(u,A)|0,A)}function jM(){var o=0,l=0;if(s[7864]|0||(CZ(10208),gr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(_r(10208)|0)){o=10208,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));CZ(10208)}return 10208}function KMe(o){return o=o|0,o|0}function zMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=jM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(IZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(ZMe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function IZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function ZMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=XMe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,$Me(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,IZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,eUe(o,d),tUe(d),I=k;return}}function XMe(o){return o=o|0,536870911}function $Me(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function eUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function tUe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function CZ(o){o=o|0,iUe(o)}function rUe(o){o=o|0,nUe(o+24|0)}function nUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function iUe(o){o=o|0;var l=0;l=en()|0,tn(o,1,24,l,sUe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function sUe(){return 1392}function oUe(o,l){o=o|0,l=l|0,lUe(n[(aUe(o)|0)>>2]|0,l)}function aUe(o){return o=o|0,(n[(jM()|0)+24>>2]|0)+(o<<3)|0}function lUe(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,uZ(A,l),l=fZ(A,l)|0,ip[o&127](l),I=u}function cUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=GM()|0,o=uUe(u)|0,vn(m,l,d,o,fUe(u,A)|0,A)}function GM(){var o=0,l=0;if(s[7872]|0||(BZ(10244),gr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(_r(10244)|0)){o=10244,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));BZ(10244)}return 10244}function uUe(o){return o=o|0,o|0}function fUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=GM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(wZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(AUe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function wZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function AUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=pUe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,hUe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,wZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,gUe(o,d),dUe(d),I=k;return}}function pUe(o){return o=o|0,536870911}function hUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function gUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function dUe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function BZ(o){o=o|0,EUe(o)}function mUe(o){o=o|0,yUe(o+24|0)}function yUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function EUe(o){o=o|0;var l=0;l=en()|0,tn(o,1,16,l,IUe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function IUe(){return 1400}function CUe(o){return o=o|0,BUe(n[(wUe(o)|0)>>2]|0)|0}function wUe(o){return o=o|0,(n[(GM()|0)+24>>2]|0)+(o<<3)|0}function BUe(o){return o=o|0,vUe(Vb[o&7]()|0)|0}function vUe(o){return o=o|0,o|0}function SUe(){var o=0;return s[7880]|0||(RUe(10280),gr(25,10280,U|0)|0,o=7880,n[o>>2]=1,n[o+4>>2]=0),10280}function DUe(o,l){o=o|0,l=l|0,n[o>>2]=PUe()|0,n[o+4>>2]=bUe()|0,n[o+12>>2]=l,n[o+8>>2]=xUe()|0,n[o+32>>2]=4}function PUe(){return 11711}function bUe(){return 1356}function xUe(){return Fb()|0}function kUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(QUe(u),It(u)):l|0&&(Kg(l),It(l))}function QUe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function RUe(o){o=o|0,Lh(o)}function TUe(o){o=o|0,FUe(o,4920),NUe(o)|0,OUe(o)|0}function FUe(o,l){o=o|0,l=l|0;var u=0;u=Wz()|0,n[o>>2]=u,n_e(u,l),jh(n[o>>2]|0)}function NUe(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,VUe()|0),o|0}function OUe(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,LUe()|0),o|0}function LUe(){var o=0;return s[7888]|0||(vZ(10328),gr(53,10328,U|0)|0,o=7888,n[o>>2]=1,n[o+4>>2]=0),_r(10328)|0||vZ(10328),10328}function cd(o,l){o=o|0,l=l|0,vn(o,0,l,0,0,0)}function vZ(o){o=o|0,_Ue(o),ud(o,10)}function MUe(o){o=o|0,UUe(o+24|0)}function UUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function _Ue(o){o=o|0;var l=0;l=en()|0,tn(o,5,1,l,qUe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HUe(o,l,u){o=o|0,l=l|0,u=+u,jUe(o,l,u)}function ud(o,l){o=o|0,l=l|0,n[o+20>>2]=l}function jUe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,m=A+8|0,k=A+13|0,d=A,B=A+12|0,tp(k,l),n[m>>2]=rp(k,l)|0,Qf(B,u),E[d>>3]=+Rf(B,u),GUe(o,m,d),I=A}function GUe(o,l,u){o=o|0,l=l|0,u=u|0,Rl(o+8|0,n[l>>2]|0,+E[u>>3]),s[o+24>>0]=1}function qUe(){return 1404}function WUe(o,l){return o=o|0,l=+l,YUe(o,l)|0}function YUe(o,l){o=o|0,l=+l;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return A=I,I=I+16|0,m=A+4|0,B=A+8|0,k=A,d=Tl(8)|0,u=d,R=Kt(16)|0,tp(m,o),o=rp(m,o)|0,Qf(B,l),Rl(R,o,+Rf(B,l)),B=u+4|0,n[B>>2]=R,o=Kt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],bM(o,B,m),n[d>>2]=o,I=A,u|0}function VUe(){var o=0;return s[7896]|0||(SZ(10364),gr(54,10364,U|0)|0,o=7896,n[o>>2]=1,n[o+4>>2]=0),_r(10364)|0||SZ(10364),10364}function SZ(o){o=o|0,zUe(o),ud(o,55)}function JUe(o){o=o|0,KUe(o+24|0)}function KUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function zUe(o){o=o|0;var l=0;l=en()|0,tn(o,5,4,l,e_e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function ZUe(o){o=o|0,XUe(o)}function XUe(o){o=o|0,$Ue(o)}function $Ue(o){o=o|0,DZ(o+8|0),s[o+24>>0]=1}function DZ(o){o=o|0,n[o>>2]=0,E[o+8>>3]=0}function e_e(){return 1424}function t_e(){return r_e()|0}function r_e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Tl(8)|0,o=u,A=Kt(16)|0,DZ(A),m=o+4|0,n[m>>2]=A,A=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],bM(A,m,d),n[u>>2]=A,I=l,o|0}function n_e(o,l){o=o|0,l=l|0,n[o>>2]=i_e()|0,n[o+4>>2]=s_e()|0,n[o+12>>2]=l,n[o+8>>2]=o_e()|0,n[o+32>>2]=5}function i_e(){return 11710}function s_e(){return 1416}function o_e(){return Nb()|0}function a_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(l_e(u),It(u)):l|0&&It(l)}function l_e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function Nb(){var o=0;return s[7904]|0||(n[2600]=c_e()|0,n[2601]=0,o=7904,n[o>>2]=1,n[o+4>>2]=0),10400}function c_e(){return n[357]|0}function u_e(o){o=o|0,f_e(o,4926),A_e(o)|0}function f_e(o,l){o=o|0,l=l|0;var u=0;u=hz()|0,n[o>>2]=u,B_e(u,l),jh(n[o>>2]|0)}function A_e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,p_e()|0),o|0}function p_e(){var o=0;return s[7912]|0||(PZ(10412),gr(56,10412,U|0)|0,o=7912,n[o>>2]=1,n[o+4>>2]=0),_r(10412)|0||PZ(10412),10412}function PZ(o){o=o|0,d_e(o),ud(o,57)}function h_e(o){o=o|0,g_e(o+24|0)}function g_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function d_e(o){o=o|0;var l=0;l=en()|0,tn(o,5,5,l,I_e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function m_e(o){o=o|0,y_e(o)}function y_e(o){o=o|0,E_e(o)}function E_e(o){o=o|0;var l=0,u=0;l=o+8|0,u=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(u|0));s[o+56>>0]=1}function I_e(){return 1432}function C_e(){return w_e()|0}function w_e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0,k=0;B=I,I=I+16|0,o=B+4|0,l=B,u=Tl(8)|0,A=u,d=Kt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=A+4|0,n[m>>2]=d,k=Kt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[o>>2]=n[l>>2],gz(k,m,o),n[u>>2]=k,I=B,A|0}function B_e(o,l){o=o|0,l=l|0,n[o>>2]=v_e()|0,n[o+4>>2]=S_e()|0,n[o+12>>2]=l,n[o+8>>2]=D_e()|0,n[o+32>>2]=6}function v_e(){return 11704}function S_e(){return 1436}function D_e(){return Nb()|0}function P_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(b_e(u),It(u)):l|0&&It(l)}function b_e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function x_e(o){o=o|0,k_e(o,4933),Q_e(o)|0,R_e(o)|0}function k_e(o,l){o=o|0,l=l|0;var u=0;u=r4e()|0,n[o>>2]=u,n4e(u,l),jh(n[o>>2]|0)}function Q_e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,Y_e()|0),o|0}function R_e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,T_e()|0),o|0}function T_e(){var o=0;return s[7920]|0||(bZ(10452),gr(58,10452,U|0)|0,o=7920,n[o>>2]=1,n[o+4>>2]=0),_r(10452)|0||bZ(10452),10452}function bZ(o){o=o|0,O_e(o),ud(o,1)}function F_e(o){o=o|0,N_e(o+24|0)}function N_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function O_e(o){o=o|0;var l=0;l=en()|0,tn(o,5,1,l,__e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function L_e(o,l,u){o=o|0,l=+l,u=+u,M_e(o,l,u)}function M_e(o,l,u){o=o|0,l=+l,u=+u;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,m=A+8|0,k=A+17|0,d=A,B=A+16|0,Qf(k,l),E[m>>3]=+Rf(k,l),Qf(B,u),E[d>>3]=+Rf(B,u),U_e(o,m,d),I=A}function U_e(o,l,u){o=o|0,l=l|0,u=u|0,xZ(o+8|0,+E[l>>3],+E[u>>3]),s[o+24>>0]=1}function xZ(o,l,u){o=o|0,l=+l,u=+u,E[o>>3]=l,E[o+8>>3]=u}function __e(){return 1472}function H_e(o,l){return o=+o,l=+l,j_e(o,l)|0}function j_e(o,l){o=+o,l=+l;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return A=I,I=I+16|0,B=A+4|0,k=A+8|0,R=A,d=Tl(8)|0,u=d,m=Kt(16)|0,Qf(B,o),o=+Rf(B,o),Qf(k,l),xZ(m,o,+Rf(k,l)),k=u+4|0,n[k>>2]=m,m=Kt(8)|0,k=n[k>>2]|0,n[R>>2]=0,n[B>>2]=n[R>>2],kZ(m,k,B),n[d>>2]=m,I=A,u|0}function kZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1452,n[u+12>>2]=l,n[o+4>>2]=u}function G_e(o){o=o|0,$y(o),It(o)}function q_e(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function W_e(o){o=o|0,It(o)}function Y_e(){var o=0;return s[7928]|0||(QZ(10488),gr(59,10488,U|0)|0,o=7928,n[o>>2]=1,n[o+4>>2]=0),_r(10488)|0||QZ(10488),10488}function QZ(o){o=o|0,K_e(o),ud(o,60)}function V_e(o){o=o|0,J_e(o+24|0)}function J_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function K_e(o){o=o|0;var l=0;l=en()|0,tn(o,5,6,l,$_e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function z_e(o){o=o|0,Z_e(o)}function Z_e(o){o=o|0,X_e(o)}function X_e(o){o=o|0,RZ(o+8|0),s[o+24>>0]=1}function RZ(o){o=o|0,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0}function $_e(){return 1492}function e4e(){return t4e()|0}function t4e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Tl(8)|0,o=u,A=Kt(16)|0,RZ(A),m=o+4|0,n[m>>2]=A,A=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],kZ(A,m,d),n[u>>2]=A,I=l,o|0}function r4e(){var o=0;return s[7936]|0||(c4e(10524),gr(25,10524,U|0)|0,o=7936,n[o>>2]=1,n[o+4>>2]=0),10524}function n4e(o,l){o=o|0,l=l|0,n[o>>2]=i4e()|0,n[o+4>>2]=s4e()|0,n[o+12>>2]=l,n[o+8>>2]=o4e()|0,n[o+32>>2]=7}function i4e(){return 11700}function s4e(){return 1484}function o4e(){return Nb()|0}function a4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(l4e(u),It(u)):l|0&&It(l)}function l4e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function c4e(o){o=o|0,Lh(o)}function u4e(o,l,u){o=o|0,l=l|0,u=u|0,o=Bn(l)|0,l=f4e(u)|0,u=A4e(u,0)|0,j4e(o,l,u,qM()|0,0)}function f4e(o){return o=o|0,o|0}function A4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=qM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(FZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(E4e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function qM(){var o=0,l=0;if(s[7944]|0||(TZ(10568),gr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(_r(10568)|0)){o=10568,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));TZ(10568)}return 10568}function TZ(o){o=o|0,g4e(o)}function p4e(o){o=o|0,h4e(o+24|0)}function h4e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function g4e(o){o=o|0;var l=0;l=en()|0,tn(o,1,17,l,Rz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function d4e(o){return o=o|0,y4e(n[(m4e(o)|0)>>2]|0)|0}function m4e(o){return o=o|0,(n[(qM()|0)+24>>2]|0)+(o<<3)|0}function y4e(o){return o=o|0,Tb(Vb[o&7]()|0)|0}function FZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function E4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=I4e(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,C4e(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,FZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,w4e(o,d),B4e(d),I=k;return}}function I4e(o){return o=o|0,536870911}function C4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function w4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function B4e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function v4e(){S4e()}function S4e(){D4e(10604)}function D4e(o){o=o|0,P4e(o,4955)}function P4e(o,l){o=o|0,l=l|0;var u=0;u=b4e()|0,n[o>>2]=u,x4e(u,l),jh(n[o>>2]|0)}function b4e(){var o=0;return s[7952]|0||(M4e(10612),gr(25,10612,U|0)|0,o=7952,n[o>>2]=1,n[o+4>>2]=0),10612}function x4e(o,l){o=o|0,l=l|0,n[o>>2]=T4e()|0,n[o+4>>2]=F4e()|0,n[o+12>>2]=l,n[o+8>>2]=N4e()|0,n[o+32>>2]=8}function jh(o){o=o|0;var l=0,u=0;l=I,I=I+16|0,u=l,Jy()|0,n[u>>2]=o,k4e(10608,u),I=l}function Jy(){return s[11714]|0||(n[2652]=0,gr(62,10608,U|0)|0,s[11714]=1),10608}function k4e(o,l){o=o|0,l=l|0;var u=0;u=Kt(8)|0,n[u+4>>2]=n[l>>2],n[u>>2]=n[o>>2],n[o>>2]=u}function Q4e(o){o=o|0,R4e(o)}function R4e(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,It(u);while(l|0);n[o>>2]=0}function T4e(){return 11715}function F4e(){return 1496}function N4e(){return Fb()|0}function O4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(L4e(u),It(u)):l|0&&It(l)}function L4e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function M4e(o){o=o|0,Lh(o)}function U4e(o,l){o=o|0,l=l|0;var u=0,A=0;Jy()|0,u=n[2652]|0;e:do if(u|0){for(;A=n[u+4>>2]|0,!(A|0&&!(gX(WM(A)|0,o)|0));)if(u=n[u>>2]|0,!u)break e;_4e(A,l)}while(!1)}function WM(o){return o=o|0,n[o+12>>2]|0}function _4e(o,l){o=o|0,l=l|0;var u=0;o=o+36|0,u=n[o>>2]|0,u|0&&(Sf(u),It(u)),u=Kt(4)|0,Db(u,l),n[o>>2]=u}function YM(){return s[11716]|0||(n[2664]=0,gr(63,10656,U|0)|0,s[11716]=1),10656}function NZ(){var o=0;return s[11717]|0?o=n[2665]|0:(H4e(),n[2665]=1504,s[11717]=1,o=1504),o|0}function H4e(){s[11740]|0||(s[11718]=yr(yr(8,0)|0,0)|0,s[11719]=yr(yr(0,0)|0,0)|0,s[11720]=yr(yr(0,16)|0,0)|0,s[11721]=yr(yr(8,0)|0,0)|0,s[11722]=yr(yr(0,0)|0,0)|0,s[11723]=yr(yr(8,0)|0,0)|0,s[11724]=yr(yr(0,0)|0,0)|0,s[11725]=yr(yr(8,0)|0,0)|0,s[11726]=yr(yr(0,0)|0,0)|0,s[11727]=yr(yr(8,0)|0,0)|0,s[11728]=yr(yr(0,0)|0,0)|0,s[11729]=yr(yr(0,0)|0,32)|0,s[11730]=yr(yr(0,0)|0,32)|0,s[11740]=1)}function OZ(){return 1572}function j4e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0;m=I,I=I+32|0,L=m+16|0,M=m+12|0,R=m+8|0,k=m+4|0,B=m,n[L>>2]=o,n[M>>2]=l,n[R>>2]=u,n[k>>2]=A,n[B>>2]=d,YM()|0,G4e(10656,L,M,R,k,B),I=m}function G4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0;B=Kt(24)|0,fz(B+4|0,n[l>>2]|0,n[u>>2]|0,n[A>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[o>>2],n[o>>2]=B}function LZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0;if(ct=I,I=I+32|0,Le=ct+20|0,Qe=ct+8|0,tt=ct+4|0,Xe=ct,l=n[l>>2]|0,l|0){Ye=Le+4|0,R=Le+8|0,M=Qe+4|0,L=Qe+8|0,q=Qe+8|0,ae=Le+8|0;do{if(B=l+4|0,k=VM(B)|0,k|0){if(d=b2(k)|0,n[Le>>2]=0,n[Ye>>2]=0,n[R>>2]=0,A=(x2(k)|0)+1|0,q4e(Le,A),A|0)for(;A=A+-1|0,Pu(Qe,n[d>>2]|0),m=n[Ye>>2]|0,m>>>0<(n[ae>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[Ye>>2]=(n[Ye>>2]|0)+4):JM(Le,Qe),A;)d=d+4|0;A=k2(k)|0,n[Qe>>2]=0,n[M>>2]=0,n[L>>2]=0;e:do if(n[A>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?W4e(Qe,A):(n[d>>2]=n[A>>2],n[M>>2]=(n[M>>2]|0)+4),A=A+4|0,!(n[A>>2]|0))break e;d=n[M>>2]|0,m=n[q>>2]|0}while(!1);n[tt>>2]=Ob(B)|0,n[Xe>>2]=_r(k)|0,Y4e(u,o,tt,Xe,Le,Qe),KM(Qe),np(Le)}l=n[l>>2]|0}while(l|0)}I=ct}function VM(o){return o=o|0,n[o+12>>2]|0}function b2(o){return o=o|0,n[o+12>>2]|0}function x2(o){return o=o|0,n[o+16>>2]|0}function q4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+32|0,u=d,A=n[o>>2]|0,(n[o+8>>2]|0)-A>>2>>>0>>0&&(WZ(u,l,(n[o+4>>2]|0)-A>>2,o+8|0),YZ(o,u),VZ(u)),I=d}function JM(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;if(B=I,I=I+32|0,u=B,A=o+4|0,d=((n[A>>2]|0)-(n[o>>2]|0)>>2)+1|0,m=qZ(o)|0,m>>>0>>0)sn(o);else{k=n[o>>2]|0,M=(n[o+8>>2]|0)-k|0,R=M>>1,WZ(u,M>>2>>>0>>1>>>0?R>>>0>>0?d:R:m,(n[A>>2]|0)-k>>2,o+8|0),m=u+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,YZ(o,u),VZ(u),I=B;return}}function k2(o){return o=o|0,n[o+8>>2]|0}function W4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;if(B=I,I=I+32|0,u=B,A=o+4|0,d=((n[A>>2]|0)-(n[o>>2]|0)>>2)+1|0,m=GZ(o)|0,m>>>0>>0)sn(o);else{k=n[o>>2]|0,M=(n[o+8>>2]|0)-k|0,R=M>>1,f3e(u,M>>2>>>0>>1>>>0?R>>>0>>0?d:R:m,(n[A>>2]|0)-k>>2,o+8|0),m=u+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,A3e(o,u),p3e(u),I=B;return}}function Ob(o){return o=o|0,n[o>>2]|0}function Y4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,V4e(o,l,u,A,d,m)}function KM(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),It(u))}function np(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),It(u))}function V4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0;B=I,I=I+48|0,L=B+40|0,k=B+32|0,q=B+24|0,R=B+12|0,M=B,Fl(k),o=Os(o)|0,n[q>>2]=n[l>>2],u=n[u>>2]|0,A=n[A>>2]|0,zM(R,d),J4e(M,m),n[L>>2]=n[q>>2],K4e(o,L,u,A,R,M),KM(M),np(R),Nl(k),I=B}function zM(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(c3e(o,A),u3e(o,n[l>>2]|0,n[u>>2]|0,A))}function J4e(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(a3e(o,A),l3e(o,n[l>>2]|0,n[u>>2]|0,A))}function K4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0;B=I,I=I+32|0,L=B+28|0,q=B+24|0,k=B+12|0,R=B,M=da(z4e()|0)|0,n[q>>2]=n[l>>2],n[L>>2]=n[q>>2],l=fd(L)|0,u=MZ(u)|0,A=ZM(A)|0,n[k>>2]=n[d>>2],L=d+4|0,n[k+4>>2]=n[L>>2],q=d+8|0,n[k+8>>2]=n[q>>2],n[q>>2]=0,n[L>>2]=0,n[d>>2]=0,d=XM(k)|0,n[R>>2]=n[m>>2],L=m+4|0,n[R+4>>2]=n[L>>2],q=m+8|0,n[R+8>>2]=n[q>>2],n[q>>2]=0,n[L>>2]=0,n[m>>2]=0,lu(0,M|0,o|0,l|0,u|0,A|0,d|0,Z4e(R)|0)|0,KM(R),np(k),I=B}function z4e(){var o=0;return s[7968]|0||(s3e(10708),o=7968,n[o>>2]=1,n[o+4>>2]=0),10708}function fd(o){return o=o|0,_Z(o)|0}function MZ(o){return o=o|0,UZ(o)|0}function ZM(o){return o=o|0,Tb(o)|0}function XM(o){return o=o|0,$4e(o)|0}function Z4e(o){return o=o|0,X4e(o)|0}function X4e(o){o=o|0;var l=0,u=0,A=0;if(A=(n[o+4>>2]|0)-(n[o>>2]|0)|0,u=A>>2,A=Tl(A+4|0)|0,n[A>>2]=u,u|0){l=0;do n[A+4+(l<<2)>>2]=UZ(n[(n[o>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(u|0))}return A|0}function UZ(o){return o=o|0,o|0}function $4e(o){o=o|0;var l=0,u=0,A=0;if(A=(n[o+4>>2]|0)-(n[o>>2]|0)|0,u=A>>2,A=Tl(A+4|0)|0,n[A>>2]=u,u|0){l=0;do n[A+4+(l<<2)>>2]=_Z((n[o>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(u|0))}return A|0}function _Z(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=uM(HZ()|0)|0,A?(fM(l,A),AM(u,l),Nje(o,u),o=pM(l)|0):o=e3e(o)|0,I=d,o|0}function HZ(){var o=0;return s[7960]|0||(i3e(10664),gr(25,10664,U|0)|0,o=7960,n[o>>2]=1,n[o+4>>2]=0),10664}function e3e(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Tl(8)|0,l=A,k=Kt(4)|0,n[k>>2]=n[o>>2],m=l+4|0,n[m>>2]=k,o=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],jZ(o,m,d),n[A>>2]=o,I=u,l|0}function jZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1656,n[u+12>>2]=l,n[o+4>>2]=u}function t3e(o){o=o|0,$y(o),It(o)}function r3e(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function n3e(o){o=o|0,It(o)}function i3e(o){o=o|0,Lh(o)}function s3e(o){o=o|0,Qo(o,o3e()|0,5)}function o3e(){return 1676}function a3e(o,l){o=o|0,l=l|0;var u=0;if((GZ(o)|0)>>>0>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Kt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function l3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function GZ(o){return o=o|0,1073741823}function c3e(o,l){o=o|0,l=l|0;var u=0;if((qZ(o)|0)>>>0>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Kt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function u3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function qZ(o){return o=o|0,1073741823}function f3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function A3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function p3e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&It(o)}function WZ(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function YZ(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function VZ(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&It(o)}function h3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0;if(Qe=I,I=I+32|0,L=Qe+20|0,q=Qe+12|0,M=Qe+16|0,ae=Qe+4|0,Ye=Qe,Le=Qe+8|0,k=NZ()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(R=n[k+8>>2]|0,k=n[k+4>>2]|0;Pu(L,B),g3e(o,L,k,R),m=m+4|0,B=n[m>>2]|0,B;)R=R+1|0,k=k+1|0;if(m=OZ()|0,B=n[m>>2]|0,B|0)do Pu(L,B),n[q>>2]=n[m+4>>2],d3e(l,L,q),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[(Jy()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,Pu(L,n[(Ky(l)|0)>>2]|0),n[q>>2]=WM(l)|0,m3e(u,L,q),m=n[m>>2]|0;while(m|0);if(Pu(M,0),m=YM()|0,n[L>>2]=n[M>>2],LZ(L,m,d),m=n[(Jy()|0)>>2]|0,m|0){o=L+4|0,l=L+8|0,u=L+8|0;do{if(R=n[m+4>>2]|0,Pu(q,n[(Ky(R)|0)>>2]|0),y3e(ae,JZ(R)|0),B=n[ae>>2]|0,B|0){n[L>>2]=0,n[o>>2]=0,n[l>>2]=0;do Pu(Ye,n[(Ky(n[B+4>>2]|0)|0)>>2]|0),k=n[o>>2]|0,k>>>0<(n[u>>2]|0)>>>0?(n[k>>2]=n[Ye>>2],n[o>>2]=(n[o>>2]|0)+4):JM(L,Ye),B=n[B>>2]|0;while(B|0);E3e(A,q,L),np(L)}n[Le>>2]=n[q>>2],M=KZ(R)|0,n[L>>2]=n[Le>>2],LZ(L,M,d),mz(ae),m=n[m>>2]|0}while(m|0)}I=Qe}function g3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,Q3e(o,l,u,A)}function d3e(o,l,u){o=o|0,l=l|0,u=u|0,k3e(o,l,u)}function Ky(o){return o=o|0,o|0}function m3e(o,l,u){o=o|0,l=l|0,u=u|0,D3e(o,l,u)}function JZ(o){return o=o|0,o+16|0}function y3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;if(m=I,I=I+16|0,d=m+8|0,u=m,n[o>>2]=0,A=n[l>>2]|0,n[d>>2]=A,n[u>>2]=o,u=S3e(u)|0,A|0){if(A=Kt(12)|0,B=(zZ(d)|0)+4|0,o=n[B+4>>2]|0,l=A+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=o,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)o=A;else for(l=A;o=Kt(12)|0,R=(zZ(d)|0)+4|0,k=n[R+4>>2]|0,B=o+4|0,n[B>>2]=n[R>>2],n[B+4>>2]=k,n[l>>2]=o,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=o;n[o>>2]=n[u>>2],n[u>>2]=A}I=m}function E3e(o,l,u){o=o|0,l=l|0,u=u|0,I3e(o,l,u)}function KZ(o){return o=o|0,o+24|0}function I3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,B=A+24|0,d=A+16|0,k=A+12|0,m=A,Fl(d),o=Os(o)|0,n[k>>2]=n[l>>2],zM(m,u),n[B>>2]=n[k>>2],C3e(o,B,m),np(m),Nl(d),I=A}function C3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,B=A+16|0,k=A+12|0,d=A,m=da(w3e()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=fd(B)|0,n[d>>2]=n[u>>2],B=u+4|0,n[d+4>>2]=n[B>>2],k=u+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[u>>2]=0,Rs(0,m|0,o|0,l|0,XM(d)|0)|0,np(d),I=A}function w3e(){var o=0;return s[7976]|0||(B3e(10720),o=7976,n[o>>2]=1,n[o+4>>2]=0),10720}function B3e(o){o=o|0,Qo(o,v3e()|0,2)}function v3e(){return 1732}function S3e(o){return o=o|0,n[o>>2]|0}function zZ(o){return o=o|0,n[o>>2]|0}function D3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+32|0,m=A+16|0,d=A+8|0,B=A,Fl(d),o=Os(o)|0,n[B>>2]=n[l>>2],u=n[u>>2]|0,n[m>>2]=n[B>>2],ZZ(o,m,u),Nl(d),I=A}function ZZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,m=A+4|0,B=A,d=da(P3e()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=fd(m)|0,Rs(0,d|0,o|0,l|0,MZ(u)|0)|0,I=A}function P3e(){var o=0;return s[7984]|0||(b3e(10732),o=7984,n[o>>2]=1,n[o+4>>2]=0),10732}function b3e(o){o=o|0,Qo(o,x3e()|0,2)}function x3e(){return 1744}function k3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+32|0,m=A+16|0,d=A+8|0,B=A,Fl(d),o=Os(o)|0,n[B>>2]=n[l>>2],u=n[u>>2]|0,n[m>>2]=n[B>>2],ZZ(o,m,u),Nl(d),I=A}function Q3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+32|0,B=d+16|0,m=d+8|0,k=d,Fl(m),o=Os(o)|0,n[k>>2]=n[l>>2],u=s[u>>0]|0,A=s[A>>0]|0,n[B>>2]=n[k>>2],R3e(o,B,u,A),Nl(m),I=d}function R3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,B=d+4|0,k=d,m=da(T3e()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=fd(B)|0,u=zy(u)|0,Li(0,m|0,o|0,l|0,u|0,zy(A)|0)|0,I=d}function T3e(){var o=0;return s[7992]|0||(N3e(10744),o=7992,n[o>>2]=1,n[o+4>>2]=0),10744}function zy(o){return o=o|0,F3e(o)|0}function F3e(o){return o=o|0,o&255|0}function N3e(o){o=o|0,Qo(o,O3e()|0,3)}function O3e(){return 1756}function L3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;switch(ae=I,I=I+32|0,k=ae+8|0,R=ae+4|0,M=ae+20|0,L=ae,mM(o,0),A=Fje(l)|0,n[k>>2]=0,q=k+4|0,n[q>>2]=0,n[k+8>>2]=0,A<<24>>24){case 0:{s[M>>0]=0,M3e(R,u,M),Lb(o,R)|0,Df(R);break}case 8:{q=iU(l)|0,s[M>>0]=8,Pu(L,n[q+4>>2]|0),U3e(R,u,M,L,q+8|0),Lb(o,R)|0,Df(R);break}case 9:{if(m=iU(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,Pu(R,n[d>>2]|0),A=n[q>>2]|0,A>>>0<(n[B>>2]|0)>>>0?(n[A>>2]=n[R>>2],n[q>>2]=(n[q>>2]|0)+4):JM(k,R),l;)d=d+4|0;s[M>>0]=9,Pu(L,n[m+8>>2]|0),_3e(R,u,M,L,k),Lb(o,R)|0,Df(R);break}default:q=iU(l)|0,s[M>>0]=A,Pu(L,n[q+4>>2]|0),H3e(R,u,M,L),Lb(o,R)|0,Df(R)}np(k),I=ae}function M3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,Fl(d),l=Os(l)|0,e8e(o,l,s[u>>0]|0),Nl(d),I=A}function Lb(o,l){o=o|0,l=l|0;var u=0;return u=n[o>>2]|0,u|0&&Na(u|0),n[o>>2]=n[l>>2],n[l>>2]=0,o|0}function U3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0;m=I,I=I+32|0,k=m+16|0,B=m+8|0,R=m,Fl(B),l=Os(l)|0,u=s[u>>0]|0,n[R>>2]=n[A>>2],d=n[d>>2]|0,n[k>>2]=n[R>>2],z3e(o,l,u,k,d),Nl(B),I=m}function _3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0;m=I,I=I+32|0,R=m+24|0,B=m+16|0,M=m+12|0,k=m,Fl(B),l=Os(l)|0,u=s[u>>0]|0,n[M>>2]=n[A>>2],zM(k,d),n[R>>2]=n[M>>2],Y3e(o,l,u,R,k),np(k),Nl(B),I=m}function H3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+32|0,B=d+16|0,m=d+8|0,k=d,Fl(m),l=Os(l)|0,u=s[u>>0]|0,n[k>>2]=n[A>>2],n[B>>2]=n[k>>2],j3e(o,l,u,B),Nl(m),I=d}function j3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+4|0,k=d,B=da(G3e()|0)|0,u=zy(u)|0,n[k>>2]=n[A>>2],n[m>>2]=n[k>>2],Mb(o,Rs(0,B|0,l|0,u|0,fd(m)|0)|0),I=d}function G3e(){var o=0;return s[8e3]|0||(q3e(10756),o=8e3,n[o>>2]=1,n[o+4>>2]=0),10756}function Mb(o,l){o=o|0,l=l|0,mM(o,l)}function q3e(o){o=o|0,Qo(o,W3e()|0,2)}function W3e(){return 1772}function Y3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0;m=I,I=I+32|0,R=m+16|0,M=m+12|0,B=m,k=da(V3e()|0)|0,u=zy(u)|0,n[M>>2]=n[A>>2],n[R>>2]=n[M>>2],A=fd(R)|0,n[B>>2]=n[d>>2],R=d+4|0,n[B+4>>2]=n[R>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[R>>2]=0,n[d>>2]=0,Mb(o,Li(0,k|0,l|0,u|0,A|0,XM(B)|0)|0),np(B),I=m}function V3e(){var o=0;return s[8008]|0||(J3e(10768),o=8008,n[o>>2]=1,n[o+4>>2]=0),10768}function J3e(o){o=o|0,Qo(o,K3e()|0,3)}function K3e(){return 1784}function z3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0;m=I,I=I+16|0,k=m+4|0,R=m,B=da(Z3e()|0)|0,u=zy(u)|0,n[R>>2]=n[A>>2],n[k>>2]=n[R>>2],A=fd(k)|0,Mb(o,Li(0,B|0,l|0,u|0,A|0,ZM(d)|0)|0),I=m}function Z3e(){var o=0;return s[8016]|0||(X3e(10780),o=8016,n[o>>2]=1,n[o+4>>2]=0),10780}function X3e(o){o=o|0,Qo(o,$3e()|0,3)}function $3e(){return 1800}function e8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=da(t8e()|0)|0,Mb(o,dn(0,A|0,l|0,zy(u)|0)|0)}function t8e(){var o=0;return s[8024]|0||(r8e(10792),o=8024,n[o>>2]=1,n[o+4>>2]=0),10792}function r8e(o){o=o|0,Qo(o,n8e()|0,1)}function n8e(){return 1816}function i8e(){s8e(),o8e(),a8e()}function s8e(){n[2702]=SX(65536)|0}function o8e(){P8e(10856)}function a8e(){l8e(10816)}function l8e(o){o=o|0,c8e(o,5044),u8e(o)|0}function c8e(o,l){o=o|0,l=l|0;var u=0;u=HZ()|0,n[o>>2]=u,C8e(u,l),jh(n[o>>2]|0)}function u8e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,f8e()|0),o|0}function f8e(){var o=0;return s[8032]|0||(XZ(10820),gr(64,10820,U|0)|0,o=8032,n[o>>2]=1,n[o+4>>2]=0),_r(10820)|0||XZ(10820),10820}function XZ(o){o=o|0,h8e(o),ud(o,25)}function A8e(o){o=o|0,p8e(o+24|0)}function p8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function h8e(o){o=o|0;var l=0;l=en()|0,tn(o,5,18,l,y8e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function g8e(o,l){o=o|0,l=l|0,d8e(o,l)}function d8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;u=I,I=I+16|0,A=u,d=u+4|0,ad(d,l),n[A>>2]=ld(d,l)|0,m8e(o,A),I=u}function m8e(o,l){o=o|0,l=l|0,$Z(o+4|0,n[l>>2]|0),s[o+8>>0]=1}function $Z(o,l){o=o|0,l=l|0,n[o>>2]=l}function y8e(){return 1824}function E8e(o){return o=o|0,I8e(o)|0}function I8e(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Tl(8)|0,l=A,k=Kt(4)|0,ad(d,o),$Z(k,ld(d,o)|0),m=l+4|0,n[m>>2]=k,o=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],jZ(o,m,d),n[A>>2]=o,I=u,l|0}function Tl(o){o=o|0;var l=0,u=0;return o=o+7&-8,o>>>0<=32768&&(l=n[2701]|0,o>>>0<=(65536-l|0)>>>0)?(u=(n[2702]|0)+l|0,n[2701]=l+o,o=u):(o=SX(o+8|0)|0,n[o>>2]=n[2703],n[2703]=o,o=o+8|0),o|0}function C8e(o,l){o=o|0,l=l|0,n[o>>2]=w8e()|0,n[o+4>>2]=B8e()|0,n[o+12>>2]=l,n[o+8>>2]=v8e()|0,n[o+32>>2]=9}function w8e(){return 11744}function B8e(){return 1832}function v8e(){return Nb()|0}function S8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(D8e(u),It(u)):l|0&&It(l)}function D8e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function P8e(o){o=o|0,b8e(o,5052),x8e(o)|0,k8e(o,5058,26)|0,Q8e(o,5069,1)|0,R8e(o,5077,10)|0,T8e(o,5087,19)|0,F8e(o,5094,27)|0}function b8e(o,l){o=o|0,l=l|0;var u=0;u=Dje()|0,n[o>>2]=u,Pje(u,l),jh(n[o>>2]|0)}function x8e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,Aje()|0),o|0}function k8e(o,l,u){return o=o|0,l=l|0,u=u|0,JHe(o,Bn(l)|0,u,0),o|0}function Q8e(o,l,u){return o=o|0,l=l|0,u=u|0,THe(o,Bn(l)|0,u,0),o|0}function R8e(o,l,u){return o=o|0,l=l|0,u=u|0,fHe(o,Bn(l)|0,u,0),o|0}function T8e(o,l,u){return o=o|0,l=l|0,u=u|0,z8e(o,Bn(l)|0,u,0),o|0}function eX(o,l){o=o|0,l=l|0;var u=0,A=0;e:for(;;){for(u=n[2703]|0;;){if((u|0)==(l|0))break e;if(A=n[u>>2]|0,n[2703]=A,!u)u=A;else break}It(u)}n[2701]=o}function F8e(o,l,u){return o=o|0,l=l|0,u=u|0,N8e(o,Bn(l)|0,u,0),o|0}function N8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=$M()|0,o=O8e(u)|0,vn(m,l,d,o,L8e(u,A)|0,A)}function $M(){var o=0,l=0;if(s[8040]|0||(rX(10860),gr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(_r(10860)|0)){o=10860,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));rX(10860)}return 10860}function O8e(o){return o=o|0,o|0}function L8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=$M()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(tX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(M8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function tX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function M8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=U8e(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,_8e(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,tX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,H8e(o,d),j8e(d),I=k;return}}function U8e(o){return o=o|0,536870911}function _8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function H8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function j8e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function rX(o){o=o|0,W8e(o)}function G8e(o){o=o|0,q8e(o+24|0)}function q8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function W8e(o){o=o|0;var l=0;l=en()|0,tn(o,1,11,l,Y8e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Y8e(){return 1840}function V8e(o,l,u){o=o|0,l=l|0,u=u|0,K8e(n[(J8e(o)|0)>>2]|0,l,u)}function J8e(o){return o=o|0,(n[($M()|0)+24>>2]|0)+(o<<3)|0}function K8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;A=I,I=I+16|0,m=A+1|0,d=A,ad(m,l),l=ld(m,l)|0,ad(d,u),u=ld(d,u)|0,sp[o&31](l,u),I=A}function z8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=eU()|0,o=Z8e(u)|0,vn(m,l,d,o,X8e(u,A)|0,A)}function eU(){var o=0,l=0;if(s[8048]|0||(iX(10896),gr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(_r(10896)|0)){o=10896,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));iX(10896)}return 10896}function Z8e(o){return o=o|0,o|0}function X8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=eU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(nX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):($8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function nX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function $8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=eHe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,tHe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,nX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,rHe(o,d),nHe(d),I=k;return}}function eHe(o){return o=o|0,536870911}function tHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function rHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function nHe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function iX(o){o=o|0,oHe(o)}function iHe(o){o=o|0,sHe(o+24|0)}function sHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function oHe(o){o=o|0;var l=0;l=en()|0,tn(o,1,11,l,aHe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function aHe(){return 1852}function lHe(o,l){return o=o|0,l=l|0,uHe(n[(cHe(o)|0)>>2]|0,l)|0}function cHe(o){return o=o|0,(n[(eU()|0)+24>>2]|0)+(o<<3)|0}function uHe(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,ad(A,l),l=ld(A,l)|0,l=Tb(gd[o&31](l)|0)|0,I=u,l|0}function fHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=tU()|0,o=AHe(u)|0,vn(m,l,d,o,pHe(u,A)|0,A)}function tU(){var o=0,l=0;if(s[8056]|0||(oX(10932),gr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(_r(10932)|0)){o=10932,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));oX(10932)}return 10932}function AHe(o){return o=o|0,o|0}function pHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=tU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(sX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(hHe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function sX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function hHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=gHe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,dHe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,sX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mHe(o,d),yHe(d),I=k;return}}function gHe(o){return o=o|0,536870911}function dHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function mHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function yHe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function oX(o){o=o|0,CHe(o)}function EHe(o){o=o|0,IHe(o+24|0)}function IHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function CHe(o){o=o|0;var l=0;l=en()|0,tn(o,1,7,l,wHe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function wHe(){return 1860}function BHe(o,l,u){return o=o|0,l=l|0,u=u|0,SHe(n[(vHe(o)|0)>>2]|0,l,u)|0}function vHe(o){return o=o|0,(n[(tU()|0)+24>>2]|0)+(o<<3)|0}function SHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0;return A=I,I=I+32|0,B=A+12|0,m=A+8|0,k=A,R=A+16|0,d=A+4|0,DHe(R,l),PHe(k,R,l),Mh(d,u),u=Uh(d,u)|0,n[B>>2]=n[k>>2],F2[o&15](m,B,u),u=bHe(m)|0,Df(m),_h(d),I=A,u|0}function DHe(o,l){o=o|0,l=l|0}function PHe(o,l,u){o=o|0,l=l|0,u=u|0,xHe(o,u)}function bHe(o){return o=o|0,Os(o)|0}function xHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+16|0,u=d,A=l,A&1?(kHe(u,0),Me(A|0,u|0)|0,QHe(o,u),RHe(u)):n[o>>2]=n[l>>2],I=d}function kHe(o,l){o=o|0,l=l|0,Su(o,l),n[o+4>>2]=0,s[o+8>>0]=0}function QHe(o,l){o=o|0,l=l|0,n[o>>2]=n[l+4>>2]}function RHe(o){o=o|0,s[o+8>>0]=0}function THe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=rU()|0,o=FHe(u)|0,vn(m,l,d,o,NHe(u,A)|0,A)}function rU(){var o=0,l=0;if(s[8064]|0||(lX(10968),gr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(_r(10968)|0)){o=10968,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));lX(10968)}return 10968}function FHe(o){return o=o|0,o|0}function NHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=rU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(aX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(OHe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function aX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function OHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=LHe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,MHe(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,aX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,UHe(o,d),_He(d),I=k;return}}function LHe(o){return o=o|0,536870911}function MHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function UHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function _He(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function lX(o){o=o|0,GHe(o)}function HHe(o){o=o|0,jHe(o+24|0)}function jHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function GHe(o){o=o|0;var l=0;l=en()|0,tn(o,1,1,l,qHe()|0,5),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function qHe(){return 1872}function WHe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,VHe(n[(YHe(o)|0)>>2]|0,l,u,A,d,m)}function YHe(o){return o=o|0,(n[(rU()|0)+24>>2]|0)+(o<<3)|0}function VHe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0;B=I,I=I+32|0,k=B+16|0,R=B+12|0,M=B+8|0,L=B+4|0,q=B,Mh(k,l),l=Uh(k,l)|0,Mh(R,u),u=Uh(R,u)|0,Mh(M,A),A=Uh(M,A)|0,Mh(L,d),d=Uh(L,d)|0,Mh(q,m),m=Uh(q,m)|0,kX[o&1](l,u,A,d,m),_h(q),_h(L),_h(M),_h(R),_h(k),I=B}function JHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=nU()|0,o=KHe(u)|0,vn(m,l,d,o,zHe(u,A)|0,A)}function nU(){var o=0,l=0;if(s[8072]|0||(uX(11004),gr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(_r(11004)|0)){o=11004,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));uX(11004)}return 11004}function KHe(o){return o=o|0,o|0}function zHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=nU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(cX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(ZHe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function cX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function ZHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=XHe(o)|0,A>>>0>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,$He(d,L>>3>>>0>>1>>>0?M>>>0>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,cX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,eje(o,d),tje(d),I=k;return}}function XHe(o){return o=o|0,536870911}function $He(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function eje(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function tje(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function uX(o){o=o|0,ije(o)}function rje(o){o=o|0,nje(o+24|0)}function nje(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function ije(o){o=o|0;var l=0;l=en()|0,tn(o,1,12,l,sje()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function sje(){return 1896}function oje(o,l,u){o=o|0,l=l|0,u=u|0,lje(n[(aje(o)|0)>>2]|0,l,u)}function aje(o){return o=o|0,(n[(nU()|0)+24>>2]|0)+(o<<3)|0}function lje(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;A=I,I=I+16|0,m=A+4|0,d=A,cje(m,l),l=uje(m,l)|0,Mh(d,u),u=Uh(d,u)|0,sp[o&31](l,u),_h(d),I=A}function cje(o,l){o=o|0,l=l|0}function uje(o,l){return o=o|0,l=l|0,fje(l)|0}function fje(o){return o=o|0,o|0}function Aje(){var o=0;return s[8080]|0||(fX(11040),gr(70,11040,U|0)|0,o=8080,n[o>>2]=1,n[o+4>>2]=0),_r(11040)|0||fX(11040),11040}function fX(o){o=o|0,gje(o),ud(o,71)}function pje(o){o=o|0,hje(o+24|0)}function hje(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function gje(o){o=o|0;var l=0;l=en()|0,tn(o,5,7,l,Eje()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function dje(o){o=o|0,mje(o)}function mje(o){o=o|0,yje(o)}function yje(o){o=o|0,s[o+8>>0]=1}function Eje(){return 1936}function Ije(){return Cje()|0}function Cje(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Tl(8)|0,o=u,m=o+4|0,n[m>>2]=Kt(1)|0,A=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],wje(A,m,d),n[u>>2]=A,I=l,o|0}function wje(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1916,n[u+12>>2]=l,n[o+4>>2]=u}function Bje(o){o=o|0,$y(o),It(o)}function vje(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function Sje(o){o=o|0,It(o)}function Dje(){var o=0;return s[8088]|0||(Tje(11076),gr(25,11076,U|0)|0,o=8088,n[o>>2]=1,n[o+4>>2]=0),11076}function Pje(o,l){o=o|0,l=l|0,n[o>>2]=bje()|0,n[o+4>>2]=xje()|0,n[o+12>>2]=l,n[o+8>>2]=kje()|0,n[o+32>>2]=10}function bje(){return 11745}function xje(){return 1940}function kje(){return Fb()|0}function Qje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(Rje(u),It(u)):l|0&&It(l)}function Rje(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function Tje(o){o=o|0,Lh(o)}function Pu(o,l){o=o|0,l=l|0,n[o>>2]=l}function iU(o){return o=o|0,n[o>>2]|0}function Fje(o){return o=o|0,s[n[o>>2]>>0]|0}function Nje(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,n[A>>2]=n[o>>2],Oje(l,A)|0,I=u}function Oje(o,l){o=o|0,l=l|0;var u=0;return u=Lje(n[o>>2]|0,l)|0,l=o+4|0,n[(n[l>>2]|0)+8>>2]=u,n[(n[l>>2]|0)+8>>2]|0}function Lje(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,Fl(A),o=Os(o)|0,l=Mje(o,n[l>>2]|0)|0,Nl(A),I=u,l|0}function Fl(o){o=o|0,n[o>>2]=n[2701],n[o+4>>2]=n[2703]}function Mje(o,l){o=o|0,l=l|0;var u=0;return u=da(Uje()|0)|0,dn(0,u|0,o|0,ZM(l)|0)|0}function Nl(o){o=o|0,eX(n[o>>2]|0,n[o+4>>2]|0)}function Uje(){var o=0;return s[8096]|0||(_je(11120),o=8096,n[o>>2]=1,n[o+4>>2]=0),11120}function _je(o){o=o|0,Qo(o,Hje()|0,1)}function Hje(){return 1948}function jje(){Gje()}function Gje(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0;if(Le=I,I=I+16|0,L=Le+4|0,q=Le,oa(65536,10804,n[2702]|0,10812),u=NZ()|0,l=n[u>>2]|0,o=n[l>>2]|0,o|0)for(A=n[u+8>>2]|0,u=n[u+4>>2]|0;pf(o|0,c[u>>0]|0|0,s[A>>0]|0),l=l+4|0,o=n[l>>2]|0,o;)A=A+1|0,u=u+1|0;if(o=OZ()|0,l=n[o>>2]|0,l|0)do NA(l|0,n[o+4>>2]|0),o=o+8|0,l=n[o>>2]|0;while(l|0);NA(qje()|0,5167),M=Jy()|0,o=n[M>>2]|0;e:do if(o|0){do Wje(n[o+4>>2]|0),o=n[o>>2]|0;while(o|0);if(o=n[M>>2]|0,o|0){R=M;do{for(;d=o,o=n[o>>2]|0,d=n[d+4>>2]|0,!!(Yje(d)|0);)if(n[q>>2]=R,n[L>>2]=n[q>>2],Vje(M,L)|0,!o)break e;if(Jje(d),R=n[R>>2]|0,l=AX(d)|0,m=Oi()|0,B=I,I=I+((1*(l<<2)|0)+15&-16)|0,k=I,I=I+((1*(l<<2)|0)+15&-16)|0,l=n[(JZ(d)|0)>>2]|0,l|0)for(u=B,A=k;n[u>>2]=n[(Ky(n[l+4>>2]|0)|0)>>2],n[A>>2]=n[l+8>>2],l=n[l>>2]|0,l;)u=u+4|0,A=A+4|0;Qe=Ky(d)|0,l=Kje(d)|0,u=AX(d)|0,A=zje(d)|0,oc(Qe|0,l|0,B|0,k|0,u|0,A|0,WM(d)|0),FA(m|0)}while(o|0)}}while(!1);if(o=n[(YM()|0)>>2]|0,o|0)do Qe=o+4|0,M=VM(Qe)|0,d=k2(M)|0,m=b2(M)|0,B=(x2(M)|0)+1|0,k=Ub(M)|0,R=pX(Qe)|0,M=_r(M)|0,L=Ob(Qe)|0,q=sU(Qe)|0,uu(0,d|0,m|0,B|0,k|0,R|0,M|0,L|0,q|0,oU(Qe)|0),o=n[o>>2]|0;while(o|0);o=n[(Jy()|0)>>2]|0;e:do if(o|0){t:for(;;){if(l=n[o+4>>2]|0,l|0&&(ae=n[(Ky(l)|0)>>2]|0,Ye=n[(KZ(l)|0)>>2]|0,Ye|0)){u=Ye;do{l=u+4|0,A=VM(l)|0;r:do if(A|0)switch(_r(A)|0){case 0:break t;case 4:case 3:case 2:{k=k2(A)|0,R=b2(A)|0,M=(x2(A)|0)+1|0,L=Ub(A)|0,q=_r(A)|0,Qe=Ob(l)|0,uu(ae|0,k|0,R|0,M|0,L|0,0,q|0,Qe|0,sU(l)|0,oU(l)|0);break r}case 1:{B=k2(A)|0,k=b2(A)|0,R=(x2(A)|0)+1|0,M=Ub(A)|0,L=pX(l)|0,q=_r(A)|0,Qe=Ob(l)|0,uu(ae|0,B|0,k|0,R|0,M|0,L|0,q|0,Qe|0,sU(l)|0,oU(l)|0);break r}case 5:{M=k2(A)|0,L=b2(A)|0,q=(x2(A)|0)+1|0,Qe=Ub(A)|0,uu(ae|0,M|0,L|0,q|0,Qe|0,Zje(A)|0,_r(A)|0,0,0,0);break r}default:break r}while(!1);u=n[u>>2]|0}while(u|0)}if(o=n[o>>2]|0,!o)break e}Nt()}while(!1);ve(),I=Le}function qje(){return 11703}function Wje(o){o=o|0,s[o+40>>0]=0}function Yje(o){return o=o|0,(s[o+40>>0]|0)!=0|0}function Vje(o,l){return o=o|0,l=l|0,l=Xje(l)|0,o=n[l>>2]|0,n[l>>2]=n[o>>2],It(o),n[l>>2]|0}function Jje(o){o=o|0,s[o+40>>0]=1}function AX(o){return o=o|0,n[o+20>>2]|0}function Kje(o){return o=o|0,n[o+8>>2]|0}function zje(o){return o=o|0,n[o+32>>2]|0}function Ub(o){return o=o|0,n[o+4>>2]|0}function pX(o){return o=o|0,n[o+4>>2]|0}function sU(o){return o=o|0,n[o+8>>2]|0}function oU(o){return o=o|0,n[o+16>>2]|0}function Zje(o){return o=o|0,n[o+20>>2]|0}function Xje(o){return o=o|0,n[o>>2]|0}function _b(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0;Lt=I,I=I+16|0,ae=Lt;do if(o>>>0<245){if(M=o>>>0<11?16:o+11&-8,o=M>>>3,q=n[2783]|0,u=q>>>o,u&3|0)return l=(u&1^1)+o|0,o=11172+(l<<1<<2)|0,u=o+8|0,A=n[u>>2]|0,d=A+8|0,m=n[d>>2]|0,(o|0)==(m|0)?n[2783]=q&~(1<>2]=o,n[u>>2]=m),We=l<<3,n[A+4>>2]=We|3,We=A+We+4|0,n[We>>2]=n[We>>2]|1,We=d,I=Lt,We|0;if(L=n[2785]|0,M>>>0>L>>>0){if(u|0)return l=2<>>12&16,l=l>>>B,u=l>>>5&8,l=l>>>u,d=l>>>2&4,l=l>>>d,o=l>>>1&2,l=l>>>o,A=l>>>1&1,A=(u|B|d|o|A)+(l>>>A)|0,l=11172+(A<<1<<2)|0,o=l+8|0,d=n[o>>2]|0,B=d+8|0,u=n[B>>2]|0,(l|0)==(u|0)?(o=q&~(1<>2]=l,n[o>>2]=u,o=q),m=(A<<3)-M|0,n[d+4>>2]=M|3,A=d+M|0,n[A+4>>2]=m|1,n[A+m>>2]=m,L|0&&(d=n[2788]|0,l=L>>>3,u=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=u),n[2785]=m,n[2788]=A,We=B,I=Lt,We|0;if(k=n[2784]|0,k){if(u=(k&0-k)+-1|0,B=u>>>12&16,u=u>>>B,m=u>>>5&8,u=u>>>m,R=u>>>2&4,u=u>>>R,A=u>>>1&2,u=u>>>A,o=u>>>1&1,o=n[11436+((m|B|R|A|o)+(u>>>o)<<2)>>2]|0,u=(n[o+4>>2]&-8)-M|0,A=n[o+16+(((n[o+16>>2]|0)==0&1)<<2)>>2]|0,!A)R=o,m=u;else{do B=(n[A+4>>2]&-8)-M|0,R=B>>>0>>0,u=R?B:u,o=R?A:o,A=n[A+16+(((n[A+16>>2]|0)==0&1)<<2)>>2]|0;while(A|0);R=o,m=u}if(B=R+M|0,R>>>0>>0){d=n[R+24>>2]|0,l=n[R+12>>2]|0;do if((l|0)==(R|0)){if(o=R+20|0,l=n[o>>2]|0,!l&&(o=R+16|0,l=n[o>>2]|0,!l)){u=0;break}for(;;){if(u=l+20|0,A=n[u>>2]|0,A|0){l=A,o=u;continue}if(u=l+16|0,A=n[u>>2]|0,A)l=A,o=u;else break}n[o>>2]=0,u=l}else u=n[R+8>>2]|0,n[u+12>>2]=l,n[l+8>>2]=u,u=l;while(!1);do if(d|0){if(l=n[R+28>>2]|0,o=11436+(l<<2)|0,(R|0)==(n[o>>2]|0)){if(n[o>>2]=u,!u){n[2784]=k&~(1<>2]|0)!=(R|0)&1)<<2)>>2]=u,!u)break;n[u+24>>2]=d,l=n[R+16>>2]|0,l|0&&(n[u+16>>2]=l,n[l+24>>2]=u),l=n[R+20>>2]|0,l|0&&(n[u+20>>2]=l,n[l+24>>2]=u)}while(!1);return m>>>0<16?(We=m+M|0,n[R+4>>2]=We|3,We=R+We+4|0,n[We>>2]=n[We>>2]|1):(n[R+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,L|0&&(A=n[2788]|0,l=L>>>3,u=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=q|l,l=u,o=u+8|0),n[o>>2]=A,n[l+12>>2]=A,n[A+8>>2]=l,n[A+12>>2]=u),n[2785]=m,n[2788]=B),We=R+8|0,I=Lt,We|0}else q=M}else q=M}else q=M}else if(o>>>0<=4294967231)if(o=o+11|0,M=o&-8,R=n[2784]|0,R){A=0-M|0,o=o>>>8,o?M>>>0>16777215?k=31:(q=(o+1048320|0)>>>16&8,He=o<>>16&4,He=He<>>16&2,k=14-(L|q|k)+(He<>>15)|0,k=M>>>(k+7|0)&1|k<<1):k=0,u=n[11436+(k<<2)>>2]|0;e:do if(!u)u=0,o=0,He=57;else for(o=0,B=M<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[u+4>>2]&-8)-M|0,d>>>0>>0)if(d)o=u,A=d;else{o=u,A=0,d=u,He=61;break e}if(d=n[u+20>>2]|0,u=n[u+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(u|0)?m:d,d=(u|0)==0,d){u=m,He=57;break}else B=B<<((d^1)&1)}while(!1);if((He|0)==57){if((u|0)==0&(o|0)==0){if(o=2<>>12&16,q=q>>>B,m=q>>>5&8,q=q>>>m,k=q>>>2&4,q=q>>>k,L=q>>>1&2,q=q>>>L,u=q>>>1&1,o=0,u=n[11436+((m|B|k|L|u)+(q>>>u)<<2)>>2]|0}u?(d=u,He=61):(k=o,B=A)}if((He|0)==61)for(;;)if(He=0,u=(n[d+4>>2]&-8)-M|0,q=u>>>0>>0,u=q?u:A,o=q?d:o,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)A=u,He=61;else{k=o,B=u;break}if(k|0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=k+M|0,k>>>0>=m>>>0)return We=0,I=Lt,We|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(o=k+20|0,l=n[o>>2]|0,!l&&(o=k+16|0,l=n[o>>2]|0,!l)){l=0;break}for(;;){if(u=l+20|0,A=n[u>>2]|0,A|0){l=A,o=u;continue}if(u=l+16|0,A=n[u>>2]|0,A)l=A,o=u;else break}n[o>>2]=0}else We=n[k+8>>2]|0,n[We+12>>2]=l,n[l+8>>2]=We;while(!1);do if(d){if(o=n[k+28>>2]|0,u=11436+(o<<2)|0,(k|0)==(n[u>>2]|0)){if(n[u>>2]=l,!l){A=R&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){A=R;break}n[l+24>>2]=d,o=n[k+16>>2]|0,o|0&&(n[l+16>>2]=o,n[o+24>>2]=l),o=n[k+20>>2]|0,o&&(n[l+20>>2]=o,n[o+24>>2]=l),A=R}else A=R;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=u;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,We=l<>>16&4,We=We<>>16&2,l=14-(ct|He|l)+(We<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,u=11436+(l<<2)|0,n[m+28>>2]=l,o=m+16|0,n[o+4>>2]=0,n[o>>2]=0,o=1<>2]=m,n[m+24>>2]=u,n[m+12>>2]=m,n[m+8>>2]=m;break}for(o=B<<((l|0)==31?0:25-(l>>>1)|0),u=n[u>>2]|0;;){if((n[u+4>>2]&-8|0)==(B|0)){He=97;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=96;break}}if((He|0)==96){n[A>>2]=m,n[m+24>>2]=u,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=u+8|0,We=n[He>>2]|0,n[We+12>>2]=m,n[He>>2]=m,n[m+8>>2]=We,n[m+12>>2]=u,n[m+24>>2]=0;break}}else We=B+M|0,n[k+4>>2]=We|3,We=k+We+4|0,n[We>>2]=n[We>>2]|1;while(!1);return We=k+8|0,I=Lt,We|0}else q=M}else q=M;else q=-1;while(!1);if(u=n[2785]|0,u>>>0>=q>>>0)return l=u-q|0,o=n[2788]|0,l>>>0>15?(We=o+q|0,n[2788]=We,n[2785]=l,n[We+4>>2]=l|1,n[We+l>>2]=l,n[o+4>>2]=q|3):(n[2785]=0,n[2788]=0,n[o+4>>2]=u|3,We=o+u+4|0,n[We>>2]=n[We>>2]|1),We=o+8|0,I=Lt,We|0;if(B=n[2786]|0,B>>>0>q>>>0)return ct=B-q|0,n[2786]=ct,We=n[2789]|0,He=We+q|0,n[2789]=He,n[He+4>>2]=ct|1,n[We+4>>2]=q|3,We=We+8|0,I=Lt,We|0;if(n[2901]|0?o=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,o=ae&-16^1431655768,n[ae>>2]=o,n[2901]=o,o=4096),k=q+48|0,R=q+47|0,m=o+R|0,d=0-o|0,M=m&d,M>>>0<=q>>>0||(o=n[2893]|0,o|0&&(L=n[2891]|0,ae=L+M|0,ae>>>0<=L>>>0|ae>>>0>o>>>0)))return We=0,I=Lt,We|0;e:do if(n[2894]&4)l=0,He=133;else{u=n[2789]|0;t:do if(u){for(A=11580;o=n[A>>2]|0,!(o>>>0<=u>>>0&&(Qe=A+4|0,(o+(n[Qe>>2]|0)|0)>>>0>u>>>0));)if(o=n[A+8>>2]|0,o)A=o;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(o=qh(l|0)|0,(o|0)==((n[A>>2]|0)+(n[Qe>>2]|0)|0)){if((o|0)!=-1){B=l,m=o,He=135;break e}}else A=o,He=126;else l=0}else He=118;while(!1);do if((He|0)==118)if(u=qh(0)|0,(u|0)!=-1&&(l=u,Ye=n[2902]|0,Le=Ye+-1|0,l=(Le&l|0?(Le+l&0-Ye)-l|0:0)+M|0,Ye=n[2891]|0,Le=l+Ye|0,l>>>0>q>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Le>>>0<=Ye>>>0|Le>>>0>Qe>>>0){l=0;break}if(o=qh(l|0)|0,(o|0)==(u|0)){B=l,m=u,He=135;break e}else A=o,He=126}else l=0;while(!1);do if((He|0)==126){if(u=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(A|0)!=-1)))if((A|0)==-1){l=0;break}else{B=l,m=A,He=135;break e}if(o=n[2903]|0,o=R-l+o&0-o,o>>>0>=2147483647){B=l,m=A,He=135;break e}if((qh(o|0)|0)==-1){qh(u|0)|0,l=0;break}else{B=o+l|0,m=A,He=135;break e}}while(!1);n[2894]=n[2894]|4,He=133}while(!1);if((He|0)==133&&M>>>0<2147483647&&(ct=qh(M|0)|0,Qe=qh(0)|0,tt=Qe-ct|0,Xe=tt>>>0>(q+40|0)>>>0,!((ct|0)==-1|Xe^1|ct>>>0>>0&((ct|0)!=-1&(Qe|0)!=-1)^1))&&(B=Xe?tt:l,m=ct,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),R=n[2789]|0;do if(R){for(l=11580;;){if(o=n[l>>2]|0,u=l+4|0,A=n[u>>2]|0,(m|0)==(o+A|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&!(n[l+12>>2]&8|0)&&R>>>0>>0&R>>>0>=o>>>0){n[u>>2]=A+B,We=R+8|0,We=We&7|0?0-We&7:0,He=R+We|0,We=(n[2786]|0)+(B-We)|0,n[2789]=He,n[2786]=We,n[He+4>>2]=We|1,n[He+We+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),u=m+B|0,l=11580;;){if((n[l>>2]|0)==(u|0)){He=153;break}if(o=n[l+8>>2]|0,o)l=o;else break}if((He|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,L=l+4|0,n[L>>2]=(n[L>>2]|0)+B,L=m+8|0,L=m+(L&7|0?0-L&7:0)|0,l=u+8|0,l=u+(l&7|0?0-l&7:0)|0,M=L+q|0,k=l-L-q|0,n[L+4>>2]=q|3;do if((l|0)!=(R|0)){if((l|0)==(n[2788]|0)){We=(n[2785]|0)+k|0,n[2785]=We,n[2788]=M,n[M+4>>2]=We|1,n[M+We>>2]=We;break}if(o=n[l+4>>2]|0,(o&3|0)==1){B=o&-8,A=o>>>3;e:do if(o>>>0<256)if(o=n[l+8>>2]|0,u=n[l+12>>2]|0,(u|0)==(o|0)){n[2783]=n[2783]&~(1<>2]=u,n[u+8>>2]=o;break}else{m=n[l+24>>2]|0,o=n[l+12>>2]|0;do if((o|0)==(l|0)){if(A=l+16|0,u=A+4|0,o=n[u>>2]|0,!o)if(o=n[A>>2]|0,o)u=A;else{o=0;break}for(;;){if(A=o+20|0,d=n[A>>2]|0,d|0){o=d,u=A;continue}if(A=o+16|0,d=n[A>>2]|0,d)o=d,u=A;else break}n[u>>2]=0}else We=n[l+8>>2]|0,n[We+12>>2]=o,n[o+8>>2]=We;while(!1);if(!m)break;u=n[l+28>>2]|0,A=11436+(u<<2)|0;do if((l|0)!=(n[A>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=o,!o)break e}else{if(n[A>>2]=o,o|0)break;n[2784]=n[2784]&~(1<>2]=m,u=l+16|0,A=n[u>>2]|0,A|0&&(n[o+16>>2]=A,n[A+24>>2]=o),u=n[u+4>>2]|0,!u)break;n[o+20>>2]=u,n[u+24>>2]=o}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=u;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,We=l<>>16&4,We=We<>>16&2,l=14-(ct|He|l)+(We<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(A=11436+(l<<2)|0,n[M+28>>2]=l,o=M+16|0,n[o+4>>2]=0,n[o>>2]=0,o=n[2784]|0,u=1<>2]=M,n[M+24>>2]=A,n[M+12>>2]=M,n[M+8>>2]=M;break}for(o=d<<((l|0)==31?0:25-(l>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(d|0)){He=194;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=193;break}}if((He|0)==193){n[A>>2]=M,n[M+24>>2]=u,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((He|0)==194){He=u+8|0,We=n[He>>2]|0,n[We+12>>2]=M,n[He>>2]=M,n[M+8>>2]=We,n[M+12>>2]=u,n[M+24>>2]=0;break}}else We=(n[2786]|0)+k|0,n[2786]=We,n[2789]=M,n[M+4>>2]=We|1;while(!1);return We=L+8|0,I=Lt,We|0}for(l=11580;o=n[l>>2]|0,!(o>>>0<=R>>>0&&(We=o+(n[l+4>>2]|0)|0,We>>>0>R>>>0));)l=n[l+8>>2]|0;d=We+-47|0,o=d+8|0,o=d+(o&7|0?0-o&7:0)|0,d=R+16|0,o=o>>>0>>0?R:o,l=o+8|0,u=m+8|0,u=u&7|0?0-u&7:0,He=m+u|0,u=B+-40-u|0,n[2789]=He,n[2786]=u,n[He+4>>2]=u|1,n[He+u+4>>2]=40,n[2790]=n[2905],u=o+4|0,n[u>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=o+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0>>0);if((o|0)!=(R|0)){if(m=o-R|0,n[u>>2]=n[u>>2]&-2,n[R+4>>2]=m|1,n[o>>2]=m,l=m>>>3,m>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=R,n[l+12>>2]=R,n[R+8>>2]=l,n[R+12>>2]=u;break}if(l=m>>>8,l?m>>>0>16777215?u=31:(He=(l+1048320|0)>>>16&8,We=l<>>16&4,We=We<>>16&2,u=14-(ct|He|u)+(We<>>15)|0,u=m>>>(u+7|0)&1|u<<1):u=0,A=11436+(u<<2)|0,n[R+28>>2]=u,n[R+20>>2]=0,n[d>>2]=0,l=n[2784]|0,o=1<>2]=R,n[R+24>>2]=A,n[R+12>>2]=R,n[R+8>>2]=R;break}for(o=m<<((u|0)==31?0:25-(u>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(m|0)){He=216;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=215;break}}if((He|0)==215){n[A>>2]=R,n[R+24>>2]=u,n[R+12>>2]=R,n[R+8>>2]=R;break}else if((He|0)==216){He=u+8|0,We=n[He>>2]|0,n[We+12>>2]=R,n[He>>2]=R,n[R+8>>2]=We,n[R+12>>2]=u,n[R+24>>2]=0;break}}}else{We=n[2787]|0,(We|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do We=11172+(l<<1<<2)|0,n[We+12>>2]=We,n[We+8>>2]=We,l=l+1|0;while((l|0)!=32);We=m+8|0,We=We&7|0?0-We&7:0,He=m+We|0,We=B+-40-We|0,n[2789]=He,n[2786]=We,n[He+4>>2]=We|1,n[He+We+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>q>>>0)return ct=l-q|0,n[2786]=ct,We=n[2789]|0,He=We+q|0,n[2789]=He,n[He+4>>2]=ct|1,n[We+4>>2]=q|3,We=We+8|0,I=Lt,We|0}return n[(Zy()|0)>>2]=12,We=0,I=Lt,We|0}function Hb(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0;if(o){u=o+-8|0,d=n[2787]|0,o=n[o+-4>>2]|0,l=o&-8,R=u+l|0;do if(o&1)k=u,B=u;else{if(A=n[u>>2]|0,!(o&3)||(B=u+(0-A)|0,m=A+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(o=R+4|0,l=n[o>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[o>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(u=A>>>3,A>>>0<256)if(o=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(o|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=o,k=B,l=m;break}d=n[B+24>>2]|0,o=n[B+12>>2]|0;do if((o|0)==(B|0)){if(u=B+16|0,l=u+4|0,o=n[l>>2]|0,!o)if(o=n[u>>2]|0,o)l=u;else{o=0;break}for(;;){if(u=o+20|0,A=n[u>>2]|0,A|0){o=A,l=u;continue}if(u=o+16|0,A=n[u>>2]|0,A)o=A,l=u;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=o,n[o+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,u=11436+(l<<2)|0,(B|0)==(n[u>>2]|0)){if(n[u>>2]=o,!o){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=o,!o){k=B,l=m;break}n[o+24>>2]=d,l=B+16|0,u=n[l>>2]|0,u|0&&(n[o+16>>2]=u,n[u+24>>2]=o),l=n[l+4>>2]|0,l?(n[o+20>>2]=l,n[l+24>>2]=o,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=R>>>0)&&(o=R+4|0,A=n[o>>2]|0,!!(A&1))){if(A&2)n[o>>2]=A&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(o=n[2788]|0,(R|0)==(n[2789]|0)){if(R=(n[2786]|0)+l|0,n[2786]=R,n[2789]=k,n[k+4>>2]=R|1,(k|0)!=(o|0))return;n[2788]=0,n[2785]=0;return}if((R|0)==(o|0)){R=(n[2785]|0)+l|0,n[2785]=R,n[2788]=B,n[k+4>>2]=R|1,n[B+R>>2]=R;return}d=(A&-8)+l|0,u=A>>>3;do if(A>>>0<256)if(l=n[R+8>>2]|0,o=n[R+12>>2]|0,(o|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=o,n[o+8>>2]=l;break}else{m=n[R+24>>2]|0,o=n[R+12>>2]|0;do if((o|0)==(R|0)){if(u=R+16|0,l=u+4|0,o=n[l>>2]|0,!o)if(o=n[u>>2]|0,o)l=u;else{u=0;break}for(;;){if(u=o+20|0,A=n[u>>2]|0,A|0){o=A,l=u;continue}if(u=o+16|0,A=n[u>>2]|0,A)o=A,l=u;else break}n[l>>2]=0,u=o}else u=n[R+8>>2]|0,n[u+12>>2]=o,n[o+8>>2]=u,u=o;while(!1);if(m|0){if(o=n[R+28>>2]|0,l=11436+(o<<2)|0,(R|0)==(n[l>>2]|0)){if(n[l>>2]=u,!u){n[2784]=n[2784]&~(1<>2]|0)!=(R|0)&1)<<2)>>2]=u,!u)break;n[u+24>>2]=m,o=R+16|0,l=n[o>>2]|0,l|0&&(n[u+16>>2]=l,n[l+24>>2]=u),o=n[o+4>>2]|0,o|0&&(n[u+20>>2]=o,n[o+24>>2]=u)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(o=d>>>3,d>>>0<256){u=11172+(o<<1<<2)|0,l=n[2783]|0,o=1<>2]|0):(n[2783]=l|o,o=u,l=u+8|0),n[l>>2]=k,n[o+12>>2]=k,n[k+8>>2]=o,n[k+12>>2]=u;return}o=d>>>8,o?d>>>0>16777215?o=31:(B=(o+1048320|0)>>>16&8,R=o<>>16&4,R=R<>>16&2,o=14-(m|B|o)+(R<>>15)|0,o=d>>>(o+7|0)&1|o<<1):o=0,A=11436+(o<<2)|0,n[k+28>>2]=o,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,u=1<>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(d|0)){o=73;break}if(A=u+16+(l>>>31<<2)|0,o=n[A>>2]|0,o)l=l<<1,u=o;else{o=72;break}}if((o|0)==72){n[A>>2]=k,n[k+24>>2]=u,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((o|0)==73){B=u+8|0,R=n[B>>2]|0,n[R+12>>2]=k,n[B>>2]=k,n[k+8>>2]=R,n[k+12>>2]=u,n[k+24>>2]=0;break}}else n[2784]=l|u,n[A>>2]=k,n[k+24>>2]=A,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(R=(n[2791]|0)+-1|0,n[2791]=R,!R)o=11588;else return;for(;o=n[o>>2]|0,o;)o=o+8|0;n[2791]=-1}}}function $je(){return 11628}function e6e(o){o=o|0;var l=0,u=0;return l=I,I=I+16|0,u=l,n[u>>2]=n6e(n[o+60>>2]|0)|0,o=jb(Au(6,u|0)|0)|0,I=l,o|0}function hX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0;q=I,I=I+48|0,M=q+16|0,m=q,d=q+32|0,k=o+28|0,A=n[k>>2]|0,n[d>>2]=A,R=o+20|0,A=(n[R>>2]|0)-A|0,n[d+4>>2]=A,n[d+8>>2]=l,n[d+12>>2]=u,A=A+u|0,B=o+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=jb(La(146,m|0)|0)|0;e:do if((A|0)!=(m|0)){for(l=2;!((m|0)<0);)if(A=A-m|0,Ye=n[d+4>>2]|0,ae=m>>>0>Ye>>>0,d=ae?d+8|0:d,l=(ae<<31>>31)+l|0,Ye=m-(ae?Ye:0)|0,n[d>>2]=(n[d>>2]|0)+Ye,ae=d+4|0,n[ae>>2]=(n[ae>>2]|0)-Ye,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=jb(La(146,M|0)|0)|0,(A|0)==(m|0)){L=3;break e}n[o+16>>2]=0,n[k>>2]=0,n[R>>2]=0,n[o>>2]=n[o>>2]|32,(l|0)==2?u=0:u=u-(n[d+4>>2]|0)|0}else L=3;while(!1);return(L|0)==3&&(Ye=n[o+44>>2]|0,n[o+16>>2]=Ye+(n[o+48>>2]|0),n[k>>2]=Ye,n[R>>2]=Ye),I=q,u|0}function t6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return d=I,I=I+32|0,m=d,A=d+20|0,n[m>>2]=n[o+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=A,n[m+16>>2]=u,(jb(Oa(140,m|0)|0)|0)<0?(n[A>>2]=-1,o=-1):o=n[A>>2]|0,I=d,o|0}function jb(o){return o=o|0,o>>>0>4294963200&&(n[(Zy()|0)>>2]=0-o,o=-1),o|0}function Zy(){return(r6e()|0)+64|0}function r6e(){return aU()|0}function aU(){return 2084}function n6e(o){return o=o|0,o|0}function i6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;return d=I,I=I+32|0,A=d,n[o+36>>2]=1,!(n[o>>2]&64|0)&&(n[A>>2]=n[o+60>>2],n[A+4>>2]=21523,n[A+8>>2]=d+16,no(54,A|0)|0)&&(s[o+75>>0]=-1),A=hX(o,l,u)|0,I=d,A|0}function gX(o,l){o=o|0,l=l|0;var u=0,A=0;if(u=s[o>>0]|0,A=s[l>>0]|0,!(u<<24>>24)||u<<24>>24!=A<<24>>24)o=A;else{do o=o+1|0,l=l+1|0,u=s[o>>0]|0,A=s[l>>0]|0;while(!(!(u<<24>>24)||u<<24>>24!=A<<24>>24));o=A}return(u&255)-(o&255)|0}function s6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;e:do if(!u)o=0;else{for(;A=s[o>>0]|0,d=s[l>>0]|0,A<<24>>24==d<<24>>24;)if(u=u+-1|0,u)o=o+1|0,l=l+1|0;else{o=0;break e}o=(A&255)-(d&255)|0}while(!1);return o|0}function dX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0;Qe=I,I=I+224|0,L=Qe+120|0,q=Qe+80|0,Ye=Qe,Le=Qe+136|0,A=q,d=A+40|0;do n[A>>2]=0,A=A+4|0;while((A|0)<(d|0));return n[L>>2]=n[u>>2],(lU(0,l,L,Ye,q)|0)<0?u=-1:((n[o+76>>2]|0)>-1?ae=o6e(o)|0:ae=0,u=n[o>>2]|0,M=u&32,(s[o+74>>0]|0)<1&&(n[o>>2]=u&-33),A=o+48|0,n[A>>2]|0?u=lU(o,l,L,Ye,q)|0:(d=o+44|0,m=n[d>>2]|0,n[d>>2]=Le,B=o+28|0,n[B>>2]=Le,k=o+20|0,n[k>>2]=Le,n[A>>2]=80,R=o+16|0,n[R>>2]=Le+80,u=lU(o,l,L,Ye,q)|0,m&&(Yb[n[o+36>>2]&7](o,0,0)|0,u=n[k>>2]|0?u:-1,n[d>>2]=m,n[A>>2]=0,n[R>>2]=0,n[B>>2]=0,n[k>>2]=0)),A=n[o>>2]|0,n[o>>2]=A|M,ae|0&&a6e(o),u=A&32|0?-1:u),I=Qe,u|0}function lU(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0;cr=I,I=I+64|0,fr=cr+16|0,$t=cr,Lt=cr+24|0,Rr=cr+8|0,Hr=cr+20|0,n[fr>>2]=l,ct=(o|0)!=0,He=Lt+40|0,We=He,Lt=Lt+39|0,Gr=Rr+4|0,B=0,m=0,L=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Zy()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=s[l>>0]|0,B<<24>>24)k=l;else{Xe=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Xe=9;break t}case 0:{B=k;break t}default:}tt=k+1|0,n[fr>>2]=tt,B=s[tt>>0]|0,k=tt}t:do if((Xe|0)==9)for(;;){if(Xe=0,(s[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[fr>>2]=k,(s[k>>0]|0)==37)Xe=9;else break}while(!1);if(B=B-l|0,ct&&vs(o,l,B),B|0){l=k;continue}R=k+1|0,B=(s[R>>0]|0)+-48|0,B>>>0<10?(tt=(s[k+2>>0]|0)==36,Qe=tt?B:-1,L=tt?1:L,R=tt?k+3|0:R):Qe=-1,n[fr>>2]=R,B=s[R>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(M=0,q=B;;){if(B=1<>2]=R,B=s[R>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;q=B}else M=0;while(!1);if(B<<24>>24==42){if(k=R+1|0,B=(s[k>>0]|0)+-48|0,B>>>0<10&&(s[R+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[A+((s[k>>0]|0)+-48<<3)>>2]|0,L=1,R=R+3|0;else{if(L|0){m=-1;break}ct?(L=(n[u>>2]|0)+3&-4,B=n[L>>2]|0,n[u>>2]=L+4,L=0,R=k):(B=0,L=0,R=k)}n[fr>>2]=R,tt=(B|0)<0,B=tt?0-B|0:B,M=tt?M|8192:M}else{if(B=mX(fr)|0,(B|0)<0){m=-1;break}R=n[fr>>2]|0}do if((s[R>>0]|0)==46){if((s[R+1>>0]|0)!=42){n[fr>>2]=R+1,k=mX(fr)|0,R=n[fr>>2]|0;break}if(q=R+2|0,k=(s[q>>0]|0)+-48|0,k>>>0<10&&(s[R+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[A+((s[q>>0]|0)+-48<<3)>>2]|0,R=R+4|0,n[fr>>2]=R;break}if(L|0){m=-1;break e}ct?(tt=(n[u>>2]|0)+3&-4,k=n[tt>>2]|0,n[u>>2]=tt+4):k=0,n[fr>>2]=q,R=q}else k=-1;while(!1);for(Le=0;;){if(((s[R>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(tt=R+1|0,n[fr>>2]=tt,q=s[(s[R>>0]|0)+-65+(5178+(Le*58|0))>>0]|0,ae=q&255,(ae+-1|0)>>>0<8)Le=ae,R=tt;else break}if(!(q<<24>>24)){m=-1;break}Ye=(Qe|0)>-1;do if(q<<24>>24==19)if(Ye){m=-1;break e}else Xe=49;else{if(Ye){n[d+(Qe<<2)>>2]=ae,Ye=A+(Qe<<3)|0,Qe=n[Ye+4>>2]|0,Xe=$t,n[Xe>>2]=n[Ye>>2],n[Xe+4>>2]=Qe,Xe=49;break}if(!ct){m=0;break e}yX($t,ae,u)}while(!1);if((Xe|0)==49&&(Xe=0,!ct)){B=0,l=tt;continue}R=s[R>>0]|0,R=(Le|0)!=0&(R&15|0)==3?R&-33:R,Ye=M&-65537,Qe=M&8192|0?Ye:M;t:do switch(R|0){case 110:switch((Le&255)<<24>>24){case 0:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 1:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 2:{B=n[$t>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=tt;continue e}case 3:{a[n[$t>>2]>>1]=m,B=0,l=tt;continue e}case 4:{s[n[$t>>2]>>0]=m,B=0,l=tt;continue e}case 6:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 7:{B=n[$t>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=tt;continue e}default:{B=0,l=tt;continue e}}case 112:{R=120,k=k>>>0>8?k:8,l=Qe|8,Xe=61;break}case 88:case 120:{l=Qe,Xe=61;break}case 111:{R=$t,l=n[R>>2]|0,R=n[R+4>>2]|0,ae=c6e(l,R,He)|0,Ye=We-ae|0,M=0,q=5642,k=(Qe&8|0)==0|(k|0)>(Ye|0)?k:Ye+1|0,Ye=Qe,Xe=67;break}case 105:case 100:if(R=$t,l=n[R>>2]|0,R=n[R+4>>2]|0,(R|0)<0){l=Gb(0,0,l|0,R|0)|0,R=ye,M=$t,n[M>>2]=l,n[M+4>>2]=R,M=1,q=5642,Xe=66;break t}else{M=(Qe&2049|0)!=0&1,q=Qe&2048|0?5643:Qe&1|0?5644:5642,Xe=66;break t}case 117:{R=$t,M=0,q=5642,l=n[R>>2]|0,R=n[R+4>>2]|0,Xe=66;break}case 99:{s[Lt>>0]=n[$t>>2],l=Lt,M=0,q=5642,ae=He,R=1,k=Ye;break}case 109:{R=u6e(n[(Zy()|0)>>2]|0)|0,Xe=71;break}case 115:{R=n[$t>>2]|0,R=R|0?R:5652,Xe=71;break}case 67:{n[Rr>>2]=n[$t>>2],n[Gr>>2]=0,n[$t>>2]=Rr,ae=-1,R=Rr,Xe=75;break}case 83:{l=n[$t>>2]|0,k?(ae=k,R=l,Xe=75):(Ls(o,32,B,0,Qe),l=0,Xe=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=A6e(o,+E[$t>>3],B,k,Qe,R)|0,l=tt;continue e}default:M=0,q=5642,ae=He,R=k,k=Qe}while(!1);t:do if((Xe|0)==61)Qe=$t,Le=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,ae=l6e(Le,Qe,He,R&32)|0,q=(l&8|0)==0|(Le|0)==0&(Qe|0)==0,M=q?0:2,q=q?5642:5642+(R>>4)|0,Ye=l,l=Le,R=Qe,Xe=67;else if((Xe|0)==66)ae=Xy(l,R,He)|0,Ye=Qe,Xe=67;else if((Xe|0)==71)Xe=0,Qe=f6e(R,0,k)|0,Le=(Qe|0)==0,l=R,M=0,q=5642,ae=Le?R+k|0:Qe,R=Le?k:Qe-R|0,k=Ye;else if((Xe|0)==75){for(Xe=0,q=R,l=0,k=0;M=n[q>>2]|0,!(!M||(k=EX(Hr,M)|0,(k|0)<0|k>>>0>(ae-l|0)>>>0));)if(l=k+l|0,ae>>>0>l>>>0)q=q+4|0;else break;if((k|0)<0){m=-1;break e}if(Ls(o,32,B,l,Qe),!l)l=0,Xe=84;else for(M=0;;){if(k=n[R>>2]|0,!k){Xe=84;break t}if(k=EX(Hr,k)|0,M=k+M|0,(M|0)>(l|0)){Xe=84;break t}if(vs(o,Hr,k),M>>>0>=l>>>0){Xe=84;break}else R=R+4|0}}while(!1);if((Xe|0)==67)Xe=0,R=(l|0)!=0|(R|0)!=0,Qe=(k|0)!=0|R,R=((R^1)&1)+(We-ae)|0,l=Qe?ae:He,ae=He,R=Qe?(k|0)>(R|0)?k:R:k,k=(k|0)>-1?Ye&-65537:Ye;else if((Xe|0)==84){Xe=0,Ls(o,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=tt;continue}Le=ae-l|0,Ye=(R|0)<(Le|0)?Le:R,Qe=Ye+M|0,B=(B|0)<(Qe|0)?Qe:B,Ls(o,32,B,Qe,k),vs(o,q,M),Ls(o,48,B,Qe,k^65536),Ls(o,48,Ye,Le,0),vs(o,l,Le),Ls(o,32,B,Qe,k^8192),l=tt}e:do if((Xe|0)==87&&!o)if(!L)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(yX(A+(m<<3)|0,l,u),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return I=cr,m|0}function o6e(o){return o=o|0,0}function a6e(o){o=o|0}function vs(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]&32||C6e(l,u,o)|0}function mX(o){o=o|0;var l=0,u=0,A=0;if(u=n[o>>2]|0,A=(s[u>>0]|0)+-48|0,A>>>0<10){l=0;do l=A+(l*10|0)|0,u=u+1|0,n[o>>2]=u,A=(s[u>>0]|0)+-48|0;while(A>>>0<10)}else l=0;return l|0}function yX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,n[o>>2]=l;break e}case 10:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,A=o,n[A>>2]=l,n[A+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,A=o,n[A>>2]=l,n[A+4>>2]=0;break e}case 12:{A=(n[u>>2]|0)+7&-8,l=A,d=n[l>>2]|0,l=n[l+4>>2]|0,n[u>>2]=A+8,A=o,n[A>>2]=d,n[A+4>>2]=l;break e}case 13:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,A=(A&65535)<<16>>16,d=o,n[d>>2]=A,n[d+4>>2]=((A|0)<0)<<31>>31;break e}case 14:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,d=o,n[d>>2]=A&65535,n[d+4>>2]=0;break e}case 15:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,A=(A&255)<<24>>24,d=o,n[d>>2]=A,n[d+4>>2]=((A|0)<0)<<31>>31;break e}case 16:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,d=o,n[d>>2]=A&255,n[d+4>>2]=0;break e}case 17:{d=(n[u>>2]|0)+7&-8,m=+E[d>>3],n[u>>2]=d+8,E[o>>3]=m;break e}case 18:{d=(n[u>>2]|0)+7&-8,m=+E[d>>3],n[u>>2]=d+8,E[o>>3]=m;break e}default:break e}while(!1);while(!1)}function l6e(o,l,u,A){if(o=o|0,l=l|0,u=u|0,A=A|0,!((o|0)==0&(l|0)==0))do u=u+-1|0,s[u>>0]=c[5694+(o&15)>>0]|0|A,o=qb(o|0,l|0,4)|0,l=ye;while(!((o|0)==0&(l|0)==0));return u|0}function c6e(o,l,u){if(o=o|0,l=l|0,u=u|0,!((o|0)==0&(l|0)==0))do u=u+-1|0,s[u>>0]=o&7|48,o=qb(o|0,l|0,3)|0,l=ye;while(!((o|0)==0&(l|0)==0));return u|0}function Xy(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;if(l>>>0>0|(l|0)==0&o>>>0>4294967295){for(;A=AU(o|0,l|0,10,0)|0,u=u+-1|0,s[u>>0]=A&255|48,A=o,o=fU(o|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&A>>>0>4294967295;)l=ye;l=o}else l=o;if(l)for(;u=u+-1|0,s[u>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return u|0}function u6e(o){return o=o|0,m6e(o,n[(d6e()|0)+188>>2]|0)|0}function f6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;m=l&255,A=(u|0)!=0;e:do if(A&(o&3|0)!=0)for(d=l&255;;){if((s[o>>0]|0)==d<<24>>24){B=6;break e}if(o=o+1|0,u=u+-1|0,A=(u|0)!=0,!(A&(o&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(A?B=6:u=0);e:do if((B|0)==6&&(d=l&255,(s[o>>0]|0)!=d<<24>>24)){A=Ue(m,16843009)|0;t:do if(u>>>0>3){for(;m=n[o>>2]^A,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(o=o+4|0,u=u+-4|0,u>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!u){u=0;break}for(;;){if((s[o>>0]|0)==d<<24>>24)break e;if(o=o+1|0,u=u+-1|0,!u){u=0;break}}}while(!1);return(u|0?o:0)|0}function Ls(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0;if(B=I,I=I+256|0,m=B,(u|0)>(A|0)&(d&73728|0)==0){if(d=u-A|0,eE(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=u-A|0;do vs(o,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}vs(o,m,d)}I=B}function EX(o,l){return o=o|0,l=l|0,o?o=h6e(o,l,0)|0:o=0,o|0}function A6e(o,l,u,A,d,m){o=o|0,l=+l,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=0;Hn=I,I=I+560|0,R=Hn+8|0,tt=Hn,cr=Hn+524|0,Hr=cr,M=Hn+512|0,n[tt>>2]=0,Rr=M+12|0,IX(l)|0,(ye|0)<0?(l=-l,fr=1,Gr=5659):(fr=(d&2049|0)!=0&1,Gr=d&2048|0?5662:d&1|0?5665:5660),IX(l)|0,$t=ye&2146435072;do if($t>>>0<2146435072|($t|0)==2146435072&!1){if(Ye=+p6e(l,tt)*2,B=Ye!=0,B&&(n[tt>>2]=(n[tt>>2]|0)+-1),ct=m|32,(ct|0)==97){Le=m&32,ae=Le|0?Gr+9|0:Gr,q=fr|2,B=12-A|0;do if(A>>>0>11|(B|0)==0)l=Ye;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((s[ae>>0]|0)==45){l=-(l+(-Ye-l));break}else{l=Ye+l-l;break}}while(!1);k=n[tt>>2]|0,B=(k|0)<0?0-k|0:k,B=Xy(B,((B|0)<0)<<31>>31,Rr)|0,(B|0)==(Rr|0)&&(B=M+11|0,s[B>>0]=48),s[B+-1>>0]=(k>>31&2)+43,L=B+-2|0,s[L>>0]=m+15,M=(A|0)<1,R=(d&8|0)==0,B=cr;do $t=~~l,k=B+1|0,s[B>>0]=c[5694+$t>>0]|Le,l=(l-+($t|0))*16,(k-Hr|0)==1&&!(R&(M&l==0))?(s[k>>0]=46,B=B+2|0):B=k;while(l!=0);$t=B-Hr|0,Hr=Rr-L|0,Rr=(A|0)!=0&($t+-2|0)<(A|0)?A+2|0:$t,B=Hr+q+Rr|0,Ls(o,32,u,B,d),vs(o,ae,q),Ls(o,48,u,B,d^65536),vs(o,cr,$t),Ls(o,48,Rr-$t|0,0,0),vs(o,L,Hr),Ls(o,32,u,B,d^8192);break}k=(A|0)<0?6:A,B?(B=(n[tt>>2]|0)+-28|0,n[tt>>2]=B,l=Ye*268435456):(l=Ye,B=n[tt>>2]|0),$t=(B|0)<0?R:R+288|0,R=$t;do We=~~l>>>0,n[R>>2]=We,R=R+4|0,l=(l-+(We>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=$t,q=R;;){if(L=(B|0)<29?B:29,B=q+-4|0,B>>>0>=M>>>0){R=0;do He=DX(n[B>>2]|0,0,L|0)|0,He=uU(He|0,ye|0,R|0,0)|0,We=ye,Xe=AU(He|0,We|0,1e9,0)|0,n[B>>2]=Xe,R=fU(He|0,We|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);R&&(M=M+-4|0,n[M>>2]=R)}for(R=q;!(R>>>0<=M>>>0);)if(B=R+-4|0,!(n[B>>2]|0))R=B;else break;if(B=(n[tt>>2]|0)-L|0,n[tt>>2]=B,(B|0)>0)q=R;else break}else M=$t;if((B|0)<0){A=((k+25|0)/9|0)+1|0,Qe=(ct|0)==102;do{if(Le=0-B|0,Le=(Le|0)<9?Le:9,M>>>0>>0){L=(1<>>Le,ae=0,B=M;do We=n[B>>2]|0,n[B>>2]=(We>>>Le)+ae,ae=Ue(We&L,q)|0,B=B+4|0;while(B>>>0>>0);B=n[M>>2]|0?M:M+4|0,ae?(n[R>>2]=ae,M=B,B=R+4|0):(M=B,B=R)}else M=n[M>>2]|0?M:M+4|0,B=R;R=Qe?$t:M,R=(B-R>>2|0)>(A|0)?R+(A<<2)|0:B,B=(n[tt>>2]|0)+Le|0,n[tt>>2]=B}while((B|0)<0);B=M,A=R}else B=M,A=R;if(We=$t,B>>>0>>0){if(R=(We-B>>2)*9|0,L=n[B>>2]|0,L>>>0>=10){M=10;do M=M*10|0,R=R+1|0;while(L>>>0>=M>>>0)}}else R=0;if(Qe=(ct|0)==103,Xe=(k|0)!=0,M=k-((ct|0)!=102?R:0)+((Xe&Qe)<<31>>31)|0,(M|0)<(((A-We>>2)*9|0)+-9|0)){if(M=M+9216|0,Le=$t+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){L=10;do L=L*10|0,M=M+1|0;while((M|0)!=9)}else L=10;if(q=n[Le>>2]|0,ae=(q>>>0)%(L>>>0)|0,M=(Le+4|0)==(A|0),M&(ae|0)==0)M=Le;else if(Ye=((q>>>0)/(L>>>0)|0)&1|0?9007199254740994:9007199254740992,He=(L|0)/2|0,l=ae>>>0>>0?.5:M&(ae|0)==(He|0)?1:1.5,fr&&(He=(s[Gr>>0]|0)==45,l=He?-l:l,Ye=He?-Ye:Ye),M=q-ae|0,n[Le>>2]=M,Ye+l!=Ye){if(He=M+L|0,n[Le>>2]=He,He>>>0>999999999)for(R=Le;M=R+-4|0,n[R>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[M>>2]|0)+1|0,n[M>>2]=He,He>>>0>999999999;)R=M;else M=Le;if(R=(We-B>>2)*9|0,q=n[B>>2]|0,q>>>0>=10){L=10;do L=L*10|0,R=R+1|0;while(q>>>0>=L>>>0)}}else M=Le;M=M+4|0,M=A>>>0>M>>>0?M:A,He=B}else M=A,He=B;for(ct=M;;){if(ct>>>0<=He>>>0){tt=0;break}if(B=ct+-4|0,!(n[B>>2]|0))ct=B;else{tt=1;break}}A=0-R|0;do if(Qe)if(B=((Xe^1)&1)+k|0,(B|0)>(R|0)&(R|0)>-5?(L=m+-1|0,k=B+-1-R|0):(L=m+-2|0,k=B+-1|0),B=d&8,B)Le=B;else{if(tt&&(Lt=n[ct+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((ct-We>>2)*9|0)+-9|0,(L|32|0)==102){Le=B-M|0,Le=(Le|0)>0?Le:0,k=(k|0)<(Le|0)?k:Le,Le=0;break}else{Le=B+R-M|0,Le=(Le|0)>0?Le:0,k=(k|0)<(Le|0)?k:Le,Le=0;break}}else L=m,Le=d&8;while(!1);if(Qe=k|Le,q=(Qe|0)!=0&1,ae=(L|32|0)==102,ae)Xe=0,B=(R|0)>0?R:0;else{if(B=(R|0)<0?A:R,B=Xy(B,((B|0)<0)<<31>>31,Rr)|0,M=Rr,(M-B|0)<2)do B=B+-1|0,s[B>>0]=48;while((M-B|0)<2);s[B+-1>>0]=(R>>31&2)+43,B=B+-2|0,s[B>>0]=L,Xe=B,B=M-B|0}if(B=fr+1+k+q+B|0,Ls(o,32,u,B,d),vs(o,Gr,fr),Ls(o,48,u,B,d^65536),ae){L=He>>>0>$t>>>0?$t:He,Le=cr+9|0,q=Le,ae=cr+8|0,M=L;do{if(R=Xy(n[M>>2]|0,0,Le)|0,(M|0)==(L|0))(R|0)==(Le|0)&&(s[ae>>0]=48,R=ae);else if(R>>>0>cr>>>0){eE(cr|0,48,R-Hr|0)|0;do R=R+-1|0;while(R>>>0>cr>>>0)}vs(o,R,q-R|0),M=M+4|0}while(M>>>0<=$t>>>0);if(Qe|0&&vs(o,5710,1),M>>>0>>0&(k|0)>0)for(;;){if(R=Xy(n[M>>2]|0,0,Le)|0,R>>>0>cr>>>0){eE(cr|0,48,R-Hr|0)|0;do R=R+-1|0;while(R>>>0>cr>>>0)}if(vs(o,R,(k|0)<9?k:9),M=M+4|0,R=k+-9|0,M>>>0>>0&(k|0)>9)k=R;else{k=R;break}}Ls(o,48,k+9|0,9,0)}else{if(Qe=tt?ct:He+4|0,(k|0)>-1){tt=cr+9|0,Le=(Le|0)==0,A=tt,q=0-Hr|0,ae=cr+8|0,L=He;do{R=Xy(n[L>>2]|0,0,tt)|0,(R|0)==(tt|0)&&(s[ae>>0]=48,R=ae);do if((L|0)==(He|0)){if(M=R+1|0,vs(o,R,1),Le&(k|0)<1){R=M;break}vs(o,5710,1),R=M}else{if(R>>>0<=cr>>>0)break;eE(cr|0,48,R+q|0)|0;do R=R+-1|0;while(R>>>0>cr>>>0)}while(!1);Hr=A-R|0,vs(o,R,(k|0)>(Hr|0)?Hr:k),k=k-Hr|0,L=L+4|0}while(L>>>0>>0&(k|0)>-1)}Ls(o,48,k+18|0,18,0),vs(o,Xe,Rr-Xe|0)}Ls(o,32,u,B,d^8192)}else cr=(m&32|0)!=0,B=fr+3|0,Ls(o,32,u,B,d&-65537),vs(o,Gr,fr),vs(o,l!=l|!1?cr?5686:5690:cr?5678:5682,3),Ls(o,32,u,B,d^8192);while(!1);return I=Hn,((B|0)<(u|0)?u:B)|0}function IX(o){o=+o;var l=0;return E[S>>3]=o,l=n[S>>2]|0,ye=n[S+4>>2]|0,l|0}function p6e(o,l){return o=+o,l=l|0,+ +CX(o,l)}function CX(o,l){o=+o,l=l|0;var u=0,A=0,d=0;switch(E[S>>3]=o,u=n[S>>2]|0,A=n[S+4>>2]|0,d=qb(u|0,A|0,52)|0,d&2047){case 0:{o!=0?(o=+CX(o*18446744073709552e3,l),u=(n[l>>2]|0)+-64|0):u=0,n[l>>2]=u;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[S>>2]=u,n[S+4>>2]=A&-2146435073|1071644672,o=+E[S>>3]}return+o}function h6e(o,l,u){o=o|0,l=l|0,u=u|0;do if(o){if(l>>>0<128){s[o>>0]=l,o=1;break}if(!(n[n[(g6e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){s[o>>0]=l,o=1;break}else{n[(Zy()|0)>>2]=84,o=-1;break}if(l>>>0<2048){s[o>>0]=l>>>6|192,s[o+1>>0]=l&63|128,o=2;break}if(l>>>0<55296|(l&-8192|0)==57344){s[o>>0]=l>>>12|224,s[o+1>>0]=l>>>6&63|128,s[o+2>>0]=l&63|128,o=3;break}if((l+-65536|0)>>>0<1048576){s[o>>0]=l>>>18|240,s[o+1>>0]=l>>>12&63|128,s[o+2>>0]=l>>>6&63|128,s[o+3>>0]=l&63|128,o=4;break}else{n[(Zy()|0)>>2]=84,o=-1;break}}else o=1;while(!1);return o|0}function g6e(){return aU()|0}function d6e(){return aU()|0}function m6e(o,l){o=o|0,l=l|0;var u=0,A=0;for(A=0;;){if((c[5712+A>>0]|0)==(o|0)){o=2;break}if(u=A+1|0,(u|0)==87){u=5800,A=87,o=5;break}else A=u}if((o|0)==2&&(A?(u=5800,o=5):u=5800),(o|0)==5)for(;;){do o=u,u=u+1|0;while(s[o>>0]|0);if(A=A+-1|0,A)o=5;else break}return y6e(u,n[l+20>>2]|0)|0}function y6e(o,l){return o=o|0,l=l|0,E6e(o,l)|0}function E6e(o,l){return o=o|0,l=l|0,l?l=I6e(n[l>>2]|0,n[l+4>>2]|0,o)|0:l=0,(l|0?l:o)|0}function I6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;ae=(n[o>>2]|0)+1794895138|0,m=Ad(n[o+8>>2]|0,ae)|0,A=Ad(n[o+12>>2]|0,ae)|0,d=Ad(n[o+16>>2]|0,ae)|0;e:do if(m>>>0>>2>>>0&&(q=l-(m<<2)|0,A>>>0>>0&d>>>0>>0)&&!((d|A)&3|0)){for(q=A>>>2,L=d>>>2,M=0;;){if(k=m>>>1,R=M+k|0,B=R<<1,d=B+q|0,A=Ad(n[o+(d<<2)>>2]|0,ae)|0,d=Ad(n[o+(d+1<<2)>>2]|0,ae)|0,!(d>>>0>>0&A>>>0<(l-d|0)>>>0)){A=0;break e}if(s[o+(d+A)>>0]|0){A=0;break e}if(A=gX(u,o+d|0)|0,!A)break;if(A=(A|0)<0,(m|0)==1){A=0;break e}else M=A?M:R,m=A?k:m-k|0}A=B+L|0,d=Ad(n[o+(A<<2)>>2]|0,ae)|0,A=Ad(n[o+(A+1<<2)>>2]|0,ae)|0,A>>>0>>0&d>>>0<(l-A|0)>>>0?A=s[o+(A+d)>>0]|0?0:o+A|0:A=0}else A=0;while(!1);return A|0}function Ad(o,l){o=o|0,l=l|0;var u=0;return u=xX(o|0)|0,(l|0?u:o)|0}function C6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=u+16|0,d=n[A>>2]|0,d?m=5:w6e(u)|0?A=0:(d=n[A>>2]|0,m=5);e:do if((m|0)==5){if(k=u+20|0,B=n[k>>2]|0,A=B,(d-B|0)>>>0>>0){A=Yb[n[u+36>>2]&7](u,o,l)|0;break}t:do if((s[u+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=o;break t}if(d=B+-1|0,(s[o+d>>0]|0)==10)break;B=d}if(A=Yb[n[u+36>>2]&7](u,o,B)|0,A>>>0>>0)break e;m=B,d=o+B|0,l=l-B|0,A=n[k>>2]|0}else m=0,d=o;while(!1);Qr(A|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,A=m+l|0}while(!1);return A|0}function w6e(o){o=o|0;var l=0,u=0;return l=o+74|0,u=s[l>>0]|0,s[l>>0]=u+255|u,l=n[o>>2]|0,l&8?(n[o>>2]=l|32,o=-1):(n[o+8>>2]=0,n[o+4>>2]=0,u=n[o+44>>2]|0,n[o+28>>2]=u,n[o+20>>2]=u,n[o+16>>2]=u+(n[o+48>>2]|0),o=0),o|0}function $n(o,l){o=y(o),l=y(l);var u=0,A=0;u=wX(o)|0;do if((u&2147483647)>>>0<=2139095040){if(A=wX(l)|0,(A&2147483647)>>>0<=2139095040)if((A^u|0)<0){o=(u|0)<0?l:o;break}else{o=o>2]=o,n[S>>2]|0|0}function pd(o,l){o=y(o),l=y(l);var u=0,A=0;u=BX(o)|0;do if((u&2147483647)>>>0<=2139095040){if(A=BX(l)|0,(A&2147483647)>>>0<=2139095040)if((A^u|0)<0){o=(u|0)<0?o:l;break}else{o=o>2]=o,n[S>>2]|0|0}function cU(o,l){o=y(o),l=y(l);var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;m=(h[S>>2]=o,n[S>>2]|0),k=(h[S>>2]=l,n[S>>2]|0),u=m>>>23&255,B=k>>>23&255,R=m&-2147483648,d=k<<1;e:do if(d|0&&!((u|0)==255|((B6e(l)|0)&2147483647)>>>0>2139095040)){if(A=m<<1,A>>>0<=d>>>0)return l=y(o*y(0)),y((A|0)==(d|0)?l:o);if(u)A=m&8388607|8388608;else{if(u=m<<9,(u|0)>-1){A=u,u=0;do u=u+-1|0,A=A<<1;while((A|0)>-1)}else u=0;A=m<<1-u}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=A-k|0,m=(d|0)>-1;t:do if((u|0)>(B|0)){for(;;){if(m)if(d)A=d;else break;if(A=A<<1,u=u+-1|0,d=A-k|0,m=(d|0)>-1,(u|0)<=(B|0))break t}l=y(o*y(0));break e}while(!1);if(m)if(d)A=d;else{l=y(o*y(0));break}if(A>>>0<8388608)do A=A<<1,u=u+-1|0;while(A>>>0<8388608);(u|0)>0?u=A+-8388608|u<<23:u=A>>>(1-u|0),l=(n[S>>2]=u|R,y(h[S>>2]))}else M=3;while(!1);return(M|0)==3&&(l=y(o*l),l=y(l/l)),y(l)}function B6e(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function v6e(o,l){return o=o|0,l=l|0,dX(n[582]|0,o,l)|0}function sn(o){o=o|0,Nt()}function $y(o){o=o|0}function S6e(o,l){return o=o|0,l=l|0,0}function D6e(o){return o=o|0,(vX(o+4|0)|0)==-1?(ip[n[(n[o>>2]|0)+8>>2]&127](o),o=1):o=0,o|0}function vX(o){o=o|0;var l=0;return l=n[o>>2]|0,n[o>>2]=l+-1,l+-1|0}function Gh(o){o=o|0,D6e(o)|0&&P6e(o)}function P6e(o){o=o|0;var l=0;l=o+8|0,n[l>>2]|0&&(vX(l)|0)!=-1||ip[n[(n[o>>2]|0)+16>>2]&127](o)}function Kt(o){o=o|0;var l=0;for(l=o|0?o:1;o=_b(l)|0,!(o|0);){if(o=x6e()|0,!o){o=0;break}UX[o&0]()}return o|0}function SX(o){return o=o|0,Kt(o)|0}function It(o){o=o|0,Hb(o)}function b6e(o){o=o|0,(s[o+11>>0]|0)<0&&It(n[o>>2]|0)}function x6e(){var o=0;return o=n[2923]|0,n[2923]=o+0,o|0}function k6e(){}function Gb(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,A=l-A-(u>>>0>o>>>0|0)>>>0,ye=A,o-u>>>0|0|0}function uU(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,u=o+u>>>0,ye=l+A+(u>>>0>>0|0)>>>0,u|0|0}function eE(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;if(m=o+u|0,l=l&255,(u|0)>=67){for(;o&3;)s[o>>0]=l,o=o+1|0;for(A=m&-4|0,d=A-64|0,B=l|l<<8|l<<16|l<<24;(o|0)<=(d|0);)n[o>>2]=B,n[o+4>>2]=B,n[o+8>>2]=B,n[o+12>>2]=B,n[o+16>>2]=B,n[o+20>>2]=B,n[o+24>>2]=B,n[o+28>>2]=B,n[o+32>>2]=B,n[o+36>>2]=B,n[o+40>>2]=B,n[o+44>>2]=B,n[o+48>>2]=B,n[o+52>>2]=B,n[o+56>>2]=B,n[o+60>>2]=B,o=o+64|0;for(;(o|0)<(A|0);)n[o>>2]=B,o=o+4|0}for(;(o|0)<(m|0);)s[o>>0]=l,o=o+1|0;return m-u|0}function DX(o,l,u){return o=o|0,l=l|0,u=u|0,(u|0)<32?(ye=l<>>32-u,o<>>u,o>>>u|(l&(1<>>u-32|0)}function Qr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;if((u|0)>=8192)return OA(o|0,l|0,u|0)|0;if(m=o|0,d=o+u|0,(o&3)==(l&3)){for(;o&3;){if(!u)return m|0;s[o>>0]=s[l>>0]|0,o=o+1|0,l=l+1|0,u=u-1|0}for(u=d&-4|0,A=u-64|0;(o|0)<=(A|0);)n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2],n[o+16>>2]=n[l+16>>2],n[o+20>>2]=n[l+20>>2],n[o+24>>2]=n[l+24>>2],n[o+28>>2]=n[l+28>>2],n[o+32>>2]=n[l+32>>2],n[o+36>>2]=n[l+36>>2],n[o+40>>2]=n[l+40>>2],n[o+44>>2]=n[l+44>>2],n[o+48>>2]=n[l+48>>2],n[o+52>>2]=n[l+52>>2],n[o+56>>2]=n[l+56>>2],n[o+60>>2]=n[l+60>>2],o=o+64|0,l=l+64|0;for(;(o|0)<(u|0);)n[o>>2]=n[l>>2],o=o+4|0,l=l+4|0}else for(u=d-4|0;(o|0)<(u|0);)s[o>>0]=s[l>>0]|0,s[o+1>>0]=s[l+1>>0]|0,s[o+2>>0]=s[l+2>>0]|0,s[o+3>>0]=s[l+3>>0]|0,o=o+4|0,l=l+4|0;for(;(o|0)<(d|0);)s[o>>0]=s[l>>0]|0,o=o+1|0,l=l+1|0;return m|0}function PX(o){o=o|0;var l=0;return l=s[N+(o&255)>>0]|0,(l|0)<8?l|0:(l=s[N+(o>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=s[N+(o>>16&255)>>0]|0,(l|0)<8?l+16|0:(s[N+(o>>>24)>>0]|0)+24|0))}function bX(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0;if(L=o,R=l,M=R,B=u,ae=A,k=ae,!M)return m=(d|0)!=0,k?m?(n[d>>2]=o|0,n[d+4>>2]=l&0,ae=0,d=0,ye=ae,d|0):(ae=0,d=0,ye=ae,d|0):(m&&(n[d>>2]=(L>>>0)%(B>>>0),n[d+4>>2]=0),ae=0,d=(L>>>0)/(B>>>0)>>>0,ye=ae,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=31){q=m+1|0,k=31-m|0,l=m-31>>31,B=q,o=L>>>(q>>>0)&l|M<>>(q>>>0)&l,m=0,k=L<>2]=o|0,n[d+4>>2]=R|l&0,ae=0,d=0,ye=ae,d|0):(ae=0,d=0,ye=ae,d|0)}if(m=B-1|0,m&B|0){k=(P(B|0)|0)+33-(P(M|0)|0)|0,Le=64-k|0,q=32-k|0,R=q>>31,Ye=k-32|0,l=Ye>>31,B=k,o=q-1>>31&M>>>(Ye>>>0)|(M<>>(k>>>0))&l,l=l&M>>>(k>>>0),m=L<>>(Ye>>>0))&R|L<>31;break}return d|0&&(n[d>>2]=m&L,n[d+4>>2]=0),(B|0)==1?(Ye=R|l&0,Le=o|0|0,ye=Ye,Le|0):(Le=PX(B|0)|0,Ye=M>>>(Le>>>0)|0,Le=M<<32-Le|L>>>(Le>>>0)|0,ye=Ye,Le|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),Ye=0,Le=(M>>>0)/(B>>>0)>>>0,ye=Ye,Le|0;if(!L)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(k>>>0)),Ye=0,Le=(M>>>0)/(k>>>0)>>>0,ye=Ye,Le|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=o|0,n[d+4>>2]=m&M|l&0),Ye=0,Le=M>>>((PX(k|0)|0)>>>0),ye=Ye,Le|0;if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,o=M<>>(l>>>0),l=M>>>(l>>>0),m=0,k=L<>2]=o|0,n[d+4>>2]=R|l&0,Ye=0,Le=0,ye=Ye,Le|0):(Ye=0,Le=0,ye=Ye,Le|0)}while(!1);if(!B)M=k,R=0,k=0;else{q=u|0|0,L=ae|A&0,M=uU(q|0,L|0,-1,-1)|0,u=ye,R=k,k=0;do A=R,R=m>>>31|R<<1,m=k|m<<1,A=o<<1|A>>>31|0,ae=o>>>31|l<<1|0,Gb(M|0,u|0,A|0,ae|0)|0,Le=ye,Ye=Le>>31|((Le|0)<0?-1:0)<<1,k=Ye&1,o=Gb(A|0,ae|0,Ye&q|0,(((Le|0)<0?-1:0)>>31|((Le|0)<0?-1:0)<<1)&L|0)|0,l=ye,B=B-1|0;while(B|0);M=R,R=0}return B=0,d|0&&(n[d>>2]=o,n[d+4>>2]=l),Ye=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|R,Le=(m<<1|0)&-2|k,ye=Ye,Le|0}function fU(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,bX(o,l,u,A,0)|0}function qh(o){o=o|0;var l=0,u=0;return u=o+15&-16|0,l=n[C>>2]|0,o=l+u|0,(u|0)>0&(o|0)<(l|0)|(o|0)<0?(oe()|0,fu(12),-1):(n[C>>2]=o,(o|0)>($()|0)&&!(Z()|0)?(n[C>>2]=l,fu(12),-1):l|0)}function Q2(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;if((l|0)<(o|0)&(o|0)<(l+u|0)){for(A=o,l=l+u|0,o=o+u|0;(u|0)>0;)o=o-1|0,l=l-1|0,u=u-1|0,s[o>>0]=s[l>>0]|0;o=A}else Qr(o,l,u)|0;return o|0}function AU(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;return m=I,I=I+16|0,d=m|0,bX(o,l,u,A,d)|0,I=m,ye=n[d+4>>2]|0,n[d>>2]|0|0}function xX(o){return o=o|0,(o&255)<<24|(o>>8&255)<<16|(o>>16&255)<<8|o>>>24|0}function Q6e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,kX[o&1](l|0,u|0,A|0,d|0,m|0)}function R6e(o,l,u){o=o|0,l=l|0,u=y(u),QX[o&1](l|0,y(u))}function T6e(o,l,u){o=o|0,l=l|0,u=+u,RX[o&31](l|0,+u)}function F6e(o,l,u,A){return o=o|0,l=l|0,u=y(u),A=y(A),y(TX[o&0](l|0,y(u),y(A)))}function N6e(o,l){o=o|0,l=l|0,ip[o&127](l|0)}function O6e(o,l,u){o=o|0,l=l|0,u=u|0,sp[o&31](l|0,u|0)}function L6e(o,l){return o=o|0,l=l|0,gd[o&31](l|0)|0}function M6e(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0,FX[o&1](l|0,+u,+A,d|0)}function U6e(o,l,u,A){o=o|0,l=l|0,u=+u,A=+A,EGe[o&1](l|0,+u,+A)}function _6e(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,Yb[o&7](l|0,u|0,A|0)|0}function H6e(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,+IGe[o&1](l|0,u|0,A|0)}function j6e(o,l){return o=o|0,l=l|0,+NX[o&15](l|0)}function G6e(o,l,u){return o=o|0,l=l|0,u=+u,CGe[o&1](l|0,+u)|0}function q6e(o,l,u){return o=o|0,l=l|0,u=u|0,hU[o&15](l|0,u|0)|0}function W6e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=+A,d=+d,m=m|0,wGe[o&1](l|0,u|0,+A,+d,m|0)}function Y6e(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,BGe[o&1](l|0,u|0,A|0,d|0,m|0,B|0)}function V6e(o,l,u){return o=o|0,l=l|0,u=u|0,+OX[o&7](l|0,u|0)}function J6e(o){return o=o|0,Vb[o&7]()|0}function K6e(o,l,u,A,d,m){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,LX[o&1](l|0,u|0,A|0,d|0,m|0)|0}function z6e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=+d,vGe[o&1](l|0,u|0,A|0,+d)}function Z6e(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=y(A),d=d|0,m=y(m),B=B|0,MX[o&1](l|0,u|0,y(A),d|0,y(m),B|0)}function X6e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,F2[o&15](l|0,u|0,A|0)}function $6e(o){o=o|0,UX[o&0]()}function eGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A,_X[o&15](l|0,u|0,+A)}function tGe(o,l,u){return o=o|0,l=+l,u=+u,SGe[o&1](+l,+u)|0}function rGe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,gU[o&15](l|0,u|0,A|0,d|0)}function nGe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,F(0)}function iGe(o,l){o=o|0,l=y(l),F(1)}function Za(o,l){o=o|0,l=+l,F(2)}function sGe(o,l,u){return o=o|0,l=y(l),u=y(u),F(3),$e}function wr(o){o=o|0,F(4)}function R2(o,l){o=o|0,l=l|0,F(5)}function Ol(o){return o=o|0,F(6),0}function oGe(o,l,u,A){o=o|0,l=+l,u=+u,A=A|0,F(7)}function aGe(o,l,u){o=o|0,l=+l,u=+u,F(8)}function lGe(o,l,u){return o=o|0,l=l|0,u=u|0,F(9),0}function cGe(o,l,u){return o=o|0,l=l|0,u=u|0,F(10),0}function hd(o){return o=o|0,F(11),0}function uGe(o,l){return o=o|0,l=+l,F(12),0}function T2(o,l){return o=o|0,l=l|0,F(13),0}function fGe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0,F(14)}function AGe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,F(15)}function pU(o,l){return o=o|0,l=l|0,F(16),0}function pGe(){return F(17),0}function hGe(o,l,u,A,d){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,F(18),0}function gGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A,F(19)}function dGe(o,l,u,A,d,m){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0,F(20)}function Wb(o,l,u){o=o|0,l=l|0,u=u|0,F(21)}function mGe(){F(22)}function tE(o,l,u){o=o|0,l=l|0,u=+u,F(23)}function yGe(o,l){return o=+o,l=+l,F(24),0}function rE(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,F(25)}var kX=[nGe,h3e],QX=[iGe,Ry],RX=[Za,Xg,Fh,h2,g2,d2,m2,Pf,_y,y2,bf,$g,ed,E2,I2,wu,td,C2,Hy,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za],TX=[sGe],ip=[wr,$y,Jke,Kke,zke,SFe,DFe,PFe,G_e,q_e,W_e,t3e,r3e,n3e,Bje,vje,Sje,Bl,Zg,u2,sr,hc,xb,kb,Mke,iQe,dQe,FQe,zQe,pRe,kRe,WRe,oTe,wTe,MTe,eFe,dFe,qFe,oNe,wNe,MNe,eOe,dOe,NOe,zOe,uLe,DLe,db,nMe,EMe,MMe,rUe,mUe,MUe,JUe,ZUe,h_e,m_e,F_e,V_e,z_e,p4e,Q4e,dz,A8e,G8e,iHe,EHe,HHe,rje,pje,dje,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr],sp=[R2,Ly,VL,f2,A2,xr,so,zi,Ns,ws,Uy,Th,B2,Cb,id,zL,ZL,wb,Bb,eM,xf,ne,UOe,$Oe,oUe,g8e,U4e,eX,R2,R2,R2,R2],gd=[Ol,e6e,Ny,nd,Gy,ga,mb,Nh,w2,KL,Eb,qy,vb,tM,Vy,xLe,CUe,d4e,E8e,Tl,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol],FX=[oGe,oM],EGe=[aGe,L_e],Yb=[lGe,hX,t6e,i6e,mRe,JFe,aMe,BHe],IGe=[cGe,jTe],NX=[hd,Oh,Ib,$A,aM,v,D,Q,H,V,hd,hd,hd,hd,hd,hd],CGe=[uGe,WUe],hU=[T2,S6e,Sb,jke,MQe,TRe,JRe,IFe,uNe,hLe,Ty,lHe,T2,T2,T2,T2],wGe=[fGe,IQe],BGe=[AGe,WHe],OX=[pU,XL,Se,_e,pt,iFe,pU,pU],Vb=[pGe,Wt,Fy,gb,t_e,C_e,e4e,Ije],LX=[hGe,Sy],vGe=[gGe,jNe],MX=[dGe,rM],F2=[Wb,ko,yb,$L,vu,eRe,cTe,iOe,IOe,YL,L3e,V8e,oje,Wb,Wb,Wb],UX=[mGe],_X=[tE,JL,My,XA,p2,Bu,jy,rd,DNe,BMe,HUe,tE,tE,tE,tE,tE],SGe=[yGe,H_e],gU=[rE,DTe,LLe,jMe,kUe,a_e,P_e,a4e,O4e,S8e,Qje,rE,rE,rE,rE,rE];return{_llvm_bswap_i32:xX,dynCall_idd:tGe,dynCall_i:J6e,_i64Subtract:Gb,___udivdi3:fU,dynCall_vif:R6e,setThrew:ca,dynCall_viii:X6e,_bitshift64Lshr:qb,_bitshift64Shl:DX,dynCall_vi:N6e,dynCall_viiddi:W6e,dynCall_diii:H6e,dynCall_iii:q6e,_memset:eE,_sbrk:qh,_memcpy:Qr,__GLOBAL__sub_I_Yoga_cpp:a2,dynCall_vii:O6e,___uremdi3:AU,dynCall_vid:T6e,stackAlloc:Ua,_nbind_init:jje,getTempRet0:MA,dynCall_di:j6e,dynCall_iid:G6e,setTempRet0:LA,_i64Add:uU,dynCall_fiff:F6e,dynCall_iiii:_6e,_emscripten_get_global_libc:$je,dynCall_viid:eGe,dynCall_viiid:z6e,dynCall_viififi:Z6e,dynCall_ii:L6e,__GLOBAL__sub_I_Binding_cc:i8e,dynCall_viiii:rGe,dynCall_iiiiii:K6e,stackSave:hf,dynCall_viiiii:Q6e,__GLOBAL__sub_I_nbind_cc:Sr,dynCall_vidd:U6e,_free:Hb,runPostSets:k6e,dynCall_viiiiii:Y6e,establishStackSpace:wn,_memmove:Q2,stackRestore:lc,_malloc:_b,__GLOBAL__sub_I_common_cc:v4e,dynCall_viddi:M6e,dynCall_dii:V6e,dynCall_v:$6e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function s(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];s();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(s){r=s(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var Fm=_((cKt,bwe)=>{"use strict";var Ipt=Dwe(),Cpt=Pwe(),j9=!1,G9=null;Cpt({},function(t,e){if(!j9){if(j9=!0,t)throw t;G9=e}});if(!j9)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");bwe.exports=Ipt(G9.bind,G9.lib)});var W9=_((uKt,q9)=>{"use strict";var xwe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);q9.exports=xwe;q9.exports.default=xwe});var Qwe=_((fKt,kwe)=>{"use strict";kwe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var GS=_((AKt,Y9)=>{"use strict";var wpt=dk(),Bpt=W9(),vpt=Qwe(),Rwe=t=>{if(typeof t!="string"||t.length===0||(t=wpt(t),t.length===0))return 0;t=t.replace(vpt()," ");let e=0;for(let r=0;r=127&&s<=159||s>=768&&s<=879||(s>65535&&r++,e+=Bpt(s)?2:1)}return e};Y9.exports=Rwe;Y9.exports.default=Rwe});var J9=_((pKt,V9)=>{"use strict";var Spt=GS(),Twe=t=>{let e=0;for(let r of t.split(` `))e=Math.max(e,Spt(r));return e};V9.exports=Twe;V9.exports.default=Twe});var Fwe=_(qS=>{"use strict";var Dpt=qS&&qS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qS,"__esModule",{value:!0});var Ppt=Dpt(J9()),K9={};qS.default=t=>{if(t.length===0)return{width:0,height:0};if(K9[t])return K9[t];let e=Ppt.default(t),r=t.split(` `).length;return K9[t]={width:e,height:r},{width:e,height:r}}});var Nwe=_(WS=>{"use strict";var bpt=WS&&WS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(WS,"__esModule",{value:!0});var Pn=bpt(Fm()),xpt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?Pn.default.POSITION_TYPE_ABSOLUTE:Pn.default.POSITION_TYPE_RELATIVE)},kpt=(t,e)=>{"marginLeft"in e&&t.setMargin(Pn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(Pn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(Pn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(Pn.default.EDGE_BOTTOM,e.marginBottom||0)},Qpt=(t,e)=>{"paddingLeft"in e&&t.setPadding(Pn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(Pn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(Pn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(Pn.default.EDGE_BOTTOM,e.paddingBottom||0)},Rpt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(Pn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(Pn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(Pn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(Pn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(Pn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(Pn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(Pn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(Pn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(Pn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(Pn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(Pn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(Pn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(Pn.default.JUSTIFY_SPACE_AROUND))},Tpt=(t,e)=>{var r,s;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((s=e.minHeight)!==null&&s!==void 0?s:0))},Fpt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?Pn.default.DISPLAY_FLEX:Pn.default.DISPLAY_NONE)},Npt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(Pn.default.EDGE_TOP,r),t.setBorder(Pn.default.EDGE_BOTTOM,r),t.setBorder(Pn.default.EDGE_LEFT,r),t.setBorder(Pn.default.EDGE_RIGHT,r)}};WS.default=(t,e={})=>{xpt(t,e),kpt(t,e),Qpt(t,e),Rpt(t,e),Tpt(t,e),Fpt(t,e),Npt(t,e)}});var Mwe=_((dKt,Lwe)=>{"use strict";var YS=GS(),Opt=dk(),Lpt=sk(),Z9=new Set(["\x1B","\x9B"]),Mpt=39,Owe=t=>`${Z9.values().next().value}[${t}m`,Upt=t=>t.split(" ").map(e=>YS(e)),z9=(t,e,r)=>{let s=[...e],a=!1,n=YS(Opt(t[t.length-1]));for(let[c,f]of s.entries()){let p=YS(f);if(n+p<=r?t[t.length-1]+=f:(t.push(f),n=0),Z9.has(f))a=!0;else if(a&&f==="m"){a=!1;continue}a||(n+=p,n===r&&c0&&t.length>1&&(t[t.length-2]+=t.pop())},_pt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(YS(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},Hpt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let s="",a="",n,c=Upt(t),f=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(f[f.length-1]=f[f.length-1].trimLeft());let E=YS(f[f.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(f.push(""),E=0),(E>0||r.trim===!1)&&(f[f.length-1]+=" ",E++)),r.hard&&c[p]>e){let C=e-E,S=1+Math.floor((c[p]-C-1)/e);Math.floor((c[p]-1)/e)e&&E>0&&c[p]>0){if(r.wordWrap===!1&&Ee&&r.wordWrap===!1){z9(f,h,e);continue}f[f.length-1]+=h}r.trim!==!1&&(f=f.map(_pt)),s=f.join(` `);for(let[p,h]of[...s].entries()){if(a+=h,Z9.has(h)){let C=parseFloat(/\d[^m]*/.exec(s.slice(p,p+4)));n=C===Mpt?null:C}let E=Lpt.codes.get(Number(n));n&&E&&(s[p+1]===` `?a+=Owe(E):h===` `&&(a+=Owe(n)))}return a};Lwe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` `).split(` `).map(s=>Hpt(s,e,r)).join(` `)});var Hwe=_((mKt,_we)=>{"use strict";var Uwe="[\uD800-\uDBFF][\uDC00-\uDFFF]",jpt=t=>t&&t.exact?new RegExp(`^${Uwe}$`):new RegExp(Uwe,"g");_we.exports=jpt});var X9=_((yKt,Wwe)=>{"use strict";var Gpt=W9(),qpt=Hwe(),jwe=sk(),qwe=["\x1B","\x9B"],FF=t=>`${qwe[0]}[${t}m`,Gwe=(t,e,r)=>{let s=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let c=jwe.codes.get(parseInt(a,10));if(c){let f=t.indexOf(c.toString());f>=0?t.splice(f,1):s.push(FF(e?c:n))}else if(e){s.push(FF(0));break}else s.push(FF(n))}if(e&&(s=s.filter((a,n)=>s.indexOf(a)===n),r!==void 0)){let a=FF(jwe.codes.get(parseInt(r,10)));s=s.reduce((n,c)=>c===a?[c,...n]:[...n,c],[])}return s.join("")};Wwe.exports=(t,e,r)=>{let s=[...t.normalize()],a=[];r=typeof r=="number"?r:s.length;let n=!1,c,f=0,p="";for(let[h,E]of s.entries()){let C=!1;if(qwe.includes(E)){let S=/\d[^m]*/.exec(t.slice(h,h+18));c=S&&S.length>0?S[0]:void 0,fe&&f<=r)p+=E;else if(f===e&&!n&&c!==void 0)p=Gwe(a);else if(f>=r){p+=Gwe(a,!0,c);break}}return p}});var Vwe=_((EKt,Ywe)=>{"use strict";var $0=X9(),Wpt=GS();function NF(t,e,r){if(t.charAt(e)===" ")return e;for(let s=1;s<=3;s++)if(r){if(t.charAt(e+s)===" ")return e+s}else if(t.charAt(e-s)===" ")return e-s;return e}Ywe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:s,space:a,preferTruncationOnSpace:n}=r,c="\u2026",f=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return c;let p=Wpt(t);if(p<=e)return t;if(s==="start"){if(n){let h=NF(t,p-e+1,!0);return c+$0(t,h,p).trim()}return a===!0&&(c+=" ",f=2),c+$0(t,p-e+f,p)}if(s==="middle"){a===!0&&(c=" "+c+" ",f=3);let h=Math.floor(e/2);if(n){let E=NF(t,h),C=NF(t,p-(e-h)+1,!0);return $0(t,0,E)+c+$0(t,C,p).trim()}return $0(t,0,h)+c+$0(t,p-(e-h)+f,p)}if(s==="end"){if(n){let h=NF(t,e-1);return $0(t,0,h)+c}return a===!0&&(c=" "+c,f=2),$0(t,0,e-f)+c}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${s}`)}});var eW=_(VS=>{"use strict";var Jwe=VS&&VS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(VS,"__esModule",{value:!0});var Ypt=Jwe(Mwe()),Vpt=Jwe(Vwe()),$9={};VS.default=(t,e,r)=>{let s=t+String(e)+String(r);if($9[s])return $9[s];let a=t;if(r==="wrap"&&(a=Ypt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=Vpt.default(t,e,{position:n})}return $9[s]=a,a}});var rW=_(tW=>{"use strict";Object.defineProperty(tW,"__esModule",{value:!0});var Kwe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let s="";r.nodeName==="#text"?s=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(s=Kwe(r)),s.length>0&&typeof r.internal_transform=="function"&&(s=r.internal_transform(s))),e+=s}return e};tW.default=Kwe});var nW=_(Pi=>{"use strict";var JS=Pi&&Pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pi,"__esModule",{value:!0});Pi.setTextNodeValue=Pi.createTextNode=Pi.setStyle=Pi.setAttribute=Pi.removeChildNode=Pi.insertBeforeNode=Pi.appendChildNode=Pi.createNode=Pi.TEXT_NAME=void 0;var Jpt=JS(Fm()),zwe=JS(Fwe()),Kpt=JS(Nwe()),zpt=JS(eW()),Zpt=JS(rW());Pi.TEXT_NAME="#text";Pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:Jpt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(Xpt.bind(null,r))),r};Pi.appendChildNode=(t,e)=>{var r;e.parentNode&&Pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&OF(t)};Pi.insertBeforeNode=(t,e,r)=>{var s,a;e.parentNode&&Pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((s=t.yogaNode)===null||s===void 0||s.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&OF(t)};Pi.removeChildNode=(t,e)=>{var r,s;e.yogaNode&&((s=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||s===void 0||s.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&OF(t)};Pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};Pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&Kpt.default(t.yogaNode,e)};Pi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return Pi.setTextNodeValue(e,t),e};var Xpt=function(t,e){var r,s;let a=t.nodeName==="#text"?t.nodeValue:Zpt.default(t),n=zwe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let c=(s=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&s!==void 0?s:"wrap",f=zpt.default(a,e,c);return zwe.default(f)},Zwe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:Zwe(t.parentNode)},OF=t=>{let e=Zwe(t);e?.markDirty()};Pi.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,OF(t)}});var r1e=_(KS=>{"use strict";var t1e=KS&&KS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(KS,"__esModule",{value:!0});var Xwe=U9(),$pt=t1e(Iwe()),$we=t1e(Fm()),ea=nW(),e1e=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};KS.default=$pt.default({schedulePassiveEffects:Xwe.unstable_scheduleCallback,cancelPassiveEffects:Xwe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,s=e==="ink-text"||e==="ink-virtual-text";return r===s?t:{isInsideText:s}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,s)=>{if(s.isInsideText&&t==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=t==="ink-text"&&s.isInsideText?"ink-virtual-text":t,n=ea.createNode(a);for(let[c,f]of Object.entries(e))c!=="children"&&(c==="style"?ea.setStyle(n,f):c==="internal_transform"?n.internal_transform=f:c==="internal_static"?n.internal_static=!0:ea.setAttribute(n,c,f));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside component`);return ea.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{ea.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{ea.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay($we.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay($we.default.DISPLAY_FLEX)},appendInitialChild:ea.appendChildNode,appendChild:ea.appendChildNode,insertBefore:ea.insertBeforeNode,finalizeInitialChildren:(t,e,r,s)=>(t.internal_static&&(s.isStaticDirty=!0,s.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:ea.appendChildNode,insertInContainerBefore:ea.insertBeforeNode,removeChildFromContainer:(t,e)=>{ea.removeChildNode(t,e),e1e(e.yogaNode)},prepareUpdate:(t,e,r,s,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},c=Object.keys(s);for(let f of c)if(s[f]!==r[f]){if(f==="style"&&typeof s.style=="object"&&typeof r.style=="object"){let h=s.style,E=r.style,C=Object.keys(h);for(let S of C){if(S==="borderStyle"||S==="borderColor"){if(typeof n.style!="object"){let b={};n.style=b}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[S]!==E[S]){if(typeof n.style!="object"){let b={};n.style=b}n.style[S]=h[S]}}continue}n[f]=s[f]}return n},commitUpdate:(t,e)=>{for(let[r,s]of Object.entries(e))r!=="children"&&(r==="style"?ea.setStyle(t,s):r==="internal_transform"?t.internal_transform=s:r==="internal_static"?t.internal_static=!0:ea.setAttribute(t,r,s))},commitTextUpdate:(t,e,r)=>{ea.setTextNodeValue(t,r)},removeChild:(t,e)=>{ea.removeChildNode(t,e),e1e(e.yogaNode)}})});var i1e=_((vKt,n1e)=>{"use strict";n1e.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let s=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(s,r.indent.repeat(e))}});var s1e=_(zS=>{"use strict";var eht=zS&&zS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zS,"__esModule",{value:!0});var LF=eht(Fm());zS.default=t=>t.getComputedWidth()-t.getComputedPadding(LF.default.EDGE_LEFT)-t.getComputedPadding(LF.default.EDGE_RIGHT)-t.getComputedBorder(LF.default.EDGE_LEFT)-t.getComputedBorder(LF.default.EDGE_RIGHT)});var o1e=_((DKt,tht)=>{tht.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var l1e=_((PKt,iW)=>{"use strict";var a1e=o1e();iW.exports=a1e;iW.exports.default=a1e});var sW=_(XS=>{"use strict";var rht=XS&&XS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(XS,"__esModule",{value:!0});var ZS=rht(RE()),nht=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,iht=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,MF=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);XS.default=(t,e,r)=>{if(!e)return t;if(e in ZS.default){let a=MF(e,r);return ZS.default[a](t)}if(e.startsWith("#")){let a=MF("hex",r);return ZS.default[a](e)(t)}if(e.startsWith("ansi")){let a=iht.exec(e);if(!a)return t;let n=MF(a[1],r),c=Number(a[2]);return ZS.default[n](c)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=nht.exec(e);if(!a)return t;let n=MF(a[1],r),c=Number(a[2]),f=Number(a[3]),p=Number(a[4]);return ZS.default[n](c,f,p)(t)}return t}});var u1e=_($S=>{"use strict";var c1e=$S&&$S.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($S,"__esModule",{value:!0});var sht=c1e(l1e()),oW=c1e(sW());$S.default=(t,e,r,s)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),c=r.style.borderColor,f=sht.default[r.style.borderStyle],p=oW.default(f.topLeft+f.horizontal.repeat(a-2)+f.topRight,c,"foreground"),h=(oW.default(f.vertical,c,"foreground")+` `).repeat(n-2),E=oW.default(f.bottomLeft+f.horizontal.repeat(a-2)+f.bottomRight,c,"foreground");s.write(t,e,p,{transformers:[]}),s.write(t,e+1,h,{transformers:[]}),s.write(t+a-1,e+1,h,{transformers:[]}),s.write(t,e+n-1,E,{transformers:[]})}}});var A1e=_(eD=>{"use strict";var Nm=eD&&eD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eD,"__esModule",{value:!0});var oht=Nm(Fm()),aht=Nm(J9()),lht=Nm(i1e()),cht=Nm(eW()),uht=Nm(s1e()),fht=Nm(rW()),Aht=Nm(u1e()),pht=(t,e)=>{var r;let s=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(s){let a=s.getComputedLeft(),n=s.getComputedTop();e=` `.repeat(n)+lht.default(e,a)}return e},f1e=(t,e,r)=>{var s;let{offsetX:a=0,offsetY:n=0,transformers:c=[],skipStaticElements:f}=r;if(f&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===oht.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),C=c;if(typeof t.internal_transform=="function"&&(C=[t.internal_transform,...c]),t.nodeName==="ink-text"){let S=fht.default(t);if(S.length>0){let b=aht.default(S),I=uht.default(p);if(b>I){let T=(s=t.style.textWrap)!==null&&s!==void 0?s:"wrap";S=cht.default(S,I,T)}S=pht(t,S),e.write(h,E,S,{transformers:C})}return}if(t.nodeName==="ink-box"&&Aht.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let S of t.childNodes)f1e(S,e,{offsetX:h,offsetY:E,transformers:C,skipStaticElements:f})}};eD.default=f1e});var g1e=_(tD=>{"use strict";var h1e=tD&&tD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tD,"__esModule",{value:!0});var p1e=h1e(X9()),hht=h1e(GS()),aW=class{constructor(e){this.writes=[];let{width:r,height:s}=e;this.width=r,this.height=s}write(e,r,s,a){let{transformers:n}=a;s&&this.writes.push({x:e,y:r,text:s,transformers:n})}get(){let e=[];for(let s=0;ss.trimRight()).join(` `),height:e.length}}};tD.default=aW});var y1e=_(rD=>{"use strict";var lW=rD&&rD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rD,"__esModule",{value:!0});var ght=lW(Fm()),d1e=lW(A1e()),m1e=lW(g1e());rD.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,ght.default.DIRECTION_LTR);let s=new m1e.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});d1e.default(t,s,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new m1e.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),d1e.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:c}=s.get();return{output:n,outputHeight:c,staticOutput:a?`${a.get().output} `:""}}return{output:"",outputHeight:0,staticOutput:""}}});var w1e=_((TKt,C1e)=>{"use strict";var E1e=Ie("stream"),I1e=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],cW={},dht=t=>{let e=new E1e.PassThrough,r=new E1e.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let s=new console.Console(e,r);for(let a of I1e)cW[a]=console[a],console[a]=s[a];return()=>{for(let a of I1e)console[a]=cW[a];cW={}}};C1e.exports=dht});var fW=_(uW=>{"use strict";Object.defineProperty(uW,"__esModule",{value:!0});uW.default=new WeakMap});var pW=_(AW=>{"use strict";Object.defineProperty(AW,"__esModule",{value:!0});var mht=hn(),B1e=mht.createContext({exit:()=>{}});B1e.displayName="InternalAppContext";AW.default=B1e});var gW=_(hW=>{"use strict";Object.defineProperty(hW,"__esModule",{value:!0});var yht=hn(),v1e=yht.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});v1e.displayName="InternalStdinContext";hW.default=v1e});var mW=_(dW=>{"use strict";Object.defineProperty(dW,"__esModule",{value:!0});var Eht=hn(),S1e=Eht.createContext({stdout:void 0,write:()=>{}});S1e.displayName="InternalStdoutContext";dW.default=S1e});var EW=_(yW=>{"use strict";Object.defineProperty(yW,"__esModule",{value:!0});var Iht=hn(),D1e=Iht.createContext({stderr:void 0,write:()=>{}});D1e.displayName="InternalStderrContext";yW.default=D1e});var UF=_(IW=>{"use strict";Object.defineProperty(IW,"__esModule",{value:!0});var Cht=hn(),P1e=Cht.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});P1e.displayName="InternalFocusContext";IW.default=P1e});var x1e=_((_Kt,b1e)=>{"use strict";var wht=/[|\\{}()[\]^$+*?.-]/g;b1e.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(wht,"\\$&")}});var T1e=_((HKt,R1e)=>{"use strict";var Bht=x1e(),vht=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",Q1e=[].concat(Ie("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));Q1e.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var CW=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=vht),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,Sht(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...Q1e]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` `)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let s=!1,a=null,n=[];return e.forEach(c=>{if(c=c.replace(/\\/g,"/"),this._internals.some(p=>p.test(c)))return;let f=/^\s*at /.test(c);s?c=c.trimEnd().replace(/^(\s+)at /,"$1"):(c=c.trim(),f&&(c=c.slice(3))),c=c.replace(`${this._cwd}/`,""),c&&(f?(a&&(n.push(a),a=null),n.push(c)):(s=!0,a=c))}),n.map(c=>`${r}${c} `).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:s}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=s,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:s,stackTraceLimit:a}=Error;Error.prepareStackTrace=(f,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:c}=n;return Object.assign(Error,{prepareStackTrace:s,stackTraceLimit:a}),c}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let s={line:r.getLineNumber(),column:r.getColumnNumber()};k1e(s,r.getFileName(),this._cwd),r.isConstructor()&&(s.constructor=!0),r.isEval()&&(s.evalOrigin=r.getEvalOrigin()),r.isNative()&&(s.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(s.type=a);let n=r.getFunctionName();n&&(s.function=n);let c=r.getMethodName();return c&&n!==c&&(s.method=c),s}parseLine(e){let r=e&&e.match(Dht);if(!r)return null;let s=r[1]==="new",a=r[2],n=r[3],c=r[4],f=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],C=r[9],S=r[10]==="native",b=r[11]===")",I,T={};if(E&&(T.line=Number(E)),C&&(T.column=Number(C)),b&&h){let N=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")N++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(N--,N===-1&&h.charAt(U-1)===" ")){let W=h.slice(0,U-1);h=h.slice(U+1),a+=` (${W}`;break}}if(a){let N=a.match(Pht);N&&(a=N[1],I=N[2])}return k1e(T,h,this._cwd),s&&(T.constructor=!0),n&&(T.evalOrigin=n,T.evalLine=f,T.evalColumn=p,T.evalFile=c&&c.replace(/\\/g,"/")),S&&(T.native=!0),a&&(T.function=a),I&&a!==I&&(T.method=I),T}};function k1e(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function Sht(t){if(t.length===0)return[];let e=t.map(r=>Bht(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var Dht=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),Pht=/^(.*?) \[as (.*?)\]$/;R1e.exports=CW});var N1e=_((jKt,F1e)=>{"use strict";F1e.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var L1e=_((GKt,O1e)=>{"use strict";var bht=N1e(),xht=(t,e)=>{let r=[],s=t-e,a=t+e;for(let n=s;n<=a;n++)r.push(n);return r};O1e.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=bht(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},xht(e,r.around).filter(s=>t[s-1]!==void 0).map(s=>({line:s,value:t[s-1]}))}});var _F=_(rf=>{"use strict";var kht=rf&&rf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Qht=rf&&rf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Rht=rf&&rf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&kht(e,t,r);return Qht(e,t),e},Tht=rf&&rf.__rest||function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(t);a{var{children:r}=t,s=Tht(t,["children"]);let a=Object.assign(Object.assign({},s),{marginLeft:s.marginLeft||s.marginX||s.margin||0,marginRight:s.marginRight||s.marginX||s.margin||0,marginTop:s.marginTop||s.marginY||s.margin||0,marginBottom:s.marginBottom||s.marginY||s.margin||0,paddingLeft:s.paddingLeft||s.paddingX||s.padding||0,paddingRight:s.paddingRight||s.paddingX||s.padding||0,paddingTop:s.paddingTop||s.paddingY||s.padding||0,paddingBottom:s.paddingBottom||s.paddingY||s.padding||0});return M1e.default.createElement("ink-box",{ref:e,style:a},r)});wW.displayName="Box";wW.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};rf.default=wW});var SW=_(nD=>{"use strict";var BW=nD&&nD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nD,"__esModule",{value:!0});var Fht=BW(hn()),yw=BW(RE()),U1e=BW(sW()),vW=({color:t,backgroundColor:e,dimColor:r,bold:s,italic:a,underline:n,strikethrough:c,inverse:f,wrap:p,children:h})=>{if(h==null)return null;let E=C=>(r&&(C=yw.default.dim(C)),t&&(C=U1e.default(C,t,"foreground")),e&&(C=U1e.default(C,e,"background")),s&&(C=yw.default.bold(C)),a&&(C=yw.default.italic(C)),n&&(C=yw.default.underline(C)),c&&(C=yw.default.strikethrough(C)),f&&(C=yw.default.inverse(C)),C);return Fht.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};vW.displayName="Text";vW.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};nD.default=vW});var G1e=_(nf=>{"use strict";var Nht=nf&&nf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Oht=nf&&nf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Lht=nf&&nf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Nht(e,t,r);return Oht(e,t),e},iD=nf&&nf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nf,"__esModule",{value:!0});var _1e=Lht(Ie("fs")),Qs=iD(hn()),H1e=iD(T1e()),Mht=iD(L1e()),$p=iD(_F()),AA=iD(SW()),j1e=new H1e.default({cwd:process.cwd(),internals:H1e.default.nodeInternals()}),Uht=({error:t})=>{let e=t.stack?t.stack.split(` `).slice(1):void 0,r=e?j1e.parseLine(e[0]):void 0,s,a=0;if(r?.file&&r?.line&&_1e.existsSync(r.file)){let n=_1e.readFileSync(r.file,"utf8");if(s=Mht.default(n,r.line),s)for(let{line:c}of s)a=Math.max(a,String(c).length)}return Qs.default.createElement($p.default,{flexDirection:"column",padding:1},Qs.default.createElement($p.default,null,Qs.default.createElement(AA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Qs.default.createElement(AA.default,null," ",t.message)),r&&Qs.default.createElement($p.default,{marginTop:1},Qs.default.createElement(AA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&s&&Qs.default.createElement($p.default,{marginTop:1,flexDirection:"column"},s.map(({line:n,value:c})=>Qs.default.createElement($p.default,{key:n},Qs.default.createElement($p.default,{width:a+1},Qs.default.createElement(AA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),Qs.default.createElement(AA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+c)))),t.stack&&Qs.default.createElement($p.default,{marginTop:1,flexDirection:"column"},t.stack.split(` `).slice(1).map(n=>{let c=j1e.parseLine(n);return c?Qs.default.createElement($p.default,{key:n},Qs.default.createElement(AA.default,{dimColor:!0},"- "),Qs.default.createElement(AA.default,{dimColor:!0,bold:!0},c.function),Qs.default.createElement(AA.default,{dimColor:!0,color:"gray"}," ","(",c.file,":",c.line,":",c.column,")")):Qs.default.createElement($p.default,{key:n},Qs.default.createElement(AA.default,{dimColor:!0},"- "),Qs.default.createElement(AA.default,{dimColor:!0,bold:!0},n))})))};nf.default=Uht});var W1e=_(sf=>{"use strict";var _ht=sf&&sf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Hht=sf&&sf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jht=sf&&sf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&_ht(e,t,r);return Hht(e,t),e},Lm=sf&&sf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sf,"__esModule",{value:!0});var Om=jht(hn()),q1e=Lm(P9()),Ght=Lm(pW()),qht=Lm(gW()),Wht=Lm(mW()),Yht=Lm(EW()),Vht=Lm(UF()),Jht=Lm(G1e()),Kht=" ",zht="\x1B[Z",Zht="\x1B",HF=class extends Om.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===Zht&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===Kht&&this.focusNext(),e===zht&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=e=>{this.setState(r=>r.focusables.some(a=>a?.id===e)?{activeFocusId:e}:r)},this.focusNext=()=>{this.setState(e=>{var r;let s=(r=e.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(e)||s}})},this.focusPrevious=()=>{this.setState(e=>{var r;let s=(r=e.focusables[e.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(e)||s}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(s=>{let a=s.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...s.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(s=>s.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s+1;a{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s-1;a>=0;a--)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Om.default.createElement(Ght.default.Provider,{value:{exit:this.handleExit}},Om.default.createElement(qht.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Om.default.createElement(Wht.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Om.default.createElement(Yht.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Om.default.createElement(Vht.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?Om.default.createElement(Jht.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){q1e.default.hide(this.props.stdout)}componentWillUnmount(){q1e.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};sf.default=HF;HF.displayName="InternalApp"});var J1e=_(of=>{"use strict";var Xht=of&&of.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),$ht=of&&of.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),e0t=of&&of.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Xht(e,t,r);return $ht(e,t),e},af=of&&of.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(of,"__esModule",{value:!0});var t0t=af(hn()),Y1e=_Ce(),r0t=af(rwe()),n0t=af(w9()),i0t=af(lwe()),s0t=af(uwe()),DW=af(r1e()),o0t=af(y1e()),a0t=af(D9()),l0t=af(w1e()),c0t=e0t(nW()),u0t=af(fW()),f0t=af(W1e()),Ew=process.env.CI==="false"?!1:i0t.default,V1e=()=>{},PW=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:s,staticOutput:a}=o0t.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` `;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(Ew){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),s>=this.options.stdout.rows){this.options.stdout.write(n0t.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},s0t.default(this),this.options=e,this.rootNode=c0t.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:Y1e(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=r0t.default.create(e.stdout),this.throttledLog=e.debug?this.log:Y1e(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=DW.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=a0t.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),Ew||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=t0t.default.createElement(f0t.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);DW.default.updateContainer(r,this.container,null,V1e)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(Ew){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Ew){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),Ew?this.options.stdout.write(this.lastOutput+` `):this.options.debug||this.log.done(),this.isUnmounted=!0,DW.default.updateContainer(null,this.container,null,V1e),u0t.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!Ew&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=l0t.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};of.default=PW});var z1e=_(sD=>{"use strict";var K1e=sD&&sD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sD,"__esModule",{value:!0});var A0t=K1e(J1e()),jF=K1e(fW()),p0t=Ie("stream"),h0t=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},g0t(e)),s=d0t(r.stdout,()=>new A0t.default(r));return s.render(t),{rerender:s.render,unmount:()=>s.unmount(),waitUntilExit:s.waitUntilExit,cleanup:()=>jF.default.delete(r.stdout),clear:s.clear}};sD.default=h0t;var g0t=(t={})=>t instanceof p0t.Stream?{stdout:t,stdin:process.stdin}:t,d0t=(t,e)=>{let r;return jF.default.has(t)?r=jF.default.get(t):(r=e(),jF.default.set(t,r)),r}});var X1e=_(eh=>{"use strict";var m0t=eh&&eh.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),y0t=eh&&eh.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),E0t=eh&&eh.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&m0t(e,t,r);return y0t(e,t),e};Object.defineProperty(eh,"__esModule",{value:!0});var oD=E0t(hn()),Z1e=t=>{let{items:e,children:r,style:s}=t,[a,n]=oD.useState(0),c=oD.useMemo(()=>e.slice(a),[e,a]);oD.useLayoutEffect(()=>{n(e.length)},[e.length]);let f=c.map((h,E)=>r(h,a+E)),p=oD.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},s),[s]);return oD.default.createElement("ink-box",{internal_static:!0,style:p},f)};Z1e.displayName="Static";eh.default=Z1e});var e2e=_(aD=>{"use strict";var I0t=aD&&aD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(aD,"__esModule",{value:!0});var C0t=I0t(hn()),$1e=({children:t,transform:e})=>t==null?null:C0t.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);$1e.displayName="Transform";aD.default=$1e});var r2e=_(lD=>{"use strict";var w0t=lD&&lD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lD,"__esModule",{value:!0});var B0t=w0t(hn()),t2e=({count:t=1})=>B0t.default.createElement("ink-text",null,` `.repeat(t));t2e.displayName="Newline";lD.default=t2e});var s2e=_(cD=>{"use strict";var n2e=cD&&cD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cD,"__esModule",{value:!0});var v0t=n2e(hn()),S0t=n2e(_F()),i2e=()=>v0t.default.createElement(S0t.default,{flexGrow:1});i2e.displayName="Spacer";cD.default=i2e});var GF=_(uD=>{"use strict";var D0t=uD&&uD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uD,"__esModule",{value:!0});var P0t=hn(),b0t=D0t(gW()),x0t=()=>P0t.useContext(b0t.default);uD.default=x0t});var a2e=_(fD=>{"use strict";var k0t=fD&&fD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fD,"__esModule",{value:!0});var o2e=hn(),Q0t=k0t(GF()),R0t=(t,e={})=>{let{stdin:r,setRawMode:s,internal_exitOnCtrlC:a}=Q0t.default();o2e.useEffect(()=>{if(e.isActive!==!1)return s(!0),()=>{s(!1)}},[e.isActive,s]),o2e.useEffect(()=>{if(e.isActive===!1)return;let n=c=>{let f=String(c),p={upArrow:f==="\x1B[A",downArrow:f==="\x1B[B",leftArrow:f==="\x1B[D",rightArrow:f==="\x1B[C",pageDown:f==="\x1B[6~",pageUp:f==="\x1B[5~",return:f==="\r",escape:f==="\x1B",ctrl:!1,shift:!1,tab:f===" "||f==="\x1B[Z",backspace:f==="\b",delete:f==="\x7F"||f==="\x1B[3~",meta:!1};f<=""&&!p.return&&(f=String.fromCharCode(f.charCodeAt(0)+97-1),p.ctrl=!0),f.startsWith("\x1B")&&(f=f.slice(1),p.meta=!0);let h=f>="A"&&f<="Z",E=f>="\u0410"&&f<="\u042F";f.length===1&&(h||E)&&(p.shift=!0),p.tab&&f==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(f=""),(!(f==="c"&&p.ctrl)||!a)&&t(f,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};fD.default=R0t});var l2e=_(AD=>{"use strict";var T0t=AD&&AD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AD,"__esModule",{value:!0});var F0t=hn(),N0t=T0t(pW()),O0t=()=>F0t.useContext(N0t.default);AD.default=O0t});var c2e=_(pD=>{"use strict";var L0t=pD&&pD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pD,"__esModule",{value:!0});var M0t=hn(),U0t=L0t(mW()),_0t=()=>M0t.useContext(U0t.default);pD.default=_0t});var u2e=_(hD=>{"use strict";var H0t=hD&&hD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hD,"__esModule",{value:!0});var j0t=hn(),G0t=H0t(EW()),q0t=()=>j0t.useContext(G0t.default);hD.default=q0t});var A2e=_(dD=>{"use strict";var f2e=dD&&dD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dD,"__esModule",{value:!0});var gD=hn(),W0t=f2e(UF()),Y0t=f2e(GF()),V0t=({isActive:t=!0,autoFocus:e=!1,id:r}={})=>{let{isRawModeSupported:s,setRawMode:a}=Y0t.default(),{activeId:n,add:c,remove:f,activate:p,deactivate:h,focus:E}=gD.useContext(W0t.default),C=gD.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return gD.useEffect(()=>(c(C,{autoFocus:e}),()=>{f(C)}),[C,e]),gD.useEffect(()=>{t?p(C):h(C)},[t,C]),gD.useEffect(()=>{if(!(!s||!t))return a(!0),()=>{a(!1)}},[t]),{isFocused:!!C&&n===C,focus:E}};dD.default=V0t});var p2e=_(mD=>{"use strict";var J0t=mD&&mD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mD,"__esModule",{value:!0});var K0t=hn(),z0t=J0t(UF()),Z0t=()=>{let t=K0t.useContext(z0t.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};mD.default=Z0t});var h2e=_(bW=>{"use strict";Object.defineProperty(bW,"__esModule",{value:!0});bW.default=t=>{var e,r,s,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(s=t.yogaNode)===null||s===void 0?void 0:s.getComputedHeight())!==null&&a!==void 0?a:0}}});var Wc=_(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});var X0t=z1e();Object.defineProperty(mo,"render",{enumerable:!0,get:function(){return X0t.default}});var $0t=_F();Object.defineProperty(mo,"Box",{enumerable:!0,get:function(){return $0t.default}});var egt=SW();Object.defineProperty(mo,"Text",{enumerable:!0,get:function(){return egt.default}});var tgt=X1e();Object.defineProperty(mo,"Static",{enumerable:!0,get:function(){return tgt.default}});var rgt=e2e();Object.defineProperty(mo,"Transform",{enumerable:!0,get:function(){return rgt.default}});var ngt=r2e();Object.defineProperty(mo,"Newline",{enumerable:!0,get:function(){return ngt.default}});var igt=s2e();Object.defineProperty(mo,"Spacer",{enumerable:!0,get:function(){return igt.default}});var sgt=a2e();Object.defineProperty(mo,"useInput",{enumerable:!0,get:function(){return sgt.default}});var ogt=l2e();Object.defineProperty(mo,"useApp",{enumerable:!0,get:function(){return ogt.default}});var agt=GF();Object.defineProperty(mo,"useStdin",{enumerable:!0,get:function(){return agt.default}});var lgt=c2e();Object.defineProperty(mo,"useStdout",{enumerable:!0,get:function(){return lgt.default}});var cgt=u2e();Object.defineProperty(mo,"useStderr",{enumerable:!0,get:function(){return cgt.default}});var ugt=A2e();Object.defineProperty(mo,"useFocus",{enumerable:!0,get:function(){return ugt.default}});var fgt=p2e();Object.defineProperty(mo,"useFocusManager",{enumerable:!0,get:function(){return fgt.default}});var Agt=h2e();Object.defineProperty(mo,"measureElement",{enumerable:!0,get:function(){return Agt.default}})});var kW={};Vt(kW,{Gem:()=>xW});var g2e,Mm,xW,qF=Ze(()=>{g2e=ut(Wc()),Mm=ut(hn()),xW=(0,Mm.memo)(({active:t})=>{let e=(0,Mm.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,Mm.useMemo)(()=>t?"green":"yellow",[t]);return Mm.default.createElement(g2e.Text,{color:r},e)})});var m2e={};Vt(m2e,{useKeypress:()=>Um});function Um({active:t},e,r){let{stdin:s}=(0,d2e.useStdin)(),a=(0,WF.useCallback)((n,c)=>e(n,c),r);(0,WF.useEffect)(()=>{if(!(!t||!s))return s.on("keypress",a),()=>{s.off("keypress",a)}},[t,a,s])}var d2e,WF,yD=Ze(()=>{d2e=ut(Wc()),WF=ut(hn())});var E2e={};Vt(E2e,{FocusRequest:()=>y2e,useFocusRequest:()=>QW});var y2e,QW,RW=Ze(()=>{yD();y2e=(r=>(r.BEFORE="before",r.AFTER="after",r))(y2e||{}),QW=function({active:t},e,r){Um({active:t},(s,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var I2e={};Vt(I2e,{useListInput:()=>ED});var ED,YF=Ze(()=>{yD();ED=function(t,e,{active:r,minus:s,plus:a,set:n,loop:c=!0}){Um({active:r},(f,p)=>{let h=e.indexOf(t);switch(p.name){case s:{let E=h-1;if(c){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(c){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,c])}});var VF={};Vt(VF,{ScrollableItems:()=>pgt});var eg,dl,pgt,JF=Ze(()=>{eg=ut(Wc()),dl=ut(hn());RW();YF();pgt=({active:t=!0,children:e=[],radius:r=10,size:s=1,loop:a=!0,onFocusRequest:n,willReachEnd:c})=>{let f=N=>{if(N.key===null)throw new Error("Expected all children to have a key");return N.key},p=dl.default.Children.map(e,N=>f(N)),h=p[0],[E,C]=(0,dl.useState)(h),S=p.indexOf(E);(0,dl.useEffect)(()=>{p.includes(E)||C(h)},[e]),(0,dl.useEffect)(()=>{c&&S>=p.length-2&&c()},[S]),QW({active:t&&!!n},N=>{n?.(N)},[n]),ED(E,p,{active:t,minus:"up",plus:"down",set:C,loop:a});let b=S-r,I=S+r;I>p.length&&(b-=I-p.length,I=p.length),b<0&&(I+=-b,b=0),I>=p.length&&(I=p.length-1);let T=[];for(let N=b;N<=I;++N){let U=p[N],W=t&&U===E;T.push(dl.default.createElement(eg.Box,{key:U,height:s},dl.default.createElement(eg.Box,{marginLeft:1,marginRight:1},dl.default.createElement(eg.Text,null,W?dl.default.createElement(eg.Text,{color:"cyan",bold:!0},">"):" ")),dl.default.createElement(eg.Box,null,dl.default.cloneElement(e[N],{active:W}))))}return dl.default.createElement(eg.Box,{flexDirection:"column",width:"100%"},T)}});var C2e,th,w2e,TW,B2e,FW=Ze(()=>{C2e=ut(Wc()),th=ut(hn()),w2e=Ie("readline"),TW=th.default.createContext(null),B2e=({children:t})=>{let{stdin:e,setRawMode:r}=(0,C2e.useStdin)();(0,th.useEffect)(()=>{r&&r(!0),e&&(0,w2e.emitKeypressEvents)(e)},[e,r]);let[s,a]=(0,th.useState)(new Map),n=(0,th.useMemo)(()=>({getAll:()=>s,get:c=>s.get(c),set:(c,f)=>a(new Map([...s,[c,f]]))}),[s,a]);return th.default.createElement(TW.Provider,{value:n,children:t})}});var NW={};Vt(NW,{useMinistore:()=>hgt});function hgt(t,e){let r=(0,KF.useContext)(TW);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let s=(0,KF.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,s]}var KF,OW=Ze(()=>{KF=ut(hn());FW()});var ZF={};Vt(ZF,{renderForm:()=>ggt});async function ggt(t,e,{stdin:r,stdout:s,stderr:a}){let n,c=p=>{let{exit:h}=(0,zF.useApp)();Um({active:!0},(E,C)=>{C.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:f}=(0,zF.render)(LW.default.createElement(B2e,null,LW.default.createElement(t,{...e,useSubmit:c})),{stdin:r,stdout:s,stderr:a});return await f(),n}var zF,LW,XF=Ze(()=>{zF=ut(Wc()),LW=ut(hn());FW();yD()});var P2e=_(ID=>{"use strict";Object.defineProperty(ID,"__esModule",{value:!0});ID.UncontrolledTextInput=void 0;var S2e=hn(),MW=hn(),v2e=Wc(),_m=RE(),D2e=({value:t,placeholder:e="",focus:r=!0,mask:s,highlightPastedText:a=!1,showCursor:n=!0,onChange:c,onSubmit:f})=>{let[{cursorOffset:p,cursorWidth:h},E]=MW.useState({cursorOffset:(t||"").length,cursorWidth:0});MW.useEffect(()=>{E(T=>{if(!r||!n)return T;let N=t||"";return T.cursorOffset>N.length-1?{cursorOffset:N.length,cursorWidth:0}:T})},[t,r,n]);let C=a?h:0,S=s?s.repeat(t.length):t,b=S,I=e?_m.grey(e):void 0;if(n&&r){I=e.length>0?_m.inverse(e[0])+_m.grey(e.slice(1)):_m.inverse(" "),b=S.length>0?"":_m.inverse(" ");let T=0;for(let N of S)T>=p-C&&T<=p?b+=_m.inverse(N):b+=N,T++;S.length>0&&p===S.length&&(b+=_m.inverse(" "))}return v2e.useInput((T,N)=>{if(N.upArrow||N.downArrow||N.ctrl&&T==="c"||N.tab||N.shift&&N.tab)return;if(N.return){f&&f(t);return}let U=p,W=t,ee=0;N.leftArrow?n&&U--:N.rightArrow?n&&U++:N.backspace||N.delete?p>0&&(W=t.slice(0,p-1)+t.slice(p,t.length),U--):(W=t.slice(0,p)+T+t.slice(p,t.length),U+=T.length,T.length>1&&(ee=T.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:ee}),W!==t&&c(W)},{isActive:r}),S2e.createElement(v2e.Text,null,e?S.length>0?b:I:b)};ID.default=D2e;ID.UncontrolledTextInput=({initialValue:t="",...e})=>{let[r,s]=MW.useState(t);return S2e.createElement(D2e,Object.assign({},e,{value:r,onChange:s}))}});var k2e={};Vt(k2e,{Pad:()=>UW});var b2e,x2e,UW,_W=Ze(()=>{b2e=ut(Wc()),x2e=ut(hn()),UW=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return x2e.default.createElement(b2e.Text,{dimColor:!e},r)}});var Q2e={};Vt(Q2e,{ItemOptions:()=>dgt});var wD,tg,dgt,R2e=Ze(()=>{wD=ut(Wc()),tg=ut(hn());YF();qF();_W();dgt=function({active:t,skewer:e,options:r,value:s,onChange:a,sizes:n=[]}){let c=r.filter(({label:p})=>!!p).map(({value:p})=>p),f=r.findIndex(p=>p.value===s&&p.label!="");return ED(s,c,{active:t,minus:"left",plus:"right",set:a}),tg.default.createElement(tg.default.Fragment,null,r.map(({label:p},h)=>{let E=h===f,C=n[h]-1||0,S=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),b=Math.max(0,C-S.length-2);return p?tg.default.createElement(wD.Box,{key:p,width:C,marginLeft:1},tg.default.createElement(wD.Text,{wrap:"truncate"},tg.default.createElement(xW,{active:E})," ",p),e?tg.default.createElement(UW,{active:t,length:b}):null):tg.default.createElement(wD.Box,{key:`spacer-${h}`,width:C,marginLeft:1})}))}});var V2e=_((VZt,Y2e)=>{var ZW;Y2e.exports=()=>(typeof ZW>"u"&&(ZW=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),ZW)});var hBe=_((yXt,pBe)=>{var oY=Symbol("arg flag"),Yc=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function UD(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:s=!1}={}){if(!t)throw new Yc("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},c={};for(let f of Object.keys(t)){if(!f)throw new Yc("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(f[0]!=="-")throw new Yc(`argument key must start with '-' but found: '${f}'`,"ARG_CONFIG_NONOPT_KEY");if(f.length===1)throw new Yc(`argument key must have a name; singular '-' keys are not allowed: ${f}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[f]=="string"){n[f]=t[f];continue}let p=t[f],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(C,S,b=[])=>(b.push(E(C,S,b[b.length-1])),b),h=E===Boolean||E[oY]===!0}else if(typeof p=="function")h=p===Boolean||p[oY]===!0;else throw new Yc(`type missing or not a function or valid array type: ${f}`,"ARG_CONFIG_VAD_TYPE");if(f[1]!=="-"&&f.length>2)throw new Yc(`short argument keys (with a single hyphen) must have only one character: ${f}`,"ARG_CONFIG_SHORTOPT_TOOLONG");c[f]=[p,h]}for(let f=0,p=e.length;f0){a._=a._.concat(e.slice(f));break}if(h==="--"){a._=a._.concat(e.slice(f+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(C=>`-${C}`);for(let C=0;C1&&e[f+1][0]==="-"&&!(e[f+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(N===Number||typeof BigInt<"u"&&N===BigInt))){let W=b===T?"":` (alias for ${T})`;throw new Yc(`option requires argument: ${b}${W}`,"ARG_MISSING_REQUIRED_LONGARG")}a[T]=N(e[f+1],T,a[T]),++f}else a[T]=N(I,T,a[T])}}else a._.push(h)}return a}UD.flag=t=>(t[oY]=!0,t);UD.COUNT=UD.flag((t,e,r)=>(r||0)+1);UD.ArgError=Yc;pBe.exports=UD});var wBe=_((JXt,CBe)=>{var uY;CBe.exports=()=>(typeof uY>"u"&&(uY=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),uY)});var PBe=_((dY,mY)=>{(function(t){dY&&typeof dY=="object"&&typeof mY<"u"?mY.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var QBe=_((Y$t,kBe)=>{"use strict";yY.ifExists=mdt;var Dw=Ie("util"),Vc=Ie("path"),bBe=PBe(),hdt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,gdt={createPwshFile:!0,createCmdFile:bBe(),fs:Ie("fs")},ddt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function xBe(t){let e={...gdt,...t},r=e.fs;return e.fs_={chmod:r.chmod?Dw.promisify(r.chmod):async()=>{},mkdir:Dw.promisify(r.mkdir),readFile:Dw.promisify(r.readFile),stat:Dw.promisify(r.stat),unlink:Dw.promisify(r.unlink),writeFile:Dw.promisify(r.writeFile)},e}async function yY(t,e,r){let s=xBe(r);await s.fs_.stat(t),await Edt(t,e,s)}function mdt(t,e,r){return yY(t,e,r).catch(()=>{})}function ydt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function Edt(t,e,r){let s=await vdt(t,r);return await Idt(e,r),Cdt(t,e,s,r)}function Idt(t,e){return e.fs_.mkdir(Vc.dirname(t),{recursive:!0})}function Cdt(t,e,r,s){let a=xBe(s),n=[{generator:Pdt,extension:""}];return a.createCmdFile&&n.push({generator:Ddt,extension:".cmd"}),a.createPwshFile&&n.push({generator:bdt,extension:".ps1"}),Promise.all(n.map(c=>Sdt(t,e+c.extension,r,c.generator,a)))}function wdt(t,e){return ydt(t,e)}function Bdt(t,e){return xdt(t,e)}async function vdt(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(hdt);if(!a){let n=Vc.extname(t).toLowerCase();return{program:ddt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function Sdt(t,e,r,s,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",c=[r.additionalArgs,n].filter(f=>f).join(" ");return a=Object.assign({},a,{prog:r.program,args:c}),await wdt(e,a),await a.fs_.writeFile(e,s(t,e,a),"utf8"),Bdt(e,a)}function Ddt(t,e,r){let a=Vc.relative(Vc.dirname(e),t).split("/").join("\\"),n=Vc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,c,f=r.prog,p=r.args||"",h=EY(r.nodePath).win32;f?(c=`"%~dp0\\${f}.exe"`,a=n):(f=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",C=h?`@SET NODE_PATH=${h}\r `:"";return c?C+=`@IF EXIST ${c} (\r ${c} ${p} ${a} ${E}%*\r ) ELSE (\r @SETLOCAL\r @SET PATHEXT=%PATHEXT:;.JS;=;%\r ${f} ${p} ${a} ${E}%*\r )\r `:C+=`@${f} ${p} ${a} ${E}%*\r `,C}function Pdt(t,e,r){let s=Vc.relative(Vc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;s=s.split("\\").join("/");let c=Vc.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,f=r.args||"",p=EY(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,s=c):(a=c,f="",s="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; esac `,C=r.nodePath?`export NODE_PATH="${p}" `:"";return n?E+=`${C}if [ -x ${n} ]; then exec ${n} ${f} ${s} ${h}"$@" else exec ${a} ${f} ${s} ${h}"$@" fi `:E+=`${C}${a} ${f} ${s} ${h}"$@" exit $? `,E}function bdt(t,e,r){let s=Vc.relative(Vc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,c;s=s.split("\\").join("/");let f=Vc.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,p=r.args||"",h=EY(r.nodePath),E=h.win32,C=h.posix;n?(c=`"$basedir/${r.prog}$exe"`,s=f):(n=f,p="",s="");let S=r.progArgs?`${r.progArgs.join(" ")} `:"",b=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" ${r.nodePath?`$env_node_path=$env:NODE_PATH $env:NODE_PATH="${E}" `:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { # Fix case when both the Windows and Linux builds of Node # are installed in the same directory $exe=".exe" }`;return r.nodePath&&(b+=` else { $env:NODE_PATH="${C}" }`),c?b+=` $ret=0 if (Test-Path ${c}) { # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & ${c} ${p} ${s} ${S}$args } else { & ${c} ${p} ${s} ${S}$args } $ret=$LASTEXITCODE } else { # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & ${n} ${p} ${s} ${S}$args } else { & ${n} ${p} ${s} ${S}$args } $ret=$LASTEXITCODE } ${r.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $ret `:b+=` # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & ${n} ${p} ${s} ${S}$args } else { & ${n} ${p} ${s} ${S}$args } ${r.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE `,b}function xdt(t,e){return e.fs_.chmod(t,493)}function EY(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Vc.delimiter):Array.from(t),r={};for(let s=0;s`/mnt/${f.toLowerCase()}`):e[s];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[s]={win32:a,posix:n}}return r}kBe.exports=yY});var TY=_((Ctr,zBe)=>{zBe.exports=Ie("stream")});var eve=_((wtr,$Be)=>{"use strict";function ZBe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function cmt(t){for(var e=1;e0?this.tail.next=s:this.head=s,this.tail=s,++this.length}},{key:"unshift",value:function(r){var s={data:r,next:this.head};this.length===0&&(this.tail=s),this.head=s,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var s=this.head,a=""+s.data;s=s.next;)a+=r+s.data;return a}},{key:"concat",value:function(r){if(this.length===0)return AN.alloc(0);for(var s=AN.allocUnsafe(r>>>0),a=this.head,n=0;a;)dmt(a.data,s,n),n+=a.data.length,a=a.next;return s}},{key:"consume",value:function(r,s){var a;return rc.length?c.length:r;if(f===c.length?n+=c:n+=c.slice(0,r),r-=f,r===0){f===c.length?(++a,s.next?this.head=s.next:this.head=this.tail=null):(this.head=s,s.data=c.slice(f));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var s=AN.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(s),r-=a.data.length;a=a.next;){var c=a.data,f=r>c.length?c.length:r;if(c.copy(s,s.length-r,0,f),r-=f,r===0){f===c.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=c.slice(f));break}++n}return this.length-=n,s}},{key:gmt,value:function(r,s){return FY(this,cmt({},s,{depth:0,customInspect:!1}))}}]),t}()});var OY=_((Btr,rve)=>{"use strict";function mmt(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return s||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(NY,this,t)):process.nextTick(NY,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(pN,r):(r._writableState.errorEmitted=!0,process.nextTick(tve,r,n)):process.nextTick(tve,r,n):e?(process.nextTick(pN,r),e(n)):process.nextTick(pN,r)}),this)}function tve(t,e){NY(t,e),pN(t)}function pN(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function ymt(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function NY(t,e){t.emit("error",e)}function Emt(t,e){var r=t._readableState,s=t._writableState;r&&r.autoDestroy||s&&s.autoDestroy?t.destroy(e):t.emit("error",e)}rve.exports={destroy:mmt,undestroy:ymt,errorOrDestroy:Emt}});var lg=_((vtr,sve)=>{"use strict";var ive={};function Kc(t,e,r){r||(r=Error);function s(n,c,f){return typeof e=="string"?e:e(n,c,f)}class a extends r{constructor(c,f,p){super(s(c,f,p))}}a.prototype.name=r.name,a.prototype.code=t,ive[t]=a}function nve(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(s=>String(s)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function Imt(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function Cmt(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function wmt(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Kc("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Kc("ERR_INVALID_ARG_TYPE",function(t,e,r){let s;typeof e=="string"&&Imt(e,"not ")?(s="must not be",e=e.replace(/^not /,"")):s="must be";let a;if(Cmt(t," argument"))a=`The ${t} ${s} ${nve(e,"type")}`;else{let n=wmt(t,".")?"property":"argument";a=`The "${t}" ${n} ${s} ${nve(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);Kc("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Kc("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Kc("ERR_STREAM_PREMATURE_CLOSE","Premature close");Kc("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Kc("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Kc("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Kc("ERR_STREAM_WRITE_AFTER_END","write after end");Kc("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Kc("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Kc("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");sve.exports.codes=ive});var LY=_((Str,ove)=>{"use strict";var Bmt=lg().codes.ERR_INVALID_OPT_VALUE;function vmt(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function Smt(t,e,r,s){var a=vmt(e,s,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=s?r:"highWaterMark";throw new Bmt(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}ove.exports={getHighWaterMark:Smt}});var ave=_((Dtr,MY)=>{typeof Object.create=="function"?MY.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:MY.exports=function(e,r){if(r){e.super_=r;var s=function(){};s.prototype=r.prototype,e.prototype=new s,e.prototype.constructor=e}}});var cg=_((Ptr,_Y)=>{try{if(UY=Ie("util"),typeof UY.inherits!="function")throw"";_Y.exports=UY.inherits}catch{_Y.exports=ave()}var UY});var cve=_((btr,lve)=>{lve.exports=Ie("util").deprecate});var GY=_((xtr,gve)=>{"use strict";gve.exports=Yi;function fve(t){var e=this;this.next=null,this.entry=null,this.finish=function(){Xmt(e,t)}}var Rw;Yi.WritableState=XD;var Dmt={deprecate:cve()},Ave=TY(),gN=Ie("buffer").Buffer,Pmt=global.Uint8Array||function(){};function bmt(t){return gN.from(t)}function xmt(t){return gN.isBuffer(t)||t instanceof Pmt}var jY=OY(),kmt=LY(),Qmt=kmt.getHighWaterMark,ug=lg().codes,Rmt=ug.ERR_INVALID_ARG_TYPE,Tmt=ug.ERR_METHOD_NOT_IMPLEMENTED,Fmt=ug.ERR_MULTIPLE_CALLBACK,Nmt=ug.ERR_STREAM_CANNOT_PIPE,Omt=ug.ERR_STREAM_DESTROYED,Lmt=ug.ERR_STREAM_NULL_VALUES,Mmt=ug.ERR_STREAM_WRITE_AFTER_END,Umt=ug.ERR_UNKNOWN_ENCODING,Tw=jY.errorOrDestroy;cg()(Yi,Ave);function _mt(){}function XD(t,e,r){Rw=Rw||Ym(),t=t||{},typeof r!="boolean"&&(r=e instanceof Rw),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=Qmt(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=t.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){Vmt(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new fve(this)}XD.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(XD.prototype,"buffer",{get:Dmt.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var hN;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(hN=Function.prototype[Symbol.hasInstance],Object.defineProperty(Yi,Symbol.hasInstance,{value:function(e){return hN.call(this,e)?!0:this!==Yi?!1:e&&e._writableState instanceof XD}})):hN=function(e){return e instanceof this};function Yi(t){Rw=Rw||Ym();var e=this instanceof Rw;if(!e&&!hN.call(Yi,this))return new Yi(t);this._writableState=new XD(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),Ave.call(this)}Yi.prototype.pipe=function(){Tw(this,new Nmt)};function Hmt(t,e){var r=new Mmt;Tw(t,r),process.nextTick(e,r)}function jmt(t,e,r,s){var a;return r===null?a=new Lmt:typeof r!="string"&&!e.objectMode&&(a=new Rmt("chunk",["string","Buffer"],r)),a?(Tw(t,a),process.nextTick(s,a),!1):!0}Yi.prototype.write=function(t,e,r){var s=this._writableState,a=!1,n=!s.objectMode&&xmt(t);return n&&!gN.isBuffer(t)&&(t=bmt(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=s.defaultEncoding),typeof r!="function"&&(r=_mt),s.ending?Hmt(this,r):(n||jmt(this,s,t,r))&&(s.pendingcb++,a=qmt(this,s,n,t,e,r)),a};Yi.prototype.cork=function(){this._writableState.corked++};Yi.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&pve(this,t))};Yi.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new Umt(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Yi.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Gmt(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=gN.from(e,r)),e}Object.defineProperty(Yi.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function qmt(t,e,r,s,a,n){if(!r){var c=Gmt(e,s,a);s!==c&&(r=!0,a="buffer",s=c)}var f=e.objectMode?1:s.length;e.length+=f;var p=e.length{"use strict";var $mt=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};mve.exports=dA;var dve=YY(),WY=GY();cg()(dA,dve);for(qY=$mt(WY.prototype),dN=0;dN{var yN=Ie("buffer"),ah=yN.Buffer;function yve(t,e){for(var r in t)e[r]=t[r]}ah.from&&ah.alloc&&ah.allocUnsafe&&ah.allocUnsafeSlow?Eve.exports=yN:(yve(yN,VY),VY.Buffer=Fw);function Fw(t,e,r){return ah(t,e,r)}yve(ah,Fw);Fw.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return ah(t,e,r)};Fw.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var s=ah(t);return e!==void 0?typeof r=="string"?s.fill(e,r):s.fill(e):s.fill(0),s};Fw.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ah(t)};Fw.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return yN.SlowBuffer(t)}});var zY=_(wve=>{"use strict";var KY=Ive().Buffer,Cve=KY.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function ryt(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function nyt(t){var e=ryt(t);if(typeof e!="string"&&(KY.isEncoding===Cve||!Cve(t)))throw new Error("Unknown encoding: "+t);return e||t}wve.StringDecoder=$D;function $D(t){this.encoding=nyt(t);var e;switch(this.encoding){case"utf16le":this.text=cyt,this.end=uyt,e=4;break;case"utf8":this.fillLast=oyt,e=4;break;case"base64":this.text=fyt,this.end=Ayt,e=3;break;default:this.write=pyt,this.end=hyt;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=KY.allocUnsafe(e)}$D.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function iyt(t,e,r){var s=e.length-1;if(s=0?(a>0&&(t.lastNeed=a-1),a):--s=0?(a>0&&(t.lastNeed=a-2),a):--s=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function syt(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function oyt(t){var e=this.lastTotal-this.lastNeed,r=syt(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function ayt(t,e){var r=iyt(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var s=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,s),t.toString("utf8",e,s)}function lyt(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function cyt(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var s=r.charCodeAt(r.length-1);if(s>=55296&&s<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function uyt(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function fyt(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function Ayt(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function pyt(t){return t.toString(this.encoding)}function hyt(t){return t&&t.length?this.write(t):""}});var EN=_((Rtr,Sve)=>{"use strict";var Bve=lg().codes.ERR_STREAM_PREMATURE_CLOSE;function gyt(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,s=new Array(r),a=0;a{"use strict";var IN;function fg(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var yyt=EN(),Ag=Symbol("lastResolve"),Vm=Symbol("lastReject"),eP=Symbol("error"),CN=Symbol("ended"),Jm=Symbol("lastPromise"),ZY=Symbol("handlePromise"),Km=Symbol("stream");function pg(t,e){return{value:t,done:e}}function Eyt(t){var e=t[Ag];if(e!==null){var r=t[Km].read();r!==null&&(t[Jm]=null,t[Ag]=null,t[Vm]=null,e(pg(r,!1)))}}function Iyt(t){process.nextTick(Eyt,t)}function Cyt(t,e){return function(r,s){t.then(function(){if(e[CN]){r(pg(void 0,!0));return}e[ZY](r,s)},s)}}var wyt=Object.getPrototypeOf(function(){}),Byt=Object.setPrototypeOf((IN={get stream(){return this[Km]},next:function(){var e=this,r=this[eP];if(r!==null)return Promise.reject(r);if(this[CN])return Promise.resolve(pg(void 0,!0));if(this[Km].destroyed)return new Promise(function(c,f){process.nextTick(function(){e[eP]?f(e[eP]):c(pg(void 0,!0))})});var s=this[Jm],a;if(s)a=new Promise(Cyt(s,this));else{var n=this[Km].read();if(n!==null)return Promise.resolve(pg(n,!1));a=new Promise(this[ZY])}return this[Jm]=a,a}},fg(IN,Symbol.asyncIterator,function(){return this}),fg(IN,"return",function(){var e=this;return new Promise(function(r,s){e[Km].destroy(null,function(a){if(a){s(a);return}r(pg(void 0,!0))})})}),IN),wyt),vyt=function(e){var r,s=Object.create(Byt,(r={},fg(r,Km,{value:e,writable:!0}),fg(r,Ag,{value:null,writable:!0}),fg(r,Vm,{value:null,writable:!0}),fg(r,eP,{value:null,writable:!0}),fg(r,CN,{value:e._readableState.endEmitted,writable:!0}),fg(r,ZY,{value:function(n,c){var f=s[Km].read();f?(s[Jm]=null,s[Ag]=null,s[Vm]=null,n(pg(f,!1))):(s[Ag]=n,s[Vm]=c)},writable:!0}),r));return s[Jm]=null,yyt(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=s[Vm];n!==null&&(s[Jm]=null,s[Ag]=null,s[Vm]=null,n(a)),s[eP]=a;return}var c=s[Ag];c!==null&&(s[Jm]=null,s[Ag]=null,s[Vm]=null,c(pg(void 0,!0))),s[CN]=!0}),e.on("readable",Iyt.bind(null,s)),s};Dve.exports=vyt});var Qve=_((Ftr,kve)=>{"use strict";function bve(t,e,r,s,a,n,c){try{var f=t[n](c),p=f.value}catch(h){r(h);return}f.done?e(p):Promise.resolve(p).then(s,a)}function Syt(t){return function(){var e=this,r=arguments;return new Promise(function(s,a){var n=t.apply(e,r);function c(p){bve(n,s,a,c,f,"next",p)}function f(p){bve(n,s,a,c,f,"throw",p)}c(void 0)})}}function xve(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function Dyt(t){for(var e=1;e{"use strict";Hve.exports=bn;var Nw;bn.ReadableState=Nve;var Ntr=Ie("events").EventEmitter,Fve=function(e,r){return e.listeners(r).length},rP=TY(),wN=Ie("buffer").Buffer,kyt=global.Uint8Array||function(){};function Qyt(t){return wN.from(t)}function Ryt(t){return wN.isBuffer(t)||t instanceof kyt}var XY=Ie("util"),cn;XY&&XY.debuglog?cn=XY.debuglog("stream"):cn=function(){};var Tyt=eve(),sV=OY(),Fyt=LY(),Nyt=Fyt.getHighWaterMark,BN=lg().codes,Oyt=BN.ERR_INVALID_ARG_TYPE,Lyt=BN.ERR_STREAM_PUSH_AFTER_EOF,Myt=BN.ERR_METHOD_NOT_IMPLEMENTED,Uyt=BN.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ow,$Y,eV;cg()(bn,rP);var tP=sV.errorOrDestroy,tV=["error","close","destroy","pause","resume"];function _yt(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function Nve(t,e,r){Nw=Nw||Ym(),t=t||{},typeof r!="boolean"&&(r=e instanceof Nw),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=Nyt(this,t,"readableHighWaterMark",r),this.buffer=new Tyt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(Ow||(Ow=zY().StringDecoder),this.decoder=new Ow(t.encoding),this.encoding=t.encoding)}function bn(t){if(Nw=Nw||Ym(),!(this instanceof bn))return new bn(t);var e=this instanceof Nw;this._readableState=new Nve(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),rP.call(this)}Object.defineProperty(bn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});bn.prototype.destroy=sV.destroy;bn.prototype._undestroy=sV.undestroy;bn.prototype._destroy=function(t,e){e(t)};bn.prototype.push=function(t,e){var r=this._readableState,s;return r.objectMode?s=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=wN.from(t,e),e=""),s=!0),Ove(this,t,e,!1,s)};bn.prototype.unshift=function(t){return Ove(this,t,null,!0,!1)};function Ove(t,e,r,s,a){cn("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,Gyt(t,n);else{var c;if(a||(c=Hyt(n,e)),c)tP(t,c);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==wN.prototype&&(e=Qyt(e)),s)n.endEmitted?tP(t,new Uyt):rV(t,n,e,!0);else if(n.ended)tP(t,new Lyt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?rV(t,n,e,!1):iV(t,n)):rV(t,n,e,!1)}else s||(n.reading=!1,iV(t,n))}return!n.ended&&(n.length=Rve?t=Rve:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function Tve(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=jyt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}bn.prototype.read=function(t){cn("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return cn("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?nV(this):vN(this),null;if(t=Tve(t,e),t===0&&e.ended)return e.length===0&&nV(this),null;var s=e.needReadable;cn("need readable",s),(e.length===0||e.length-t0?a=Uve(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&nV(this)),a!==null&&this.emit("data",a),a};function Gyt(t,e){if(cn("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?vN(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Lve(t)))}}function vN(t){var e=t._readableState;cn("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(cn("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Lve,t))}function Lve(t){var e=t._readableState;cn("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,oV(t)}function iV(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(qyt,t,e))}function qyt(t,e){for(;!e.reading&&!e.ended&&(e.length1&&_ve(s.pipes,t)!==-1)&&!h&&(cn("false write response, pause",s.awaitDrain),s.awaitDrain++),r.pause())}function S(N){cn("onerror",N),T(),t.removeListener("error",S),Fve(t,"error")===0&&tP(t,N)}_yt(t,"error",S);function b(){t.removeListener("finish",I),T()}t.once("close",b);function I(){cn("onfinish"),t.removeListener("close",b),T()}t.once("finish",I);function T(){cn("unpipe"),r.unpipe(t)}return t.emit("pipe",r),s.flowing||(cn("pipe resume"),r.resume()),t};function Wyt(t){return function(){var r=t._readableState;cn("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&Fve(t,"data")&&(r.flowing=!0,oV(t))}}bn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var s=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n0,s.flowing!==!1&&this.resume()):t==="readable"&&!s.endEmitted&&!s.readableListening&&(s.readableListening=s.needReadable=!0,s.flowing=!1,s.emittedReadable=!1,cn("on readable",s.length,s.reading),s.length?vN(this):s.reading||process.nextTick(Yyt,this)),r};bn.prototype.addListener=bn.prototype.on;bn.prototype.removeListener=function(t,e){var r=rP.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(Mve,this),r};bn.prototype.removeAllListeners=function(t){var e=rP.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(Mve,this),e};function Mve(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function Yyt(t){cn("readable nexttick read 0"),t.read(0)}bn.prototype.resume=function(){var t=this._readableState;return t.flowing||(cn("resume"),t.flowing=!t.readableListening,Vyt(this,t)),t.paused=!1,this};function Vyt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(Jyt,t,e))}function Jyt(t,e){cn("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),oV(t),e.flowing&&!e.reading&&t.read(0)}bn.prototype.pause=function(){return cn("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(cn("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function oV(t){var e=t._readableState;for(cn("flow",e.flowing);e.flowing&&t.read()!==null;);}bn.prototype.wrap=function(t){var e=this,r=this._readableState,s=!1;t.on("end",function(){if(cn("wrapped end"),r.decoder&&!r.ended){var c=r.decoder.end();c&&c.length&&e.push(c)}e.push(null)}),t.on("data",function(c){if(cn("wrapped data"),r.decoder&&(c=r.decoder.write(c)),!(r.objectMode&&c==null)&&!(!r.objectMode&&(!c||!c.length))){var f=e.push(c);f||(s=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(f){return function(){return t[f].apply(t,arguments)}}(a));for(var n=0;n=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function nV(t){var e=t._readableState;cn("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(Kyt,e,t))}function Kyt(t,e){if(cn("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(bn.from=function(t,e){return eV===void 0&&(eV=Qve()),eV(bn,t,e)});function _ve(t,e){for(var r=0,s=t.length;r{"use strict";Gve.exports=lh;var SN=lg().codes,zyt=SN.ERR_METHOD_NOT_IMPLEMENTED,Zyt=SN.ERR_MULTIPLE_CALLBACK,Xyt=SN.ERR_TRANSFORM_ALREADY_TRANSFORMING,$yt=SN.ERR_TRANSFORM_WITH_LENGTH_0,DN=Ym();cg()(lh,DN);function eEt(t,e){var r=this._transformState;r.transforming=!1;var s=r.writecb;if(s===null)return this.emit("error",new Zyt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),s(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";Wve.exports=nP;var qve=aV();cg()(nP,qve);function nP(t){if(!(this instanceof nP))return new nP(t);qve.call(this,t)}nP.prototype._transform=function(t,e,r){r(null,t)}});var Zve=_((Utr,zve)=>{"use strict";var lV;function rEt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var Kve=lg().codes,nEt=Kve.ERR_MISSING_ARGS,iEt=Kve.ERR_STREAM_DESTROYED;function Vve(t){if(t)throw t}function sEt(t){return t.setHeader&&typeof t.abort=="function"}function oEt(t,e,r,s){s=rEt(s);var a=!1;t.on("close",function(){a=!0}),lV===void 0&&(lV=EN()),lV(t,{readable:e,writable:r},function(c){if(c)return s(c);a=!0,s()});var n=!1;return function(c){if(!a&&!n){if(n=!0,sEt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();s(c||new iEt("pipe"))}}}function Jve(t){t()}function aEt(t,e){return t.pipe(e)}function lEt(t){return!t.length||typeof t[t.length-1]!="function"?Vve:t.pop()}function cEt(){for(var t=arguments.length,e=new Array(t),r=0;r0;return oEt(c,p,h,function(E){a||(a=E),E&&n.forEach(Jve),!p&&(n.forEach(Jve),s(a))})});return e.reduce(aEt)}zve.exports=cEt});var Lw=_((zc,sP)=>{var iP=Ie("stream");process.env.READABLE_STREAM==="disable"&&iP?(sP.exports=iP.Readable,Object.assign(sP.exports,iP),sP.exports.Stream=iP):(zc=sP.exports=YY(),zc.Stream=iP||zc,zc.Readable=zc,zc.Writable=GY(),zc.Duplex=Ym(),zc.Transform=aV(),zc.PassThrough=Yve(),zc.finished=EN(),zc.pipeline=Zve())});var eSe=_((_tr,$ve)=>{"use strict";var{Buffer:cf}=Ie("buffer"),Xve=Symbol.for("BufferList");function Ci(t){if(!(this instanceof Ci))return new Ci(t);Ci._init.call(this,t)}Ci._init=function(e){Object.defineProperty(this,Xve,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};Ci.prototype._new=function(e){return new Ci(e)};Ci.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let s=0;sthis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};Ci.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};Ci.prototype.copy=function(e,r,s,a){if((typeof s!="number"||s<0)&&(s=0),(typeof a!="number"||a>this.length)&&(a=this.length),s>=this.length||a<=0)return e||cf.alloc(0);let n=!!e,c=this._offset(s),f=a-s,p=f,h=n&&r||0,E=c[1];if(s===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:cf.concat(this._bufs,this.length);for(let C=0;CS)this._bufs[C].copy(e,h,E),h+=S;else{this._bufs[C].copy(e,h,E,E+p),h+=S;break}p-=S,E&&(E=0)}return e.length>h?e.slice(0,h):e};Ci.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let s=this._offset(e),a=this._offset(r),n=this._bufs.slice(s[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),s[1]!==0&&(n[0]=n[0].slice(s[1])),this._new(n)};Ci.prototype.toString=function(e,r,s){return this.slice(r,s).toString(e)};Ci.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};Ci.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let s=this._offset(e),a=s[0],n=s[1];for(;a=t.length){let p=c.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=c.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};Ci.prototype._match=function(t,e){if(this.length-t{"use strict";var cV=Lw().Duplex,uEt=cg(),oP=eSe();function ra(t){if(!(this instanceof ra))return new ra(t);if(typeof t=="function"){this._callback=t;let e=function(s){this._callback&&(this._callback(s),this._callback=null)}.bind(this);this.on("pipe",function(s){s.on("error",e)}),this.on("unpipe",function(s){s.removeListener("error",e)}),t=null}oP._init.call(this,t),cV.call(this)}uEt(ra,cV);Object.assign(ra.prototype,oP.prototype);ra.prototype._new=function(e){return new ra(e)};ra.prototype._write=function(e,r,s){this._appendBuffer(e),typeof s=="function"&&s()};ra.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};ra.prototype.end=function(e){cV.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};ra.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};ra.prototype._isBufferList=function(e){return e instanceof ra||e instanceof oP||ra.isBufferList(e)};ra.isBufferList=oP.isBufferList;PN.exports=ra;PN.exports.BufferListStream=ra;PN.exports.BufferList=oP});var AV=_(Uw=>{var fEt=Buffer.alloc,AEt="0000000000000000000",pEt="7777777777777777777",rSe=48,nSe=Buffer.from("ustar\0","binary"),hEt=Buffer.from("00","binary"),gEt=Buffer.from("ustar ","binary"),dEt=Buffer.from(" \0","binary"),mEt=parseInt("7777",8),aP=257,fV=263,yEt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},EEt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},IEt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},iSe=function(t,e,r,s){for(;re?pEt.slice(0,e)+" ":AEt.slice(0,e-t.length)+t+" "};function CEt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],s=t.length-1;s>0;s--){var a=t[s];e?r.push(a):r.push(255-a)}var n=0,c=r.length;for(s=0;s=Math.pow(10,r)&&r++,e+r+t};Uw.decodeLongPath=function(t,e){return Mw(t,0,t.length,e)};Uw.encodePax=function(t){var e="";t.name&&(e+=uV(" path="+t.name+` `)),t.linkname&&(e+=uV(" linkpath="+t.linkname+` `));var r=t.pax;if(r)for(var s in r)e+=uV(" "+s+"="+r[s]+` `);return Buffer.from(e)};Uw.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;s+=s?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(s)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(hg(t.mode&mEt,6),100),e.write(hg(t.uid,6),108),e.write(hg(t.gid,6),116),e.write(hg(t.size,11),124),e.write(hg(t.mtime.getTime()/1e3|0,11),136),e[156]=rSe+IEt(t.type),t.linkname&&e.write(t.linkname,157),nSe.copy(e,aP),hEt.copy(e,fV),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(hg(t.devmajor||0,6),329),e.write(hg(t.devminor||0,6),337),s&&e.write(s,345),e.write(hg(sSe(e),6),148),e)};Uw.decode=function(t,e,r){var s=t[156]===0?0:t[156]-rSe,a=Mw(t,0,100,e),n=gg(t,100,8),c=gg(t,108,8),f=gg(t,116,8),p=gg(t,124,12),h=gg(t,136,12),E=EEt(s),C=t[157]===0?null:Mw(t,157,100,e),S=Mw(t,265,32),b=Mw(t,297,32),I=gg(t,329,8),T=gg(t,337,8),N=sSe(t);if(N===8*32)return null;if(N!==gg(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(nSe.compare(t,aP,aP+6)===0)t[345]&&(a=Mw(t,345,155,e)+"/"+a);else if(!(gEt.compare(t,aP,aP+6)===0&&dEt.compare(t,fV,fV+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return s===0&&a&&a[a.length-1]==="/"&&(s=5),{name:a,mode:n,uid:c,gid:f,size:p,mtime:new Date(1e3*h),type:E,linkname:C,uname:S,gname:b,devmajor:I,devminor:T}}});var ASe=_((Gtr,fSe)=>{var aSe=Ie("util"),wEt=tSe(),lP=AV(),lSe=Lw().Writable,cSe=Lw().PassThrough,uSe=function(){},oSe=function(t){return t&=511,t&&512-t},BEt=function(t,e){var r=new bN(t,e);return r.end(),r},vEt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},bN=function(t,e){this._parent=t,this.offset=e,cSe.call(this,{autoDestroy:!1})};aSe.inherits(bN,cSe);bN.prototype.destroy=function(t){this._parent.destroy(t)};var ch=function(t){if(!(this instanceof ch))return new ch(t);lSe.call(this,t),t=t||{},this._offset=0,this._buffer=wEt(),this._missing=0,this._partial=!1,this._onparse=uSe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,s=function(){e._continue()},a=function(S){if(e._locked=!1,S)return e.destroy(S);e._stream||s()},n=function(){e._stream=null;var S=oSe(e._header.size);S?e._parse(S,c):e._parse(512,C),e._locked||s()},c=function(){e._buffer.consume(oSe(e._header.size)),e._parse(512,C),s()},f=function(){var S=e._header.size;e._paxGlobal=lP.decodePax(r.slice(0,S)),r.consume(S),n()},p=function(){var S=e._header.size;e._pax=lP.decodePax(r.slice(0,S)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(S),n()},h=function(){var S=e._header.size;this._gnuLongPath=lP.decodeLongPath(r.slice(0,S),t.filenameEncoding),r.consume(S),n()},E=function(){var S=e._header.size;this._gnuLongLinkPath=lP.decodeLongPath(r.slice(0,S),t.filenameEncoding),r.consume(S),n()},C=function(){var S=e._offset,b;try{b=e._header=lP.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(I){e.emit("error",I)}if(r.consume(512),!b){e._parse(512,C),s();return}if(b.type==="gnu-long-path"){e._parse(b.size,h),s();return}if(b.type==="gnu-long-link-path"){e._parse(b.size,E),s();return}if(b.type==="pax-global-header"){e._parse(b.size,f),s();return}if(b.type==="pax-header"){e._parse(b.size,p),s();return}if(e._gnuLongPath&&(b.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(b.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=b=vEt(b,e._pax),e._pax=null),e._locked=!0,!b.size||b.type==="directory"){e._parse(512,C),e.emit("entry",b,BEt(e,S),a);return}e._stream=new bN(e,S),e.emit("entry",b,e._stream,a),e._parse(b.size,n),s()};this._onheader=C,this._parse(512,C)};aSe.inherits(ch,lSe);ch.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};ch.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};ch.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=uSe,this._overflow?this._write(this._overflow,void 0,t):t()}};ch.prototype._write=function(t,e,r){if(!this._destroyed){var s=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.lengthn&&(c=t.slice(n),t=t.slice(0,n)),s?s.end(t):a.append(t),this._overflow=c,this._onparse()}};ch.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};fSe.exports=ch});var hSe=_((qtr,pSe)=>{pSe.exports=Ie("fs").constants||Ie("constants")});var ESe=_((Wtr,ySe)=>{var _w=hSe(),gSe=aH(),kN=cg(),SEt=Buffer.alloc,dSe=Lw().Readable,Hw=Lw().Writable,DEt=Ie("string_decoder").StringDecoder,xN=AV(),PEt=parseInt("755",8),bEt=parseInt("644",8),mSe=SEt(1024),hV=function(){},pV=function(t,e){e&=511,e&&t.push(mSe.slice(0,512-e))};function xEt(t){switch(t&_w.S_IFMT){case _w.S_IFBLK:return"block-device";case _w.S_IFCHR:return"character-device";case _w.S_IFDIR:return"directory";case _w.S_IFIFO:return"fifo";case _w.S_IFLNK:return"symlink"}return"file"}var QN=function(t){Hw.call(this),this.written=0,this._to=t,this._destroyed=!1};kN(QN,Hw);QN.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};QN.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var RN=function(){Hw.call(this),this.linkname="",this._decoder=new DEt("utf-8"),this._destroyed=!1};kN(RN,Hw);RN.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};RN.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var cP=function(){Hw.call(this),this._destroyed=!1};kN(cP,Hw);cP.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};cP.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var mA=function(t){if(!(this instanceof mA))return new mA(t);dSe.call(this,t),this._drain=hV,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};kN(mA,dSe);mA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=hV);var s=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=xEt(t.mode)),t.mode||(t.mode=t.type==="directory"?PEt:bEt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return pV(s,t.size),a?process.nextTick(r):this._drain=r,new cP}if(t.type==="symlink"&&!t.linkname){var n=new RN;return gSe(n,function(f){if(f)return s.destroy(),r(f);t.linkname=n.linkname,s._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new cP;var c=new QN(this);return this._stream=c,gSe(c,function(f){if(s._stream=null,f)return s.destroy(),r(f);if(c.written!==t.size)return s.destroy(),r(new Error("size mismatch"));pV(s,t.size),s._finalizing&&s.finalize(),r()}),c}};mA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(mSe),this.push(null))};mA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};mA.prototype._encode=function(t){if(!t.pax){var e=xN.encode(t);if(e){this.push(e);return}}this._encodePax(t)};mA.prototype._encodePax=function(t){var e=xN.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(xN.encode(r)),this.push(e),pV(this,e.length),r.size=t.size,r.type=t.type,this.push(xN.encode(r))};mA.prototype._read=function(t){var e=this._drain;this._drain=hV,e()};ySe.exports=mA});var ISe=_(gV=>{gV.extract=ASe();gV.pack=ESe()});var TSe=_(Ra=>{"use strict";var jEt=Ra&&Ra.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ra,"__esModule",{value:!0});Ra.Minipass=Ra.isWritable=Ra.isReadable=Ra.isStream=void 0;var bSe=typeof process=="object"&&process?process:{stdout:null,stderr:null},PV=Ie("node:events"),RSe=jEt(Ie("node:stream")),GEt=Ie("node:string_decoder"),qEt=t=>!!t&&typeof t=="object"&&(t instanceof HN||t instanceof RSe.default||(0,Ra.isReadable)(t)||(0,Ra.isWritable)(t));Ra.isStream=qEt;var WEt=t=>!!t&&typeof t=="object"&&t instanceof PV.EventEmitter&&typeof t.pipe=="function"&&t.pipe!==RSe.default.Writable.prototype.pipe;Ra.isReadable=WEt;var YEt=t=>!!t&&typeof t=="object"&&t instanceof PV.EventEmitter&&typeof t.write=="function"&&typeof t.end=="function";Ra.isWritable=YEt;var uh=Symbol("EOF"),fh=Symbol("maybeEmitEnd"),dg=Symbol("emittedEnd"),NN=Symbol("emittingEnd"),uP=Symbol("emittedError"),ON=Symbol("closed"),xSe=Symbol("read"),LN=Symbol("flush"),kSe=Symbol("flushChunk"),uf=Symbol("encoding"),Gw=Symbol("decoder"),Ks=Symbol("flowing"),fP=Symbol("paused"),qw=Symbol("resume"),zs=Symbol("buffer"),Qa=Symbol("pipes"),Zs=Symbol("bufferLength"),CV=Symbol("bufferPush"),MN=Symbol("bufferShift"),na=Symbol("objectMode"),es=Symbol("destroyed"),wV=Symbol("error"),BV=Symbol("emitData"),QSe=Symbol("emitEnd"),vV=Symbol("emitEnd2"),EA=Symbol("async"),SV=Symbol("abort"),UN=Symbol("aborted"),AP=Symbol("signal"),zm=Symbol("dataListeners"),rc=Symbol("discarded"),pP=t=>Promise.resolve().then(t),VEt=t=>t(),JEt=t=>t==="end"||t==="finish"||t==="prefinish",KEt=t=>t instanceof ArrayBuffer||!!t&&typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,zEt=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),_N=class{src;dest;opts;ondrain;constructor(e,r,s){this.src=e,this.dest=r,this.opts=s,this.ondrain=()=>e[qw](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},DV=class extends _N{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,s){super(e,r,s),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}},ZEt=t=>!!t.objectMode,XEt=t=>!t.objectMode&&!!t.encoding&&t.encoding!=="buffer",HN=class extends PV.EventEmitter{[Ks]=!1;[fP]=!1;[Qa]=[];[zs]=[];[na];[uf];[EA];[Gw];[uh]=!1;[dg]=!1;[NN]=!1;[ON]=!1;[uP]=null;[Zs]=0;[es]=!1;[AP];[UN]=!1;[zm]=0;[rc]=!1;writable=!0;readable=!0;constructor(...e){let r=e[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");ZEt(r)?(this[na]=!0,this[uf]=null):XEt(r)?(this[uf]=r.encoding,this[na]=!1):(this[na]=!1,this[uf]=null),this[EA]=!!r.async,this[Gw]=this[uf]?new GEt.StringDecoder(this[uf]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[zs]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[Qa]});let{signal:s}=r;s&&(this[AP]=s,s.aborted?this[SV]():s.addEventListener("abort",()=>this[SV]()))}get bufferLength(){return this[Zs]}get encoding(){return this[uf]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[na]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[EA]}set async(e){this[EA]=this[EA]||!!e}[SV](){this[UN]=!0,this.emit("abort",this[AP]?.reason),this.destroy(this[AP]?.reason)}get aborted(){return this[UN]}set aborted(e){}write(e,r,s){if(this[UN])return!1;if(this[uh])throw new Error("write after end");if(this[es])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(s=r,r="utf8"),r||(r="utf8");let a=this[EA]?pP:VEt;if(!this[na]&&!Buffer.isBuffer(e)){if(zEt(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(KEt(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[na]?(this[Ks]&&this[Zs]!==0&&this[LN](!0),this[Ks]?this.emit("data",e):this[CV](e),this[Zs]!==0&&this.emit("readable"),s&&a(s),this[Ks]):e.length?(typeof e=="string"&&!(r===this[uf]&&!this[Gw]?.lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[uf]&&(e=this[Gw].write(e)),this[Ks]&&this[Zs]!==0&&this[LN](!0),this[Ks]?this.emit("data",e):this[CV](e),this[Zs]!==0&&this.emit("readable"),s&&a(s),this[Ks]):(this[Zs]!==0&&this.emit("readable"),s&&a(s),this[Ks])}read(e){if(this[es])return null;if(this[rc]=!1,this[Zs]===0||e===0||e&&e>this[Zs])return this[fh](),null;this[na]&&(e=null),this[zs].length>1&&!this[na]&&(this[zs]=[this[uf]?this[zs].join(""):Buffer.concat(this[zs],this[Zs])]);let r=this[xSe](e||null,this[zs][0]);return this[fh](),r}[xSe](e,r){if(this[na])this[MN]();else{let s=r;e===s.length||e===null?this[MN]():typeof s=="string"?(this[zs][0]=s.slice(e),r=s.slice(0,e),this[Zs]-=e):(this[zs][0]=s.subarray(e),r=s.subarray(0,e),this[Zs]-=e)}return this.emit("data",r),!this[zs].length&&!this[uh]&&this.emit("drain"),r}end(e,r,s){return typeof e=="function"&&(s=e,e=void 0),typeof r=="function"&&(s=r,r="utf8"),e!==void 0&&this.write(e,r),s&&this.once("end",s),this[uh]=!0,this.writable=!1,(this[Ks]||!this[fP])&&this[fh](),this}[qw](){this[es]||(!this[zm]&&!this[Qa].length&&(this[rc]=!0),this[fP]=!1,this[Ks]=!0,this.emit("resume"),this[zs].length?this[LN]():this[uh]?this[fh]():this.emit("drain"))}resume(){return this[qw]()}pause(){this[Ks]=!1,this[fP]=!0,this[rc]=!1}get destroyed(){return this[es]}get flowing(){return this[Ks]}get paused(){return this[fP]}[CV](e){this[na]?this[Zs]+=1:this[Zs]+=e.length,this[zs].push(e)}[MN](){return this[na]?this[Zs]-=1:this[Zs]-=this[zs][0].length,this[zs].shift()}[LN](e=!1){do;while(this[kSe](this[MN]())&&this[zs].length);!e&&!this[zs].length&&!this[uh]&&this.emit("drain")}[kSe](e){return this.emit("data",e),this[Ks]}pipe(e,r){if(this[es])return e;this[rc]=!1;let s=this[dg];return r=r||{},e===bSe.stdout||e===bSe.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,s?r.end&&e.end():(this[Qa].push(r.proxyErrors?new DV(this,e,r):new _N(this,e,r)),this[EA]?pP(()=>this[qw]()):this[qw]()),e}unpipe(e){let r=this[Qa].find(s=>s.dest===e);r&&(this[Qa].length===1?(this[Ks]&&this[zm]===0&&(this[Ks]=!1),this[Qa]=[]):this[Qa].splice(this[Qa].indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let s=super.on(e,r);if(e==="data")this[rc]=!1,this[zm]++,!this[Qa].length&&!this[Ks]&&this[qw]();else if(e==="readable"&&this[Zs]!==0)super.emit("readable");else if(JEt(e)&&this[dg])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[uP]){let a=r;this[EA]?pP(()=>a.call(this,this[uP])):a.call(this,this[uP])}return s}removeListener(e,r){return this.off(e,r)}off(e,r){let s=super.off(e,r);return e==="data"&&(this[zm]=this.listeners("data").length,this[zm]===0&&!this[rc]&&!this[Qa].length&&(this[Ks]=!1)),s}removeAllListeners(e){let r=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[zm]=0,!this[rc]&&!this[Qa].length&&(this[Ks]=!1)),r}get emittedEnd(){return this[dg]}[fh](){!this[NN]&&!this[dg]&&!this[es]&&this[zs].length===0&&this[uh]&&(this[NN]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[ON]&&this.emit("close"),this[NN]=!1)}emit(e,...r){let s=r[0];if(e!=="error"&&e!=="close"&&e!==es&&this[es])return!1;if(e==="data")return!this[na]&&!s?!1:this[EA]?(pP(()=>this[BV](s)),!0):this[BV](s);if(e==="end")return this[QSe]();if(e==="close"){if(this[ON]=!0,!this[dg]&&!this[es])return!1;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[uP]=s,super.emit(wV,s);let n=!this[AP]||this.listeners("error").length?super.emit("error",s):!1;return this[fh](),n}else if(e==="resume"){let n=super.emit("resume");return this[fh](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,...r);return this[fh](),a}[BV](e){for(let s of this[Qa])s.dest.write(e)===!1&&this.pause();let r=this[rc]?!1:super.emit("data",e);return this[fh](),r}[QSe](){return this[dg]?!1:(this[dg]=!0,this.readable=!1,this[EA]?(pP(()=>this[vV]()),!0):this[vV]())}[vV](){if(this[Gw]){let r=this[Gw].end();if(r){for(let s of this[Qa])s.dest.write(r);this[rc]||super.emit("data",r)}}for(let r of this[Qa])r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[na]||(e.dataLength=0);let r=this.promise();return this.on("data",s=>{e.push(s),this[na]||(e.dataLength+=s.length)}),await r,e}async concat(){if(this[na])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[uf]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,r)=>{this.on(es,()=>r(new Error("stream destroyed"))),this.on("error",s=>r(s)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[rc]=!1;let e=!1,r=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[uh])return r();let n,c,f=C=>{this.off("data",p),this.off("end",h),this.off(es,E),r(),c(C)},p=C=>{this.off("error",f),this.off("end",h),this.off(es,E),this.pause(),n({value:C,done:!!this[uh]})},h=()=>{this.off("error",f),this.off("data",p),this.off(es,E),r(),n({done:!0,value:void 0})},E=()=>f(new Error("stream destroyed"));return new Promise((C,S)=>{c=S,n=C,this.once(es,E),this.once("error",f),this.once("end",h),this.once("data",p)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[rc]=!1;let e=!1,r=()=>(this.pause(),this.off(wV,r),this.off(es,r),this.off("end",r),e=!0,{done:!0,value:void 0}),s=()=>{if(e)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once("end",r),this.once(wV,r),this.once(es,r),{next:s,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(e){if(this[es])return e?this.emit("error",e):this.emit(es),this;this[es]=!0,this[rc]=!0,this[zs].length=0,this[Zs]=0;let r=this;return typeof r.close=="function"&&!this[ON]&&r.close(),e?this.emit("error",e):this.emit(es),this}static get isStream(){return Ra.isStream}};Ra.Minipass=HN});var OSe=_((prr,IA)=>{"use strict";var gP=Ie("crypto"),{Minipass:$Et}=TSe(),xV=["sha512","sha384","sha256"],QV=["sha512"],eIt=/^[a-z0-9+/]+(?:=?=?)$/i,tIt=/^([a-z0-9]+)-([^?]+)([?\S*]*)$/,rIt=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/,nIt=/^[\x21-\x7E]+$/,dP=t=>t?.length?`?${t.join("?")}`:"",kV=class extends $Et{#t;#r;#i;constructor(e){super(),this.size=0,this.opts=e,this.#e(),e?.algorithms?this.algorithms=[...e.algorithms]:this.algorithms=[...QV],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(gP.createHash)}#e(){this.sri=this.opts?.integrity?nc(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=dP(this.opts?.options)}on(e,r){return e==="size"&&this.#r?r(this.#r):e==="integrity"&&this.#t?r(this.#t):e==="verified"&&this.#i?r(this.#i):super.on(e,r)}emit(e,r){return e==="end"&&this.#n(),super.emit(e,r)}write(e){return this.size+=e.length,this.hashes.forEach(r=>r.update(e)),super.write(e)}#n(){this.goodSri||this.#e();let e=nc(this.hashes.map((s,a)=>`${this.algorithms[a]}-${s.digest("base64")}${this.optString}`).join(" "),this.opts),r=this.goodSri&&e.match(this.sri,this.opts);if(typeof this.expectedSize=="number"&&this.size!==this.expectedSize){let s=new Error(`stream size mismatch when checking ${this.sri}. Wanted: ${this.expectedSize} Found: ${this.size}`);s.code="EBADSIZE",s.found=this.size,s.expected=this.expectedSize,s.sri=this.sri,this.emit("error",s)}else if(this.sri&&!r){let s=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${e}. (${this.size} bytes)`);s.code="EINTEGRITY",s.found=e,s.expected=this.digests,s.algorithm=this.algorithm,s.sri=this.sri,this.emit("error",s)}else this.#r=this.size,this.emit("size",this.size),this.#t=e,this.emit("integrity",e),r&&(this.#i=r,this.emit("verified",r))}},Ah=class{get isHash(){return!0}constructor(e,r){let s=r?.strict;this.source=e.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(s?rIt:tIt);if(!a||s&&!xV.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];n&&(this.options=n.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(e,r){let s=nc(e,r);if(!s)return!1;if(s.isIntegrity){let a=s.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let n=s[a].find(c=>c.digest===this.digest);return n||!1}return s.digest===this.digest?s:!1}toString(e){return e?.strict&&!(xV.includes(this.algorithm)&&this.digest.match(eIt)&&this.options.every(r=>r.match(nIt)))?"":`${this.algorithm}-${this.digest}${dP(this.options)}`}};function FSe(t,e,r,s){let a=t!=="",n=!1,c="",f=s.length-1;for(let h=0;hs[a].find(c=>n.digest===c.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=s[a]}match(e,r){let s=nc(e,r);if(!s)return!1;let a=s.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&s[a]&&this[a].find(n=>s[a].find(c=>n.digest===c.digest))||!1}pickAlgorithm(e,r){let s=e?.pickAlgorithm||fIt,a=Object.keys(this).filter(n=>r?.length?r.includes(n):!0);return a.length?a.reduce((n,c)=>s(n,c)||n):null}};IA.exports.parse=nc;function nc(t,e){if(!t)return null;if(typeof t=="string")return bV(t,e);if(t.algorithm&&t.digest){let r=new Zm;return r[t.algorithm]=[t],bV(hP(r,e),e)}else return bV(hP(t,e),e)}function bV(t,e){if(e?.single)return new Ah(t,e);let r=t.trim().split(/\s+/).reduce((s,a)=>{let n=new Ah(a,e);if(n.algorithm&&n.digest){let c=n.algorithm;s[c]||(s[c]=[]),s[c].push(n)}return s},new Zm);return r.isEmpty()?null:r}IA.exports.stringify=hP;function hP(t,e){return t.algorithm&&t.digest?Ah.prototype.toString.call(t,e):typeof t=="string"?hP(nc(t,e),e):Zm.prototype.toString.call(t,e)}IA.exports.fromHex=iIt;function iIt(t,e,r){let s=dP(r?.options);return nc(`${e}-${Buffer.from(t,"hex").toString("base64")}${s}`,r)}IA.exports.fromData=sIt;function sIt(t,e){let r=e?.algorithms||[...QV],s=dP(e?.options);return r.reduce((a,n)=>{let c=gP.createHash(n).update(t).digest("base64"),f=new Ah(`${n}-${c}${s}`,e);if(f.algorithm&&f.digest){let p=f.algorithm;a[p]||(a[p]=[]),a[p].push(f)}return a},new Zm)}IA.exports.fromStream=oIt;function oIt(t,e){let r=RV(e);return new Promise((s,a)=>{t.pipe(r),t.on("error",a),r.on("error",a);let n;r.on("integrity",c=>{n=c}),r.on("end",()=>s(n)),r.resume()})}IA.exports.checkData=aIt;function aIt(t,e,r){if(e=nc(e,r),!e||!Object.keys(e).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let s=e.pickAlgorithm(r),a=gP.createHash(s).update(t).digest("base64"),n=nc({algorithm:s,digest:a}),c=n.match(e,r);if(r=r||{},c||!r.error)return c;if(typeof r.size=="number"&&t.length!==r.size){let f=new Error(`data size mismatch when checking ${e}. Wanted: ${r.size} Found: ${t.length}`);throw f.code="EBADSIZE",f.found=t.length,f.expected=r.size,f.sri=e,f}else{let f=new Error(`Integrity checksum failed when using ${s}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw f.code="EINTEGRITY",f.found=n,f.expected=e,f.algorithm=s,f.sri=e,f}}IA.exports.checkStream=lIt;function lIt(t,e,r){if(r=r||Object.create(null),r.integrity=e,e=nc(e,r),!e||!Object.keys(e).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let s=RV(r);return new Promise((a,n)=>{t.pipe(s),t.on("error",n),s.on("error",n);let c;s.on("verified",f=>{c=f}),s.on("end",()=>a(c)),s.resume()})}IA.exports.integrityStream=RV;function RV(t=Object.create(null)){return new kV(t)}IA.exports.create=cIt;function cIt(t){let e=t?.algorithms||[...QV],r=dP(t?.options),s=e.map(gP.createHash);return{update:function(a,n){return s.forEach(c=>c.update(a,n)),this},digest:function(){return e.reduce((n,c)=>{let f=s.shift().digest("base64"),p=new Ah(`${c}-${f}${r}`,t);if(p.algorithm&&p.digest){let h=p.algorithm;n[h]||(n[h]=[]),n[h].push(p)}return n},new Zm)}}}var uIt=gP.getHashes(),NSe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>uIt.includes(t));function fIt(t,e){return NSe.indexOf(t.toLowerCase())>=NSe.indexOf(e.toLowerCase())?t:e}});var TV=_(mg=>{"use strict";Object.defineProperty(mg,"__esModule",{value:!0});mg.Signature=mg.Envelope=void 0;mg.Envelope={fromJSON(t){return{payload:jN(t.payload)?Buffer.from(LSe(t.payload)):Buffer.alloc(0),payloadType:jN(t.payloadType)?globalThis.String(t.payloadType):"",signatures:globalThis.Array.isArray(t?.signatures)?t.signatures.map(e=>mg.Signature.fromJSON(e)):[]}},toJSON(t){let e={};return t.payload.length!==0&&(e.payload=MSe(t.payload)),t.payloadType!==""&&(e.payloadType=t.payloadType),t.signatures?.length&&(e.signatures=t.signatures.map(r=>mg.Signature.toJSON(r))),e}};mg.Signature={fromJSON(t){return{sig:jN(t.sig)?Buffer.from(LSe(t.sig)):Buffer.alloc(0),keyid:jN(t.keyid)?globalThis.String(t.keyid):""}},toJSON(t){let e={};return t.sig.length!==0&&(e.sig=MSe(t.sig)),t.keyid!==""&&(e.keyid=t.keyid),e}};function LSe(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function MSe(t){return globalThis.Buffer.from(t).toString("base64")}function jN(t){return t!=null}});var _Se=_(GN=>{"use strict";Object.defineProperty(GN,"__esModule",{value:!0});GN.Timestamp=void 0;GN.Timestamp={fromJSON(t){return{seconds:USe(t.seconds)?globalThis.String(t.seconds):"0",nanos:USe(t.nanos)?globalThis.Number(t.nanos):0}},toJSON(t){let e={};return t.seconds!=="0"&&(e.seconds=t.seconds),t.nanos!==0&&(e.nanos=Math.round(t.nanos)),e}};function USe(t){return t!=null}});var Ww=_(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.TimeRange=Ur.X509CertificateChain=Ur.SubjectAlternativeName=Ur.X509Certificate=Ur.DistinguishedName=Ur.ObjectIdentifierValuePair=Ur.ObjectIdentifier=Ur.PublicKeyIdentifier=Ur.PublicKey=Ur.RFC3161SignedTimestamp=Ur.LogId=Ur.MessageSignature=Ur.HashOutput=Ur.SubjectAlternativeNameType=Ur.PublicKeyDetails=Ur.HashAlgorithm=void 0;Ur.hashAlgorithmFromJSON=jSe;Ur.hashAlgorithmToJSON=GSe;Ur.publicKeyDetailsFromJSON=qSe;Ur.publicKeyDetailsToJSON=WSe;Ur.subjectAlternativeNameTypeFromJSON=YSe;Ur.subjectAlternativeNameTypeToJSON=VSe;var AIt=_Se(),yl;(function(t){t[t.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",t[t.SHA2_256=1]="SHA2_256",t[t.SHA2_384=2]="SHA2_384",t[t.SHA2_512=3]="SHA2_512",t[t.SHA3_256=4]="SHA3_256",t[t.SHA3_384=5]="SHA3_384"})(yl||(Ur.HashAlgorithm=yl={}));function jSe(t){switch(t){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return yl.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return yl.SHA2_256;case 2:case"SHA2_384":return yl.SHA2_384;case 3:case"SHA2_512":return yl.SHA2_512;case 4:case"SHA3_256":return yl.SHA3_256;case 5:case"SHA3_384":return yl.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum HashAlgorithm")}}function GSe(t){switch(t){case yl.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case yl.SHA2_256:return"SHA2_256";case yl.SHA2_384:return"SHA2_384";case yl.SHA2_512:return"SHA2_512";case yl.SHA3_256:return"SHA3_256";case yl.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum HashAlgorithm")}}var rn;(function(t){t[t.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",t[t.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",t[t.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",t[t.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",t[t.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",t[t.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",t[t.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",t[t.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",t[t.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",t[t.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",t[t.PKIX_RSA_PSS_4096_SHA256=18]="PKIX_RSA_PSS_4096_SHA256",t[t.PKIX_ECDSA_P256_HMAC_SHA_256=6]="PKIX_ECDSA_P256_HMAC_SHA_256",t[t.PKIX_ECDSA_P256_SHA_256=5]="PKIX_ECDSA_P256_SHA_256",t[t.PKIX_ECDSA_P384_SHA_384=12]="PKIX_ECDSA_P384_SHA_384",t[t.PKIX_ECDSA_P521_SHA_512=13]="PKIX_ECDSA_P521_SHA_512",t[t.PKIX_ED25519=7]="PKIX_ED25519",t[t.PKIX_ED25519_PH=8]="PKIX_ED25519_PH",t[t.LMS_SHA256=14]="LMS_SHA256",t[t.LMOTS_SHA256=15]="LMOTS_SHA256"})(rn||(Ur.PublicKeyDetails=rn={}));function qSe(t){switch(t){case 0:case"PUBLIC_KEY_DETAILS_UNSPECIFIED":return rn.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case"PKCS1_RSA_PKCS1V5":return rn.PKCS1_RSA_PKCS1V5;case 2:case"PKCS1_RSA_PSS":return rn.PKCS1_RSA_PSS;case 3:case"PKIX_RSA_PKCS1V5":return rn.PKIX_RSA_PKCS1V5;case 4:case"PKIX_RSA_PSS":return rn.PKIX_RSA_PSS;case 9:case"PKIX_RSA_PKCS1V15_2048_SHA256":return rn.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case"PKIX_RSA_PKCS1V15_3072_SHA256":return rn.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case"PKIX_RSA_PKCS1V15_4096_SHA256":return rn.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case"PKIX_RSA_PSS_2048_SHA256":return rn.PKIX_RSA_PSS_2048_SHA256;case 17:case"PKIX_RSA_PSS_3072_SHA256":return rn.PKIX_RSA_PSS_3072_SHA256;case 18:case"PKIX_RSA_PSS_4096_SHA256":return rn.PKIX_RSA_PSS_4096_SHA256;case 6:case"PKIX_ECDSA_P256_HMAC_SHA_256":return rn.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case"PKIX_ECDSA_P256_SHA_256":return rn.PKIX_ECDSA_P256_SHA_256;case 12:case"PKIX_ECDSA_P384_SHA_384":return rn.PKIX_ECDSA_P384_SHA_384;case 13:case"PKIX_ECDSA_P521_SHA_512":return rn.PKIX_ECDSA_P521_SHA_512;case 7:case"PKIX_ED25519":return rn.PKIX_ED25519;case 8:case"PKIX_ED25519_PH":return rn.PKIX_ED25519_PH;case 14:case"LMS_SHA256":return rn.LMS_SHA256;case 15:case"LMOTS_SHA256":return rn.LMOTS_SHA256;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum PublicKeyDetails")}}function WSe(t){switch(t){case rn.PUBLIC_KEY_DETAILS_UNSPECIFIED:return"PUBLIC_KEY_DETAILS_UNSPECIFIED";case rn.PKCS1_RSA_PKCS1V5:return"PKCS1_RSA_PKCS1V5";case rn.PKCS1_RSA_PSS:return"PKCS1_RSA_PSS";case rn.PKIX_RSA_PKCS1V5:return"PKIX_RSA_PKCS1V5";case rn.PKIX_RSA_PSS:return"PKIX_RSA_PSS";case rn.PKIX_RSA_PKCS1V15_2048_SHA256:return"PKIX_RSA_PKCS1V15_2048_SHA256";case rn.PKIX_RSA_PKCS1V15_3072_SHA256:return"PKIX_RSA_PKCS1V15_3072_SHA256";case rn.PKIX_RSA_PKCS1V15_4096_SHA256:return"PKIX_RSA_PKCS1V15_4096_SHA256";case rn.PKIX_RSA_PSS_2048_SHA256:return"PKIX_RSA_PSS_2048_SHA256";case rn.PKIX_RSA_PSS_3072_SHA256:return"PKIX_RSA_PSS_3072_SHA256";case rn.PKIX_RSA_PSS_4096_SHA256:return"PKIX_RSA_PSS_4096_SHA256";case rn.PKIX_ECDSA_P256_HMAC_SHA_256:return"PKIX_ECDSA_P256_HMAC_SHA_256";case rn.PKIX_ECDSA_P256_SHA_256:return"PKIX_ECDSA_P256_SHA_256";case rn.PKIX_ECDSA_P384_SHA_384:return"PKIX_ECDSA_P384_SHA_384";case rn.PKIX_ECDSA_P521_SHA_512:return"PKIX_ECDSA_P521_SHA_512";case rn.PKIX_ED25519:return"PKIX_ED25519";case rn.PKIX_ED25519_PH:return"PKIX_ED25519_PH";case rn.LMS_SHA256:return"LMS_SHA256";case rn.LMOTS_SHA256:return"LMOTS_SHA256";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum PublicKeyDetails")}}var CA;(function(t){t[t.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]="SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED",t[t.EMAIL=1]="EMAIL",t[t.URI=2]="URI",t[t.OTHER_NAME=3]="OTHER_NAME"})(CA||(Ur.SubjectAlternativeNameType=CA={}));function YSe(t){switch(t){case 0:case"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED":return CA.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case"EMAIL":return CA.EMAIL;case 2:case"URI":return CA.URI;case 3:case"OTHER_NAME":return CA.OTHER_NAME;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum SubjectAlternativeNameType")}}function VSe(t){switch(t){case CA.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED";case CA.EMAIL:return"EMAIL";case CA.URI:return"URI";case CA.OTHER_NAME:return"OTHER_NAME";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum SubjectAlternativeNameType")}}Ur.HashOutput={fromJSON(t){return{algorithm:ds(t.algorithm)?jSe(t.algorithm):0,digest:ds(t.digest)?Buffer.from(Xm(t.digest)):Buffer.alloc(0)}},toJSON(t){let e={};return t.algorithm!==0&&(e.algorithm=GSe(t.algorithm)),t.digest.length!==0&&(e.digest=$m(t.digest)),e}};Ur.MessageSignature={fromJSON(t){return{messageDigest:ds(t.messageDigest)?Ur.HashOutput.fromJSON(t.messageDigest):void 0,signature:ds(t.signature)?Buffer.from(Xm(t.signature)):Buffer.alloc(0)}},toJSON(t){let e={};return t.messageDigest!==void 0&&(e.messageDigest=Ur.HashOutput.toJSON(t.messageDigest)),t.signature.length!==0&&(e.signature=$m(t.signature)),e}};Ur.LogId={fromJSON(t){return{keyId:ds(t.keyId)?Buffer.from(Xm(t.keyId)):Buffer.alloc(0)}},toJSON(t){let e={};return t.keyId.length!==0&&(e.keyId=$m(t.keyId)),e}};Ur.RFC3161SignedTimestamp={fromJSON(t){return{signedTimestamp:ds(t.signedTimestamp)?Buffer.from(Xm(t.signedTimestamp)):Buffer.alloc(0)}},toJSON(t){let e={};return t.signedTimestamp.length!==0&&(e.signedTimestamp=$m(t.signedTimestamp)),e}};Ur.PublicKey={fromJSON(t){return{rawBytes:ds(t.rawBytes)?Buffer.from(Xm(t.rawBytes)):void 0,keyDetails:ds(t.keyDetails)?qSe(t.keyDetails):0,validFor:ds(t.validFor)?Ur.TimeRange.fromJSON(t.validFor):void 0}},toJSON(t){let e={};return t.rawBytes!==void 0&&(e.rawBytes=$m(t.rawBytes)),t.keyDetails!==0&&(e.keyDetails=WSe(t.keyDetails)),t.validFor!==void 0&&(e.validFor=Ur.TimeRange.toJSON(t.validFor)),e}};Ur.PublicKeyIdentifier={fromJSON(t){return{hint:ds(t.hint)?globalThis.String(t.hint):""}},toJSON(t){let e={};return t.hint!==""&&(e.hint=t.hint),e}};Ur.ObjectIdentifier={fromJSON(t){return{id:globalThis.Array.isArray(t?.id)?t.id.map(e=>globalThis.Number(e)):[]}},toJSON(t){let e={};return t.id?.length&&(e.id=t.id.map(r=>Math.round(r))),e}};Ur.ObjectIdentifierValuePair={fromJSON(t){return{oid:ds(t.oid)?Ur.ObjectIdentifier.fromJSON(t.oid):void 0,value:ds(t.value)?Buffer.from(Xm(t.value)):Buffer.alloc(0)}},toJSON(t){let e={};return t.oid!==void 0&&(e.oid=Ur.ObjectIdentifier.toJSON(t.oid)),t.value.length!==0&&(e.value=$m(t.value)),e}};Ur.DistinguishedName={fromJSON(t){return{organization:ds(t.organization)?globalThis.String(t.organization):"",commonName:ds(t.commonName)?globalThis.String(t.commonName):""}},toJSON(t){let e={};return t.organization!==""&&(e.organization=t.organization),t.commonName!==""&&(e.commonName=t.commonName),e}};Ur.X509Certificate={fromJSON(t){return{rawBytes:ds(t.rawBytes)?Buffer.from(Xm(t.rawBytes)):Buffer.alloc(0)}},toJSON(t){let e={};return t.rawBytes.length!==0&&(e.rawBytes=$m(t.rawBytes)),e}};Ur.SubjectAlternativeName={fromJSON(t){return{type:ds(t.type)?YSe(t.type):0,identity:ds(t.regexp)?{$case:"regexp",regexp:globalThis.String(t.regexp)}:ds(t.value)?{$case:"value",value:globalThis.String(t.value)}:void 0}},toJSON(t){let e={};return t.type!==0&&(e.type=VSe(t.type)),t.identity?.$case==="regexp"?e.regexp=t.identity.regexp:t.identity?.$case==="value"&&(e.value=t.identity.value),e}};Ur.X509CertificateChain={fromJSON(t){return{certificates:globalThis.Array.isArray(t?.certificates)?t.certificates.map(e=>Ur.X509Certificate.fromJSON(e)):[]}},toJSON(t){let e={};return t.certificates?.length&&(e.certificates=t.certificates.map(r=>Ur.X509Certificate.toJSON(r))),e}};Ur.TimeRange={fromJSON(t){return{start:ds(t.start)?HSe(t.start):void 0,end:ds(t.end)?HSe(t.end):void 0}},toJSON(t){let e={};return t.start!==void 0&&(e.start=t.start.toISOString()),t.end!==void 0&&(e.end=t.end.toISOString()),e}};function Xm(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function $m(t){return globalThis.Buffer.from(t).toString("base64")}function pIt(t){let e=(globalThis.Number(t.seconds)||0)*1e3;return e+=(t.nanos||0)/1e6,new globalThis.Date(e)}function HSe(t){return t instanceof globalThis.Date?t:typeof t=="string"?new globalThis.Date(t):pIt(AIt.Timestamp.fromJSON(t))}function ds(t){return t!=null}});var FV=_(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.TransparencyLogEntry=ms.InclusionPromise=ms.InclusionProof=ms.Checkpoint=ms.KindVersion=void 0;var JSe=Ww();ms.KindVersion={fromJSON(t){return{kind:Ta(t.kind)?globalThis.String(t.kind):"",version:Ta(t.version)?globalThis.String(t.version):""}},toJSON(t){let e={};return t.kind!==""&&(e.kind=t.kind),t.version!==""&&(e.version=t.version),e}};ms.Checkpoint={fromJSON(t){return{envelope:Ta(t.envelope)?globalThis.String(t.envelope):""}},toJSON(t){let e={};return t.envelope!==""&&(e.envelope=t.envelope),e}};ms.InclusionProof={fromJSON(t){return{logIndex:Ta(t.logIndex)?globalThis.String(t.logIndex):"0",rootHash:Ta(t.rootHash)?Buffer.from(qN(t.rootHash)):Buffer.alloc(0),treeSize:Ta(t.treeSize)?globalThis.String(t.treeSize):"0",hashes:globalThis.Array.isArray(t?.hashes)?t.hashes.map(e=>Buffer.from(qN(e))):[],checkpoint:Ta(t.checkpoint)?ms.Checkpoint.fromJSON(t.checkpoint):void 0}},toJSON(t){let e={};return t.logIndex!=="0"&&(e.logIndex=t.logIndex),t.rootHash.length!==0&&(e.rootHash=WN(t.rootHash)),t.treeSize!=="0"&&(e.treeSize=t.treeSize),t.hashes?.length&&(e.hashes=t.hashes.map(r=>WN(r))),t.checkpoint!==void 0&&(e.checkpoint=ms.Checkpoint.toJSON(t.checkpoint)),e}};ms.InclusionPromise={fromJSON(t){return{signedEntryTimestamp:Ta(t.signedEntryTimestamp)?Buffer.from(qN(t.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(t){let e={};return t.signedEntryTimestamp.length!==0&&(e.signedEntryTimestamp=WN(t.signedEntryTimestamp)),e}};ms.TransparencyLogEntry={fromJSON(t){return{logIndex:Ta(t.logIndex)?globalThis.String(t.logIndex):"0",logId:Ta(t.logId)?JSe.LogId.fromJSON(t.logId):void 0,kindVersion:Ta(t.kindVersion)?ms.KindVersion.fromJSON(t.kindVersion):void 0,integratedTime:Ta(t.integratedTime)?globalThis.String(t.integratedTime):"0",inclusionPromise:Ta(t.inclusionPromise)?ms.InclusionPromise.fromJSON(t.inclusionPromise):void 0,inclusionProof:Ta(t.inclusionProof)?ms.InclusionProof.fromJSON(t.inclusionProof):void 0,canonicalizedBody:Ta(t.canonicalizedBody)?Buffer.from(qN(t.canonicalizedBody)):Buffer.alloc(0)}},toJSON(t){let e={};return t.logIndex!=="0"&&(e.logIndex=t.logIndex),t.logId!==void 0&&(e.logId=JSe.LogId.toJSON(t.logId)),t.kindVersion!==void 0&&(e.kindVersion=ms.KindVersion.toJSON(t.kindVersion)),t.integratedTime!=="0"&&(e.integratedTime=t.integratedTime),t.inclusionPromise!==void 0&&(e.inclusionPromise=ms.InclusionPromise.toJSON(t.inclusionPromise)),t.inclusionProof!==void 0&&(e.inclusionProof=ms.InclusionProof.toJSON(t.inclusionProof)),t.canonicalizedBody.length!==0&&(e.canonicalizedBody=WN(t.canonicalizedBody)),e}};function qN(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function WN(t){return globalThis.Buffer.from(t).toString("base64")}function Ta(t){return t!=null}});var NV=_(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.Bundle=Zc.VerificationMaterial=Zc.TimestampVerificationData=void 0;var KSe=TV(),wA=Ww(),zSe=FV();Zc.TimestampVerificationData={fromJSON(t){return{rfc3161Timestamps:globalThis.Array.isArray(t?.rfc3161Timestamps)?t.rfc3161Timestamps.map(e=>wA.RFC3161SignedTimestamp.fromJSON(e)):[]}},toJSON(t){let e={};return t.rfc3161Timestamps?.length&&(e.rfc3161Timestamps=t.rfc3161Timestamps.map(r=>wA.RFC3161SignedTimestamp.toJSON(r))),e}};Zc.VerificationMaterial={fromJSON(t){return{content:yg(t.publicKey)?{$case:"publicKey",publicKey:wA.PublicKeyIdentifier.fromJSON(t.publicKey)}:yg(t.x509CertificateChain)?{$case:"x509CertificateChain",x509CertificateChain:wA.X509CertificateChain.fromJSON(t.x509CertificateChain)}:yg(t.certificate)?{$case:"certificate",certificate:wA.X509Certificate.fromJSON(t.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(t?.tlogEntries)?t.tlogEntries.map(e=>zSe.TransparencyLogEntry.fromJSON(e)):[],timestampVerificationData:yg(t.timestampVerificationData)?Zc.TimestampVerificationData.fromJSON(t.timestampVerificationData):void 0}},toJSON(t){let e={};return t.content?.$case==="publicKey"?e.publicKey=wA.PublicKeyIdentifier.toJSON(t.content.publicKey):t.content?.$case==="x509CertificateChain"?e.x509CertificateChain=wA.X509CertificateChain.toJSON(t.content.x509CertificateChain):t.content?.$case==="certificate"&&(e.certificate=wA.X509Certificate.toJSON(t.content.certificate)),t.tlogEntries?.length&&(e.tlogEntries=t.tlogEntries.map(r=>zSe.TransparencyLogEntry.toJSON(r))),t.timestampVerificationData!==void 0&&(e.timestampVerificationData=Zc.TimestampVerificationData.toJSON(t.timestampVerificationData)),e}};Zc.Bundle={fromJSON(t){return{mediaType:yg(t.mediaType)?globalThis.String(t.mediaType):"",verificationMaterial:yg(t.verificationMaterial)?Zc.VerificationMaterial.fromJSON(t.verificationMaterial):void 0,content:yg(t.messageSignature)?{$case:"messageSignature",messageSignature:wA.MessageSignature.fromJSON(t.messageSignature)}:yg(t.dsseEnvelope)?{$case:"dsseEnvelope",dsseEnvelope:KSe.Envelope.fromJSON(t.dsseEnvelope)}:void 0}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.verificationMaterial!==void 0&&(e.verificationMaterial=Zc.VerificationMaterial.toJSON(t.verificationMaterial)),t.content?.$case==="messageSignature"?e.messageSignature=wA.MessageSignature.toJSON(t.content.messageSignature):t.content?.$case==="dsseEnvelope"&&(e.dsseEnvelope=KSe.Envelope.toJSON(t.content.dsseEnvelope)),e}};function yg(t){return t!=null}});var OV=_(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.ClientTrustConfig=Ti.SigningConfig=Ti.TrustedRoot=Ti.CertificateAuthority=Ti.TransparencyLogInstance=void 0;var El=Ww();Ti.TransparencyLogInstance={fromJSON(t){return{baseUrl:ia(t.baseUrl)?globalThis.String(t.baseUrl):"",hashAlgorithm:ia(t.hashAlgorithm)?(0,El.hashAlgorithmFromJSON)(t.hashAlgorithm):0,publicKey:ia(t.publicKey)?El.PublicKey.fromJSON(t.publicKey):void 0,logId:ia(t.logId)?El.LogId.fromJSON(t.logId):void 0,checkpointKeyId:ia(t.checkpointKeyId)?El.LogId.fromJSON(t.checkpointKeyId):void 0}},toJSON(t){let e={};return t.baseUrl!==""&&(e.baseUrl=t.baseUrl),t.hashAlgorithm!==0&&(e.hashAlgorithm=(0,El.hashAlgorithmToJSON)(t.hashAlgorithm)),t.publicKey!==void 0&&(e.publicKey=El.PublicKey.toJSON(t.publicKey)),t.logId!==void 0&&(e.logId=El.LogId.toJSON(t.logId)),t.checkpointKeyId!==void 0&&(e.checkpointKeyId=El.LogId.toJSON(t.checkpointKeyId)),e}};Ti.CertificateAuthority={fromJSON(t){return{subject:ia(t.subject)?El.DistinguishedName.fromJSON(t.subject):void 0,uri:ia(t.uri)?globalThis.String(t.uri):"",certChain:ia(t.certChain)?El.X509CertificateChain.fromJSON(t.certChain):void 0,validFor:ia(t.validFor)?El.TimeRange.fromJSON(t.validFor):void 0}},toJSON(t){let e={};return t.subject!==void 0&&(e.subject=El.DistinguishedName.toJSON(t.subject)),t.uri!==""&&(e.uri=t.uri),t.certChain!==void 0&&(e.certChain=El.X509CertificateChain.toJSON(t.certChain)),t.validFor!==void 0&&(e.validFor=El.TimeRange.toJSON(t.validFor)),e}};Ti.TrustedRoot={fromJSON(t){return{mediaType:ia(t.mediaType)?globalThis.String(t.mediaType):"",tlogs:globalThis.Array.isArray(t?.tlogs)?t.tlogs.map(e=>Ti.TransparencyLogInstance.fromJSON(e)):[],certificateAuthorities:globalThis.Array.isArray(t?.certificateAuthorities)?t.certificateAuthorities.map(e=>Ti.CertificateAuthority.fromJSON(e)):[],ctlogs:globalThis.Array.isArray(t?.ctlogs)?t.ctlogs.map(e=>Ti.TransparencyLogInstance.fromJSON(e)):[],timestampAuthorities:globalThis.Array.isArray(t?.timestampAuthorities)?t.timestampAuthorities.map(e=>Ti.CertificateAuthority.fromJSON(e)):[]}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.tlogs?.length&&(e.tlogs=t.tlogs.map(r=>Ti.TransparencyLogInstance.toJSON(r))),t.certificateAuthorities?.length&&(e.certificateAuthorities=t.certificateAuthorities.map(r=>Ti.CertificateAuthority.toJSON(r))),t.ctlogs?.length&&(e.ctlogs=t.ctlogs.map(r=>Ti.TransparencyLogInstance.toJSON(r))),t.timestampAuthorities?.length&&(e.timestampAuthorities=t.timestampAuthorities.map(r=>Ti.CertificateAuthority.toJSON(r))),e}};Ti.SigningConfig={fromJSON(t){return{mediaType:ia(t.mediaType)?globalThis.String(t.mediaType):"",caUrl:ia(t.caUrl)?globalThis.String(t.caUrl):"",oidcUrl:ia(t.oidcUrl)?globalThis.String(t.oidcUrl):"",tlogUrls:globalThis.Array.isArray(t?.tlogUrls)?t.tlogUrls.map(e=>globalThis.String(e)):[],tsaUrls:globalThis.Array.isArray(t?.tsaUrls)?t.tsaUrls.map(e=>globalThis.String(e)):[]}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.caUrl!==""&&(e.caUrl=t.caUrl),t.oidcUrl!==""&&(e.oidcUrl=t.oidcUrl),t.tlogUrls?.length&&(e.tlogUrls=t.tlogUrls),t.tsaUrls?.length&&(e.tsaUrls=t.tsaUrls),e}};Ti.ClientTrustConfig={fromJSON(t){return{mediaType:ia(t.mediaType)?globalThis.String(t.mediaType):"",trustedRoot:ia(t.trustedRoot)?Ti.TrustedRoot.fromJSON(t.trustedRoot):void 0,signingConfig:ia(t.signingConfig)?Ti.SigningConfig.fromJSON(t.signingConfig):void 0}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.trustedRoot!==void 0&&(e.trustedRoot=Ti.TrustedRoot.toJSON(t.trustedRoot)),t.signingConfig!==void 0&&(e.signingConfig=Ti.SigningConfig.toJSON(t.signingConfig)),e}};function ia(t){return t!=null}});var $Se=_(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.Input=Vr.Artifact=Vr.ArtifactVerificationOptions_ObserverTimestampOptions=Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=Vr.ArtifactVerificationOptions_TimestampAuthorityOptions=Vr.ArtifactVerificationOptions_CtlogOptions=Vr.ArtifactVerificationOptions_TlogOptions=Vr.ArtifactVerificationOptions=Vr.PublicKeyIdentities=Vr.CertificateIdentities=Vr.CertificateIdentity=void 0;var ZSe=NV(),Eg=Ww(),XSe=OV();Vr.CertificateIdentity={fromJSON(t){return{issuer:gi(t.issuer)?globalThis.String(t.issuer):"",san:gi(t.san)?Eg.SubjectAlternativeName.fromJSON(t.san):void 0,oids:globalThis.Array.isArray(t?.oids)?t.oids.map(e=>Eg.ObjectIdentifierValuePair.fromJSON(e)):[]}},toJSON(t){let e={};return t.issuer!==""&&(e.issuer=t.issuer),t.san!==void 0&&(e.san=Eg.SubjectAlternativeName.toJSON(t.san)),t.oids?.length&&(e.oids=t.oids.map(r=>Eg.ObjectIdentifierValuePair.toJSON(r))),e}};Vr.CertificateIdentities={fromJSON(t){return{identities:globalThis.Array.isArray(t?.identities)?t.identities.map(e=>Vr.CertificateIdentity.fromJSON(e)):[]}},toJSON(t){let e={};return t.identities?.length&&(e.identities=t.identities.map(r=>Vr.CertificateIdentity.toJSON(r))),e}};Vr.PublicKeyIdentities={fromJSON(t){return{publicKeys:globalThis.Array.isArray(t?.publicKeys)?t.publicKeys.map(e=>Eg.PublicKey.fromJSON(e)):[]}},toJSON(t){let e={};return t.publicKeys?.length&&(e.publicKeys=t.publicKeys.map(r=>Eg.PublicKey.toJSON(r))),e}};Vr.ArtifactVerificationOptions={fromJSON(t){return{signers:gi(t.certificateIdentities)?{$case:"certificateIdentities",certificateIdentities:Vr.CertificateIdentities.fromJSON(t.certificateIdentities)}:gi(t.publicKeys)?{$case:"publicKeys",publicKeys:Vr.PublicKeyIdentities.fromJSON(t.publicKeys)}:void 0,tlogOptions:gi(t.tlogOptions)?Vr.ArtifactVerificationOptions_TlogOptions.fromJSON(t.tlogOptions):void 0,ctlogOptions:gi(t.ctlogOptions)?Vr.ArtifactVerificationOptions_CtlogOptions.fromJSON(t.ctlogOptions):void 0,tsaOptions:gi(t.tsaOptions)?Vr.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(t.tsaOptions):void 0,integratedTsOptions:gi(t.integratedTsOptions)?Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(t.integratedTsOptions):void 0,observerOptions:gi(t.observerOptions)?Vr.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(t.observerOptions):void 0}},toJSON(t){let e={};return t.signers?.$case==="certificateIdentities"?e.certificateIdentities=Vr.CertificateIdentities.toJSON(t.signers.certificateIdentities):t.signers?.$case==="publicKeys"&&(e.publicKeys=Vr.PublicKeyIdentities.toJSON(t.signers.publicKeys)),t.tlogOptions!==void 0&&(e.tlogOptions=Vr.ArtifactVerificationOptions_TlogOptions.toJSON(t.tlogOptions)),t.ctlogOptions!==void 0&&(e.ctlogOptions=Vr.ArtifactVerificationOptions_CtlogOptions.toJSON(t.ctlogOptions)),t.tsaOptions!==void 0&&(e.tsaOptions=Vr.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(t.tsaOptions)),t.integratedTsOptions!==void 0&&(e.integratedTsOptions=Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(t.integratedTsOptions)),t.observerOptions!==void 0&&(e.observerOptions=Vr.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(t.observerOptions)),e}};Vr.ArtifactVerificationOptions_TlogOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,performOnlineVerification:gi(t.performOnlineVerification)?globalThis.Boolean(t.performOnlineVerification):!1,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.performOnlineVerification!==!1&&(e.performOnlineVerification=t.performOnlineVerification),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_CtlogOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.Artifact={fromJSON(t){return{data:gi(t.artifactUri)?{$case:"artifactUri",artifactUri:globalThis.String(t.artifactUri)}:gi(t.artifact)?{$case:"artifact",artifact:Buffer.from(hIt(t.artifact))}:gi(t.artifactDigest)?{$case:"artifactDigest",artifactDigest:Eg.HashOutput.fromJSON(t.artifactDigest)}:void 0}},toJSON(t){let e={};return t.data?.$case==="artifactUri"?e.artifactUri=t.data.artifactUri:t.data?.$case==="artifact"?e.artifact=gIt(t.data.artifact):t.data?.$case==="artifactDigest"&&(e.artifactDigest=Eg.HashOutput.toJSON(t.data.artifactDigest)),e}};Vr.Input={fromJSON(t){return{artifactTrustRoot:gi(t.artifactTrustRoot)?XSe.TrustedRoot.fromJSON(t.artifactTrustRoot):void 0,artifactVerificationOptions:gi(t.artifactVerificationOptions)?Vr.ArtifactVerificationOptions.fromJSON(t.artifactVerificationOptions):void 0,bundle:gi(t.bundle)?ZSe.Bundle.fromJSON(t.bundle):void 0,artifact:gi(t.artifact)?Vr.Artifact.fromJSON(t.artifact):void 0}},toJSON(t){let e={};return t.artifactTrustRoot!==void 0&&(e.artifactTrustRoot=XSe.TrustedRoot.toJSON(t.artifactTrustRoot)),t.artifactVerificationOptions!==void 0&&(e.artifactVerificationOptions=Vr.ArtifactVerificationOptions.toJSON(t.artifactVerificationOptions)),t.bundle!==void 0&&(e.bundle=ZSe.Bundle.toJSON(t.bundle)),t.artifact!==void 0&&(e.artifact=Vr.Artifact.toJSON(t.artifact)),e}};function hIt(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function gIt(t){return globalThis.Buffer.from(t).toString("base64")}function gi(t){return t!=null}});var mP=_(Xc=>{"use strict";var dIt=Xc&&Xc.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Yw=Xc&&Xc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&dIt(e,t,r)};Object.defineProperty(Xc,"__esModule",{value:!0});Yw(TV(),Xc);Yw(NV(),Xc);Yw(Ww(),Xc);Yw(FV(),Xc);Yw(OV(),Xc);Yw($Se(),Xc)});var YN=_(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});Il.BUNDLE_V03_MEDIA_TYPE=Il.BUNDLE_V03_LEGACY_MEDIA_TYPE=Il.BUNDLE_V02_MEDIA_TYPE=Il.BUNDLE_V01_MEDIA_TYPE=void 0;Il.isBundleWithCertificateChain=mIt;Il.isBundleWithPublicKey=yIt;Il.isBundleWithMessageSignature=EIt;Il.isBundleWithDsseEnvelope=IIt;Il.BUNDLE_V01_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.1";Il.BUNDLE_V02_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.2";Il.BUNDLE_V03_LEGACY_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.3";Il.BUNDLE_V03_MEDIA_TYPE="application/vnd.dev.sigstore.bundle.v0.3+json";function mIt(t){return t.verificationMaterial.content.$case==="x509CertificateChain"}function yIt(t){return t.verificationMaterial.content.$case==="publicKey"}function EIt(t){return t.content.$case==="messageSignature"}function IIt(t){return t.content.$case==="dsseEnvelope"}});var tDe=_(JN=>{"use strict";Object.defineProperty(JN,"__esModule",{value:!0});JN.toMessageSignatureBundle=wIt;JN.toDSSEBundle=BIt;var CIt=mP(),VN=YN();function wIt(t){return{mediaType:t.certificateChain?VN.BUNDLE_V02_MEDIA_TYPE:VN.BUNDLE_V03_MEDIA_TYPE,content:{$case:"messageSignature",messageSignature:{messageDigest:{algorithm:CIt.HashAlgorithm.SHA2_256,digest:t.digest},signature:t.signature}},verificationMaterial:eDe(t)}}function BIt(t){return{mediaType:t.certificateChain?VN.BUNDLE_V02_MEDIA_TYPE:VN.BUNDLE_V03_MEDIA_TYPE,content:{$case:"dsseEnvelope",dsseEnvelope:vIt(t)},verificationMaterial:eDe(t)}}function vIt(t){return{payloadType:t.artifactType,payload:t.artifact,signatures:[SIt(t)]}}function SIt(t){return{keyid:t.keyHint||"",sig:t.signature}}function eDe(t){return{content:DIt(t),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function DIt(t){return t.certificate?t.certificateChain?{$case:"x509CertificateChain",x509CertificateChain:{certificates:[{rawBytes:t.certificate}]}}:{$case:"certificate",certificate:{rawBytes:t.certificate}}:{$case:"publicKey",publicKey:{hint:t.keyHint||""}}}});var MV=_(KN=>{"use strict";Object.defineProperty(KN,"__esModule",{value:!0});KN.ValidationError=void 0;var LV=class extends Error{constructor(e,r){super(e),this.fields=r}};KN.ValidationError=LV});var UV=_(ey=>{"use strict";Object.defineProperty(ey,"__esModule",{value:!0});ey.assertBundle=PIt;ey.assertBundleV01=rDe;ey.isBundleV01=bIt;ey.assertBundleV02=xIt;ey.assertBundleLatest=kIt;var zN=MV();function PIt(t){let e=ZN(t);if(e.length>0)throw new zN.ValidationError("invalid bundle",e)}function rDe(t){let e=[];if(e.push(...ZN(t)),e.push(...QIt(t)),e.length>0)throw new zN.ValidationError("invalid v0.1 bundle",e)}function bIt(t){try{return rDe(t),!0}catch{return!1}}function xIt(t){let e=[];if(e.push(...ZN(t)),e.push(...nDe(t)),e.length>0)throw new zN.ValidationError("invalid v0.2 bundle",e)}function kIt(t){let e=[];if(e.push(...ZN(t)),e.push(...nDe(t)),e.push(...RIt(t)),e.length>0)throw new zN.ValidationError("invalid bundle",e)}function ZN(t){let e=[];if((t.mediaType===void 0||!t.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\+json;version=\d\.\d/)&&!t.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\.v\d\.\d\+json/))&&e.push("mediaType"),t.content===void 0)e.push("content");else switch(t.content.$case){case"messageSignature":t.content.messageSignature.messageDigest===void 0?e.push("content.messageSignature.messageDigest"):t.content.messageSignature.messageDigest.digest.length===0&&e.push("content.messageSignature.messageDigest.digest"),t.content.messageSignature.signature.length===0&&e.push("content.messageSignature.signature");break;case"dsseEnvelope":t.content.dsseEnvelope.payload.length===0&&e.push("content.dsseEnvelope.payload"),t.content.dsseEnvelope.signatures.length!==1?e.push("content.dsseEnvelope.signatures"):t.content.dsseEnvelope.signatures[0].sig.length===0&&e.push("content.dsseEnvelope.signatures[0].sig");break}if(t.verificationMaterial===void 0)e.push("verificationMaterial");else{if(t.verificationMaterial.content===void 0)e.push("verificationMaterial.content");else switch(t.verificationMaterial.content.$case){case"x509CertificateChain":t.verificationMaterial.content.x509CertificateChain.certificates.length===0&&e.push("verificationMaterial.content.x509CertificateChain.certificates"),t.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,s)=>{r.rawBytes.length===0&&e.push(`verificationMaterial.content.x509CertificateChain.certificates[${s}].rawBytes`)});break;case"certificate":t.verificationMaterial.content.certificate.rawBytes.length===0&&e.push("verificationMaterial.content.certificate.rawBytes");break}t.verificationMaterial.tlogEntries===void 0?e.push("verificationMaterial.tlogEntries"):t.verificationMaterial.tlogEntries.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.logId===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].logId`),r.kindVersion===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].kindVersion`)})}return e}function QIt(t){let e=[];return t.verificationMaterial&&t.verificationMaterial.tlogEntries?.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.inclusionPromise===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].inclusionPromise`)}),e}function nDe(t){let e=[];return t.verificationMaterial&&t.verificationMaterial.tlogEntries?.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.inclusionProof===void 0?e.push(`verificationMaterial.tlogEntries[${s}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].inclusionProof.checkpoint`)}),e}function RIt(t){let e=[];return t.verificationMaterial?.content?.$case==="x509CertificateChain"&&e.push("verificationMaterial.content.$case"),e}});var sDe=_(BA=>{"use strict";Object.defineProperty(BA,"__esModule",{value:!0});BA.envelopeToJSON=BA.envelopeFromJSON=BA.bundleToJSON=BA.bundleFromJSON=void 0;var XN=mP(),iDe=YN(),_V=UV(),TIt=t=>{let e=XN.Bundle.fromJSON(t);switch(e.mediaType){case iDe.BUNDLE_V01_MEDIA_TYPE:(0,_V.assertBundleV01)(e);break;case iDe.BUNDLE_V02_MEDIA_TYPE:(0,_V.assertBundleV02)(e);break;default:(0,_V.assertBundleLatest)(e);break}return e};BA.bundleFromJSON=TIt;var FIt=t=>XN.Bundle.toJSON(t);BA.bundleToJSON=FIt;var NIt=t=>XN.Envelope.fromJSON(t);BA.envelopeFromJSON=NIt;var OIt=t=>XN.Envelope.toJSON(t);BA.envelopeToJSON=OIt});var EP=_(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.isBundleV01=Zr.assertBundleV02=Zr.assertBundleV01=Zr.assertBundleLatest=Zr.assertBundle=Zr.envelopeToJSON=Zr.envelopeFromJSON=Zr.bundleToJSON=Zr.bundleFromJSON=Zr.ValidationError=Zr.isBundleWithPublicKey=Zr.isBundleWithMessageSignature=Zr.isBundleWithDsseEnvelope=Zr.isBundleWithCertificateChain=Zr.BUNDLE_V03_MEDIA_TYPE=Zr.BUNDLE_V03_LEGACY_MEDIA_TYPE=Zr.BUNDLE_V02_MEDIA_TYPE=Zr.BUNDLE_V01_MEDIA_TYPE=Zr.toMessageSignatureBundle=Zr.toDSSEBundle=void 0;var oDe=tDe();Object.defineProperty(Zr,"toDSSEBundle",{enumerable:!0,get:function(){return oDe.toDSSEBundle}});Object.defineProperty(Zr,"toMessageSignatureBundle",{enumerable:!0,get:function(){return oDe.toMessageSignatureBundle}});var Ig=YN();Object.defineProperty(Zr,"BUNDLE_V01_MEDIA_TYPE",{enumerable:!0,get:function(){return Ig.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Zr,"BUNDLE_V02_MEDIA_TYPE",{enumerable:!0,get:function(){return Ig.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Zr,"BUNDLE_V03_LEGACY_MEDIA_TYPE",{enumerable:!0,get:function(){return Ig.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Zr,"BUNDLE_V03_MEDIA_TYPE",{enumerable:!0,get:function(){return Ig.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Zr,"isBundleWithCertificateChain",{enumerable:!0,get:function(){return Ig.isBundleWithCertificateChain}});Object.defineProperty(Zr,"isBundleWithDsseEnvelope",{enumerable:!0,get:function(){return Ig.isBundleWithDsseEnvelope}});Object.defineProperty(Zr,"isBundleWithMessageSignature",{enumerable:!0,get:function(){return Ig.isBundleWithMessageSignature}});Object.defineProperty(Zr,"isBundleWithPublicKey",{enumerable:!0,get:function(){return Ig.isBundleWithPublicKey}});var LIt=MV();Object.defineProperty(Zr,"ValidationError",{enumerable:!0,get:function(){return LIt.ValidationError}});var $N=sDe();Object.defineProperty(Zr,"bundleFromJSON",{enumerable:!0,get:function(){return $N.bundleFromJSON}});Object.defineProperty(Zr,"bundleToJSON",{enumerable:!0,get:function(){return $N.bundleToJSON}});Object.defineProperty(Zr,"envelopeFromJSON",{enumerable:!0,get:function(){return $N.envelopeFromJSON}});Object.defineProperty(Zr,"envelopeToJSON",{enumerable:!0,get:function(){return $N.envelopeToJSON}});var yP=UV();Object.defineProperty(Zr,"assertBundle",{enumerable:!0,get:function(){return yP.assertBundle}});Object.defineProperty(Zr,"assertBundleLatest",{enumerable:!0,get:function(){return yP.assertBundleLatest}});Object.defineProperty(Zr,"assertBundleV01",{enumerable:!0,get:function(){return yP.assertBundleV01}});Object.defineProperty(Zr,"assertBundleV02",{enumerable:!0,get:function(){return yP.assertBundleV02}});Object.defineProperty(Zr,"isBundleV01",{enumerable:!0,get:function(){return yP.isBundleV01}})});var IP=_(tO=>{"use strict";Object.defineProperty(tO,"__esModule",{value:!0});tO.ByteStream=void 0;var HV=class extends Error{},eO=class t{constructor(e){this.start=0,e?(this.buf=e,this.view=Buffer.from(e)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(e){this.start=e}slice(e,r){let s=e+r;if(s>this.length)throw new HV("request past end of buffer");return this.view.subarray(e,s)}appendChar(e){this.ensureCapacity(1),this.view[this.start]=e,this.start+=1}appendUint16(e){this.ensureCapacity(2);let r=new Uint16Array([e]),s=new Uint8Array(r.buffer);this.view[this.start]=s[1],this.view[this.start+1]=s[0],this.start+=2}appendUint24(e){this.ensureCapacity(3);let r=new Uint32Array([e]),s=new Uint8Array(r.buffer);this.view[this.start]=s[2],this.view[this.start+1]=s[1],this.view[this.start+2]=s[0],this.start+=3}appendView(e){this.ensureCapacity(e.length),this.view.set(e,this.start),this.start+=e.length}getBlock(e){if(e<=0)return Buffer.alloc(0);if(this.start+e>this.view.length)throw new Error("request past end of buffer");let r=this.view.subarray(this.start,this.start+e);return this.start+=e,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let e=this.getBlock(2);return e[0]<<8|e[1]}ensureCapacity(e){if(this.start+e>this.view.byteLength){let r=t.BLOCK_SIZE+(e>t.BLOCK_SIZE?e:0);this.realloc(this.view.byteLength+r)}}realloc(e){let r=new ArrayBuffer(e),s=Buffer.from(r);s.set(this.view),this.buf=r,this.view=s}};tO.ByteStream=eO;eO.BLOCK_SIZE=1024});var rO=_(Vw=>{"use strict";Object.defineProperty(Vw,"__esModule",{value:!0});Vw.ASN1TypeError=Vw.ASN1ParseError=void 0;var jV=class extends Error{};Vw.ASN1ParseError=jV;var GV=class extends Error{};Vw.ASN1TypeError=GV});var lDe=_(nO=>{"use strict";Object.defineProperty(nO,"__esModule",{value:!0});nO.decodeLength=MIt;nO.encodeLength=UIt;var aDe=rO();function MIt(t){let e=t.getUint8();if(!(e&128))return e;let r=e&127;if(r>6)throw new aDe.ASN1ParseError("length exceeds 6 byte limit");let s=0;for(let a=0;a0n;)r.unshift(Number(e&255n)),e=e>>8n;return Buffer.from([128|r.length,...r])}});var uDe=_(Cg=>{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});Cg.parseInteger=jIt;Cg.parseStringASCII=cDe;Cg.parseTime=GIt;Cg.parseOID=qIt;Cg.parseBoolean=WIt;Cg.parseBitString=YIt;var _It=/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/,HIt=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;function jIt(t){let e=0,r=t.length,s=t[e],a=s>127,n=a?255:0;for(;s==n&&++e=50?1900:2e3,s[1]=a.toString()}return new Date(`${s[1]}-${s[2]}-${s[3]}T${s[4]}:${s[5]}:${s[6]}Z`)}function qIt(t){let e=0,r=t.length,s=t[e++],a=Math.floor(s/40),n=s%40,c=`${a}.${n}`,f=0;for(;e=f;--p)a.push(c>>p&1)}return a}});var ADe=_(iO=>{"use strict";Object.defineProperty(iO,"__esModule",{value:!0});iO.ASN1Tag=void 0;var fDe=rO(),ty={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},qV={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},WV=class{constructor(e){if(this.number=e&31,this.constructed=(e&32)===32,this.class=e>>6,this.number===31)throw new fDe.ASN1ParseError("long form tags not supported");if(this.class===qV.UNIVERSAL&&this.number===0)throw new fDe.ASN1ParseError("unsupported tag 0x00")}isUniversal(){return this.class===qV.UNIVERSAL}isContextSpecific(e){let r=this.class===qV.CONTEXT_SPECIFIC;return e!==void 0?r&&this.number===e:r}isBoolean(){return this.isUniversal()&&this.number===ty.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===ty.INTEGER}isBitString(){return this.isUniversal()&&this.number===ty.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===ty.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===ty.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===ty.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===ty.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};iO.ASN1Tag=WV});var dDe=_(oO=>{"use strict";Object.defineProperty(oO,"__esModule",{value:!0});oO.ASN1Obj=void 0;var YV=IP(),ry=rO(),hDe=lDe(),Jw=uDe(),VIt=ADe(),sO=class{constructor(e,r,s){this.tag=e,this.value=r,this.subs=s}static parseBuffer(e){return gDe(new YV.ByteStream(e))}toDER(){let e=new YV.ByteStream;if(this.subs.length>0)for(let a of this.subs)e.appendView(a.toDER());else e.appendView(this.value);let r=e.buffer,s=new YV.ByteStream;return s.appendChar(this.tag.toDER()),s.appendView((0,hDe.encodeLength)(r.length)),s.appendView(r),s.buffer}toBoolean(){if(!this.tag.isBoolean())throw new ry.ASN1TypeError("not a boolean");return(0,Jw.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new ry.ASN1TypeError("not an integer");return(0,Jw.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new ry.ASN1TypeError("not an OID");return(0,Jw.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,Jw.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,Jw.parseTime)(this.value,!1);default:throw new ry.ASN1TypeError("not a date")}}toBitString(){if(!this.tag.isBitString())throw new ry.ASN1TypeError("not a bit string");return(0,Jw.parseBitString)(this.value)}};oO.ASN1Obj=sO;function gDe(t){let e=new VIt.ASN1Tag(t.getUint8()),r=(0,hDe.decodeLength)(t),s=t.slice(t.position,r),a=t.position,n=[];if(e.constructed)n=pDe(t,r);else if(e.isOctetString())try{n=pDe(t,r)}catch{}return n.length===0&&t.seek(a+r),new sO(e,s,n)}function pDe(t,e){let r=t.position+e;if(r>t.length)throw new ry.ASN1ParseError("invalid length");let s=[];for(;t.position{"use strict";Object.defineProperty(aO,"__esModule",{value:!0});aO.ASN1Obj=void 0;var JIt=dDe();Object.defineProperty(aO,"ASN1Obj",{enumerable:!0,get:function(){return JIt.ASN1Obj}})});var Kw=_(wg=>{"use strict";var KIt=wg&&wg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wg,"__esModule",{value:!0});wg.createPublicKey=zIt;wg.digest=ZIt;wg.verify=XIt;wg.bufferEqual=$It;var CP=KIt(Ie("crypto"));function zIt(t,e="spki"){return typeof t=="string"?CP.default.createPublicKey(t):CP.default.createPublicKey({key:t,format:"der",type:e})}function ZIt(t,...e){let r=CP.default.createHash(t);for(let s of e)r.update(s);return r.digest()}function XIt(t,e,r,s){try{return CP.default.verify(s,t,e,r)}catch{return!1}}function $It(t,e){try{return CP.default.timingSafeEqual(t,e)}catch{return!1}}});var mDe=_(VV=>{"use strict";Object.defineProperty(VV,"__esModule",{value:!0});VV.preAuthEncoding=tCt;var eCt="DSSEv1";function tCt(t,e){let r=[eCt,t.length,t,e.length,""].join(" ");return Buffer.concat([Buffer.from(r,"ascii"),e])}});var IDe=_(cO=>{"use strict";Object.defineProperty(cO,"__esModule",{value:!0});cO.base64Encode=rCt;cO.base64Decode=nCt;var yDe="base64",EDe="utf-8";function rCt(t){return Buffer.from(t,EDe).toString(yDe)}function nCt(t){return Buffer.from(t,yDe).toString(EDe)}});var CDe=_(KV=>{"use strict";Object.defineProperty(KV,"__esModule",{value:!0});KV.canonicalize=JV;function JV(t){let e="";if(t===null||typeof t!="object"||t.toJSON!=null)e+=JSON.stringify(t);else if(Array.isArray(t)){e+="[";let r=!0;t.forEach(s=>{r||(e+=","),r=!1,e+=JV(s)}),e+="]"}else{e+="{";let r=!0;Object.keys(t).sort().forEach(s=>{r||(e+=","),r=!1,e+=JSON.stringify(s),e+=":",e+=JV(t[s])}),e+="}"}return e}});var zV=_(uO=>{"use strict";Object.defineProperty(uO,"__esModule",{value:!0});uO.toDER=oCt;uO.fromDER=aCt;var iCt=/-----BEGIN (.*)-----/,sCt=/-----END (.*)-----/;function oCt(t){let e="";return t.split(` `).forEach(r=>{r.match(iCt)||r.match(sCt)||(e+=r)}),Buffer.from(e,"base64")}function aCt(t,e="CERTIFICATE"){let s=t.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${e}-----`,...s,`-----END ${e}-----`].join(` `).concat(` `)}});var fO=_(zw=>{"use strict";Object.defineProperty(zw,"__esModule",{value:!0});zw.SHA2_HASH_ALGOS=zw.ECDSA_SIGNATURE_ALGOS=void 0;zw.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};zw.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var XV=_(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.RFC3161TimestampVerificationError=void 0;var ZV=class extends Error{};AO.RFC3161TimestampVerificationError=ZV});var BDe=_(vA=>{"use strict";var lCt=vA&&vA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),cCt=vA&&vA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),uCt=vA&&vA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&lCt(e,t,r);return cCt(e,t),e};Object.defineProperty(vA,"__esModule",{value:!0});vA.TSTInfo=void 0;var wDe=uCt(Kw()),fCt=fO(),ACt=XV(),$V=class{constructor(e){this.root=e}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let e=this.messageImprintObj.subs[0].subs[0].toOID();return fCt.SHA2_HASH_ALGOS[e]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(e){let r=wDe.digest(this.messageImprintHashAlgorithm,e);if(!wDe.bufferEqual(r,this.messageImprintHashedMessage))throw new ACt.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};vA.TSTInfo=$V});var SDe=_(SA=>{"use strict";var pCt=SA&&SA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),hCt=SA&&SA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gCt=SA&&SA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&pCt(e,t,r);return hCt(e,t),e};Object.defineProperty(SA,"__esModule",{value:!0});SA.RFC3161Timestamp=void 0;var dCt=lO(),e7=gCt(Kw()),vDe=fO(),wP=XV(),mCt=BDe(),yCt="1.2.840.113549.1.7.2",ECt="1.2.840.113549.1.9.16.1.4",ICt="1.2.840.113549.1.9.4",t7=class t{constructor(e){this.root=e}static parse(e){let r=dCt.ASN1Obj.parseBuffer(e);return new t(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let e=this.signerDigestAlgorithmObj.subs[0].toOID();return vDe.SHA2_HASH_ALGOS[e]}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return vDe.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new mCt.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(e,r){if(!this.timeStampTokenObj)throw new wP.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==yCt)throw new wP.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==ECt)throw new wP.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(e),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let e=e7.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!e7.bufferEqual(e,r))throw new wP.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(e){let r=this.signedAttrsObj.toDER();if(r[0]=49,!e7.verify(r,e,this.signatureValue,this.signatureAlgorithm))throw new wP.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let e=this.signedDataObj;return e.subs[e.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===ICt)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};SA.RFC3161Timestamp=t7});var DDe=_(pO=>{"use strict";Object.defineProperty(pO,"__esModule",{value:!0});pO.RFC3161Timestamp=void 0;var CCt=SDe();Object.defineProperty(pO,"RFC3161Timestamp",{enumerable:!0,get:function(){return CCt.RFC3161Timestamp}})});var bDe=_(DA=>{"use strict";var wCt=DA&&DA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),BCt=DA&&DA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vCt=DA&&DA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&wCt(e,t,r);return BCt(e,t),e};Object.defineProperty(DA,"__esModule",{value:!0});DA.SignedCertificateTimestamp=void 0;var SCt=vCt(Kw()),PDe=IP(),r7=class t{constructor(e){this.version=e.version,this.logID=e.logID,this.timestamp=e.timestamp,this.extensions=e.extensions,this.hashAlgorithm=e.hashAlgorithm,this.signatureAlgorithm=e.signatureAlgorithm,this.signature=e.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return"none";case 1:return"md5";case 2:return"sha1";case 3:return"sha224";case 4:return"sha256";case 5:return"sha384";case 6:return"sha512";default:return"unknown"}}verify(e,r){let s=new PDe.ByteStream;return s.appendChar(this.version),s.appendChar(0),s.appendView(this.timestamp),s.appendUint16(1),s.appendView(e),s.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&s.appendView(this.extensions),SCt.verify(s.buffer,r,this.signature,this.algorithm)}static parse(e){let r=new PDe.ByteStream(e),s=r.getUint8(),a=r.getBlock(32),n=r.getBlock(8),c=r.getUint16(),f=r.getBlock(c),p=r.getUint8(),h=r.getUint8(),E=r.getUint16(),C=r.getBlock(E);if(r.position!==e.length)throw new Error("SCT buffer length mismatch");return new t({version:s,logID:a,timestamp:n,extensions:f,hashAlgorithm:p,signatureAlgorithm:h,signature:C})}};DA.SignedCertificateTimestamp=r7});var c7=_(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.X509SCTExtension=sa.X509SubjectKeyIDExtension=sa.X509AuthorityKeyIDExtension=sa.X509SubjectAlternativeNameExtension=sa.X509KeyUsageExtension=sa.X509BasicConstraintsExtension=sa.X509Extension=void 0;var DCt=IP(),PCt=bDe(),ph=class{constructor(e){this.root=e}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};sa.X509Extension=ph;var n7=class extends ph{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};sa.X509BasicConstraintsExtension=n7;var i7=class extends ph{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};sa.X509KeyUsageExtension=i7;var s7=class extends ph{get rfc822Name(){return this.findGeneralName(1)?.value.toString("ascii")}get uri(){return this.findGeneralName(6)?.value.toString("ascii")}otherName(e){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==e?void 0:r.subs[1].subs[0].value.toString("ascii")}findGeneralName(e){return this.generalNames.find(r=>r.tag.isContextSpecific(e))}get generalNames(){return this.extnValueObj.subs[0].subs}};sa.X509SubjectAlternativeNameExtension=s7;var o7=class extends ph{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(e){return this.sequence.subs.find(r=>r.tag.isContextSpecific(e))}get sequence(){return this.extnValueObj.subs[0]}};sa.X509AuthorityKeyIDExtension=o7;var a7=class extends ph{get keyIdentifier(){return this.extnValueObj.subs[0].value}};sa.X509SubjectKeyIDExtension=a7;var l7=class extends ph{constructor(e){super(e)}get signedCertificateTimestamps(){let e=this.extnValueObj.subs[0].value,r=new DCt.ByteStream(e),s=r.getUint16()+2,a=[];for(;r.position{"use strict";var bCt=ic&&ic.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),xCt=ic&&ic.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kDe=ic&&ic.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&bCt(e,t,r);return xCt(e,t),e};Object.defineProperty(ic,"__esModule",{value:!0});ic.X509Certificate=ic.EXTENSION_OID_SCT=void 0;var kCt=lO(),xDe=kDe(Kw()),QCt=fO(),RCt=kDe(zV()),ny=c7(),TCt="2.5.29.14",FCt="2.5.29.15",NCt="2.5.29.17",OCt="2.5.29.19",LCt="2.5.29.35";ic.EXTENSION_OID_SCT="1.3.6.1.4.1.11129.2.4.2";var u7=class t{constructor(e){this.root=e}static parse(e){let r=typeof e=="string"?RCt.toDER(e):e,s=kCt.ASN1Obj.parseBuffer(r);return new t(s)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return QCt.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let e=this.extSubjectAltName;return e?.uri||e?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let e=this.findExtension(FCt);return e?new ny.X509KeyUsageExtension(e):void 0}get extBasicConstraints(){let e=this.findExtension(OCt);return e?new ny.X509BasicConstraintsExtension(e):void 0}get extSubjectAltName(){let e=this.findExtension(NCt);return e?new ny.X509SubjectAlternativeNameExtension(e):void 0}get extAuthorityKeyID(){let e=this.findExtension(LCt);return e?new ny.X509AuthorityKeyIDExtension(e):void 0}get extSubjectKeyID(){let e=this.findExtension(TCt);return e?new ny.X509SubjectKeyIDExtension(e):void 0}get extSCT(){let e=this.findExtension(ic.EXTENSION_OID_SCT);return e?new ny.X509SCTExtension(e):void 0}get isCA(){let e=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?e&&this.extKeyUsage.keyCertSign:e}extension(e){let r=this.findExtension(e);return r?new ny.X509Extension(r):void 0}verify(e){let r=e?.publicKey||this.publicKey,s=xDe.createPublicKey(r);return xDe.verify(this.tbsCertificate.toDER(),s,this.signatureValue,this.signatureAlgorithm)}validForDate(e){return this.notBefore<=e&&e<=this.notAfter}equals(e){return this.root.toDER().equals(e.root.toDER())}clone(){let e=this.root.toDER(),r=Buffer.alloc(e.length);return e.copy(r),t.parse(r)}findExtension(e){return this.extensions.find(r=>r.subs[0].toOID()===e)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(e=>e.tag.isContextSpecific(3))}};ic.X509Certificate=u7});var TDe=_(Bg=>{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});Bg.X509SCTExtension=Bg.X509Certificate=Bg.EXTENSION_OID_SCT=void 0;var RDe=QDe();Object.defineProperty(Bg,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return RDe.EXTENSION_OID_SCT}});Object.defineProperty(Bg,"X509Certificate",{enumerable:!0,get:function(){return RDe.X509Certificate}});var MCt=c7();Object.defineProperty(Bg,"X509SCTExtension",{enumerable:!0,get:function(){return MCt.X509SCTExtension}})});var Cl=_(Jn=>{"use strict";var UCt=Jn&&Jn.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),_Ct=Jn&&Jn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),BP=Jn&&Jn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&UCt(e,t,r);return _Ct(e,t),e};Object.defineProperty(Jn,"__esModule",{value:!0});Jn.X509SCTExtension=Jn.X509Certificate=Jn.EXTENSION_OID_SCT=Jn.ByteStream=Jn.RFC3161Timestamp=Jn.pem=Jn.json=Jn.encoding=Jn.dsse=Jn.crypto=Jn.ASN1Obj=void 0;var HCt=lO();Object.defineProperty(Jn,"ASN1Obj",{enumerable:!0,get:function(){return HCt.ASN1Obj}});Jn.crypto=BP(Kw());Jn.dsse=BP(mDe());Jn.encoding=BP(IDe());Jn.json=BP(CDe());Jn.pem=BP(zV());var jCt=DDe();Object.defineProperty(Jn,"RFC3161Timestamp",{enumerable:!0,get:function(){return jCt.RFC3161Timestamp}});var GCt=IP();Object.defineProperty(Jn,"ByteStream",{enumerable:!0,get:function(){return GCt.ByteStream}});var f7=TDe();Object.defineProperty(Jn,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return f7.EXTENSION_OID_SCT}});Object.defineProperty(Jn,"X509Certificate",{enumerable:!0,get:function(){return f7.X509Certificate}});Object.defineProperty(Jn,"X509SCTExtension",{enumerable:!0,get:function(){return f7.X509SCTExtension}})});var FDe=_(A7=>{"use strict";Object.defineProperty(A7,"__esModule",{value:!0});A7.extractJWTSubject=WCt;var qCt=Cl();function WCt(t){let e=t.split(".",3),r=JSON.parse(qCt.encoding.base64Decode(e[1]));switch(r.iss){case"https://accounts.google.com":case"https://oauth2.sigstore.dev/auth":return r.email;default:return r.sub}}});var NDe=_((Zrr,YCt)=>{YCt.exports={name:"@sigstore/sign",version:"3.1.0",description:"Sigstore signing library",main:"dist/index.js",types:"dist/index.d.ts",scripts:{clean:"shx rm -rf dist *.tsbuildinfo",build:"tsc --build",test:"jest"},files:["dist"],author:"bdehamer@github.com",license:"Apache-2.0",repository:{type:"git",url:"git+https://github.com/sigstore/sigstore-js.git"},bugs:{url:"https://github.com/sigstore/sigstore-js/issues"},homepage:"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme",publishConfig:{provenance:!0},devDependencies:{"@sigstore/jest":"^0.0.0","@sigstore/mock":"^0.10.0","@sigstore/rekor-types":"^3.0.0","@types/make-fetch-happen":"^10.0.4","@types/promise-retry":"^1.1.6"},dependencies:{"@sigstore/bundle":"^3.1.0","@sigstore/core":"^2.0.0","@sigstore/protobuf-specs":"^0.4.0","make-fetch-happen":"^14.0.2","proc-log":"^5.0.0","promise-retry":"^2.0.1"},engines:{node:"^18.17.0 || >=20.5.0"}}});var LDe=_(Zw=>{"use strict";var VCt=Zw&&Zw.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zw,"__esModule",{value:!0});Zw.getUserAgent=void 0;var ODe=VCt(Ie("os")),JCt=()=>{let t=NDe().version,e=process.version,r=ODe.default.platform(),s=ODe.default.arch();return`sigstore-js/${t} (Node ${e}) (${r}/${s})`};Zw.getUserAgent=JCt});var vg=_(Vi=>{"use strict";var KCt=Vi&&Vi.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),zCt=Vi&&Vi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),MDe=Vi&&Vi.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a{"use strict";Object.defineProperty(hO,"__esModule",{value:!0});hO.BaseBundleBuilder=void 0;var p7=class{constructor(e){this.signer=e.signer,this.witnesses=e.witnesses}async create(e){let r=await this.prepare(e).then(f=>this.signer.sign(f)),s=await this.package(e,r),a=await Promise.all(this.witnesses.map(f=>f.testify(s.content,ZCt(r.key)))),n=[],c=[];return a.forEach(({tlogEntries:f,rfc3161Timestamps:p})=>{n.push(...f??[]),c.push(...p??[])}),s.verificationMaterial.tlogEntries=n,s.verificationMaterial.timestampVerificationData={rfc3161Timestamps:c},s}async prepare(e){return e.data}};hO.BaseBundleBuilder=p7;function ZCt(t){switch(t.$case){case"publicKey":return t.publicKey;case"x509Certificate":return t.certificate}}});var d7=_(PA=>{"use strict";var XCt=PA&&PA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),$Ct=PA&&PA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ewt=PA&&PA.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a{"use strict";Object.defineProperty(gO,"__esModule",{value:!0});gO.DSSEBundleBuilder=void 0;var nwt=vg(),iwt=h7(),swt=d7(),m7=class extends iwt.BaseBundleBuilder{constructor(e){super(e),this.certificateChain=e.certificateChain??!1}async prepare(e){let r=_De(e);return nwt.dsse.preAuthEncoding(r.type,r.data)}async package(e,r){return(0,swt.toDSSEBundle)(_De(e),r,this.certificateChain)}};gO.DSSEBundleBuilder=m7;function _De(t){return{...t,type:t.type??""}}});var jDe=_(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});dO.MessageSignatureBundleBuilder=void 0;var owt=h7(),awt=d7(),y7=class extends owt.BaseBundleBuilder{constructor(e){super(e)}async package(e,r){return(0,awt.toMessageSignatureBundle)(e,r)}};dO.MessageSignatureBundleBuilder=y7});var GDe=_(Xw=>{"use strict";Object.defineProperty(Xw,"__esModule",{value:!0});Xw.MessageSignatureBundleBuilder=Xw.DSSEBundleBuilder=void 0;var lwt=HDe();Object.defineProperty(Xw,"DSSEBundleBuilder",{enumerable:!0,get:function(){return lwt.DSSEBundleBuilder}});var cwt=jDe();Object.defineProperty(Xw,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return cwt.MessageSignatureBundleBuilder}})});var yO=_(mO=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});mO.HTTPError=void 0;var E7=class extends Error{constructor({status:e,message:r,location:s}){super(`(${e}) ${r}`),this.statusCode=e,this.location=s}};mO.HTTPError=E7});var $w=_(SP=>{"use strict";Object.defineProperty(SP,"__esModule",{value:!0});SP.InternalError=void 0;SP.internalError=fwt;var uwt=yO(),EO=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.name=this.constructor.name,this.cause=s,this.code=e}};SP.InternalError=EO;function fwt(t,e,r){throw t instanceof uwt.HTTPError&&(r+=` - ${t.message}`),new EO({code:e,message:r,cause:t})}});var IO=_((anr,qDe)=>{qDe.exports=fetch});var WDe=_(e1=>{"use strict";var Awt=e1&&e1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e1,"__esModule",{value:!0});e1.CIContextProvider=void 0;var pwt=Awt(IO()),hwt=[gwt,dwt],I7=class{constructor(e="sigstore"){this.audience=e}async getToken(){return Promise.any(hwt.map(e=>e(this.audience))).catch(()=>Promise.reject("CI: no tokens available"))}};e1.CIContextProvider=I7;async function gwt(t){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject("no token available");let e=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return e.searchParams.append("audience",t),(await(0,pwt.default)(e.href,{retry:2,headers:{Accept:"application/json",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(s=>s.value)}async function dwt(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject("no token available")}});var YDe=_(CO=>{"use strict";Object.defineProperty(CO,"__esModule",{value:!0});CO.CIContextProvider=void 0;var mwt=WDe();Object.defineProperty(CO,"CIContextProvider",{enumerable:!0,get:function(){return mwt.CIContextProvider}})});var JDe=_((unr,VDe)=>{var ywt=Symbol("proc-log.meta");VDe.exports={META:ywt,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...t){return process.emit("output","standard",...t)},error:function(...t){return process.emit("output","error",...t)},buffer:function(...t){return process.emit("output","buffer",...t)},flush:function(...t){return process.emit("output","flush",...t)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...t){return process.emit("log","error",...t)},notice:function(...t){return process.emit("log","notice",...t)},warn:function(...t){return process.emit("log","warn",...t)},info:function(...t){return process.emit("log","info",...t)},verbose:function(...t){return process.emit("log","verbose",...t)},http:function(...t){return process.emit("log","http",...t)},silly:function(...t){return process.emit("log","silly",...t)},timing:function(...t){return process.emit("log","timing",...t)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(t,e){process.emit("time","start",t);function r(){return process.emit("time","end",t)}if(typeof e=="function"){let s=e();return s&&s.finally?s.finally(r):(r(),s)}return r},end:function(t){return process.emit("time","end",t)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(t){process.emit("input","start");function e(){return process.emit("input","end")}if(typeof t=="function"){let r=t();return r&&r.finally?r.finally(e):(e(),r)}return e},end:function(){return process.emit("input","end")},read:function(...t){let e,r,s=new Promise((a,n)=>{e=a,r=n});return process.emit("input","read",e,r,...t),s}}}});var ZDe=_((fnr,zDe)=>{"use strict";function KDe(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function Ewt(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=void 0),e!=null&&(r.code=e);try{return KDe(t,r)}catch{r.message=t.message,r.stack=t.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(t)),KDe(new a,r)}}zDe.exports=Ewt});var $De=_((Anr,XDe)=>{function $c(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}XDe.exports=$c;$c.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};$c.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};$c.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var s=this,a=setTimeout(function(){s._attempts++,s._operationTimeoutCb&&(s._timeout=setTimeout(function(){s._operationTimeoutCb(s._attempts)},s._operationTimeout),s._options.unref&&s._timeout.unref()),s._fn(s._attempts)},r);return this._options.unref&&a.unref(),!0};$c.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};$c.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};$c.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};$c.prototype.start=$c.prototype.try;$c.prototype.errors=function(){return this._errors};$c.prototype.attempts=function(){return this._attempts};$c.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,r=0,s=0;s=r&&(e=a,r=c)}return e}});var ePe=_(iy=>{var Iwt=$De();iy.operation=function(t){var e=iy.timeouts(t);return new Iwt(e,{forever:t&&t.forever,unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};iy.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in t)e[r]=t[r];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var s=[],a=0;a{tPe.exports=ePe()});var sPe=_((gnr,iPe)=>{"use strict";var Cwt=ZDe(),wwt=rPe(),Bwt=Object.prototype.hasOwnProperty;function nPe(t){return t&&t.code==="EPROMISERETRY"&&Bwt.call(t,"retried")}function vwt(t,e){var r,s;return typeof t=="object"&&typeof e=="function"&&(r=e,e=t,t=r),s=wwt.operation(e),new Promise(function(a,n){s.attempt(function(c){Promise.resolve().then(function(){return t(function(f){throw nPe(f)&&(f=f.retried),Cwt(new Error("Retrying"),"EPROMISERETRY",{retried:f})},c)}).then(a,function(f){nPe(f)&&(f=f.retried,s.retry(f||new Error))||n(f)})})})}iPe.exports=vwt});var wO=_(DP=>{"use strict";var aPe=DP&&DP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(DP,"__esModule",{value:!0});DP.fetchWithRetry=Owt;var Swt=Ie("http2"),Dwt=aPe(IO()),oPe=JDe(),Pwt=aPe(sPe()),bwt=vg(),xwt=yO(),{HTTP2_HEADER_LOCATION:kwt,HTTP2_HEADER_CONTENT_TYPE:Qwt,HTTP2_HEADER_USER_AGENT:Rwt,HTTP_STATUS_INTERNAL_SERVER_ERROR:Twt,HTTP_STATUS_TOO_MANY_REQUESTS:Fwt,HTTP_STATUS_REQUEST_TIMEOUT:Nwt}=Swt.constants;async function Owt(t,e){return(0,Pwt.default)(async(r,s)=>{let a=e.method||"POST",n={[Rwt]:bwt.ua.getUserAgent(),...e.headers},c=await(0,Dwt.default)(t,{method:a,headers:n,body:e.body,timeout:e.timeout,retry:!1}).catch(f=>(oPe.log.http("fetch",`${a} ${t} attempt ${s} failed with ${f}`),r(f)));if(c.ok)return c;{let f=await Lwt(c);if(oPe.log.http("fetch",`${a} ${t} attempt ${s} failed with ${c.status}`),Mwt(c.status))return r(f);throw f}},Uwt(e.retry))}var Lwt=async t=>{let e=t.statusText,r=t.headers.get(kwt)||void 0;if(t.headers.get(Qwt)?.includes("application/json"))try{e=(await t.json()).message||e}catch{}return new xwt.HTTPError({status:t.status,message:e,location:r})},Mwt=t=>[Nwt,Fwt].includes(t)||t>=Twt,Uwt=t=>typeof t=="boolean"?{retries:t?1:0}:typeof t=="number"?{retries:t}:{retries:0,...t}});var lPe=_(BO=>{"use strict";Object.defineProperty(BO,"__esModule",{value:!0});BO.Fulcio=void 0;var _wt=wO(),C7=class{constructor(e){this.options=e}async createSigningCertificate(e){let{baseURL:r,retry:s,timeout:a}=this.options,n=`${r}/api/v2/signingCert`;return(await(0,_wt.fetchWithRetry)(n,{headers:{"Content-Type":"application/json"},body:JSON.stringify(e),timeout:a,retry:s})).json()}};BO.Fulcio=C7});var cPe=_(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.CAClient=void 0;var Hwt=$w(),jwt=lPe(),w7=class{constructor(e){this.fulcio=new jwt.Fulcio({baseURL:e.fulcioBaseURL,retry:e.retry,timeout:e.timeout})}async createSigningCertificate(e,r,s){let a=Gwt(e,r,s);try{let n=await this.fulcio.createSigningCertificate(a);return(n.signedCertificateEmbeddedSct?n.signedCertificateEmbeddedSct:n.signedCertificateDetachedSct).chain.certificates}catch(n){(0,Hwt.internalError)(n,"CA_CREATE_SIGNING_CERTIFICATE_ERROR","error creating signing certificate")}}};vO.CAClient=w7;function Gwt(t,e,r){return{credentials:{oidcIdentityToken:t},publicKeyRequest:{publicKey:{algorithm:"ECDSA",content:e},proofOfPossession:r.toString("base64")}}}});var fPe=_(t1=>{"use strict";var qwt=t1&&t1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t1,"__esModule",{value:!0});t1.EphemeralSigner=void 0;var uPe=qwt(Ie("crypto")),Wwt="ec",Ywt="P-256",B7=class{constructor(){this.keypair=uPe.default.generateKeyPairSync(Wwt,{namedCurve:Ywt})}async sign(e){let r=uPe.default.sign(null,e,this.keypair.privateKey),s=this.keypair.publicKey.export({format:"pem",type:"spki"}).toString("ascii");return{signature:r,key:{$case:"publicKey",publicKey:s}}}};t1.EphemeralSigner=B7});var APe=_(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.FulcioSigner=sy.DEFAULT_FULCIO_URL=void 0;var v7=$w(),Vwt=vg(),Jwt=cPe(),Kwt=fPe();sy.DEFAULT_FULCIO_URL="https://fulcio.sigstore.dev";var S7=class{constructor(e){this.ca=new Jwt.CAClient({...e,fulcioBaseURL:e.fulcioBaseURL||sy.DEFAULT_FULCIO_URL}),this.identityProvider=e.identityProvider,this.keyHolder=e.keyHolder||new Kwt.EphemeralSigner}async sign(e){let r=await this.getIdentityToken(),s;try{s=Vwt.oidc.extractJWTSubject(r)}catch(f){throw new v7.InternalError({code:"IDENTITY_TOKEN_PARSE_ERROR",message:`invalid identity token: ${r}`,cause:f})}let a=await this.keyHolder.sign(Buffer.from(s));if(a.key.$case!=="publicKey")throw new v7.InternalError({code:"CA_CREATE_SIGNING_CERTIFICATE_ERROR",message:"unexpected format for signing key"});let n=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(e)).signature,key:{$case:"x509Certificate",certificate:n[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(e){throw new v7.InternalError({code:"IDENTITY_TOKEN_READ_ERROR",message:"error retrieving identity token",cause:e})}}};sy.FulcioSigner=S7});var hPe=_(r1=>{"use strict";Object.defineProperty(r1,"__esModule",{value:!0});r1.FulcioSigner=r1.DEFAULT_FULCIO_URL=void 0;var pPe=APe();Object.defineProperty(r1,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return pPe.DEFAULT_FULCIO_URL}});Object.defineProperty(r1,"FulcioSigner",{enumerable:!0,get:function(){return pPe.FulcioSigner}})});var mPe=_(SO=>{"use strict";Object.defineProperty(SO,"__esModule",{value:!0});SO.Rekor=void 0;var gPe=wO(),D7=class{constructor(e){this.options=e}async createEntry(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/log/entries`,f=await(await(0,gPe.fetchWithRetry)(n,{headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e),timeout:s,retry:a})).json();return dPe(f)}async getEntry(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/log/entries/${e}`,f=await(await(0,gPe.fetchWithRetry)(n,{method:"GET",headers:{Accept:"application/json"},timeout:s,retry:a})).json();return dPe(f)}};SO.Rekor=D7;function dPe(t){let e=Object.entries(t);if(e.length!=1)throw new Error("Received multiple entries in Rekor response");let[r,s]=e[0];return{...s,uuid:r}}});var EPe=_(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.TLogClient=void 0;var yPe=$w(),zwt=yO(),Zwt=mPe(),P7=class{constructor(e){this.fetchOnConflict=e.fetchOnConflict??!1,this.rekor=new Zwt.Rekor({baseURL:e.rekorBaseURL,retry:e.retry,timeout:e.timeout})}async createEntry(e){let r;try{r=await this.rekor.createEntry(e)}catch(s){if(Xwt(s)&&this.fetchOnConflict){let a=s.location.split("/").pop()||"";try{r=await this.rekor.getEntry(a)}catch(n){(0,yPe.internalError)(n,"TLOG_FETCH_ENTRY_ERROR","error fetching tlog entry")}}else(0,yPe.internalError)(s,"TLOG_CREATE_ENTRY_ERROR","error creating tlog entry")}return r}};DO.TLogClient=P7;function Xwt(t){return t instanceof zwt.HTTPError&&t.statusCode===409&&t.location!==void 0}});var IPe=_(b7=>{"use strict";Object.defineProperty(b7,"__esModule",{value:!0});b7.toProposedEntry=e1t;var $wt=EP(),Sg=vg(),PP="sha256";function e1t(t,e,r="dsse"){switch(t.$case){case"dsseEnvelope":return r==="intoto"?n1t(t.dsseEnvelope,e):r1t(t.dsseEnvelope,e);case"messageSignature":return t1t(t.messageSignature,e)}}function t1t(t,e){let r=t.messageDigest.digest.toString("hex"),s=t.signature.toString("base64"),a=Sg.encoding.base64Encode(e);return{apiVersion:"0.0.1",kind:"hashedrekord",spec:{data:{hash:{algorithm:PP,value:r}},signature:{content:s,publicKey:{content:a}}}}}function r1t(t,e){let r=JSON.stringify((0,$wt.envelopeToJSON)(t)),s=Sg.encoding.base64Encode(e);return{apiVersion:"0.0.1",kind:"dsse",spec:{proposedContent:{envelope:r,verifiers:[s]}}}}function n1t(t,e){let r=Sg.crypto.digest(PP,t.payload).toString("hex"),s=i1t(t,e),a=Sg.encoding.base64Encode(t.payload.toString("base64")),n=Sg.encoding.base64Encode(t.signatures[0].sig.toString("base64")),c=t.signatures[0].keyid,f=Sg.encoding.base64Encode(e),p={payloadType:t.payloadType,payload:a,signatures:[{sig:n,publicKey:f}]};return c.length>0&&(p.signatures[0].keyid=c),{apiVersion:"0.0.2",kind:"intoto",spec:{content:{envelope:p,hash:{algorithm:PP,value:s},payloadHash:{algorithm:PP,value:r}}}}}function i1t(t,e){let r={payloadType:t.payloadType,payload:t.payload.toString("base64"),signatures:[{sig:t.signatures[0].sig.toString("base64"),publicKey:e}]};return t.signatures[0].keyid.length>0&&(r.signatures[0].keyid=t.signatures[0].keyid),Sg.crypto.digest(PP,Sg.json.canonicalize(r)).toString("hex")}});var CPe=_(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RekorWitness=oy.DEFAULT_REKOR_URL=void 0;var s1t=vg(),o1t=EPe(),a1t=IPe();oy.DEFAULT_REKOR_URL="https://rekor.sigstore.dev";var x7=class{constructor(e){this.entryType=e.entryType,this.tlog=new o1t.TLogClient({...e,rekorBaseURL:e.rekorBaseURL||oy.DEFAULT_REKOR_URL})}async testify(e,r){let s=(0,a1t.toProposedEntry)(e,r,this.entryType),a=await this.tlog.createEntry(s);return l1t(a)}};oy.RekorWitness=x7;function l1t(t){let e=Buffer.from(t.logID,"hex"),r=s1t.encoding.base64Decode(t.body),s=JSON.parse(r),a=t?.verification?.signedEntryTimestamp?c1t(t.verification.signedEntryTimestamp):void 0,n=t?.verification?.inclusionProof?u1t(t.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:t.logIndex.toString(),logId:{keyId:e},integratedTime:t.integratedTime.toString(),kindVersion:{kind:s.kind,version:s.apiVersion},inclusionPromise:a,inclusionProof:n,canonicalizedBody:Buffer.from(t.body,"base64")}]}}function c1t(t){return{signedEntryTimestamp:Buffer.from(t,"base64")}}function u1t(t){return{logIndex:t.logIndex.toString(),treeSize:t.treeSize.toString(),rootHash:Buffer.from(t.rootHash,"hex"),hashes:t.hashes.map(e=>Buffer.from(e,"hex")),checkpoint:{envelope:t.checkpoint}}}});var wPe=_(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.TimestampAuthority=void 0;var f1t=wO(),k7=class{constructor(e){this.options=e}async createTimestamp(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/timestamp`;return(await(0,f1t.fetchWithRetry)(n,{headers:{"Content-Type":"application/json"},body:JSON.stringify(e),timeout:s,retry:a})).buffer()}};PO.TimestampAuthority=k7});var vPe=_(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});bO.TSAClient=void 0;var A1t=$w(),p1t=wPe(),h1t=vg(),BPe="sha256",Q7=class{constructor(e){this.tsa=new p1t.TimestampAuthority({baseURL:e.tsaBaseURL,retry:e.retry,timeout:e.timeout})}async createTimestamp(e){let r={artifactHash:h1t.crypto.digest(BPe,e).toString("base64"),hashAlgorithm:BPe};try{return await this.tsa.createTimestamp(r)}catch(s){(0,A1t.internalError)(s,"TSA_CREATE_TIMESTAMP_ERROR","error creating timestamp")}}};bO.TSAClient=Q7});var SPe=_(xO=>{"use strict";Object.defineProperty(xO,"__esModule",{value:!0});xO.TSAWitness=void 0;var g1t=vPe(),R7=class{constructor(e){this.tsa=new g1t.TSAClient({tsaBaseURL:e.tsaBaseURL,retry:e.retry,timeout:e.timeout})}async testify(e){let r=d1t(e);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};xO.TSAWitness=R7;function d1t(t){switch(t.$case){case"dsseEnvelope":return t.dsseEnvelope.signatures[0].sig;case"messageSignature":return t.messageSignature.signature}}});var PPe=_(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});Dg.TSAWitness=Dg.RekorWitness=Dg.DEFAULT_REKOR_URL=void 0;var DPe=CPe();Object.defineProperty(Dg,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return DPe.DEFAULT_REKOR_URL}});Object.defineProperty(Dg,"RekorWitness",{enumerable:!0,get:function(){return DPe.RekorWitness}});var m1t=SPe();Object.defineProperty(Dg,"TSAWitness",{enumerable:!0,get:function(){return m1t.TSAWitness}})});var F7=_(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.TSAWitness=ys.RekorWitness=ys.DEFAULT_REKOR_URL=ys.FulcioSigner=ys.DEFAULT_FULCIO_URL=ys.CIContextProvider=ys.InternalError=ys.MessageSignatureBundleBuilder=ys.DSSEBundleBuilder=void 0;var bPe=GDe();Object.defineProperty(ys,"DSSEBundleBuilder",{enumerable:!0,get:function(){return bPe.DSSEBundleBuilder}});Object.defineProperty(ys,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return bPe.MessageSignatureBundleBuilder}});var y1t=$w();Object.defineProperty(ys,"InternalError",{enumerable:!0,get:function(){return y1t.InternalError}});var E1t=YDe();Object.defineProperty(ys,"CIContextProvider",{enumerable:!0,get:function(){return E1t.CIContextProvider}});var xPe=hPe();Object.defineProperty(ys,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return xPe.DEFAULT_FULCIO_URL}});Object.defineProperty(ys,"FulcioSigner",{enumerable:!0,get:function(){return xPe.FulcioSigner}});var T7=PPe();Object.defineProperty(ys,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return T7.DEFAULT_REKOR_URL}});Object.defineProperty(ys,"RekorWitness",{enumerable:!0,get:function(){return T7.RekorWitness}});Object.defineProperty(ys,"TSAWitness",{enumerable:!0,get:function(){return T7.TSAWitness}})});var QPe=_(bP=>{"use strict";var kPe=bP&&bP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bP,"__esModule",{value:!0});bP.appDataPath=C1t;var I1t=kPe(Ie("os")),n1=kPe(Ie("path"));function C1t(t){let e=I1t.default.homedir();switch(process.platform){case"darwin":{let r=n1.default.join(e,"Library","Application Support");return n1.default.join(r,t)}case"win32":{let r=process.env.LOCALAPPDATA||n1.default.join(e,"AppData","Local");return n1.default.join(r,t,"Data")}default:{let r=process.env.XDG_DATA_HOME||n1.default.join(e,".local","share");return n1.default.join(r,t)}}}});var bA=_(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.UnsupportedAlgorithmError=wl.CryptoError=wl.LengthOrHashMismatchError=wl.UnsignedMetadataError=wl.RepositoryError=wl.ValueError=void 0;var N7=class extends Error{};wl.ValueError=N7;var xP=class extends Error{};wl.RepositoryError=xP;var O7=class extends xP{};wl.UnsignedMetadataError=O7;var L7=class extends xP{};wl.LengthOrHashMismatchError=L7;var kO=class extends Error{};wl.CryptoError=kO;var M7=class extends kO{};wl.UnsupportedAlgorithmError=M7});var TPe=_(Pg=>{"use strict";Object.defineProperty(Pg,"__esModule",{value:!0});Pg.isDefined=w1t;Pg.isObject=RPe;Pg.isStringArray=B1t;Pg.isObjectArray=v1t;Pg.isStringRecord=S1t;Pg.isObjectRecord=D1t;function w1t(t){return t!==void 0}function RPe(t){return typeof t=="object"&&t!==null}function B1t(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function v1t(t){return Array.isArray(t)&&t.every(RPe)}function S1t(t){return typeof t=="object"&&t!==null&&Object.keys(t).every(e=>typeof e=="string")&&Object.values(t).every(e=>typeof e=="string")}function D1t(t){return typeof t=="object"&&t!==null&&Object.keys(t).every(e=>typeof e=="string")&&Object.values(t).every(e=>typeof e=="object"&&e!==null)}});var _7=_((Fnr,OPe)=>{var FPe=",",P1t=":",b1t="[",x1t="]",k1t="{",Q1t="}";function U7(t){let e=[];if(typeof t=="string")e.push(NPe(t));else if(typeof t=="boolean")e.push(JSON.stringify(t));else if(Number.isInteger(t))e.push(JSON.stringify(t));else if(t===null)e.push(JSON.stringify(t));else if(Array.isArray(t)){e.push(b1t);let r=!0;t.forEach(s=>{r||e.push(FPe),r=!1,e.push(U7(s))}),e.push(x1t)}else if(typeof t=="object"){e.push(k1t);let r=!0;Object.keys(t).sort().forEach(s=>{r||e.push(FPe),r=!1,e.push(NPe(s)),e.push(P1t),e.push(U7(t[s]))}),e.push(Q1t)}else throw new TypeError("cannot encode "+t.toString());return e.join("")}function NPe(t){return'"'+t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}OPe.exports={canonicalize:U7}});var LPe=_(i1=>{"use strict";var R1t=i1&&i1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(i1,"__esModule",{value:!0});i1.verifySignature=void 0;var T1t=_7(),F1t=R1t(Ie("crypto")),N1t=(t,e,r)=>{let s=Buffer.from((0,T1t.canonicalize)(t));return F1t.default.verify(void 0,s,e,Buffer.from(r,"hex"))};i1.verifySignature=N1t});var ff=_(eu=>{"use strict";var O1t=eu&&eu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),L1t=eu&&eu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),MPe=eu&&eu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&O1t(e,t,r);return L1t(e,t),e};Object.defineProperty(eu,"__esModule",{value:!0});eu.crypto=eu.guard=void 0;eu.guard=MPe(TPe());eu.crypto=MPe(LPe())});var ay=_(hh=>{"use strict";var M1t=hh&&hh.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hh,"__esModule",{value:!0});hh.Signed=hh.MetadataKind=void 0;hh.isMetadataKind=_1t;var U1t=M1t(Ie("util")),kP=bA(),H7=ff(),UPe=["1","0","31"],j7;(function(t){t.Root="root",t.Timestamp="timestamp",t.Snapshot="snapshot",t.Targets="targets"})(j7||(hh.MetadataKind=j7={}));function _1t(t){return typeof t=="string"&&Object.values(j7).includes(t)}var G7=class t{constructor(e){this.specVersion=e.specVersion||UPe.join(".");let r=this.specVersion.split(".");if(!(r.length===2||r.length===3)||!r.every(s=>H1t(s)))throw new kP.ValueError("Failed to parse specVersion");if(r[0]!=UPe[0])throw new kP.ValueError("Unsupported specVersion");this.expires=e.expires,this.version=e.version,this.unrecognizedFields=e.unrecognizedFields||{}}equals(e){return e instanceof t?this.specVersion===e.specVersion&&this.expires===e.expires&&this.version===e.version&&U1t.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}isExpired(e){return e||(e=new Date),e>=new Date(this.expires)}static commonFieldsFromJSON(e){let{spec_version:r,expires:s,version:a,...n}=e;if(H7.guard.isDefined(r)){if(typeof r!="string")throw new TypeError("spec_version must be a string")}else throw new kP.ValueError("spec_version is not defined");if(H7.guard.isDefined(s)){if(typeof s!="string")throw new TypeError("expires must be a string")}else throw new kP.ValueError("expires is not defined");if(H7.guard.isDefined(a)){if(typeof a!="number")throw new TypeError("version must be a number")}else throw new kP.ValueError("version is not defined");return{specVersion:r,expires:s,version:a,unrecognizedFields:n}}};hh.Signed=G7;function H1t(t){return!isNaN(Number(t))}});var QP=_(xg=>{"use strict";var _Pe=xg&&xg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xg,"__esModule",{value:!0});xg.TargetFile=xg.MetaFile=void 0;var HPe=_Pe(Ie("crypto")),RO=_Pe(Ie("util")),bg=bA(),QO=ff(),q7=class t{constructor(e){if(e.version<=0)throw new bg.ValueError("Metafile version must be at least 1");e.length!==void 0&&jPe(e.length),this.version=e.version,this.length=e.length,this.hashes=e.hashes,this.unrecognizedFields=e.unrecognizedFields||{}}equals(e){return e instanceof t?this.version===e.version&&this.length===e.length&&RO.default.isDeepStrictEqual(this.hashes,e.hashes)&&RO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}verify(e){if(this.length!==void 0&&e.length!==this.length)throw new bg.LengthOrHashMismatchError(`Expected length ${this.length} but got ${e.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,s])=>{let a;try{a=HPe.default.createHash(r)}catch{throw new bg.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let n=a.update(e).digest("hex");if(n!==s)throw new bg.LengthOrHashMismatchError(`Expected hash ${s} but got ${n}`)})}toJSON(){let e={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(e.length=this.length),this.hashes&&(e.hashes=this.hashes),e}static fromJSON(e){let{version:r,length:s,hashes:a,...n}=e;if(typeof r!="number")throw new TypeError("version must be a number");if(QO.guard.isDefined(s)&&typeof s!="number")throw new TypeError("length must be a number");if(QO.guard.isDefined(a)&&!QO.guard.isStringRecord(a))throw new TypeError("hashes must be string keys and values");return new t({version:r,length:s,hashes:a,unrecognizedFields:n})}};xg.MetaFile=q7;var W7=class t{constructor(e){jPe(e.length),this.length=e.length,this.path=e.path,this.hashes=e.hashes,this.unrecognizedFields=e.unrecognizedFields||{}}get custom(){let e=this.unrecognizedFields.custom;return!e||Array.isArray(e)||typeof e!="object"?{}:e}equals(e){return e instanceof t?this.length===e.length&&this.path===e.path&&RO.default.isDeepStrictEqual(this.hashes,e.hashes)&&RO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}async verify(e){let r=0,s=Object.keys(this.hashes).reduce((a,n)=>{try{a[n]=HPe.default.createHash(n)}catch{throw new bg.LengthOrHashMismatchError(`Hash algorithm ${n} not supported`)}return a},{});for await(let a of e)r+=a.length,Object.values(s).forEach(n=>{n.update(a)});if(r!==this.length)throw new bg.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(s).forEach(([a,n])=>{let c=this.hashes[a],f=n.digest("hex");if(f!==c)throw new bg.LengthOrHashMismatchError(`Expected hash ${c} but got ${f}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(e,r){let{length:s,hashes:a,...n}=r;if(typeof s!="number")throw new TypeError("length must be a number");if(!QO.guard.isStringRecord(a))throw new TypeError("hashes must have string keys and values");return new t({length:s,path:e,hashes:a,unrecognizedFields:n})}};xg.TargetFile=W7;function jPe(t){if(t<0)throw new bg.ValueError("Length must be at least 0")}});var GPe=_(Y7=>{"use strict";Object.defineProperty(Y7,"__esModule",{value:!0});Y7.encodeOIDString=G1t;var j1t=6;function G1t(t){let e=t.split("."),r=parseInt(e[0],10)*40+parseInt(e[1],10),s=[];e.slice(2).forEach(n=>{let c=q1t(parseInt(n,10));s.push(...c)});let a=Buffer.from([r,...s]);return Buffer.from([j1t,a.length,...a])}function q1t(t){let e=[],r=0;for(;t>0;)e.unshift(t&127|r),t>>=7,r=128;return e}});var VPe=_(TP=>{"use strict";var W1t=TP&&TP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(TP,"__esModule",{value:!0});TP.getPublicKey=K1t;var s1=W1t(Ie("crypto")),RP=bA(),V7=GPe(),TO=48,qPe=3,WPe=0,Y1t="1.3.101.112",V1t="1.2.840.10045.2.1",J1t="1.2.840.10045.3.1.7",J7="-----BEGIN PUBLIC KEY-----";function K1t(t){switch(t.keyType){case"rsa":return z1t(t);case"ed25519":return Z1t(t);case"ecdsa":case"ecdsa-sha2-nistp256":case"ecdsa-sha2-nistp384":return X1t(t);default:throw new RP.UnsupportedAlgorithmError(`Unsupported key type: ${t.keyType}`)}}function z1t(t){if(!t.keyVal.startsWith(J7))throw new RP.CryptoError("Invalid key format");let e=s1.default.createPublicKey(t.keyVal);switch(t.scheme){case"rsassa-pss-sha256":return{key:e,padding:s1.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new RP.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${t.scheme}`)}}function Z1t(t){let e;if(t.keyVal.startsWith(J7))e=s1.default.createPublicKey(t.keyVal);else{if(!YPe(t.keyVal))throw new RP.CryptoError("Invalid key format");e=s1.default.createPublicKey({key:$1t.hexToDER(t.keyVal),format:"der",type:"spki"})}return{key:e}}function X1t(t){let e;if(t.keyVal.startsWith(J7))e=s1.default.createPublicKey(t.keyVal);else{if(!YPe(t.keyVal))throw new RP.CryptoError("Invalid key format");e=s1.default.createPublicKey({key:e2t.hexToDER(t.keyVal),format:"der",type:"spki"})}return{key:e}}var $1t={hexToDER:t=>{let e=Buffer.from(t,"hex"),r=(0,V7.encodeOIDString)(Y1t),s=Buffer.concat([Buffer.concat([Buffer.from([TO]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([qPe]),Buffer.from([e.length+1]),Buffer.from([WPe]),e])]);return Buffer.concat([Buffer.from([TO]),Buffer.from([s.length]),s])}},e2t={hexToDER:t=>{let e=Buffer.from(t,"hex"),r=Buffer.concat([Buffer.from([qPe]),Buffer.from([e.length+1]),Buffer.from([WPe]),e]),s=Buffer.concat([(0,V7.encodeOIDString)(V1t),(0,V7.encodeOIDString)(J1t)]),a=Buffer.concat([Buffer.from([TO]),Buffer.from([s.length]),s]);return Buffer.concat([Buffer.from([TO]),Buffer.from([a.length+r.length]),a,r])}},YPe=t=>/^[0-9a-fA-F]+$/.test(t)});var FO=_(o1=>{"use strict";var t2t=o1&&o1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(o1,"__esModule",{value:!0});o1.Key=void 0;var JPe=t2t(Ie("util")),FP=bA(),KPe=ff(),r2t=VPe(),K7=class t{constructor(e){let{keyID:r,keyType:s,scheme:a,keyVal:n,unrecognizedFields:c}=e;this.keyID=r,this.keyType=s,this.scheme=a,this.keyVal=n,this.unrecognizedFields=c||{}}verifySignature(e){let r=e.signatures[this.keyID];if(!r)throw new FP.UnsignedMetadataError("no signature for key found in metadata");if(!this.keyVal.public)throw new FP.UnsignedMetadataError("no public key found");let s=(0,r2t.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=e.signed.toJSON();try{if(!KPe.crypto.verifySignature(a,s,r.sig))throw new FP.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(n){throw n instanceof FP.UnsignedMetadataError?n:new FP.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(e){return e instanceof t?this.keyID===e.keyID&&this.keyType===e.keyType&&this.scheme===e.scheme&&JPe.default.isDeepStrictEqual(this.keyVal,e.keyVal)&&JPe.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(e,r){let{keytype:s,scheme:a,keyval:n,...c}=r;if(typeof s!="string")throw new TypeError("keytype must be a string");if(typeof a!="string")throw new TypeError("scheme must be a string");if(!KPe.guard.isStringRecord(n))throw new TypeError("keyval must be a string record");return new t({keyID:e,keyType:s,scheme:a,keyVal:n,unrecognizedFields:c})}};o1.Key=K7});var ebe=_((jnr,$Pe)=>{"use strict";$Pe.exports=ZPe;function ZPe(t,e,r){t instanceof RegExp&&(t=zPe(t,r)),e instanceof RegExp&&(e=zPe(e,r));var s=XPe(t,e,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+t.length,s[1]),post:r.slice(s[1]+e.length)}}function zPe(t,e){var r=e.match(t);return r?r[0]:null}ZPe.range=XPe;function XPe(t,e,r){var s,a,n,c,f,p=r.indexOf(t),h=r.indexOf(e,p+1),E=p;if(p>=0&&h>0){for(s=[],n=r.length;E>=0&&!f;)E==p?(s.push(E),p=r.indexOf(t,E+1)):s.length==1?f=[s.pop(),h]:(a=s.pop(),a=0?p:h;s.length&&(f=[n,c])}return f}});var lbe=_((Gnr,abe)=>{var tbe=ebe();abe.exports=s2t;var rbe="\0SLASH"+Math.random()+"\0",nbe="\0OPEN"+Math.random()+"\0",Z7="\0CLOSE"+Math.random()+"\0",ibe="\0COMMA"+Math.random()+"\0",sbe="\0PERIOD"+Math.random()+"\0";function z7(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function n2t(t){return t.split("\\\\").join(rbe).split("\\{").join(nbe).split("\\}").join(Z7).split("\\,").join(ibe).split("\\.").join(sbe)}function i2t(t){return t.split(rbe).join("\\").split(nbe).join("{").split(Z7).join("}").split(ibe).join(",").split(sbe).join(".")}function obe(t){if(!t)return[""];var e=[],r=tbe("{","}",t);if(!r)return t.split(",");var s=r.pre,a=r.body,n=r.post,c=s.split(",");c[c.length-1]+="{"+a+"}";var f=obe(n);return n.length&&(c[c.length-1]+=f.shift(),c.push.apply(c,f)),e.push.apply(e,c),e}function s2t(t){return t?(t.substr(0,2)==="{}"&&(t="\\{\\}"+t.substr(2)),NP(n2t(t),!0).map(i2t)):[]}function o2t(t){return"{"+t+"}"}function a2t(t){return/^-?0\d/.test(t)}function l2t(t,e){return t<=e}function c2t(t,e){return t>=e}function NP(t,e){var r=[],s=tbe("{","}",t);if(!s)return[t];var a=s.pre,n=s.post.length?NP(s.post,!1):[""];if(/\$$/.test(s.pre))for(var c=0;c=0;if(!E&&!C)return s.post.match(/,.*\}/)?(t=s.pre+"{"+s.body+Z7+s.post,NP(t)):[t];var S;if(E)S=s.body.split(/\.\./);else if(S=obe(s.body),S.length===1&&(S=NP(S[0],!1).map(o2t),S.length===1))return n.map(function(Ce){return s.pre+S[0]+Ce});var b;if(E){var I=z7(S[0]),T=z7(S[1]),N=Math.max(S[0].length,S[1].length),U=S.length==3?Math.abs(z7(S[2])):1,W=l2t,ee=T0){var pe=new Array(me+1).join("0");ue<0?le="-"+pe+le.slice(1):le=pe+le}}b.push(le)}}else{b=[];for(var Be=0;Be{"use strict";Object.defineProperty(NO,"__esModule",{value:!0});NO.assertValidPattern=void 0;var u2t=1024*64,f2t=t=>{if(typeof t!="string")throw new TypeError("invalid pattern");if(t.length>u2t)throw new TypeError("pattern is too long")};NO.assertValidPattern=f2t});var fbe=_(OO=>{"use strict";Object.defineProperty(OO,"__esModule",{value:!0});OO.parseClass=void 0;var A2t={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},OP=t=>t.replace(/[[\]\\-]/g,"\\$&"),p2t=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ube=t=>t.join(""),h2t=(t,e)=>{let r=e;if(t.charAt(r)!=="[")throw new Error("not in a brace expression");let s=[],a=[],n=r+1,c=!1,f=!1,p=!1,h=!1,E=r,C="";e:for(;nC?s.push(OP(C)+"-"+OP(T)):T===C&&s.push(OP(T)),C="",n++;continue}if(t.startsWith("-]",n+1)){s.push(OP(T+"-")),n+=2;continue}if(t.startsWith("-",n+1)){C=T,n+=2;continue}s.push(OP(T)),n++}if(E{"use strict";Object.defineProperty(LO,"__esModule",{value:!0});LO.unescape=void 0;var g2t=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");LO.unescape=g2t});var eJ=_(HO=>{"use strict";Object.defineProperty(HO,"__esModule",{value:!0});HO.AST=void 0;var d2t=fbe(),UO=MO(),m2t=new Set(["!","?","+","*","@"]),Abe=t=>m2t.has(t),y2t="(?!(?:^|/)\\.\\.?(?:$|/))",_O="(?!\\.)",E2t=new Set(["[","."]),I2t=new Set(["..","."]),C2t=new Set("().*{}+?[]^$\\!"),w2t=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),$7="[^/]",pbe=$7+"*?",hbe=$7+"+?",X7=class t{type;#t;#r;#i=!1;#e=[];#n;#o;#l;#a=!1;#s;#c;#f=!1;constructor(e,r,s={}){this.type=e,e&&(this.#r=!0),this.#n=r,this.#t=this.#n?this.#n.#t:this,this.#s=this.#t===this?s:this.#t.#s,this.#l=this.#t===this?[]:this.#t.#l,e==="!"&&!this.#t.#a&&this.#l.push(this),this.#o=this.#n?this.#n.#e.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let e of this.#e)if(typeof e!="string"&&(e.type||e.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#c!==void 0?this.#c:this.type?this.#c=this.type+"("+this.#e.map(e=>String(e)).join("|")+")":this.#c=this.#e.map(e=>String(e)).join("")}#p(){if(this!==this.#t)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let e;for(;e=this.#l.pop();){if(e.type!=="!")continue;let r=e,s=r.#n;for(;s;){for(let a=r.#o+1;!s.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#e.map(r=>r.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#n?.type==="!")&&e.push({}),e}isStart(){if(this.#t===this)return!0;if(!this.#n?.isStart())return!1;if(this.#o===0)return!0;let e=this.#n;for(let r=0;r{let[I,T,N,U]=typeof b=="string"?t.#h(b,this.#r,p):b.toRegExpSource(e);return this.#r=this.#r||N,this.#i=this.#i||U,I}).join(""),E="";if(this.isStart()&&typeof this.#e[0]=="string"&&!(this.#e.length===1&&I2t.has(this.#e[0]))){let I=E2t,T=r&&I.has(h.charAt(0))||h.startsWith("\\.")&&I.has(h.charAt(2))||h.startsWith("\\.\\.")&&I.has(h.charAt(4)),N=!r&&!e&&I.has(h.charAt(0));E=T?y2t:N?_O:""}let C="";return this.isEnd()&&this.#t.#a&&this.#n?.type==="!"&&(C="(?:$|\\/)"),[E+h+C,(0,UO.unescape)(h),this.#r=!!this.#r,this.#i]}let s=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#A(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let p=this.toString();return this.#e=[p],this.type=null,this.#r=void 0,[p,(0,UO.unescape)(this.toString()),!1,!1]}let c=!s||e||r||!_O?"":this.#A(!0);c===n&&(c=""),c&&(n=`(?:${n})(?:${c})*?`);let f="";if(this.type==="!"&&this.#f)f=(this.isStart()&&!r?_O:"")+hbe;else{let p=this.type==="!"?"))"+(this.isStart()&&!r&&!e?_O:"")+pbe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&c?")":this.type==="*"&&c?")?":`)${this.type}`;f=a+n+p}return[f,(0,UO.unescape)(n),this.#r=!!this.#r,this.#i]}#A(e){return this.#e.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[s,a,n,c]=r.toRegExpSource(e);return this.#i=this.#i||c,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#h(e,r,s=!1){let a=!1,n="",c=!1;for(let f=0;f{"use strict";Object.defineProperty(jO,"__esModule",{value:!0});jO.escape=void 0;var B2t=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&");jO.escape=B2t});var Cbe=_(pr=>{"use strict";var v2t=pr&&pr.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pr,"__esModule",{value:!0});pr.unescape=pr.escape=pr.AST=pr.Minimatch=pr.match=pr.makeRe=pr.braceExpand=pr.defaults=pr.filter=pr.GLOBSTAR=pr.sep=pr.minimatch=void 0;var S2t=v2t(lbe()),GO=cbe(),mbe=eJ(),D2t=tJ(),P2t=MO(),b2t=(t,e,r={})=>((0,GO.assertValidPattern)(e),!r.nocomment&&e.charAt(0)==="#"?!1:new ly(e,r).match(t));pr.minimatch=b2t;var x2t=/^\*+([^+@!?\*\[\(]*)$/,k2t=t=>e=>!e.startsWith(".")&&e.endsWith(t),Q2t=t=>e=>e.endsWith(t),R2t=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),T2t=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),F2t=/^\*+\.\*+$/,N2t=t=>!t.startsWith(".")&&t.includes("."),O2t=t=>t!=="."&&t!==".."&&t.includes("."),L2t=/^\.\*+$/,M2t=t=>t!=="."&&t!==".."&&t.startsWith("."),U2t=/^\*+$/,_2t=t=>t.length!==0&&!t.startsWith("."),H2t=t=>t.length!==0&&t!=="."&&t!=="..",j2t=/^\?+([^+@!?\*\[\(]*)?$/,G2t=([t,e=""])=>{let r=ybe([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},q2t=([t,e=""])=>{let r=Ebe([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},W2t=([t,e=""])=>{let r=Ebe([t]);return e?s=>r(s)&&s.endsWith(e):r},Y2t=([t,e=""])=>{let r=ybe([t]);return e?s=>r(s)&&s.endsWith(e):r},ybe=([t])=>{let e=t.length;return r=>r.length===e&&!r.startsWith(".")},Ebe=([t])=>{let e=t.length;return r=>r.length===e&&r!=="."&&r!==".."},Ibe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",gbe={win32:{sep:"\\"},posix:{sep:"/"}};pr.sep=Ibe==="win32"?gbe.win32.sep:gbe.posix.sep;pr.minimatch.sep=pr.sep;pr.GLOBSTAR=Symbol("globstar **");pr.minimatch.GLOBSTAR=pr.GLOBSTAR;var V2t="[^/]",J2t=V2t+"*?",K2t="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",z2t="(?:(?!(?:\\/|^)\\.).)*?",Z2t=(t,e={})=>r=>(0,pr.minimatch)(r,t,e);pr.filter=Z2t;pr.minimatch.filter=pr.filter;var tu=(t,e={})=>Object.assign({},t,e),X2t=t=>{if(!t||typeof t!="object"||!Object.keys(t).length)return pr.minimatch;let e=pr.minimatch;return Object.assign((s,a,n={})=>e(s,a,tu(t,n)),{Minimatch:class extends e.Minimatch{constructor(a,n={}){super(a,tu(t,n))}static defaults(a){return e.defaults(tu(t,a)).Minimatch}},AST:class extends e.AST{constructor(a,n,c={}){super(a,n,tu(t,c))}static fromGlob(a,n={}){return e.AST.fromGlob(a,tu(t,n))}},unescape:(s,a={})=>e.unescape(s,tu(t,a)),escape:(s,a={})=>e.escape(s,tu(t,a)),filter:(s,a={})=>e.filter(s,tu(t,a)),defaults:s=>e.defaults(tu(t,s)),makeRe:(s,a={})=>e.makeRe(s,tu(t,a)),braceExpand:(s,a={})=>e.braceExpand(s,tu(t,a)),match:(s,a,n={})=>e.match(s,a,tu(t,n)),sep:e.sep,GLOBSTAR:pr.GLOBSTAR})};pr.defaults=X2t;pr.minimatch.defaults=pr.defaults;var $2t=(t,e={})=>((0,GO.assertValidPattern)(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:(0,S2t.default)(t));pr.braceExpand=$2t;pr.minimatch.braceExpand=pr.braceExpand;var eBt=(t,e={})=>new ly(t,e).makeRe();pr.makeRe=eBt;pr.minimatch.makeRe=pr.makeRe;var tBt=(t,e,r={})=>{let s=new ly(e,r);return t=t.filter(a=>s.match(a)),s.options.nonull&&!t.length&&t.push(e),t};pr.match=tBt;pr.minimatch.match=pr.match;var dbe=/[?*]|[+@!]\(.*?\)|\[|\]/,rBt=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ly=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,r={}){(0,GO.assertValidPattern)(e),r=r||{},this.options=r,this.pattern=e,this.platform=r.platform||Ibe,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let r of e)if(typeof r!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,r=this.options;if(!r.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let a=this.globParts.map((n,c,f)=>{if(this.isWindows&&this.windowsNoMagicRoot){let p=n[0]===""&&n[1]===""&&(n[2]==="?"||!dbe.test(n[2]))&&!dbe.test(n[3]),h=/^[a-z]:/i.test(n[0]);if(p)return[...n.slice(0,4),...n.slice(4).map(E=>this.parse(E))];if(h)return[n[0],...n.slice(1).map(E=>this.parse(E))]}return n.map(p=>this.parse(p))});if(this.debug(this.pattern,a),this.set=a.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):r>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(r=>{let s=-1;for(;(s=r.indexOf("**",s+1))!==-1;){let a=s;for(;r[a+1]==="**";)a++;a!==s&&r.splice(s,a-s)}return r})}levelOneOptimize(e){return e.map(r=>(r=r.reduce((s,a)=>{let n=s[s.length-1];return a==="**"&&n==="**"?s:a===".."&&n&&n!==".."&&n!=="."&&n!=="**"?(s.pop(),s):(s.push(a),s)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&s.splice(a+1,c-a);let f=s[a+1],p=s[a+2],h=s[a+3];if(f!==".."||!p||p==="."||p===".."||!h||h==="."||h==="..")continue;r=!0,s.splice(a,1);let E=s.slice(0);E[a]="**",e.push(E),a--}if(!this.preserveMultipleSlashes){for(let c=1;cr.length)}partsMatch(e,r,s=!1){let a=0,n=0,c=[],f="";for(;aee?r=r.slice(ie):ee>ie&&(e=e.slice(ee)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:r}),this.debug("matchOne",e.length,r.length);for(var c=0,f=0,p=e.length,h=r.length;c>> no match, partial?`,e,S,r,b),S===p))}let T;if(typeof E=="string"?(T=C===E,this.debug("string match",E,C,T)):(T=E.test(C),this.debug("pattern match",E,C,T)),!T)return!1}if(c===p&&f===h)return!0;if(c===p)return s;if(f===h)return c===p-1&&e[c]==="";throw new Error("wtf?")}braceExpand(){return(0,pr.braceExpand)(this.pattern,this.options)}parse(e){(0,GO.assertValidPattern)(e);let r=this.options;if(e==="**")return pr.GLOBSTAR;if(e==="")return"";let s,a=null;(s=e.match(U2t))?a=r.dot?H2t:_2t:(s=e.match(x2t))?a=(r.nocase?r.dot?T2t:R2t:r.dot?Q2t:k2t)(s[1]):(s=e.match(j2t))?a=(r.nocase?r.dot?q2t:G2t:r.dot?W2t:Y2t)(s):(s=e.match(F2t))?a=r.dot?O2t:N2t:(s=e.match(L2t))&&(a=M2t);let n=mbe.AST.fromGlob(e,this.options).toMMPattern();return a&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:a}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let r=this.options,s=r.noglobstar?J2t:r.dot?K2t:z2t,a=new Set(r.nocase?["i"]:[]),n=e.map(p=>{let h=p.map(E=>{if(E instanceof RegExp)for(let C of E.flags.split(""))a.add(C);return typeof E=="string"?rBt(E):E===pr.GLOBSTAR?pr.GLOBSTAR:E._src});return h.forEach((E,C)=>{let S=h[C+1],b=h[C-1];E!==pr.GLOBSTAR||b===pr.GLOBSTAR||(b===void 0?S!==void 0&&S!==pr.GLOBSTAR?h[C+1]="(?:\\/|"+s+"\\/)?"+S:h[C]=s:S===void 0?h[C-1]=b+"(?:\\/|"+s+")?":S!==pr.GLOBSTAR&&(h[C-1]=b+"(?:\\/|\\/"+s+"\\/)"+S,h[C+1]=pr.GLOBSTAR))}),h.filter(E=>E!==pr.GLOBSTAR).join("/")}).join("|"),[c,f]=e.length>1?["(?:",")"]:["",""];n="^"+c+n+f+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,r=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&r)return!0;let s=this.options;this.isWindows&&(e=e.split("\\").join("/"));let a=this.slashSplit(e);this.debug(this.pattern,"split",a);let n=this.set;this.debug(this.pattern,"set",n);let c=a[a.length-1];if(!c)for(let f=a.length-2;!c&&f>=0;f--)c=a[f];for(let f=0;f{"use strict";var wbe=ru&&ru.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ru,"__esModule",{value:!0});ru.SuccinctRoles=ru.DelegatedRole=ru.Role=ru.TOP_LEVEL_ROLE_NAMES=void 0;var Bbe=wbe(Ie("crypto")),oBt=Cbe(),qO=wbe(Ie("util")),WO=bA(),cy=ff();ru.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var LP=class t{constructor(e){let{keyIDs:r,threshold:s,unrecognizedFields:a}=e;if(aBt(r))throw new WO.ValueError("duplicate key IDs found");if(s<1)throw new WO.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=s,this.unrecognizedFields=a||{}}equals(e){return e instanceof t?this.threshold===e.threshold&&qO.default.isDeepStrictEqual(this.keyIDs,e.keyIDs)&&qO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(e){let{keyids:r,threshold:s,...a}=e;if(!cy.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof s!="number")throw new TypeError("threshold must be a number");return new t({keyIDs:r,threshold:s,unrecognizedFields:a})}};ru.Role=LP;function aBt(t){return new Set(t).size!==t.length}var rJ=class t extends LP{constructor(e){super(e);let{name:r,terminating:s,paths:a,pathHashPrefixes:n}=e;if(this.name=r,this.terminating=s,e.paths&&e.pathHashPrefixes)throw new WO.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=n}equals(e){return e instanceof t?super.equals(e)&&this.name===e.name&&this.terminating===e.terminating&&qO.default.isDeepStrictEqual(this.paths,e.paths)&&qO.default.isDeepStrictEqual(this.pathHashPrefixes,e.pathHashPrefixes):!1}isDelegatedPath(e){if(this.paths)return this.paths.some(r=>cBt(e,r));if(this.pathHashPrefixes){let s=Bbe.default.createHash("sha256").update(e).digest("hex");return this.pathHashPrefixes.some(a=>s.startsWith(a))}return!1}toJSON(){let e={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(e.paths=this.paths),this.pathHashPrefixes&&(e.path_hash_prefixes=this.pathHashPrefixes),e}static fromJSON(e){let{keyids:r,threshold:s,name:a,terminating:n,paths:c,path_hash_prefixes:f,...p}=e;if(!cy.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof s!="number")throw new TypeError("threshold must be a number");if(typeof a!="string")throw new TypeError("name must be a string");if(typeof n!="boolean")throw new TypeError("terminating must be a boolean");if(cy.guard.isDefined(c)&&!cy.guard.isStringArray(c))throw new TypeError("paths must be an array of strings");if(cy.guard.isDefined(f)&&!cy.guard.isStringArray(f))throw new TypeError("path_hash_prefixes must be an array of strings");return new t({keyIDs:r,threshold:s,name:a,terminating:n,paths:c,pathHashPrefixes:f,unrecognizedFields:p})}};ru.DelegatedRole=rJ;var lBt=(t,e)=>t.map((r,s)=>[r,e[s]]);function cBt(t,e){let r=t.split("/"),s=e.split("/");return s.length!=r.length?!1:lBt(r,s).every(([a,n])=>(0,oBt.minimatch)(a,n))}var nJ=class t extends LP{constructor(e){super(e);let{bitLength:r,namePrefix:s}=e;if(r<=0||r>32)throw new WO.ValueError("bitLength must be between 1 and 32");this.bitLength=r,this.namePrefix=s,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(e){return e instanceof t?super.equals(e)&&this.bitLength===e.bitLength&&this.namePrefix===e.namePrefix:!1}getRoleForTarget(e){let a=Bbe.default.createHash("sha256").update(e).digest().subarray(0,4),n=32-this.bitLength,f=(a.readUInt32BE()>>>n).toString(16).padStart(this.suffixLen,"0");return`${this.namePrefix}-${f}`}*getRoles(){for(let e=0;e{"use strict";var uBt=a1&&a1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(a1,"__esModule",{value:!0});a1.Root=void 0;var vbe=uBt(Ie("util")),sJ=ay(),Sbe=bA(),fBt=FO(),YO=iJ(),VO=ff(),oJ=class t extends sJ.Signed{constructor(e){if(super(e),this.type=sJ.MetadataKind.Root,this.keys=e.keys||{},this.consistentSnapshot=e.consistentSnapshot??!0,!e.roles)this.roles=YO.TOP_LEVEL_ROLE_NAMES.reduce((r,s)=>({...r,[s]:new YO.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(e.roles));if(!YO.TOP_LEVEL_ROLE_NAMES.every(s=>r.has(s)))throw new Sbe.ValueError("missing top-level role");this.roles=e.roles}}addKey(e,r){if(!this.roles[r])throw new Sbe.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(e.keyID)||this.roles[r].keyIDs.push(e.keyID),this.keys[e.keyID]=e}equals(e){return e instanceof t?super.equals(e)&&this.consistentSnapshot===e.consistentSnapshot&&vbe.default.isDeepStrictEqual(this.keys,e.keys)&&vbe.default.isDeepStrictEqual(this.roles,e.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:ABt(this.keys),roles:pBt(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=sJ.Signed.commonFieldsFromJSON(e),{keys:a,roles:n,consistent_snapshot:c,...f}=r;if(typeof c!="boolean")throw new TypeError("consistent_snapshot must be a boolean");return new t({...s,keys:hBt(a),roles:gBt(n),consistentSnapshot:c,unrecognizedFields:f})}};a1.Root=oJ;function ABt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function pBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function hBt(t){let e;if(VO.guard.isDefined(t)){if(!VO.guard.isObjectRecord(t))throw new TypeError("keys must be an object");e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:fBt.Key.fromJSON(s,a)}),{})}return e}function gBt(t){let e;if(VO.guard.isDefined(t)){if(!VO.guard.isObjectRecord(t))throw new TypeError("roles must be an object");e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:YO.Role.fromJSON(a)}),{})}return e}});var cJ=_(JO=>{"use strict";Object.defineProperty(JO,"__esModule",{value:!0});JO.Signature=void 0;var lJ=class t{constructor(e){let{keyID:r,sig:s}=e;this.keyID=r,this.sig=s}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(e){let{keyid:r,sig:s}=e;if(typeof r!="string")throw new TypeError("keyid must be a string");if(typeof s!="string")throw new TypeError("sig must be a string");return new t({keyID:r,sig:s})}};JO.Signature=lJ});var AJ=_(l1=>{"use strict";var dBt=l1&&l1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(l1,"__esModule",{value:!0});l1.Snapshot=void 0;var mBt=dBt(Ie("util")),uJ=ay(),Pbe=QP(),Dbe=ff(),fJ=class t extends uJ.Signed{constructor(e){super(e),this.type=uJ.MetadataKind.Snapshot,this.meta=e.meta||{"targets.json":new Pbe.MetaFile({version:1})}}equals(e){return e instanceof t?super.equals(e)&&mBt.default.isDeepStrictEqual(this.meta,e.meta):!1}toJSON(){return{_type:this.type,meta:yBt(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=uJ.Signed.commonFieldsFromJSON(e),{meta:a,...n}=r;return new t({...s,meta:EBt(a),unrecognizedFields:n})}};l1.Snapshot=fJ;function yBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function EBt(t){let e;if(Dbe.guard.isDefined(t))if(Dbe.guard.isObjectRecord(t))e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:Pbe.MetaFile.fromJSON(a)}),{});else throw new TypeError("meta field is malformed");return e}});var bbe=_(c1=>{"use strict";var IBt=c1&&c1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(c1,"__esModule",{value:!0});c1.Delegations=void 0;var KO=IBt(Ie("util")),CBt=bA(),wBt=FO(),pJ=iJ(),zO=ff(),hJ=class t{constructor(e){if(this.keys=e.keys,this.unrecognizedFields=e.unrecognizedFields||{},e.roles&&Object.keys(e.roles).some(r=>pJ.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new CBt.ValueError("Delegated role name conflicts with top-level role name");this.succinctRoles=e.succinctRoles,this.roles=e.roles}equals(e){return e instanceof t?KO.default.isDeepStrictEqual(this.keys,e.keys)&&KO.default.isDeepStrictEqual(this.roles,e.roles)&&KO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields)&&KO.default.isDeepStrictEqual(this.succinctRoles,e.succinctRoles):!1}*rolesForTarget(e){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(e)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(e),terminating:!0})}toJSON(){let e={keys:BBt(this.keys),...this.unrecognizedFields};return this.roles?e.roles=vBt(this.roles):this.succinctRoles&&(e.succinct_roles=this.succinctRoles.toJSON()),e}static fromJSON(e){let{keys:r,roles:s,succinct_roles:a,...n}=e,c;return zO.guard.isObject(a)&&(c=pJ.SuccinctRoles.fromJSON(a)),new t({keys:SBt(r),roles:DBt(s),unrecognizedFields:n,succinctRoles:c})}};c1.Delegations=hJ;function BBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function vBt(t){return Object.values(t).map(e=>e.toJSON())}function SBt(t){if(!zO.guard.isObjectRecord(t))throw new TypeError("keys is malformed");return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:wBt.Key.fromJSON(r,s)}),{})}function DBt(t){let e;if(zO.guard.isDefined(t)){if(!zO.guard.isObjectArray(t))throw new TypeError("roles is malformed");e=t.reduce((r,s)=>{let a=pJ.DelegatedRole.fromJSON(s);return{...r,[a.name]:a}},{})}return e}});var mJ=_(u1=>{"use strict";var PBt=u1&&u1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(u1,"__esModule",{value:!0});u1.Targets=void 0;var xbe=PBt(Ie("util")),gJ=ay(),bBt=bbe(),xBt=QP(),ZO=ff(),dJ=class t extends gJ.Signed{constructor(e){super(e),this.type=gJ.MetadataKind.Targets,this.targets=e.targets||{},this.delegations=e.delegations}addTarget(e){this.targets[e.path]=e}equals(e){return e instanceof t?super.equals(e)&&xbe.default.isDeepStrictEqual(this.targets,e.targets)&&xbe.default.isDeepStrictEqual(this.delegations,e.delegations):!1}toJSON(){let e={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:kBt(this.targets),...this.unrecognizedFields};return this.delegations&&(e.delegations=this.delegations.toJSON()),e}static fromJSON(e){let{unrecognizedFields:r,...s}=gJ.Signed.commonFieldsFromJSON(e),{targets:a,delegations:n,...c}=r;return new t({...s,targets:QBt(a),delegations:RBt(n),unrecognizedFields:c})}};u1.Targets=dJ;function kBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function QBt(t){let e;if(ZO.guard.isDefined(t))if(ZO.guard.isObjectRecord(t))e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:xBt.TargetFile.fromJSON(s,a)}),{});else throw new TypeError("targets must be an object");return e}function RBt(t){let e;if(ZO.guard.isDefined(t))if(ZO.guard.isObject(t))e=bBt.Delegations.fromJSON(t);else throw new TypeError("delegations must be an object");return e}});var CJ=_(XO=>{"use strict";Object.defineProperty(XO,"__esModule",{value:!0});XO.Timestamp=void 0;var yJ=ay(),kbe=QP(),EJ=ff(),IJ=class t extends yJ.Signed{constructor(e){super(e),this.type=yJ.MetadataKind.Timestamp,this.snapshotMeta=e.snapshotMeta||new kbe.MetaFile({version:1})}equals(e){return e instanceof t?super.equals(e)&&this.snapshotMeta.equals(e.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{"snapshot.json":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=yJ.Signed.commonFieldsFromJSON(e),{meta:a,...n}=r;return new t({...s,snapshotMeta:TBt(a),unrecognizedFields:n})}};XO.Timestamp=IJ;function TBt(t){let e;if(EJ.guard.isDefined(t)){let r=t["snapshot.json"];if(!EJ.guard.isDefined(r)||!EJ.guard.isObject(r))throw new TypeError("missing snapshot.json in meta");e=kbe.MetaFile.fromJSON(r)}return e}});var Rbe=_(A1=>{"use strict";var FBt=A1&&A1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(A1,"__esModule",{value:!0});A1.Metadata=void 0;var NBt=_7(),Qbe=FBt(Ie("util")),f1=ay(),MP=bA(),OBt=aJ(),LBt=cJ(),MBt=AJ(),UBt=mJ(),_Bt=CJ(),wJ=ff(),BJ=class t{constructor(e,r,s){this.signed=e,this.signatures=r||{},this.unrecognizedFields=s||{}}sign(e,r=!0){let s=Buffer.from((0,NBt.canonicalize)(this.signed.toJSON())),a=e(s);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(e,r){let s,a={};switch(this.signed.type){case f1.MetadataKind.Root:a=this.signed.keys,s=this.signed.roles[e];break;case f1.MetadataKind.Targets:if(!this.signed.delegations)throw new MP.ValueError(`No delegations found for ${e}`);a=this.signed.delegations.keys,this.signed.delegations.roles?s=this.signed.delegations.roles[e]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(e)&&(s=this.signed.delegations.succinctRoles);break;default:throw new TypeError("invalid metadata type")}if(!s)throw new MP.ValueError(`no delegation found for ${e}`);let n=new Set;if(s.keyIDs.forEach(c=>{let f=a[c];if(f)try{f.verifySignature(r),n.add(f.keyID)}catch{}}),n.sizer.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(e,r){let{signed:s,signatures:a,...n}=r;if(!wJ.guard.isDefined(s)||!wJ.guard.isObject(s))throw new TypeError("signed is not defined");if(e!==s._type)throw new MP.ValueError(`expected '${e}', got ${s._type}`);if(!wJ.guard.isObjectArray(a))throw new TypeError("signatures is not an array");let c;switch(e){case f1.MetadataKind.Root:c=OBt.Root.fromJSON(s);break;case f1.MetadataKind.Timestamp:c=_Bt.Timestamp.fromJSON(s);break;case f1.MetadataKind.Snapshot:c=MBt.Snapshot.fromJSON(s);break;case f1.MetadataKind.Targets:c=UBt.Targets.fromJSON(s);break;default:throw new TypeError("invalid metadata type")}let f={};return a.forEach(p=>{let h=LBt.Signature.fromJSON(p);if(f[h.keyID])throw new MP.ValueError(`multiple signatures found for keyid: ${h.keyID}`);f[h.keyID]=h}),new t(c,f,n)}};A1.Metadata=BJ});var $O=_(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.Timestamp=Fi.Targets=Fi.Snapshot=Fi.Signature=Fi.Root=Fi.Metadata=Fi.Key=Fi.TargetFile=Fi.MetaFile=Fi.ValueError=Fi.MetadataKind=void 0;var HBt=ay();Object.defineProperty(Fi,"MetadataKind",{enumerable:!0,get:function(){return HBt.MetadataKind}});var jBt=bA();Object.defineProperty(Fi,"ValueError",{enumerable:!0,get:function(){return jBt.ValueError}});var Tbe=QP();Object.defineProperty(Fi,"MetaFile",{enumerable:!0,get:function(){return Tbe.MetaFile}});Object.defineProperty(Fi,"TargetFile",{enumerable:!0,get:function(){return Tbe.TargetFile}});var GBt=FO();Object.defineProperty(Fi,"Key",{enumerable:!0,get:function(){return GBt.Key}});var qBt=Rbe();Object.defineProperty(Fi,"Metadata",{enumerable:!0,get:function(){return qBt.Metadata}});var WBt=aJ();Object.defineProperty(Fi,"Root",{enumerable:!0,get:function(){return WBt.Root}});var YBt=cJ();Object.defineProperty(Fi,"Signature",{enumerable:!0,get:function(){return YBt.Signature}});var VBt=AJ();Object.defineProperty(Fi,"Snapshot",{enumerable:!0,get:function(){return VBt.Snapshot}});var JBt=mJ();Object.defineProperty(Fi,"Targets",{enumerable:!0,get:function(){return JBt.Targets}});var KBt=CJ();Object.defineProperty(Fi,"Timestamp",{enumerable:!0,get:function(){return KBt.Timestamp}})});var Nbe=_((air,Fbe)=>{var p1=1e3,h1=p1*60,g1=h1*60,uy=g1*24,zBt=uy*7,ZBt=uy*365.25;Fbe.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return XBt(t);if(r==="number"&&isFinite(t))return e.long?evt(t):$Bt(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function XBt(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),s=(e[2]||"ms").toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return r*ZBt;case"weeks":case"week":case"w":return r*zBt;case"days":case"day":case"d":return r*uy;case"hours":case"hour":case"hrs":case"hr":case"h":return r*g1;case"minutes":case"minute":case"mins":case"min":case"m":return r*h1;case"seconds":case"second":case"secs":case"sec":case"s":return r*p1;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function $Bt(t){var e=Math.abs(t);return e>=uy?Math.round(t/uy)+"d":e>=g1?Math.round(t/g1)+"h":e>=h1?Math.round(t/h1)+"m":e>=p1?Math.round(t/p1)+"s":t+"ms"}function evt(t){var e=Math.abs(t);return e>=uy?eL(t,e,uy,"day"):e>=g1?eL(t,e,g1,"hour"):e>=h1?eL(t,e,h1,"minute"):e>=p1?eL(t,e,p1,"second"):t+" ms"}function eL(t,e,r,s){var a=e>=r*1.5;return Math.round(t/r)+" "+s+(a?"s":"")}});var vJ=_((lir,Obe)=>{function tvt(t){r.debug=r,r.default=r,r.coerce=p,r.disable=c,r.enable=a,r.enabled=f,r.humanize=Nbe(),r.destroy=h,Object.keys(t).forEach(E=>{r[E]=t[E]}),r.names=[],r.skips=[],r.formatters={};function e(E){let C=0;for(let S=0;S{if(le==="%%")return"%";ie++;let pe=r.formatters[me];if(typeof pe=="function"){let Be=N[ie];le=pe.call(U,Be),N.splice(ie,1),ie--}return le}),r.formatArgs.call(U,N),(U.log||r.log).apply(U,N)}return T.namespace=E,T.useColors=r.useColors(),T.color=r.selectColor(E),T.extend=s,T.destroy=r.destroy,Object.defineProperty(T,"enabled",{enumerable:!0,configurable:!1,get:()=>S!==null?S:(b!==r.namespaces&&(b=r.namespaces,I=r.enabled(E)),I),set:N=>{S=N}}),typeof r.init=="function"&&r.init(T),T}function s(E,C){let S=r(this.namespace+(typeof C>"u"?":":C)+E);return S.log=this.log,S}function a(E){r.save(E),r.namespaces=E,r.names=[],r.skips=[];let C=(typeof E=="string"?E:"").trim().replace(" ",",").split(",").filter(Boolean);for(let S of C)S[0]==="-"?r.skips.push(S.slice(1)):r.names.push(S)}function n(E,C){let S=0,b=0,I=-1,T=0;for(;S"-"+C)].join(",");return r.enable(""),E}function f(E){for(let C of r.skips)if(n(E,C))return!1;for(let C of r.names)if(n(E,C))return!0;return!1}function p(E){return E instanceof Error?E.stack||E.message:E}function h(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Obe.exports=tvt});var Lbe=_((sc,tL)=>{sc.formatArgs=nvt;sc.save=ivt;sc.load=svt;sc.useColors=rvt;sc.storage=ovt();sc.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();sc.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function rvt(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function nvt(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+tL.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(s=r))}),t.splice(s,0,e)}sc.log=console.debug||console.log||(()=>{});function ivt(t){try{t?sc.storage.setItem("debug",t):sc.storage.removeItem("debug")}catch{}}function svt(){let t;try{t=sc.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function ovt(){try{return localStorage}catch{}}tL.exports=vJ()(sc);var{formatters:avt}=tL.exports;avt.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Ube=_((Xs,nL)=>{var lvt=Ie("tty"),rL=Ie("util");Xs.init=gvt;Xs.log=Avt;Xs.formatArgs=uvt;Xs.save=pvt;Xs.load=hvt;Xs.useColors=cvt;Xs.destroy=rL.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Xs.colors=[6,2,3,4,5,1];try{let t=Ie("supports-color");t&&(t.stderr||t).level>=2&&(Xs.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Xs.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(a,n)=>n.toUpperCase()),s=process.env[e];return/^(yes|on|true|enabled)$/i.test(s)?s=!0:/^(no|off|false|disabled)$/i.test(s)?s=!1:s==="null"?s=null:s=Number(s),t[r]=s,t},{});function cvt(){return"colors"in Xs.inspectOpts?!!Xs.inspectOpts.colors:lvt.isatty(process.stderr.fd)}function uvt(t){let{namespace:e,useColors:r}=this;if(r){let s=this.color,a="\x1B[3"+(s<8?s:"8;5;"+s),n=` ${a};1m${e} \x1B[0m`;t[0]=n+t[0].split(` `).join(` `+n),t.push(a+"m+"+nL.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=fvt()+e+" "+t[0]}function fvt(){return Xs.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Avt(...t){return process.stderr.write(rL.formatWithOptions(Xs.inspectOpts,...t)+` `)}function pvt(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function hvt(){return process.env.DEBUG}function gvt(t){t.inspectOpts={};let e=Object.keys(Xs.inspectOpts);for(let r=0;re.trim()).join(" ")};Mbe.O=function(t){return this.inspectOpts.colors=this.useColors,rL.inspect(t,this.inspectOpts)}});var DJ=_((cir,SJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?SJ.exports=Lbe():SJ.exports=Ube()});var sL=_(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.DownloadHTTPError=Ji.DownloadLengthMismatchError=Ji.DownloadError=Ji.ExpiredMetadataError=Ji.EqualVersionError=Ji.BadVersionError=Ji.RepositoryError=Ji.PersistError=Ji.RuntimeError=Ji.ValueError=void 0;var PJ=class extends Error{};Ji.ValueError=PJ;var bJ=class extends Error{};Ji.RuntimeError=bJ;var xJ=class extends Error{};Ji.PersistError=xJ;var UP=class extends Error{};Ji.RepositoryError=UP;var iL=class extends UP{};Ji.BadVersionError=iL;var kJ=class extends iL{};Ji.EqualVersionError=kJ;var QJ=class extends UP{};Ji.ExpiredMetadataError=QJ;var _P=class extends Error{};Ji.DownloadError=_P;var RJ=class extends _P{};Ji.DownloadLengthMismatchError=RJ;var TJ=class extends _P{constructor(e,r){super(e),this.statusCode=r}};Ji.DownloadHTTPError=TJ});var Hbe=_(d1=>{"use strict";var NJ=d1&&d1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(d1,"__esModule",{value:!0});d1.withTempFile=void 0;var FJ=NJ(Ie("fs/promises")),dvt=NJ(Ie("os")),_be=NJ(Ie("path")),mvt=async t=>yvt(async e=>t(_be.default.join(e,"tempfile")));d1.withTempFile=mvt;var yvt=async t=>{let e=await FJ.default.realpath(dvt.default.tmpdir()),r=await FJ.default.mkdtemp(e+_be.default.sep);try{return await t(r)}finally{await FJ.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var LJ=_(kg=>{"use strict";var aL=kg&&kg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kg,"__esModule",{value:!0});kg.DefaultFetcher=kg.BaseFetcher=void 0;var Evt=aL(DJ()),jbe=aL(Ie("fs")),Ivt=aL(IO()),Cvt=aL(Ie("util")),Gbe=sL(),wvt=Hbe(),Bvt=(0,Evt.default)("tuf:fetch"),oL=class{async downloadFile(e,r,s){return(0,wvt.withTempFile)(async a=>{let n=await this.fetch(e),c=0,f=jbe.default.createWriteStream(a);try{for await(let p of n){let h=Buffer.from(p);if(c+=h.length,c>r)throw new Gbe.DownloadLengthMismatchError("Max length reached");await vvt(f,h)}}finally{await Cvt.default.promisify(f.close).bind(f)()}return s(a)})}async downloadBytes(e,r){return this.downloadFile(e,r,async s=>{let a=jbe.default.createReadStream(s),n=[];for await(let c of a)n.push(c);return Buffer.concat(n)})}};kg.BaseFetcher=oL;var OJ=class extends oL{constructor(e={}){super(),this.timeout=e.timeout,this.retry=e.retry}async fetch(e){Bvt("GET %s",e);let r=await(0,Ivt.default)(e,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new Gbe.DownloadHTTPError("Failed to download",r.status);return r.body}};kg.DefaultFetcher=OJ;var vvt=async(t,e)=>new Promise((r,s)=>{t.write(e,a=>{a&&s(a),r(!0)})})});var qbe=_(lL=>{"use strict";Object.defineProperty(lL,"__esModule",{value:!0});lL.defaultConfig=void 0;lL.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var Wbe=_(cL=>{"use strict";Object.defineProperty(cL,"__esModule",{value:!0});cL.TrustedMetadataStore=void 0;var Es=$O(),_i=sL(),MJ=class{constructor(e){this.trustedSet={},this.referenceTime=new Date,this.loadTrustedRoot(e)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(e){return this.trustedSet[e]}updateRoot(e){let r=JSON.parse(e.toString("utf8")),s=Es.Metadata.fromJSON(Es.MetadataKind.Root,r);if(s.signed.type!=Es.MetadataKind.Root)throw new _i.RepositoryError(`Expected 'root', got ${s.signed.type}`);if(this.root.verifyDelegate(Es.MetadataKind.Root,s),s.signed.version!=this.root.signed.version+1)throw new _i.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${s.signed.version}`);return s.verifyDelegate(Es.MetadataKind.Root,s),this.trustedSet.root=s,s}updateTimestamp(e){if(this.snapshot)throw new _i.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new _i.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(e.toString("utf8")),s=Es.Metadata.fromJSON(Es.MetadataKind.Timestamp,r);if(s.signed.type!=Es.MetadataKind.Timestamp)throw new _i.RepositoryError(`Expected 'timestamp', got ${s.signed.type}`);if(this.root.verifyDelegate(Es.MetadataKind.Timestamp,s),this.timestamp){if(s.signed.version{let p=n.signed.meta[c];if(!p)throw new _i.RepositoryError(`Missing file ${c} in new snapshot`);if(p.version{"use strict";Object.defineProperty(UJ,"__esModule",{value:!0});UJ.join=Dvt;var Svt=Ie("url");function Dvt(t,e){return new Svt.URL(Pvt(t)+bvt(e)).toString()}function Pvt(t){return t.endsWith("/")?t:t+"/"}function bvt(t){return t.startsWith("/")?t.slice(1):t}});var Vbe=_(nu=>{"use strict";var xvt=nu&&nu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),kvt=nu&&nu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jJ=nu&&nu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&xvt(e,t,r);return kvt(e,t),e},Qvt=nu&&nu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nu,"__esModule",{value:!0});nu.Updater=void 0;var xA=$O(),Rvt=Qvt(DJ()),m1=jJ(Ie("fs")),uL=jJ(Ie("path")),Tvt=qbe(),fy=sL(),Fvt=LJ(),Nvt=Wbe(),HP=jJ(Ybe()),_J=(0,Rvt.default)("tuf:cache"),HJ=class{constructor(e){let{metadataDir:r,metadataBaseUrl:s,targetDir:a,targetBaseUrl:n,fetcher:c,config:f}=e;this.dir=r,this.metadataBaseUrl=s,this.targetDir=a,this.targetBaseUrl=n,this.forceCache=e.forceCache??!1;let p=this.loadLocalMetadata(xA.MetadataKind.Root);this.trustedSet=new Nvt.TrustedMetadataStore(p),this.config={...Tvt.defaultConfig,...f},this.fetcher=c||new Fvt.DefaultFetcher({timeout:this.config.fetchTimeout,retry:this.config.fetchRetries??this.config.fetchRetry})}async refresh(){if(this.forceCache)try{await this.loadTimestamp({checkRemote:!1})}catch{await this.loadRoot(),await this.loadTimestamp()}else await this.loadRoot(),await this.loadTimestamp();await this.loadSnapshot(),await this.loadTargets(xA.MetadataKind.Targets,xA.MetadataKind.Root)}async getTargetInfo(e){return this.trustedSet.targets||await this.refresh(),this.preorderDepthFirstWalk(e)}async downloadTarget(e,r,s){let a=r||this.generateTargetPath(e);if(!s){if(!this.targetBaseUrl)throw new fy.ValueError("Target base URL not set");s=this.targetBaseUrl}let n=e.path;if(this.trustedSet.root.signed.consistentSnapshot&&this.config.prefixTargetsWithHash){let p=Object.values(e.hashes),{dir:h,base:E}=uL.parse(n),C=`${p[0]}.${E}`;n=h?`${h}/${C}`:C}let f=HP.join(s,n);return await this.fetcher.downloadFile(f,e.length,async p=>{await e.verify(m1.createReadStream(p)),_J("WRITE %s",a),m1.copyFileSync(p,a)}),a}async findCachedTarget(e,r){r||(r=this.generateTargetPath(e));try{if(m1.existsSync(r))return await e.verify(m1.createReadStream(r)),r}catch{return}}loadLocalMetadata(e){let r=uL.join(this.dir,`${e}.json`);return _J("READ %s",r),m1.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,s=r+this.config.maxRootRotations;for(let a=r;a0;){let{roleName:a,parentRoleName:n}=r.pop();if(s.has(a))continue;let c=(await this.loadTargets(a,n))?.signed;if(!c)continue;let f=c.targets?.[e];if(f)return f;if(s.add(a),c.delegations){let p=[],h=c.delegations.rolesForTarget(e);for(let{role:E,terminating:C}of h)if(p.push({roleName:E,parentRoleName:a}),C){r.splice(0);break}p.reverse(),r.push(...p)}}}generateTargetPath(e){if(!this.targetDir)throw new fy.ValueError("Target directory not set");let r=encodeURIComponent(e.path);return uL.join(this.targetDir,r)}persistMetadata(e,r){let s=encodeURIComponent(e);try{let a=uL.join(this.dir,`${s}.json`);_J("WRITE %s",a),m1.writeFileSync(a,r.toString("utf8"))}catch(a){throw new fy.PersistError(`Failed to persist metadata ${s} error: ${a}`)}}};nu.Updater=HJ});var Jbe=_(Qg=>{"use strict";Object.defineProperty(Qg,"__esModule",{value:!0});Qg.Updater=Qg.BaseFetcher=Qg.TargetFile=void 0;var Ovt=$O();Object.defineProperty(Qg,"TargetFile",{enumerable:!0,get:function(){return Ovt.TargetFile}});var Lvt=LJ();Object.defineProperty(Qg,"BaseFetcher",{enumerable:!0,get:function(){return Lvt.BaseFetcher}});var Mvt=Vbe();Object.defineProperty(Qg,"Updater",{enumerable:!0,get:function(){return Mvt.Updater}})});var qJ=_(fL=>{"use strict";Object.defineProperty(fL,"__esModule",{value:!0});fL.TUFError=void 0;var GJ=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.code=e,this.cause=s,this.name=this.constructor.name}};fL.TUFError=GJ});var Kbe=_(jP=>{"use strict";var Uvt=jP&&jP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(jP,"__esModule",{value:!0});jP.readTarget=Hvt;var _vt=Uvt(Ie("fs")),AL=qJ();async function Hvt(t,e){let r=await jvt(t,e);return new Promise((s,a)=>{_vt.default.readFile(r,"utf-8",(n,c)=>{n?a(new AL.TUFError({code:"TUF_READ_TARGET_ERROR",message:`error reading target ${r}`,cause:n})):s(c)})})}async function jvt(t,e){let r;try{r=await t.getTargetInfo(e)}catch(a){throw new AL.TUFError({code:"TUF_REFRESH_METADATA_ERROR",message:"error refreshing TUF metadata",cause:a})}if(!r)throw new AL.TUFError({code:"TUF_FIND_TARGET_ERROR",message:`target ${e} not found`});let s=await t.findCachedTarget(r);if(!s)try{s=await t.downloadTarget(r)}catch(a){throw new AL.TUFError({code:"TUF_DOWNLOAD_TARGET_ERROR",message:`error downloading target ${s}`,cause:a})}return s}});var zbe=_((Iir,Gvt)=>{Gvt.exports={"https://tuf-repo-cdn.sigstore.dev":{"root.json":"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiMzA0NjAyMjEwMDhhYjFmNmYxN2Q0ZjllNmQ3ZGNmMWM4ODkxMmI2YjUzY2MxMDM4ODY0NGFlMWYwOWJjMzdhMDgyY2QwNjAwM2UwMjIxMDBlMTQ1ZWY0YzdiNzgyZDRlODEwN2I1MzQzN2U2NjlkMDQ3Njg5MmNlOTk5OTAzYWUzM2QxNDQ0ODM2Njk5NmU3IgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGM3NjhiMmY4NmRhOTk1NjkwMTljMTYwYTA4MWRhNTRhZTM2YzM0YzBhMzEyMGQzY2I2OWI1M2I3ZDExMzc1OGUwMjIwNGY2NzE1MThmNjE3YjIwZDQ2NTM3ZmFlNmMzYjYzYmFlODkxM2Y0ZjE5NjIxNTYxMDVjYzRmMDE5YWMzNWM2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIjMwNDUwMjIxMDBiNDQzNGU2OTk1ZDM2OGQyM2U3NDc1OWFjZDBjYjkwMTNjODNhNWQzNTExZjBmOTk3ZWM1NGM0NTZhZTQzNTBhMDIyMDE1YjBlMjY1ZDE4MmQyYjYxZGM3NGUxNTVkOThiM2MzZmJlNTY0YmEwNTI4NmFhMTRjOGRmMDJjOWI3NTY1MTYiCiAgfSwKICB7CiAgICJrZXlpZCI6ICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgInNpZyI6ICIzMDQ1MDIyMTAwODJjNTg0MTFkOTg5ZWI5Zjg2MTQxMDg1N2Q0MjM4MTU5MGVjOTQyNGRiZGFhNTFlNzhlZDEzNTE1NDMxOTA0ZTAyMjAxMTgxODVkYTZhNmMyOTQ3MTMxYzE3Nzk3ZTJiYjc2MjBjZTI2ZTVmMzAxZDFjZWFjNWYyYTdlNThmOWRjZjJlIgogIH0sCiAgewogICAia2V5aWQiOiAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIsCiAgICJzaWciOiAiMzA0NjAyMjEwMGM3ODUxMzg1NGNhZTljMzJlYWE2Yjg4ZTE4OTEyZjQ4MDA2YzI3NTdhMjU4ZjkxNzMxMmNhYmE3NTk0OGViOWUwMjIxMDBkOWUxYjRjZTBhZGZlOWZkMmUyMTQ4ZDdmYTI3YTJmNDBiYTExMjJiZDY5ZGE3NjEyZDhkMTc3NmIwMTNjOTFkIgogIH0sCiAgewogICAia2V5aWQiOiAiZmRmYTgzYTA3YjVhODM1ODliODdkZWQ0MWY3N2YzOWQyMzJhZDkxZjdjY2U1Mjg2OGRhY2QwNmJhMDg5ODQ5ZiIsCiAgICJzaWciOiAiMzA0NTAyMjA1NjQ4M2EyZDVkOWVhOWNlYzZlMTFlYWRmYjMzYzQ4NGI2MTQyOThmYWNhMTVhY2YxYzQzMWIxMWVkN2Y3MzRjMDIyMTAwZDBjMWQ3MjZhZjkyYTg3ZTRlNjY0NTljYTVhZGYzOGEwNWI0NGUxZjk0MzE4NDIzZjk1NGJhZThiY2E1YmIyZSIKICB9LAogIHsKICAgImtleWlkIjogImUyZjU5YWNiOTQ4ODUxOTQwN2UxOGNiZmM5MzI5NTEwYmUwM2MwNGFjYTk5MjlkMmYwMzAxMzQzZmVjODU1MjMiLAogICAic2lnIjogIjMwNDYwMjIxMDBkMDA0ZGU4ODAyNGMzMmRjNTY1M2E5ZjQ4NDNjZmM1MjE1NDI3MDQ4YWQ5NjAwZDJjZjljOTY5ZTZlZGZmM2QyMDIyMTAwZDllYmI3OThmNWZjNjZhZjEwODk5ZGVjZTAxNGE4NjI4Y2NmM2M1NDAyY2Q0YTQyNzAyMDc0NzJmOGY2ZTcxMiIKICB9LAogIHsKICAgImtleWlkIjogIjNjMzQ0YWEwNjhmZDRjYzRlODdkYzUwYjYxMmMwMjQzMWZiYzc3MWU5NTAwMzk5MzY4M2EyYjBiZjI2MGNmMGUiLAogICAic2lnIjogIjMwNDYwMjIxMDBiN2IwOTk5NmM0NWNhMmQ0YjA1NjAzZTU2YmFlZmEyOTcxOGEwYjcxMTQ3Y2Y4YzZlNjYzNDliYWE2MTQ3N2RmMDIyMTAwYzRkYTgwYzcxN2I0ZmE3YmJhMGZkNWM3MmRhOGEwNDk5MzU4YjAxMzU4YjIzMDlmNDFkMTQ1NmVhMWU3ZTFkOSIKICB9LAogIHsKICAgImtleWlkIjogImVjODE2Njk3MzRlMDE3OTk2YzViODVmM2QwMmMzZGUxZGQ0NjM3YTE1MjAxOWZlMWFmMTI1ZDJmOTM2OGI5NWUiLAogICAic2lnIjogIjMwNDYwMjIxMDBiZTk3ODJjMzA3NDRlNDExYTgyZmE4NWI1MTM4ZDYwMWNlMTQ4YmMxOTI1OGFlYzY0ZTdlYzI0NDc4ZjM4ODEyMDIyMTAwY2FlZjYzZGNhZjFhNGI5YTUwMGQzYmQwZTNmMTY0ZWMxOGYxYjYzZDdhOTQ2MGQ5YWNhYjEwNjZkYjBmMDE2ZCIKICB9LAogIHsKICAgImtleWlkIjogIjFlMWQ2NWNlOThiMTBhZGRhZDQ3NjRmZWJmN2RkYTJkMDQzNmIzZDNhMzg5MzU3OWMwZGRkYWVhMjBlNTQ4NDkiLAogICAic2lnIjogIjMwNDUwMjIwNzQ2ZWMzZjg1MzRjZTU1NTMxZDBkMDFmZjY0OTY0ZWY0NDBkMWU3ZDJjNGMxNDI0MDliOGU5NzY5ZjFhZGE2ZjAyMjEwMGUzYjkyOWZjZDkzZWExOGZlYWEwODI1ODg3YTcyMTA0ODk4NzlhNjY3ODBjMDdhODNmNGJkNDZlMmYwOWFiM2IiCiAgfQogXSwKICJzaWduZWQiOiB7CiAgIl90eXBlIjogInJvb3QiLAogICJjb25zaXN0ZW50X3NuYXBzaG90IjogdHJ1ZSwKICAiZXhwaXJlcyI6ICIyMDI1LTAyLTE5VDA4OjA0OjMyWiIsCiAgImtleXMiOiB7CiAgICIyMmY0Y2FlYzZkOGU2Zjk1NTVhZjY2YjNkNGMzY2IwNmEzYmIyM2ZkYzdlMzljOTE2YzYxZjQ2MmU2ZjUyYjA2IjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFekJ6Vk9tSENQb2pNVkxTSTM2NFdpaVY4TlByRFxuNklnUnhWbGlza3ovdit5M0pFUjVtY1ZHY09ObGlEY1dNQzVKMmxmSG1qUE5QaGI0SDd4bThMemZTQT09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBzYW50aWFnb3RvcnJlcyIKICAgfSwKICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVpbmlrU3NBUW1Za05lSDVlWXEvQ25JekxhYWNPXG54bFNhYXdRRE93cUt5L3RDcXhxNXh4UFNKYzIxSzRXSWhzOUd5T2tLZnp1ZVkzR0lMemNNSlo0Y1d3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGJvYmNhbGxhd2F5IgogICB9LAogICAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXk4WEtzbWhCWURJOEpjMEd3ekJ4ZUtheDBjbTVcblNUS0VVNjVIUEZ1blVuNDFzVDhwaTBGak00SWtIei9ZVW13bUxVTzBXdDdseGhqNkJrTElLNHFZQXc9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAZGxvcmVuYyIKICAgfSwKICAgIjcyNDdmMGRiYWQ4NWIxNDdlMTg2M2JhZGU3NjEyNDNjYzc4NWRjYjdhYTQxMGU3MTA1ZGQzZDJiNjFhMzZkMmMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6Ly9wcm9qZWN0cy9zaWdzdG9yZS1yb290LXNpZ25pbmcvbG9jYXRpb25zL2dsb2JhbC9rZXlSaW5ncy9yb290L2NyeXB0b0tleXMvdGltZXN0YW1wIgogICB9LAogICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTBnaHJoOTJMdzFZcjNpZEdWNVdxQ3RNREI4Q3hcbitEOGhkQzR3MlpMTklwbFZSb1ZHTHNrWWEzZ2hlTXlPamlKOGtQaTE1YVEyLy83UCtvajdVdkpQR3c9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAam9zaHVhZ2wiCiAgIH0sCiAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFRVhzejNTWlhGYjhqTVY0Mmo2cEpseWpialI4S1xuTjNCd29jZXhxNkxNSWI1cXNXS09RdkxOMTZOVWVmTGM0SHN3T291bVJzVlZhYWpTcFFTNmZvYmtSdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBtbm02NzgiCiAgIH0KICB9LAogICJyb2xlcyI6IHsKICAgInJvb3QiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAic25hcHNob3QiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI3MjQ3ZjBkYmFkODViMTQ3ZTE4NjNiYWRlNzYxMjQzY2M3ODVkY2I3YWE0MTBlNzEwNWRkM2QyYjYxYTM2ZDJjIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAxLAogICAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAzNjUwLAogICAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogMzY1CiAgIH0sCiAgICJ0YXJnZXRzIjogewogICAgImtleWlkcyI6IFsKICAgICAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiLAogICAgICIyMmY0Y2FlYzZkOGU2Zjk1NTVhZjY2YjNkNGMzY2IwNmEzYmIyM2ZkYzdlMzljOTE2YzYxZjQ2MmU2ZjUyYjA2IiwKICAgICAiNjE2NDM4MzgxMjViNDQwYjQwZGI2OTQyZjVjYjVhMzFjMGRjMDQzNjgzMTZlYjJhYWE1OGI5NTkwNGE1ODIyMiIsCiAgICAgImE2ODdlNWJmNGZhYjgyYjBlZTU4ZDQ2ZTA1Yzk1MzUxNDVhMmM5YWZiNDU4ZjQzZDQyYjQ1Y2EwZmRjZTJhNzAiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDMKICAgfSwKICAgInRpbWVzdGFtcCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjcyNDdmMGRiYWQ4NWIxNDdlMTg2M2JhZGU3NjEyNDNjYzc4NWRjYjdhYTQxMGU3MTA1ZGQzZDJiNjFhMzZkMmMiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDcsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiA0CiAgIH0KICB9LAogICJzcGVjX3ZlcnNpb24iOiAiMS4wIiwKICAidmVyc2lvbiI6IDEwLAogICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogMTgyLAogICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDMxCiB9Cn0=",targets:{"trusted_root.json":"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXSwKICAidGltZXN0YW1wQXV0aG9yaXRpZXMiOiBbCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAiR2l0SHViLCBJbmMuIiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJJbnRlcm5hbCBTZXJ2aWNlcyBSb290IgogICAgICB9LAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlCM0RDQ0FXS2dBd0lCQWdJVWNoa05zSDM2WGEwNGIxTHFJYytxcjlEVmVjTXdDZ1lJS29aSXpqMEVBd013TWpFVk1CTUdBMVVFQ2hNTVIybDBTSFZpTENCSmJtTXVNUmt3RndZRFZRUURFeEJVVTBFZ2FXNTBaWEp0WldScFlYUmxNQjRYRFRJek1EUXhOREF3TURBd01Gb1hEVEkwTURReE16QXdNREF3TUZvd01qRVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVJrd0Z3WURWUVFERXhCVVUwRWdWR2x0WlhOMFlXMXdhVzVuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFVUQ1Wk5iU3FZTWQ2cjhxcE9PRVg5aWJHblpUOUdzdVhPaHIvZjhVOUZKdWdCR0V4S1lwNDBPVUxTMGVyalpXN3hWOXhWNTJObkpmNU9lRHE0ZTVaS3FOV01GUXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUlNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVhVzFSdWRPZ1Z0MGxlcVkwV0tZYnVQcjQ3d0F3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3YlVIOUh2RDRlakNaSk9XUW5xQWxrcVVSbGx2dTlNOCtWcUxiaVJLK3pTZlpDWndzaWxqUm44TVFRUlNrWEVFNUFqRUFnK1Z4cXRvamZWZnU4RGh6emhDeDlHS0VUYkpIYjE5aVY3Mm1NS1ViREFGbXpaNmJROGI1NFpiOHRpZHk1YVdlIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUNFRENDQVpXZ0F3SUJBZ0lVWDhaTzVRWFA3dk40ZE1RNWU5c1UzbnViOE9nd0NnWUlLb1pJemowRUF3TXdPREVWTUJNR0ExVUVDaE1NUjJsMFNIVmlMQ0JKYm1NdU1SOHdIUVlEVlFRREV4WkpiblJsY201aGJDQlRaWEoyYVdObGN5QlNiMjkwTUI0WERUSXpNRFF4TkRBd01EQXdNRm9YRFRJNE1EUXhNakF3TURBd01Gb3dNakVWTUJNR0ExVUVDaE1NUjJsMFNIVmlMQ0JKYm1NdU1Sa3dGd1lEVlFRREV4QlVVMEVnYVc1MFpYSnRaV1JwWVhSbE1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdk1MWS9kVFZidklKWUFOQXVzekV3Sm5RRTFsbGZ0eW55TUtJTWhoNDhIbXFiVnI1eWd5YnpzTFJMVktiQldPZFoyMWFlSnorZ1ppeXRaZXRxY3lGOVdsRVI1TkVNZjZKVjdaTm9qUXB4SHE0UkhHb0dTY2VRdi9xdlRpWnhFREtvMll3WkRBT0JnTlZIUThCQWY4RUJBTUNBUVl3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWFXMVJ1ZE9nVnQwbGVxWTBXS1lidVByNDd3QXdId1lEVlIwakJCZ3dGb0FVOU5ZWWxvYm5BRzRjMC9xanh5SC9scS93eitRd0NnWUlLb1pJemowRUF3TURhUUF3WmdJeEFLMUIxODV5Z0NySVlGbElzM0dqc3dqbndTTUc2TFk4d29MVmRha0tEWnhWYThmOGNxTXMxRGhjeEowKzA5dzk1UUl4QU8rdEJ6Wms3dmpVSjlpSmdENFI2WldUeFFXS3FObTc0ak85OW8rbzlzdjRGSS9TWlRaVEZ5TW4wSUpFSGRObXlBPT0iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQjlEQ0NBWHFnQXdJQkFnSVVhL0pBa2RVaks0SlV3c3F0YWlSSkdXaHFMU293Q2dZSUtvWkl6ajBFQXdNd09ERVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVI4d0hRWURWUVFERXhaSmJuUmxjbTVoYkNCVFpYSjJhV05sY3lCU2IyOTBNQjRYRFRJek1EUXhOREF3TURBd01Gb1hEVE16TURReE1UQXdNREF3TUZvd09ERVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVI4d0hRWURWUVFERXhaSmJuUmxjbTVoYkNCVFpYSjJhV05sY3lCU2IyOTBNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRWY5akZBWHh6NGt4NjhBSFJNT2tGQmhmbERjTVR2emFYejR4L0ZDY1hqSi8xcUVLb24vcVBJR25hVVJza0R0eU5iTkRPcGVKVERERnF0NDhpTVBybnpweDZJWndxZW1mVUpONHhCRVpmemErcFl0L2l5b2QrOXRacjIwUlJXU3YvbzBVd1F6QU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWRCZ05WSFE0RUZnUVU5TllZbG9ibkFHNGMwL3FqeHlIL2xxL3d6K1F3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl4QUxaTFo4QmdSWHpLeExNTU45VklsTytlNGhyQm5OQmdGN3R6N0hucm93djJOZXRaRXJJQUNLRnltQmx2V0R2dE1BSXdaTytraTZzc1ExYnNabzk4TzhtRUFmMk5aN2lpQ2dERFUwVndqZWNvNnp5ZWgwekJUczkvN2dWNkFITlE1M3hEIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgInZhbGlkRm9yIjogewogICAgICAgICJzdGFydCI6ICIyMDIzLTA0LTE0VDAwOjAwOjAwLjAwMFoiCiAgICAgIH0KICAgIH0KICBdCn0K","registry.npmjs.org%2Fkeys.json":"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K"}}}});var Xbe=_(y1=>{"use strict";var Zbe=y1&&y1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(y1,"__esModule",{value:!0});y1.TUFClient=void 0;var Rg=Zbe(Ie("fs")),GP=Zbe(Ie("path")),qvt=Jbe(),Wvt=pL(),Yvt=Kbe(),YJ="targets",WJ=class{constructor(e){let r=new URL(e.mirrorURL),s=encodeURIComponent(r.host+r.pathname.replace(/\/$/,"")),a=GP.default.join(e.cachePath,s);Vvt(a),Jvt({cachePath:a,mirrorURL:e.mirrorURL,tufRootPath:e.rootPath,forceInit:e.forceInit}),this.updater=Kvt({mirrorURL:e.mirrorURL,cachePath:a,forceCache:e.forceCache,retry:e.retry,timeout:e.timeout})}async refresh(){return this.updater.refresh()}getTarget(e){return(0,Yvt.readTarget)(this.updater,e)}};y1.TUFClient=WJ;function Vvt(t){let e=GP.default.join(t,YJ);Rg.default.existsSync(t)||Rg.default.mkdirSync(t,{recursive:!0}),Rg.default.existsSync(e)||Rg.default.mkdirSync(e)}function Jvt({cachePath:t,mirrorURL:e,tufRootPath:r,forceInit:s}){let a=GP.default.join(t,"root.json");if(!Rg.default.existsSync(a)||s)if(r)Rg.default.copyFileSync(r,a);else{let c=zbe()[e];if(!c)throw new Wvt.TUFError({code:"TUF_INIT_CACHE_ERROR",message:`No root.json found for mirror: ${e}`});Rg.default.writeFileSync(a,Buffer.from(c["root.json"],"base64")),Object.entries(c.targets).forEach(([f,p])=>{Rg.default.writeFileSync(GP.default.join(t,YJ,f),Buffer.from(p,"base64"))})}}function Kvt(t){let e={fetchTimeout:t.timeout,fetchRetry:t.retry};return new qvt.Updater({metadataBaseUrl:t.mirrorURL,targetBaseUrl:`${t.mirrorURL}/targets`,metadataDir:t.cachePath,targetDir:GP.default.join(t.cachePath,YJ),forceCache:t.forceCache,config:e})}});var pL=_(gh=>{"use strict";Object.defineProperty(gh,"__esModule",{value:!0});gh.TUFError=gh.DEFAULT_MIRROR_URL=void 0;gh.getTrustedRoot=nSt;gh.initTUF=iSt;var zvt=mP(),Zvt=QPe(),Xvt=Xbe();gh.DEFAULT_MIRROR_URL="https://tuf-repo-cdn.sigstore.dev";var $vt="sigstore-js",eSt={retries:2},tSt=5e3,rSt="trusted_root.json";async function nSt(t={}){let r=await $be(t).getTarget(rSt);return zvt.TrustedRoot.fromJSON(JSON.parse(r))}async function iSt(t={}){let e=$be(t);return e.refresh().then(()=>e)}function $be(t){return new Xvt.TUFClient({cachePath:t.cachePath||(0,Zvt.appDataPath)($vt),rootPath:t.rootPath,mirrorURL:t.mirrorURL||gh.DEFAULT_MIRROR_URL,retry:t.retry??eSt,timeout:t.timeout??tSt,forceCache:t.forceCache??!1,forceInit:t.forceInit??t.force??!1})}var sSt=qJ();Object.defineProperty(gh,"TUFError",{enumerable:!0,get:function(){return sSt.TUFError}})});var exe=_(hL=>{"use strict";Object.defineProperty(hL,"__esModule",{value:!0});hL.DSSESignatureContent=void 0;var qP=Cl(),VJ=class{constructor(e){this.env=e}compareDigest(e){return qP.crypto.bufferEqual(e,qP.crypto.digest("sha256",this.env.payload))}compareSignature(e){return qP.crypto.bufferEqual(e,this.signature)}verifySignature(e){return qP.crypto.verify(this.preAuthEncoding,e,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from("")}get preAuthEncoding(){return qP.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};hL.DSSESignatureContent=VJ});var txe=_(gL=>{"use strict";Object.defineProperty(gL,"__esModule",{value:!0});gL.MessageSignatureContent=void 0;var JJ=Cl(),KJ=class{constructor(e,r){this.signature=e.signature,this.messageDigest=e.messageDigest.digest,this.artifact=r}compareSignature(e){return JJ.crypto.bufferEqual(e,this.signature)}compareDigest(e){return JJ.crypto.bufferEqual(e,this.messageDigest)}verifySignature(e){return JJ.crypto.verify(this.artifact,e,this.signature)}};gL.MessageSignatureContent=KJ});var nxe=_(dL=>{"use strict";Object.defineProperty(dL,"__esModule",{value:!0});dL.toSignedEntity=lSt;dL.signatureContent=rxe;var zJ=Cl(),oSt=exe(),aSt=txe();function lSt(t,e){let{tlogEntries:r,timestampVerificationData:s}=t.verificationMaterial,a=[];for(let n of r)a.push({$case:"transparency-log",tlogEntry:n});for(let n of s?.rfc3161Timestamps??[])a.push({$case:"timestamp-authority",timestamp:zJ.RFC3161Timestamp.parse(n.signedTimestamp)});return{signature:rxe(t,e),key:cSt(t),tlogEntries:r,timestamps:a}}function rxe(t,e){switch(t.content.$case){case"dsseEnvelope":return new oSt.DSSESignatureContent(t.content.dsseEnvelope);case"messageSignature":return new aSt.MessageSignatureContent(t.content.messageSignature,e)}}function cSt(t){switch(t.verificationMaterial.content.$case){case"publicKey":return{$case:"public-key",hint:t.verificationMaterial.content.publicKey.hint};case"x509CertificateChain":return{$case:"certificate",certificate:zJ.X509Certificate.parse(t.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case"certificate":return{$case:"certificate",certificate:zJ.X509Certificate.parse(t.verificationMaterial.content.certificate.rawBytes)}}}});var Eo=_(E1=>{"use strict";Object.defineProperty(E1,"__esModule",{value:!0});E1.PolicyError=E1.VerificationError=void 0;var mL=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.code=e,this.cause=s,this.name=this.constructor.name}},ZJ=class extends mL{};E1.VerificationError=ZJ;var XJ=class extends mL{};E1.PolicyError=XJ});var ixe=_(yL=>{"use strict";Object.defineProperty(yL,"__esModule",{value:!0});yL.filterCertAuthorities=uSt;yL.filterTLogAuthorities=fSt;function uSt(t,e){return t.filter(r=>r.validFor.start<=e.start&&r.validFor.end>=e.end)}function fSt(t,e){return t.filter(r=>e.logID&&!r.logID.equals(e.logID)?!1:r.validFor.start<=e.targetDate&&e.targetDate<=r.validFor.end)}});var py=_(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.filterTLogAuthorities=Ay.filterCertAuthorities=void 0;Ay.toTrustMaterial=pSt;var $J=Cl(),WP=mP(),ASt=Eo(),eK=new Date(0),tK=new Date(864e13),axe=ixe();Object.defineProperty(Ay,"filterCertAuthorities",{enumerable:!0,get:function(){return axe.filterCertAuthorities}});Object.defineProperty(Ay,"filterTLogAuthorities",{enumerable:!0,get:function(){return axe.filterTLogAuthorities}});function pSt(t,e){let r=typeof e=="function"?e:hSt(e);return{certificateAuthorities:t.certificateAuthorities.map(oxe),timestampAuthorities:t.timestampAuthorities.map(oxe),tlogs:t.tlogs.map(sxe),ctlogs:t.ctlogs.map(sxe),publicKey:r}}function sxe(t){let e=t.publicKey.keyDetails,r=e===WP.PublicKeyDetails.PKCS1_RSA_PKCS1V5||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V5||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?"pkcs1":"spki";return{logID:t.logId.keyId,publicKey:$J.crypto.createPublicKey(t.publicKey.rawBytes,r),validFor:{start:t.publicKey.validFor?.start||eK,end:t.publicKey.validFor?.end||tK}}}function oxe(t){return{certChain:t.certChain.certificates.map(e=>$J.X509Certificate.parse(e.rawBytes)),validFor:{start:t.validFor?.start||eK,end:t.validFor?.end||tK}}}function hSt(t){return e=>{let r=(t||{})[e];if(!r)throw new ASt.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${e}`});return{publicKey:$J.crypto.createPublicKey(r.rawBytes),validFor:s=>(r.validFor?.start||eK)<=s&&(r.validFor?.end||tK)>=s}}}});var rK=_(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});YP.CertificateChainVerifier=void 0;YP.verifyCertificateChain=dSt;var hy=Eo(),gSt=py();function dSt(t,e){let r=(0,gSt.filterCertAuthorities)(e,{start:t.notBefore,end:t.notAfter}),s;for(let a of r)try{return new EL({trustedCerts:a.certChain,untrustedCert:t}).verify()}catch(n){s=n}throw new hy.VerificationError({code:"CERTIFICATE_ERROR",message:"Failed to verify certificate chain",cause:s})}var EL=class{constructor(e){this.untrustedCert=e.untrustedCert,this.trustedCerts=e.trustedCerts,this.localCerts=mSt([...e.trustedCerts,e.untrustedCert])}verify(){let e=this.sort();return this.checkPath(e),e}sort(){let e=this.untrustedCert,r=this.buildPaths(e);if(r=r.filter(a=>a.some(n=>this.trustedCerts.includes(n))),r.length===0)throw new hy.VerificationError({code:"CERTIFICATE_ERROR",message:"no trusted certificate path found"});let s=r.reduce((a,n)=>a.length{if(s&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(s)&&r.push(a);return}a.subject.equals(e.issuer)&&r.push(a)}),r=r.filter(a=>{try{return e.verify(a)}catch{return!1}}),r)}checkPath(e){if(e.length<1)throw new hy.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate chain must contain at least one certificate"});if(!e.slice(1).every(s=>s.isCA))throw new hy.VerificationError({code:"CERTIFICATE_ERROR",message:"intermediate certificate is not a CA"});for(let s=e.length-2;s>=0;s--)if(!e[s].issuer.equals(e[s+1].subject))throw new hy.VerificationError({code:"CERTIFICATE_ERROR",message:"incorrect certificate name chaining"});for(let s=0;s{"use strict";Object.defineProperty(nK,"__esModule",{value:!0});nK.verifySCTs=ISt;var IL=Cl(),ySt=Eo(),ESt=py();function ISt(t,e,r){let s,a=t.clone();for(let p=0;p{if(!(0,ESt.filterTLogAuthorities)(r,{logID:p.logID,targetDate:p.datetime}).some(C=>p.verify(n.buffer,C.publicKey)))throw new ySt.VerificationError({code:"CERTIFICATE_ERROR",message:"SCT verification failed"});return p.logID})}});var uxe=_(CL=>{"use strict";Object.defineProperty(CL,"__esModule",{value:!0});CL.verifyPublicKey=DSt;CL.verifyCertificate=PSt;var CSt=Cl(),cxe=Eo(),wSt=rK(),BSt=lxe(),vSt="1.3.6.1.4.1.57264.1.1",SSt="1.3.6.1.4.1.57264.1.8";function DSt(t,e,r){let s=r.publicKey(t);return e.forEach(a=>{if(!s.validFor(a))throw new cxe.VerificationError({code:"PUBLIC_KEY_ERROR",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:s.publicKey}}function PSt(t,e,r){let s=(0,wSt.verifyCertificateChain)(t,r.certificateAuthorities);if(!e.every(n=>s.every(c=>c.validForDate(n))))throw new cxe.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate is not valid or expired at the specified date"});return{scts:(0,BSt.verifySCTs)(s[0],s[1],r.ctlogs),signer:bSt(s[0])}}function bSt(t){let e,r=t.extension(SSt);r?e=r.valueObj.subs?.[0]?.value.toString("ascii"):e=t.extension(vSt)?.value.toString("ascii");let s={extensions:{issuer:e},subjectAlternativeName:t.subjectAltName};return{key:CSt.crypto.createPublicKey(t.publicKey),identity:s}}});var Axe=_(wL=>{"use strict";Object.defineProperty(wL,"__esModule",{value:!0});wL.verifySubjectAlternativeName=xSt;wL.verifyExtensions=kSt;var fxe=Eo();function xSt(t,e){if(e===void 0||!e.match(t))throw new fxe.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`certificate identity error - expected ${t}, got ${e}`})}function kSt(t,e={}){let r;for(r in t)if(e[r]!==t[r])throw new fxe.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`invalid certificate extension - expected ${r}=${t[r]}, got ${r}=${e[r]}`})}});var pxe=_(lK=>{"use strict";Object.defineProperty(lK,"__esModule",{value:!0});lK.verifyCheckpoint=TSt;var sK=Cl(),I1=Eo(),QSt=py(),iK=` `,RSt=/\u2014 (\S+) (\S+)\n/g;function TSt(t,e){let r=(0,QSt.filterTLogAuthorities)(e,{targetDate:new Date(Number(t.integratedTime)*1e3)}),s=t.inclusionProof,a=oK.fromString(s.checkpoint.envelope),n=aK.fromString(a.note);if(!FSt(a,r))throw new I1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!sK.crypto.bufferEqual(n.logHash,s.rootHash))throw new I1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function FSt(t,e){let r=Buffer.from(t.note,"utf-8");return t.signatures.every(s=>{let a=e.find(n=>sK.crypto.bufferEqual(n.logID.subarray(0,4),s.keyHint));return a?sK.crypto.verify(r,a.publicKey,s.signature):!1})}var oK=class t{constructor(e,r){this.note=e,this.signatures=r}static fromString(e){if(!e.includes(iK))throw new I1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=e.indexOf(iK),s=e.slice(0,r+1),n=e.slice(r+iK.length).matchAll(RSt),c=Array.from(n,f=>{let[,p,h]=f,E=Buffer.from(h,"base64");if(E.length<5)throw new I1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:p,keyHint:E.subarray(0,4),signature:E.subarray(4)}});if(c.length===0)throw new I1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new t(s,c)}},aK=class t{constructor(e,r,s,a){this.origin=e,this.logSize=r,this.logHash=s,this.rest=a}static fromString(e){let r=e.trimEnd().split(` `);if(r.length<3)throw new I1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let s=r[0],a=BigInt(r[1]),n=Buffer.from(r[2],"base64"),c=r.slice(3);return new t(s,a,n,c)}}});var hxe=_(AK=>{"use strict";Object.defineProperty(AK,"__esModule",{value:!0});AK.verifyMerkleInclusion=LSt;var fK=Cl(),cK=Eo(),NSt=Buffer.from([0]),OSt=Buffer.from([1]);function LSt(t){let e=t.inclusionProof,r=BigInt(e.logIndex),s=BigInt(e.treeSize);if(r<0n||r>=s)throw new cK.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:n}=MSt(r,s);if(e.hashes.length!==a+n)throw new cK.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let c=e.hashes.slice(0,a),f=e.hashes.slice(a),p=qSt(t.canonicalizedBody),h=_St(USt(p,c,r),f);if(!fK.crypto.bufferEqual(h,e.rootHash))throw new cK.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function MSt(t,e){let r=HSt(t,e),s=jSt(t>>BigInt(r));return{inner:r,border:s}}function USt(t,e,r){return e.reduce((s,a,n)=>r>>BigInt(n)&BigInt(1)?uK(a,s):uK(s,a),t)}function _St(t,e){return e.reduce((r,s)=>uK(s,r),t)}function HSt(t,e){return GSt(t^e-BigInt(1))}function jSt(t){return t.toString(2).split("1").length-1}function GSt(t){return t===0n?0:t.toString(2).length}function uK(t,e){return fK.crypto.digest("sha256",OSt,t,e)}function qSt(t){return fK.crypto.digest("sha256",NSt,t)}});var dxe=_(pK=>{"use strict";Object.defineProperty(pK,"__esModule",{value:!0});pK.verifyTLogSET=VSt;var gxe=Cl(),WSt=Eo(),YSt=py();function VSt(t,e){if(!(0,YSt.filterTLogAuthorities)(e,{logID:t.logId.keyId,targetDate:new Date(Number(t.integratedTime)*1e3)}).some(a=>{let n=JSt(t),c=Buffer.from(gxe.json.canonicalize(n),"utf8"),f=t.inclusionPromise.signedEntryTimestamp;return gxe.crypto.verify(c,a.publicKey,f)}))throw new WSt.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function JSt(t){let{integratedTime:e,logIndex:r,logId:s,canonicalizedBody:a}=t;return{body:a.toString("base64"),integratedTime:Number(e),logIndex:Number(r),logID:s.keyId.toString("hex")}}});var mxe=_(dK=>{"use strict";Object.defineProperty(dK,"__esModule",{value:!0});dK.verifyRFC3161Timestamp=ZSt;var hK=Cl(),gK=Eo(),KSt=rK(),zSt=py();function ZSt(t,e,r){let s=t.signingTime;if(r=(0,zSt.filterCertAuthorities)(r,{start:s,end:s}),r=$St(r,{serialNumber:t.signerSerialNumber,issuer:t.signerIssuer}),!r.some(n=>{try{return XSt(t,e,n),!0}catch{return!1}}))throw new gK.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function XSt(t,e,r){let[s,...a]=r.certChain,n=hK.crypto.createPublicKey(s.publicKey),c=t.signingTime;try{new KSt.CertificateChainVerifier({untrustedCert:s,trustedCerts:a}).verify()}catch{throw new gK.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}if(!r.certChain.every(p=>p.validForDate(c)))throw new gK.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp was signed with an expired certificate"});t.verify(e,n)}function $St(t,e){return t.filter(r=>r.certChain.length>0&&hK.crypto.bufferEqual(r.certChain[0].serialNumber,e.serialNumber)&&hK.crypto.bufferEqual(r.certChain[0].issuer,e.issuer))}});var yxe=_(BL=>{"use strict";Object.defineProperty(BL,"__esModule",{value:!0});BL.verifyTSATimestamp=sDt;BL.verifyTLogTimestamp=oDt;var eDt=Eo(),tDt=pxe(),rDt=hxe(),nDt=dxe(),iDt=mxe();function sDt(t,e,r){return(0,iDt.verifyRFC3161Timestamp)(t,e,r),{type:"timestamp-authority",logID:t.signerSerialNumber,timestamp:t.signingTime}}function oDt(t,e){let r=!1;if(aDt(t)&&((0,nDt.verifyTLogSET)(t,e),r=!0),lDt(t)&&((0,rDt.verifyMerkleInclusion)(t),(0,tDt.verifyCheckpoint)(t,e),r=!0),!r)throw new eDt.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:t.logId.keyId,timestamp:new Date(Number(t.integratedTime)*1e3)}}function aDt(t){return t.inclusionPromise!==void 0}function lDt(t){return t.inclusionProof!==void 0}});var Exe=_(mK=>{"use strict";Object.defineProperty(mK,"__esModule",{value:!0});mK.verifyDSSETLogBody=cDt;var vL=Eo();function cDt(t,e){switch(t.apiVersion){case"0.0.1":return uDt(t,e);default:throw new vL.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${t.apiVersion}`})}}function uDt(t,e){if(t.spec.signatures?.length!==1)throw new vL.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=t.spec.signatures[0].signature;if(!e.compareSignature(Buffer.from(r,"base64")))throw new vL.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let s=t.spec.payloadHash?.value||"";if(!e.compareDigest(Buffer.from(s,"hex")))throw new vL.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var Ixe=_(EK=>{"use strict";Object.defineProperty(EK,"__esModule",{value:!0});EK.verifyHashedRekordTLogBody=fDt;var yK=Eo();function fDt(t,e){switch(t.apiVersion){case"0.0.1":return ADt(t,e);default:throw new yK.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported hashedrekord version: ${t.apiVersion}`})}}function ADt(t,e){let r=t.spec.signature.content||"";if(!e.compareSignature(Buffer.from(r,"base64")))throw new yK.VerificationError({code:"TLOG_BODY_ERROR",message:"signature mismatch"});let s=t.spec.data.hash?.value||"";if(!e.compareDigest(Buffer.from(s,"hex")))throw new yK.VerificationError({code:"TLOG_BODY_ERROR",message:"digest mismatch"})}});var Cxe=_(IK=>{"use strict";Object.defineProperty(IK,"__esModule",{value:!0});IK.verifyIntotoTLogBody=pDt;var SL=Eo();function pDt(t,e){switch(t.apiVersion){case"0.0.2":return hDt(t,e);default:throw new SL.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported intoto version: ${t.apiVersion}`})}}function hDt(t,e){if(t.spec.content.envelope.signatures?.length!==1)throw new SL.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=gDt(t.spec.content.envelope.signatures[0].sig);if(!e.compareSignature(Buffer.from(r,"base64")))throw new SL.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let s=t.spec.content.payloadHash?.value||"";if(!e.compareDigest(Buffer.from(s,"hex")))throw new SL.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}function gDt(t){return Buffer.from(t,"base64").toString("utf-8")}});var Bxe=_(CK=>{"use strict";Object.defineProperty(CK,"__esModule",{value:!0});CK.verifyTLogBody=EDt;var wxe=Eo(),dDt=Exe(),mDt=Ixe(),yDt=Cxe();function EDt(t,e){let{kind:r,version:s}=t.kindVersion,a=JSON.parse(t.canonicalizedBody.toString("utf8"));if(r!==a.kind||s!==a.apiVersion)throw new wxe.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${s}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case"dsse":return(0,dDt.verifyDSSETLogBody)(a,e);case"intoto":return(0,yDt.verifyIntotoTLogBody)(a,e);case"hashedrekord":return(0,mDt.verifyHashedRekordTLogBody)(a,e);default:throw new wxe.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}});var bxe=_(DL=>{"use strict";Object.defineProperty(DL,"__esModule",{value:!0});DL.Verifier=void 0;var IDt=Ie("util"),C1=Eo(),vxe=uxe(),Sxe=Axe(),Dxe=yxe(),CDt=Bxe(),wK=class{constructor(e,r={}){this.trustMaterial=e,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(e,r){let s=this.verifyTimestamps(e),a=this.verifySigningKey(e,s);return this.verifyTLogs(e),this.verifySignature(e,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(e){let r=0,s=0,a=e.timestamps.map(n=>{switch(n.$case){case"timestamp-authority":return s++,(0,Dxe.verifyTSATimestamp)(n.timestamp,e.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,Dxe.verifyTLogTimestamp)(n.tlogEntry,this.trustMaterial.tlogs)}});if(Pxe(a))throw new C1.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(rn.timestamp)}verifySigningKey({key:e},r){switch(e.$case){case"public-key":return(0,vxe.verifyPublicKey)(e.hint,r,this.trustMaterial);case"certificate":{let s=(0,vxe.verifyCertificate)(e.certificate,r,this.trustMaterial);if(Pxe(s.scts))throw new C1.VerificationError({code:"CERTIFICATE_ERROR",message:"duplicate SCT"});if(s.scts.length(0,CDt.verifyTLogBody)(s,e))}verifySignature(e,r){if(!e.signature.verifySignature(r.key))throw new C1.VerificationError({code:"SIGNATURE_ERROR",message:"signature verification failed"})}verifyPolicy(e,r){e.subjectAlternativeName&&(0,Sxe.verifySubjectAlternativeName)(e.subjectAlternativeName,r.subjectAlternativeName),e.extensions&&(0,Sxe.verifyExtensions)(e.extensions,r.extensions)}};DL.Verifier=wK;function Pxe(t){for(let e=0;e{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.Verifier=iu.toTrustMaterial=iu.VerificationError=iu.PolicyError=iu.toSignedEntity=void 0;var wDt=nxe();Object.defineProperty(iu,"toSignedEntity",{enumerable:!0,get:function(){return wDt.toSignedEntity}});var xxe=Eo();Object.defineProperty(iu,"PolicyError",{enumerable:!0,get:function(){return xxe.PolicyError}});Object.defineProperty(iu,"VerificationError",{enumerable:!0,get:function(){return xxe.VerificationError}});var BDt=py();Object.defineProperty(iu,"toTrustMaterial",{enumerable:!0,get:function(){return BDt.toTrustMaterial}});var vDt=bxe();Object.defineProperty(iu,"Verifier",{enumerable:!0,get:function(){return vDt.Verifier}})});var kxe=_(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.DEFAULT_TIMEOUT=Fa.DEFAULT_RETRY=void 0;Fa.createBundleBuilder=PDt;Fa.createKeyFinder=bDt;Fa.createVerificationPolicy=xDt;var SDt=Cl(),w1=F7(),DDt=PL();Fa.DEFAULT_RETRY={retries:2};Fa.DEFAULT_TIMEOUT=5e3;function PDt(t,e){let r={signer:kDt(e),witnesses:RDt(e)};switch(t){case"messageSignature":return new w1.MessageSignatureBundleBuilder(r);case"dsseEnvelope":return new w1.DSSEBundleBuilder({...r,certificateChain:e.legacyCompatibility})}}function bDt(t){return e=>{let r=t(e);if(!r)throw new DDt.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${e}`});return{publicKey:SDt.crypto.createPublicKey(r),validFor:()=>!0}}}function xDt(t){let e={},r=t.certificateIdentityEmail||t.certificateIdentityURI;return r&&(e.subjectAlternativeName=r),t.certificateIssuer&&(e.extensions={issuer:t.certificateIssuer}),e}function kDt(t){return new w1.FulcioSigner({fulcioBaseURL:t.fulcioURL,identityProvider:t.identityProvider||QDt(t),retry:t.retry??Fa.DEFAULT_RETRY,timeout:t.timeout??Fa.DEFAULT_TIMEOUT})}function QDt(t){let e=t.identityToken;return e?{getToken:()=>Promise.resolve(e)}:new w1.CIContextProvider("sigstore")}function RDt(t){let e=[];return TDt(t)&&e.push(new w1.RekorWitness({rekorBaseURL:t.rekorURL,entryType:t.legacyCompatibility?"intoto":"dsse",fetchOnConflict:!1,retry:t.retry??Fa.DEFAULT_RETRY,timeout:t.timeout??Fa.DEFAULT_TIMEOUT})),FDt(t)&&e.push(new w1.TSAWitness({tsaBaseURL:t.tsaServerURL,retry:t.retry??Fa.DEFAULT_RETRY,timeout:t.timeout??Fa.DEFAULT_TIMEOUT})),e}function TDt(t){return t.tlogUpload!==!1}function FDt(t){return t.tsaServerURL!==void 0}});var Txe=_(su=>{"use strict";var NDt=su&&su.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),ODt=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Qxe=su&&su.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;aa.verify(t,s))}async function Rxe(t={}){let e=await LDt.getTrustedRoot({mirrorURL:t.tufMirrorURL,rootPath:t.tufRootPath,cachePath:t.tufCachePath,forceCache:t.tufForceCache,retry:t.retry??B1.DEFAULT_RETRY,timeout:t.timeout??B1.DEFAULT_TIMEOUT}),r=t.keySelector?B1.createKeyFinder(t.keySelector):void 0,s=(0,BK.toTrustMaterial)(e,r),a={ctlogThreshold:t.ctLogThreshold,tlogThreshold:t.tlogThreshold},n=new BK.Verifier(s,a),c=B1.createVerificationPolicy(t);return{verify:(f,p)=>{let h=(0,vK.bundleFromJSON)(f),E=(0,BK.toSignedEntity)(h,p);n.verify(E,c)}}}});var Nxe=_(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.verify=Ni.sign=Ni.createVerifier=Ni.attest=Ni.VerificationError=Ni.PolicyError=Ni.TUFError=Ni.InternalError=Ni.DEFAULT_REKOR_URL=Ni.DEFAULT_FULCIO_URL=Ni.ValidationError=void 0;var HDt=EP();Object.defineProperty(Ni,"ValidationError",{enumerable:!0,get:function(){return HDt.ValidationError}});var SK=F7();Object.defineProperty(Ni,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return SK.DEFAULT_FULCIO_URL}});Object.defineProperty(Ni,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return SK.DEFAULT_REKOR_URL}});Object.defineProperty(Ni,"InternalError",{enumerable:!0,get:function(){return SK.InternalError}});var jDt=pL();Object.defineProperty(Ni,"TUFError",{enumerable:!0,get:function(){return jDt.TUFError}});var Fxe=PL();Object.defineProperty(Ni,"PolicyError",{enumerable:!0,get:function(){return Fxe.PolicyError}});Object.defineProperty(Ni,"VerificationError",{enumerable:!0,get:function(){return Fxe.VerificationError}});var bL=Txe();Object.defineProperty(Ni,"attest",{enumerable:!0,get:function(){return bL.attest}});Object.defineProperty(Ni,"createVerifier",{enumerable:!0,get:function(){return bL.createVerifier}});Object.defineProperty(Ni,"sign",{enumerable:!0,get:function(){return bL.sign}});Object.defineProperty(Ni,"verify",{enumerable:!0,get:function(){return bL.verify}})});Dt();Ge();Dt();var pke=Ie("child_process"),hke=ut(Fd());Yt();var $I=new Map([]);var Gv={};Vt(Gv,{BaseCommand:()=>ft,WorkspaceRequiredError:()=>ar,getCli:()=>Bde,getDynamicLibs:()=>wde,getPluginConfiguration:()=>tC,openWorkspace:()=>eC,pluginCommands:()=>$I,runExit:()=>YT});Yt();var ft=class extends ot{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new nt("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ge();Dt();Yt();var ar=class extends nt{constructor(e,r){let s=J.relative(e,r),a=J.join(e,Ut.fileName);super(`This command can only be run from within a workspace of your project (${s} isn't a workspace of ${a}).`)}};Ge();Dt();eA();wc();pv();Yt();var hat=ut(Ai());Ul();var wde=()=>new Map([["@yarnpkg/cli",Gv],["@yarnpkg/core",jv],["@yarnpkg/fslib",_2],["@yarnpkg/libzip",fv],["@yarnpkg/parsers",J2],["@yarnpkg/shell",mv],["clipanion",oB],["semver",hat],["typanion",Ea]]);Ge();async function eC(t,e){let{project:r,workspace:s}=await Rt.find(t,e);if(!s)throw new ar(r.cwd,e);return s}Ge();Dt();eA();wc();pv();Yt();var fbt=ut(Ai());Ul();var f5={};Vt(f5,{AddCommand:()=>sC,BinCommand:()=>oC,CacheCleanCommand:()=>aC,ClipanionCommand:()=>pC,ConfigCommand:()=>fC,ConfigGetCommand:()=>lC,ConfigSetCommand:()=>cC,ConfigUnsetCommand:()=>uC,DedupeCommand:()=>AC,EntryCommand:()=>gC,ExecCommand:()=>mC,ExplainCommand:()=>IC,ExplainPeerRequirementsCommand:()=>yC,HelpCommand:()=>hC,InfoCommand:()=>CC,LinkCommand:()=>BC,NodeCommand:()=>vC,PluginCheckCommand:()=>SC,PluginImportCommand:()=>bC,PluginImportSourcesCommand:()=>xC,PluginListCommand:()=>DC,PluginRemoveCommand:()=>kC,PluginRuntimeCommand:()=>QC,RebuildCommand:()=>RC,RemoveCommand:()=>TC,RunCommand:()=>NC,RunIndexCommand:()=>FC,SetResolutionCommand:()=>OC,SetVersionCommand:()=>EC,SetVersionSourcesCommand:()=>PC,UnlinkCommand:()=>LC,UpCommand:()=>MC,VersionCommand:()=>dC,WhyCommand:()=>UC,WorkspaceCommand:()=>qC,WorkspacesListCommand:()=>GC,YarnCommand:()=>wC,dedupeUtils:()=>tF,default:()=>bct,suggestUtils:()=>Zu});var Yye=ut(Fd());Ge();Ge();Ge();Yt();var uye=ut(Vv());Ul();var Zu={};Vt(Zu,{Modifier:()=>jq,Strategy:()=>$T,Target:()=>Jv,WorkspaceModifier:()=>sye,applyModifier:()=>Flt,extractDescriptorFromPath:()=>Gq,extractRangeModifier:()=>oye,fetchDescriptorFrom:()=>qq,findProjectDescriptors:()=>cye,getModifier:()=>Kv,getSuggestedDescriptors:()=>zv,makeWorkspaceDescriptor:()=>lye,toWorkspaceModifier:()=>aye});Ge();Ge();Dt();var Hq=ut(Ai()),Rlt="workspace:",Jv=(s=>(s.REGULAR="dependencies",s.DEVELOPMENT="devDependencies",s.PEER="peerDependencies",s))(Jv||{}),jq=(s=>(s.CARET="^",s.TILDE="~",s.EXACT="",s))(jq||{}),sye=(s=>(s.CARET="^",s.TILDE="~",s.EXACT="*",s))(sye||{}),$T=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))($T||{});function Kv(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Tlt=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function oye(t,{project:e}){let r=t.match(Tlt);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Flt(t,e){let{protocol:r,source:s,params:a,selector:n}=G.parseRange(t.range);return Hq.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:s,params:a,selector:n}))}function aye(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function lye(t,e){return G.makeDescriptor(t.anchoredDescriptor,`${Rlt}${aye(e)}`)}async function cye(t,{project:e,target:r}){let s=new Map,a=n=>{let c=s.get(n.descriptorHash);return c||s.set(n.descriptorHash,c={descriptor:n,locators:[]}),c};for(let n of e.workspaces)if(r==="peerDependencies"){let c=n.manifest.peerDependencies.get(t.identHash);c!==void 0&&a(c).locators.push(n.anchoredLocator)}else{let c=n.manifest.dependencies.get(t.identHash),f=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?f!==void 0?a(f).locators.push(n.anchoredLocator):c!==void 0&&a(c).locators.push(n.anchoredLocator):c!==void 0?a(c).locators.push(n.anchoredLocator):f!==void 0&&a(f).locators.push(n.anchoredLocator)}return s}async function Gq(t,{cwd:e,workspace:r}){return await Olt(async s=>{J.isAbsolute(t)||(t=J.relative(r.cwd,J.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await qq(G.makeIdent(null,"archive"),t,{project:r.project,cache:s,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let c=new ki,f=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:s,fetcher:p,report:c,resolver:f},E=f.bindDescriptor(n,r.anchoredLocator,h),C=G.convertDescriptorToLocator(E),S=await p.fetch(C,h),b=await Ut.find(S.prefixPath,{baseFs:S.packageFs});if(!b.name)throw new Error("Target path doesn't have a name");return G.makeDescriptor(b.name,t)})}function Nlt(t){if(t.range==="unknown")return{type:"resolve",range:"latest"};if(Fr.validRange(t.range))return{type:"fixed",range:t.range};if(Mp.test(t.range))return{type:"resolve",range:t.range};let e=t.range.match(/^(?:jsr:|npm:)(.*)/);if(!e)return{type:"fixed",range:t.range};let[,r]=e,s=`${G.stringifyIdent(t)}@`;return r.startsWith(s)&&(r=r.slice(s.length)),Fr.validRange(r)?{type:"fixed",range:t.range}:Mp.test(r)?{type:"resolve",range:t.range}:{type:"fixed",range:t.range}}async function zv(t,{project:e,workspace:r,cache:s,target:a,fixed:n,modifier:c,strategies:f,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let h=!n||t.range==="unknown"?Nlt(t):{type:"fixed",range:t.range};if(h.type==="fixed")return{suggestions:[{descriptor:t,name:`Use ${G.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let E=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,C=[],S=[],b=async I=>{try{await I()}catch(T){S.push(T)}};for(let I of f){if(C.length>=p)break;switch(I){case"keep":await b(async()=>{E&&C.push({descriptor:E,name:`Keep ${G.prettyDescriptor(e.configuration,E)}`,reason:"(no changes)"})});break;case"reuse":await b(async()=>{for(let{descriptor:T,locators:N}of(await cye(t,{project:e,target:a})).values()){if(N.length===1&&N[0].locatorHash===r.anchoredLocator.locatorHash&&f.includes("keep"))continue;let U=`(originally used by ${G.prettyLocator(e.configuration,N[0])}`;U+=N.length>1?` and ${N.length-1} other${N.length>2?"s":""})`:")",C.push({descriptor:T,name:`Reuse ${G.prettyDescriptor(e.configuration,T)}`,reason:U})}});break;case"cache":await b(async()=>{for(let T of e.storedDescriptors.values())T.identHash===t.identHash&&C.push({descriptor:T,name:`Reuse ${G.prettyDescriptor(e.configuration,T)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await b(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let T=e.tryWorkspaceByIdent(t);if(T===null)return;let N=lye(T,c);C.push({descriptor:N,name:`Attach ${G.prettyDescriptor(e.configuration,N)}`,reason:`(local workspace at ${he.pretty(e.configuration,T.relativeCwd,he.Type.PATH)})`})});break;case"latest":{let T=e.configuration.get("enableNetwork"),N=e.configuration.get("enableOfflineMode");await b(async()=>{if(a==="peerDependencies")C.push({descriptor:G.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!T&&!N)C.push({descriptor:null,name:"Resolve from latest",reason:he.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let U=await qq(t,h.range,{project:e,cache:s,workspace:r,modifier:c});U&&C.push({descriptor:U,name:`Use ${G.prettyDescriptor(e.configuration,U)}`,reason:`(resolved from ${N?"the cache":"latest"})`})}})}break}}return{suggestions:C.slice(0,p),rejections:S.slice(0,p)}}async function qq(t,e,{project:r,cache:s,workspace:a,preserveModifier:n=!0,modifier:c}){let f=r.configuration.normalizeDependency(G.makeDescriptor(t,e)),p=new ki,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),C={project:r,fetcher:h,cache:s,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},S={...C,resolver:E,fetchOptions:C},b=E.bindDescriptor(f,a.anchoredLocator,S),I=await E.getCandidates(b,{},S);if(I.length===0)return null;let T=I[0],{protocol:N,source:U,params:W,selector:ee}=G.parseRange(G.convertToManifestRange(T.reference));if(N===r.configuration.get("defaultProtocol")&&(N=null),Hq.default.valid(ee)){let ie=ee;if(typeof c<"u")ee=c+ee;else if(n!==!1){let me=typeof n=="string"?n:f.range;ee=oye(me,{project:r})+ee}let ue=G.makeDescriptor(T,G.makeRange({protocol:N,source:U,params:W,selector:ee}));(await E.getCandidates(r.configuration.normalizeDependency(ue),{},S)).length!==1&&(ee=ie)}return G.makeDescriptor(T,G.makeRange({protocol:N,source:U,params:W,selector:ee}))}async function Olt(t){return await ce.mktempPromise(async e=>{let r=ze.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Kr(e,{configuration:r,check:!1,immutable:!1}))})}var sC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=ge.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=ge.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=ge.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=ge.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=ge.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=ge.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:fo($l)});this.silent=ge.Boolean("--silent",{hidden:!0});this.packages=ge.Rest()}static{this.paths=[["add"]]}static{this.usage=ot.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.fixed,f=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=f||r.get("preferReuse"),h=Kv(this,s),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(W=>typeof W<"u"),C=f?1/0:1,S=W=>{let ee=G.tryParseDescriptor(W.slice(4));return ee?ee.range==="unknown"?G.makeDescriptor(ee,`jsr:${G.stringifyIdent(ee)}@latest`):G.makeDescriptor(ee,`jsr:${ee.range}`):null},b=await Promise.all(this.packages.map(async W=>{let ee=W.match(/^\.{0,2}\//)?await Gq(W,{cwd:this.context.cwd,workspace:a}):W.startsWith("jsr:")?S(W):G.tryParseDescriptor(W),ie=W.match(/^(https?:|git@github)/);if(ie)throw new nt(`It seems you are trying to add a package using a ${he.pretty(r,`${ie[0]}...`,he.Type.RANGE)} url; we now require package names to be explicitly specified. Try running the command again with the package name prefixed: ${he.pretty(r,"yarn add",he.Type.CODE)} ${he.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${ie[0]}...`),he.Type.DESCRIPTOR)}`);if(!ee)throw new nt(`The ${he.pretty(r,W,he.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ue=Llt(a,ee,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ue.map(async me=>{let pe=await zv(ee,{project:s,workspace:a,cache:n,fixed:c,target:me,modifier:h,strategies:E,maxResults:C});return{request:ee,suggestedDescriptors:pe,target:me}}))})).then(W=>W.flat()),I=await lA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async W=>{for(let{request:ee,suggestedDescriptors:{suggestions:ie,rejections:ue}}of b)if(ie.filter(me=>me.descriptor!==null).length===0){let[me]=ue;if(typeof me>"u")throw new Error("Assertion failed: Expected an error to have been set");s.configuration.get("enableNetwork")?W.reportError(27,`${G.prettyDescriptor(r,ee)} can't be resolved to a satisfying range`):W.reportError(27,`${G.prettyDescriptor(r,ee)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),W.reportSeparator(),W.reportExceptionOnce(me)}});if(I.hasErrors())return I.exitCode();let T=!1,N=[],U=[];for(let{suggestedDescriptors:{suggestions:W},target:ee}of b){let ie,ue=W.filter(Be=>Be.descriptor!==null),le=ue[0].descriptor,me=ue.every(Be=>G.areDescriptorsEqual(Be.descriptor,le));ue.length===1||me?ie=le:(T=!0,{answer:ie}=await(0,uye.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:W.map(({descriptor:Be,name:Ce,reason:g})=>Be?{name:Ce,hint:g,descriptor:Be}:{name:Ce,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(Be){return this.find(Be,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let pe=a.manifest[ee].get(ie.identHash);(typeof pe>"u"||pe.descriptorHash!==ie.descriptorHash)&&(a.manifest[ee].set(ie.identHash,ie),this.optional&&(ee==="dependencies"?a.manifest.ensureDependencyMeta({...ie,range:"unknown"}).optional=!0:ee==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...ie,range:"unknown"}).optional=!0)),typeof pe>"u"?N.push([a,ee,ie,E]):U.push([a,ee,pe,ie]))}return await r.triggerMultipleHooks(W=>W.afterWorkspaceDependencyAddition,N),await r.triggerMultipleHooks(W=>W.afterWorkspaceDependencyReplacement,U),T&&this.context.stdout.write(` `),await s.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function Llt(t,e,{dev:r,peer:s,preferDev:a,optional:n}){let c=t.manifest.dependencies.has(e.identHash),f=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||s)&&c)throw new nt(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!s&&p)throw new nt(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&f)throw new nt(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!s&&p)throw new nt(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new nt(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return s&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:f?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ge();Ge();Yt();var oC=class extends ft{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=ot.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Rt.find(r,this.context.cwd);if(await s.restoreInstallState(),this.name){let f=(await In.getPackageAccessibleBinaries(a,{project:s})).get(this.name);if(!f)throw new nt(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,p]=f;return this.context.stdout.write(`${p} `),0}return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async c=>{let f=await In.getPackageAccessibleBinaries(a,{project:s}),h=Array.from(f.keys()).reduce((E,C)=>Math.max(E,C.length),0);for(let[E,[C,S]]of f)c.reportJson({name:E,source:G.stringifyIdent(C),path:S});if(this.verbose)for(let[E,[C]]of f)c.reportInfo(null,`${E.padEnd(h," ")} ${G.prettyLocator(r,C)}`);else for(let E of f.keys())c.reportInfo(null,E)})).exitCode()}};Ge();Dt();Yt();var aC=class extends ft{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=ot.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(!r.get("enableCacheClean"))throw new nt("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let s=await Kr.find(r);return(await Ot.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&s.mirrorCwd!==null,c=!this.mirror;n&&(await ce.removePromise(s.mirrorCwd),await r.triggerHook(f=>f.cleanGlobalArtifacts,r)),c&&await ce.removePromise(s.cwd)})).exitCode()}};Ge();Yt();ql();var Wq=Ie("util"),lC=class extends ft{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}static{this.paths=[["config","get"]]}static{this.usage=ot.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(s)>"u")throw new nt(`Couldn't find a configuration settings named "${s}"`);let c=r.getSpecial(s,{hideSecrets:!this.unsafe,getNativePaths:!0}),f=je.convertMapsToIndexableObjects(c),p=a?va(f,a):f,h=await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} `),h.exitCode();Wq.inspect.styles.name="cyan",this.context.stdout.write(`${(0,Wq.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} `)}return h.exitCode()}};Ge();Yt();ql();var Yq=Ie("util"),cC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}static{this.paths=[["config","set"]]}static{this.usage=ot.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new nt("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new nt(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new nt("This setting only affects the file it's in, and thus cannot be set from the CLI");let f=this.json?JSON.parse(this.value):this.value;await(this.home?I=>ze.updateHomeConfiguration(I):I=>ze.updateConfiguration(s(),I))(I=>{if(n){let T=f0(I);return Jd(T,this.name,f),T}else return{...I,[a]:f}});let E=(await ze.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),C=je.convertMapsToIndexableObjects(E),S=n?va(C,n):C;return(await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async I=>{Yq.inspect.styles.name="cyan",I.reportInfo(0,`Successfully set ${this.name} to ${(0,Yq.inspect)(S,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ge();Yt();ql();var uC=class extends ft{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}static{this.paths=[["config","unset"]]}static{this.usage=ot.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new nt("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new nt(`Couldn't find a configuration settings named "${a}"`);let f=this.home?h=>ze.updateHomeConfiguration(h):h=>ze.updateConfiguration(s(),h);return(await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await f(C=>{if(!vB(C,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,C;let S=n?f0(C):{...C};return A0(S,this.name),S}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ge();Dt();Yt();var eF=Ie("util"),fC=class extends ft{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}static{this.paths=[["config"]]}static{this.usage=ot.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. `,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins,{strict:!1}),s=await SI({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(s!==null)return s;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,c=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async f=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)f.reportError(34,`Invalid configuration key "${p}" in ${h}`);f.reportSeparator()}if(this.json)for(let p of a){if(this.noDefaults&&!r.sources.has(p))continue;let h=r.settings.get(p);typeof h>"u"&&f.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),C=r.sources.get(p)??"",S=C&&C[0]!=="<"?fe.fromPortablePath(C):C;f.reportJson({key:p,effective:E,source:S,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let C of a){if(this.noDefaults&&!r.sources.has(C))continue;let S=r.settings.get(C),b=r.sources.get(C)??"",I=r.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),T={Description:{label:"Description",value:he.tuple(he.Type.MARKDOWN,{text:S.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:he.tuple(b[0]==="<"?he.Type.CODE:he.Type.PATH,b)}};h[C]={value:he.tuple(he.Type.CODE,C),children:T};let N=(U,W)=>{for(let[ee,ie]of W)if(ie instanceof Map){let ue={};U[ee]={children:ue},N(ue,ie)}else U[ee]={label:ee,value:he.tuple(he.Type.NO_HINT,(0,eF.inspect)(ie,p))}};I instanceof Map?N(T,I):T.Value={label:"Value",value:he.tuple(he.Type.NO_HINT,(0,eF.inspect)(I,p))}}a.length!==1&&(n=void 0),xs.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let f=a[0],p=(0,eF.inspect)(r.getSpecial(f,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` `),this.context.stdout.write(`${p} `)}return c.exitCode()}};Ge();Yt();Ul();var tF={};Vt(tF,{Strategy:()=>Zv,acceptedStrategies:()=>Mlt,dedupe:()=>Vq});Ge();Ge();var fye=ut(Go()),Zv=(e=>(e.HIGHEST="highest",e))(Zv||{}),Mlt=new Set(Object.values(Zv)),Ult={highest:async(t,e,{resolver:r,fetcher:s,resolveOptions:a,fetchOptions:n})=>{let c=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);je.getSetWithDefault(c,E.identHash).add(h)}let f=new Map(je.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?je.mapAndFilter.skip:[p.descriptorHash,je.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=f.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let C=t.originalPackages.get(E);if(typeof C>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let S=r.getResolutionDependencies(p,a),b=Object.fromEntries(await je.allSettledSafe(Object.entries(S).map(async([ee,ie])=>{let ue=f.get(ie.descriptorHash);if(typeof ue>"u")throw new Error(`Assertion failed: The descriptor (${ie.descriptorHash}) should have been registered`);let le=await ue.promise;if(!le)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ee,le.updatedPackage]})));if(e.length&&!fye.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(C,a))return C;let I=c.get(p.identHash);if(typeof I>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(I.size===1)return C;let T=[...I].map(ee=>{let ie=t.originalPackages.get(ee);if(typeof ie>"u")throw new Error(`Assertion failed: The package (${ee}) should have been registered`);return ie}),N=await r.getSatisfying(p,b,T,a),U=N.locators?.[0];if(typeof U>"u"||!N.sorted)return C;let W=t.originalPackages.get(U.locatorHash);if(typeof W>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return W}).then(async S=>{let b=await t.preparePackage(S,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:C,updatedPackage:S,resolvedPackage:b})}).catch(S=>{h.reject(S)})}return[...f.values()].map(p=>p.promise)}};async function Vq(t,{strategy:e,patterns:r,cache:s,report:a}){let{configuration:n}=t,c=new ki,f=n.makeResolver(),p=n.makeFetcher(),h={cache:s,checksums:t.storedChecksums,fetcher:p,project:t,report:c,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:f,report:c,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let C=Ult[e],S=await C(t,r,{resolver:f,resolveOptions:E,fetcher:p,fetchOptions:h}),b=Ao.progressViaCounter(S.length);await a.reportProgress(b);let I=0;await Promise.all(S.map(U=>U.then(W=>{if(W===null||W.currentPackage.locatorHash===W.updatedPackage.locatorHash)return;I++;let{descriptor:ee,currentPackage:ie,updatedPackage:ue}=W;a.reportInfo(0,`${G.prettyDescriptor(n,ee)} can be deduped from ${G.prettyLocator(n,ie)} to ${G.prettyLocator(n,ue)}`),a.reportJson({descriptor:G.stringifyDescriptor(ee),currentResolution:G.stringifyLocator(ie),updatedResolution:G.stringifyLocator(ue)}),t.storedResolutions.set(ee.descriptorHash,ue.locatorHash)}).finally(()=>b.tick())));let T;switch(I){case 0:T="No packages";break;case 1:T="One package";break;default:T=`${I} packages`}let N=he.pretty(n,e,he.Type.CODE);return a.reportInfo(0,`${T} can be deduped using the ${N} strategy`),I})}var AC=class extends ft{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:fo(Zv)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:fo($l)});this.patterns=ge.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=ot.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=await Kr.find(r);await s.restoreInstallState({restoreResolutions:!1});let n=0,c=await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async f=>{n=await Vq(s,{strategy:this.strategy,patterns:this.patterns,cache:a,report:f})});return c.hasErrors()?c.exitCode():this.check?n?1:0:await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ge();Yt();var pC=class extends ft{static{this.paths=[["--clipanion=definitions"]]}async execute(){let{plugins:e}=await ze.find(this.context.cwd,this.context.plugins),r=[];for(let c of e){let{commands:f}=c[1];if(f){let h=Ca.from(f).definitions();r.push([c[0],h])}}let s=this.cli.definitions(),a=(c,f)=>c.split(" ").slice(1).join()===f.split(" ").slice(1).join(),n=Aye()["@yarnpkg/builder"].bundles.standard;for(let c of r){let f=c[1];for(let p of f)s.find(h=>a(h.path,p.path)).plugin={name:c[0],isDefault:n.includes(c[0])}}this.context.stdout.write(`${JSON.stringify(s,null,2)} `)}};var hC=class extends ft{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ge();Dt();Yt();var gC=class extends ft{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=J.resolve(this.context.cwd,fe.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ge();var dC=class extends ft{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${fn||""} `)}};Ge();Ge();Yt();var mC=class extends ft{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["exec"]]}static{this.usage=ot.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Rt.find(r,this.context.cwd);return await s.restoreInstallState(),await In.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:s})}};Ge();Yt();Ul();var yC=class extends ft{constructor(){super(...arguments);this.hash=ge.String({required:!1,validator:Nx(wE(),[X2(/^p[0-9a-f]{6}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=ot.Usage({description:"explain a set of peer requirements",details:` A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. **Note:** A hash is a seven-letter code consisting of the letter 'p' followed by six characters that can be obtained from peer dependency warnings or from the list of all peer requirements(\`yarn explain peer-requirements\`). `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),await s.applyLightResolution(),typeof this.hash<"u"?await Hlt(this.hash,s,{stdout:this.context.stdout}):await jlt(s,{stdout:this.context.stdout})}};async function Hlt(t,e,r){let s=e.peerRequirementNodes.get(t);if(typeof s>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:he.tuple(he.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:he.tuple(he.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:he.tuple(he.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),c=e.peerWarnings.find(p=>p.hash===t);return(await Ot.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=he.mark(e.configuration),E=c?h.Cross:h.Check;if(p.reportInfo(0,`Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} is requested to provide ${he.pretty(e.configuration,s.ident,he.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,he.pretty(e.configuration,s.subject,he.Type.LOCATOR)),xs.emitTree({children:Object.fromEntries(Array.from(s.requests.values(),C=>[G.stringifyLocator(C.requester),n(C)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),s.provided.range==="missing:"){let C=c?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} does not provide ${he.pretty(e.configuration,s.ident,he.Type.IDENT)}${C}.`)}else{let C=e.storedResolutions.get(s.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the descriptor to be registered");let S=e.storedPackages.get(C);if(!S)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} provides ${he.pretty(e.configuration,s.ident,he.Type.IDENT)} with version ${G.prettyReference(e.configuration,S.version??"0.0.0")}, ${c?"which does not satisfy all requests.":"which satisfies all requests"}`),c?.type===3&&(c.range?p.reportInfo(0,` The combined requested range is ${he.pretty(e.configuration,c.range,he.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function jlt(t,e){return(await Ot.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async s=>{let a=he.mark(t.configuration),n=je.sortMap(t.peerRequirementNodes,[([,c])=>G.stringifyLocator(c.subject),([,c])=>G.stringifyIdent(c.ident)]);for(let[,c]of n.values()){if(!c.root)continue;let f=t.peerWarnings.find(E=>E.hash===c.hash),p=[...G.allPeerRequests(c)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",c.provided.range!=="missing:"){let E=t.storedResolutions.get(c.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let C=t.storedPackages.get(E);if(!C)throw new Error("Assertion failed: Expected the provided package to have been registered");let S=`${he.pretty(t.configuration,c.hash,he.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${G.prettyLocator(t.configuration,c.subject)} provides ${G.prettyLocator(t.configuration,C)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,S):s.reportInfo(0,S)}else{let E=`${he.pretty(t.configuration,c.hash,he.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${G.prettyLocator(t.configuration,c.subject)} doesn't provide ${G.prettyIdent(t.configuration,c.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,E):s.reportInfo(0,E)}}})).exitCode()}Ge();Yt();Ul();Ge();Ge();Dt();Yt();var pye=ut(Ai()),EC=class extends ft{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}static{this.paths=[["set","version"]]}static{this.usage=ot.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let f=r.sources.get("yarnPath");if(!f)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(J.contains(p,f))return 0}let s=()=>{if(typeof fn>"u")throw new nt("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(f,p)=>({version:p,url:f.replace(/\{\}/g,p)});if(this.version==="self")a={url:s(),version:fn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await Xv(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await Xv(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||fe.isAbsolute(this.version))a={url:`file://${J.resolve(fe.toPortablePath(this.version))}`,version:"file"};else if(Fr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Fr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Fr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await Glt(r,this.version));else throw new nt(`Invalid version descriptor "${this.version}"`);return(await Ot.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async f=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(f.reportInfo(0,`Retrieving ${he.pretty(r,a.url,he.Type.PATH)}`),await ce.readFilePromise(a.url.slice(h.length))):(f.reportInfo(0,`Downloading ${he.pretty(r,a.url,he.Type.URL)}`),await ln.get(a.url,{configuration:r}))};await Jq(r,a.version,p,{report:f,useYarnPath:this.useYarnPath})})).exitCode()}};async function Glt(t,e){let s=(await ln.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Fr.satisfiesWithPrereleases(a,e));if(s.length===0)throw new nt(`No matching release found for range ${he.pretty(t,e,he.Type.RANGE)}.`);return s[0]}async function Xv(t,e){let r=await ln.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new nt(`Tag ${he.pretty(t,e,he.Type.RANGE)} not found`);return r.latest[e]}async function Jq(t,e,r,{report:s,useYarnPath:a}){let n,c=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let ee=await c();await ce.mktempPromise(async ie=>{let ue=J.join(ie,"yarn.cjs");await ce.writeFilePromise(ue,ee);let{stdout:le}=await qr.execvp(process.execPath,[fe.fromPortablePath(ue),"--version"],{cwd:ie,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=le.trim(),!pye.default.valid(e))throw new Error(`Invalid semver version. ${he.pretty(t,"yarn --version",he.Type.CODE)} returned: ${e}`)})}let f=t.projectCwd??t.startingCwd,p=J.resolve(f,".yarn/releases"),h=J.resolve(p,`yarn-${e}.cjs`),E=J.relative(t.startingCwd,h),C=je.isTaggedYarnVersion(e),S=t.get("yarnPath"),b=!C,I=b||!!S||!!a;if(a===!1){if(b)throw new jt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");I=!1}else!I&&!process.env.COREPACK_ROOT&&(s.reportWarning(0,`You don't seem to have ${he.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${he.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),I=!0);if(I){let ee=await c();s.reportInfo(0,`Saving the new release in ${he.pretty(t,E,"magenta")}`),await ce.removePromise(J.dirname(h)),await ce.mkdirPromise(J.dirname(h),{recursive:!0}),await ce.writeFilePromise(h,ee,{mode:493}),await ze.updateConfiguration(f,{yarnPath:J.relative(f,h)})}else await ce.removePromise(J.dirname(h)),await ze.updateConfiguration(f,{yarnPath:ze.deleteProperty});let T=await Ut.tryFind(f)||new Ut;T.packageManager=`yarn@${C?e:await Xv(t,"stable")}`;let N={};T.exportTo(N);let U=J.join(f,Ut.fileName),W=`${JSON.stringify(N,null,T.indent)} `;return await ce.changeFilePromise(U,W,{automaticNewlines:!0}),{bundleVersion:e}}function hye(t){return Br[jx(t)]}var qlt=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function Wlt(t){let r=`https://repo.yarnpkg.com/${je.isTaggedYarnVersion(fn)?fn:await Xv(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,s=await ln.get(r,{configuration:t});return new Map(Array.from(s.toString().matchAll(qlt),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=hye(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var IC=class extends ft{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:$2(wE(),[X2(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=ot.Usage({description:"explain an error code",details:` When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let s=hye(this.code),a=he.pretty(r,s,he.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),f=(await Wlt(r)).get(this.code),p=typeof f<"u"?he.jsonOrPretty(this.json,r,he.tuple(he.Type.MARKDOWN,{text:f,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${he.jsonOrPretty(this.json,r,he.tuple(he.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} `;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:s,details:p})} `):this.context.stdout.write(`${n} ${p} `)}else{let s={children:je.mapAndFilter(Object.entries(Br),([a,n])=>Number.isNaN(Number(a))?je.mapAndFilter.skip:{label:Yf(Number(a)),value:he.tuple(he.Type.CODE,n)})};xs.emitTree(s,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ge();Dt();Yt();var gye=ut(Go()),CC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["info"]]}static{this.usage=ot.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a&&!this.all)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=new Set(this.extra);this.cache&&c.add("cache"),this.dependents&&c.add("dependents"),this.manifest&&c.add("manifest");let f=(ie,{recursive:ue})=>{let le=ie.anchoredLocator.locatorHash,me=new Map,pe=[le];for(;pe.length>0;){let Be=pe.shift();if(me.has(Be))continue;let Ce=s.storedPackages.get(Be);if(typeof Ce>"u")throw new Error("Assertion failed: Expected the package to be registered");if(me.set(Be,Ce),G.isVirtualLocator(Ce)&&pe.push(G.devirtualizeLocator(Ce).locatorHash),!(!ue&&Be!==le))for(let g of Ce.dependencies.values()){let we=s.storedResolutions.get(g.descriptorHash);if(typeof we>"u")throw new Error("Assertion failed: Expected the resolution to be registered");pe.push(we)}}return me.values()},p=({recursive:ie})=>{let ue=new Map;for(let le of s.workspaces)for(let me of f(le,{recursive:ie}))ue.set(me.locatorHash,me);return ue.values()},h=({all:ie,recursive:ue})=>ie&&ue?s.storedPackages.values():ie?p({recursive:ue}):f(a,{recursive:ue}),E=({all:ie,recursive:ue})=>{let le=h({all:ie,recursive:ue}),me=this.patterns.map(Ce=>{let g=G.parseLocator(Ce),we=gye.default.makeRe(G.stringifyIdent(g)),ye=G.isVirtualLocator(g),Ae=ye?G.devirtualizeLocator(g):g;return se=>{let X=G.stringifyIdent(se);if(!we.test(X))return!1;if(g.reference==="unknown")return!0;let De=G.isVirtualLocator(se),Te=De?G.devirtualizeLocator(se):se;return!(ye&&De&&g.reference!==se.reference||Ae.reference!==Te.reference)}}),pe=je.sortMap([...le],Ce=>G.stringifyLocator(Ce));return{selection:pe.filter(Ce=>me.length===0||me.some(g=>g(Ce))),sortedLookup:pe}},{selection:C,sortedLookup:S}=E({all:this.all,recursive:this.recursive});if(C.length===0)throw new nt("No package matched your request");let b=new Map;if(this.dependents)for(let ie of S)for(let ue of ie.dependencies.values()){let le=s.storedResolutions.get(ue.descriptorHash);if(typeof le>"u")throw new Error("Assertion failed: Expected the resolution to be registered");je.getArrayWithDefault(b,le).push(ie)}let I=new Map;for(let ie of S){if(!G.isVirtualLocator(ie))continue;let ue=G.devirtualizeLocator(ie);je.getArrayWithDefault(I,ue.locatorHash).push(ie)}let T={},N={children:T},U=r.makeFetcher(),W={project:s,fetcher:U,cache:n,checksums:s.storedChecksums,report:new ki,cacheOptions:{skipIntegrityCheck:!0}},ee=[async(ie,ue,le)=>{if(!ue.has("manifest"))return;let me=await U.fetch(ie,W),pe;try{pe=await Ut.find(me.prefixPath,{baseFs:me.packageFs})}finally{me.releaseFs?.()}le("Manifest",{License:he.tuple(he.Type.NO_HINT,pe.license),Homepage:he.tuple(he.Type.URL,pe.raw.homepage??null)})},async(ie,ue,le)=>{if(!ue.has("cache"))return;let me=s.storedChecksums.get(ie.locatorHash)??null,pe=n.getLocatorPath(ie,me),Be;if(pe!==null)try{Be=await ce.statPromise(pe)}catch{}let Ce=typeof Be<"u"?[Be.size,he.Type.SIZE]:void 0;le("Cache",{Checksum:he.tuple(he.Type.NO_HINT,me),Path:he.tuple(he.Type.PATH,pe),Size:Ce})}];for(let ie of C){let ue=G.isVirtualLocator(ie);if(!this.virtuals&&ue)continue;let le={},me={value:[ie,he.Type.LOCATOR],children:le};if(T[G.stringifyLocator(ie)]=me,this.nameOnly){delete me.children;continue}let pe=I.get(ie.locatorHash);typeof pe<"u"&&(le.Instances={label:"Instances",value:he.tuple(he.Type.NUMBER,pe.length)}),le.Version={label:"Version",value:he.tuple(he.Type.NO_HINT,ie.version)};let Be=(g,we)=>{let ye={};if(le[g]=ye,Array.isArray(we))ye.children=we.map(Ae=>({value:Ae}));else{let Ae={};ye.children=Ae;for(let[se,X]of Object.entries(we))typeof X>"u"||(Ae[se]={label:se,value:X})}};if(!ue){for(let g of ee)await g(ie,c,Be);await r.triggerHook(g=>g.fetchPackageInfo,ie,c,Be)}ie.bin.size>0&&!ue&&Be("Exported Binaries",[...ie.bin.keys()].map(g=>he.tuple(he.Type.PATH,g)));let Ce=b.get(ie.locatorHash);typeof Ce<"u"&&Ce.length>0&&Be("Dependents",Ce.map(g=>he.tuple(he.Type.LOCATOR,g))),ie.dependencies.size>0&&!ue&&Be("Dependencies",[...ie.dependencies.values()].map(g=>{let we=s.storedResolutions.get(g.descriptorHash),ye=typeof we<"u"?s.storedPackages.get(we)??null:null;return he.tuple(he.Type.RESOLUTION,{descriptor:g,locator:ye})})),ie.peerDependencies.size>0&&ue&&Be("Peer dependencies",[...ie.peerDependencies.values()].map(g=>{let we=ie.dependencies.get(g.identHash),ye=typeof we<"u"?s.storedResolutions.get(we.descriptorHash)??null:null,Ae=ye!==null?s.storedPackages.get(ye)??null:null;return he.tuple(he.Type.RESOLUTION,{descriptor:g,locator:Ae})}))}xs.emitTree(N,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ge();Dt();wc();var rF=ut(Fd());Yt();var Kq=ut(Ai());Ul();var Ylt=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],wC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=ge.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=ge.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=ge.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=ge.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=ge.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=ge.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:fo($l)});this.cacheFolder=ge.String("--cache-folder",{hidden:!0});this.frozenLockfile=ge.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=ge.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=ge.Boolean("--non-interactive",{hidden:!0});this.preferOffline=ge.Boolean("--prefer-offline",{hidden:!0});this.production=ge.Boolean("--production",{hidden:!0});this.registry=ge.String("--registry",{hidden:!0});this.silent=ge.Boolean("--silent",{hidden:!0});this.networkTimeout=ge.String("--network-timeout",{hidden:!0})}static{this.paths=[["install"],ot.Default]}static{this.usage=ot.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let s=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await SI({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!rF.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!rF.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!s},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!rF.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new nt(`${he.pretty(r,"--immutable",he.Type.CODE)} and ${he.pretty(r,"--immutable-cache",he.Type.CODE)} cannot be used with ${he.pretty(r,"--mode=update-lockfile",he.Type.CODE)}`);let c=(this.immutable??r.get("enableImmutableInstalls"))&&!n,f=this.immutableCache&&!n;if(r.projectCwd!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U=!1;await Klt(r,c)&&(N.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await Jlt(r,c)&&(N.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&N.reportSeparator()});if(T.hasErrors())return T.exitCode()}if(r.projectCwd!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{if(ze.telemetry?.isNew)ze.telemetry.commitTips(),N.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),N.reportInfo(65,`Run ${he.pretty(r,"yarn config set --home enableTelemetry 0",he.Type.CODE)} to disable`),N.reportSeparator();else if(ze.telemetry?.shouldShowTips){let U=await ln.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let W=null;if(fn!==null){let ie=Kq.default.prerelease(fn)?"canary":"stable",ue=U.latest[ie];Kq.default.gt(ue,fn)&&(W=[ie,ue])}if(W)ze.telemetry.commitTips(),N.reportInfo(88,`${he.applyStyle(r,`A new ${W[0]} version of Yarn is available:`,he.Style.BOLD)} ${G.prettyReference(r,W[1])}!`),N.reportInfo(88,`Upgrade now by running ${he.pretty(r,`yarn set version ${W[1]}`,he.Type.CODE)}`),N.reportSeparator();else{let ee=ze.telemetry.selectTip(U.tips);ee&&(N.reportInfo(89,he.pretty(r,ee.message,he.Type.MARKDOWN_INLINE)),ee.url&&N.reportInfo(89,`Learn more at ${ee.url}`),N.reportSeparator())}}}});if(T.hasErrors())return T.exitCode()}let{project:p,workspace:h}=await Rt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U={};for(let W of Ylt)W.selector(E)&&typeof r.sources.get(W.name)>"u"&&(r.use("",{[W.name]:W.value},p.cwd,{overwrite:!0}),U[W.name]=W.value);Object.keys(U).length>0&&(await ze.updateConfiguration(p.cwd,U),N.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),N.reportSeparator())});if(T.hasErrors())return T.exitCode()}let C=await Kr.find(r,{immutable:f,check:this.checkCache});if(!h)throw new ar(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let S=r.get("enableHardenedMode");S&&typeof r.sources.get("enableHardenedMode")>"u"&&await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async T=>{T.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),T.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${he.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),T.reportSeparator()}),(this.refreshLockfile??S)&&(p.lockfileNeedsRefresh=!0);let b=this.checkResolutions??S;return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async T=>{await p.install({cache:C,report:T,immutable:c,checkResolutions:b,mode:this.mode})})).exitCode()}},Vlt="<<<<<<<";async function Jlt(t,e){if(!t.projectCwd)return!1;let r=J.join(t.projectCwd,Er.lockfile);if(!await ce.existsPromise(r)||!(await ce.readFilePromise(r,"utf8")).includes(Vlt))return!1;if(e)throw new jt(47,"Cannot autofix a lockfile when running an immutable install");let a=await qr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await qr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await qr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new jt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async f=>{let p=await qr.execvp("git",["show",`${f}:./${Er.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new jt(83,`Git returned an error when trying to access the lockfile content in ${f}`);try{return as(p.stdout)}catch{throw new jt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(f=>!!f.__metadata);for(let f of n){if(f.__metadata.version<7)for(let p of Object.keys(f)){if(p==="__metadata")continue;let h=G.parseDescriptor(p,!0),E=t.normalizeDependency(h),C=G.stringifyDescriptor(E);C!==p&&(f[C]=f[p],delete f[p])}for(let p of Object.keys(f)){if(p==="__metadata")continue;let h=f[p].checksum;typeof h>"u"||h.includes("/")||(f[p].checksum=`${f.__metadata.cacheKey}/${h}`)}}let c=Object.assign({},...n);c.__metadata.version=`${Math.min(...n.map(f=>parseInt(f.__metadata.version??0)))}`,c.__metadata.cacheKey="merged";for(let[f,p]of Object.entries(c))typeof p=="string"&&delete c[f];return await ce.changeFilePromise(r,nl(c),{automaticNewlines:!0}),!0}async function Klt(t,e){if(!t.projectCwd)return!1;let r=[],s=J.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await ze.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let c=n.filter(f=>{if(!f.path)return!0;let p=J.resolve(t.projectCwd,f.path),h=ov.has(f.spec)&&J.contains(s,p);return h&&r.push(p),!h});return c.length===0?ze.deleteProperty:c.length===n.length?n:c}},{immutable:e})?(await Promise.all(r.map(async n=>{await ce.removePromise(n)})),!0):!1}Ge();Dt();Yt();var BC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=ge.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=ge.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=ge.Rest()}static{this.paths=[["link"]]}static{this.usage=ot.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=s.topLevelWorkspace,f=[];for(let p of this.destinations){let h=J.resolve(this.context.cwd,fe.toPortablePath(p)),E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Rt.find(E,h);if(s.cwd===C.cwd)throw new nt(`Invalid destination '${p}'; Can't link the project to itself`);if(!S)throw new ar(C.cwd,h);if(this.all){let b=!1;for(let I of C.workspaces)I.manifest.name&&(!I.manifest.private||this.private)&&(f.push(I),b=!0);if(!b)throw new nt(`No workspace found to be linked in the target project: ${p}`)}else{if(!S.manifest.name)throw new nt(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(S.manifest.private&&!this.private)throw new nt(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);f.push(S)}}for(let p of f){let h=G.stringifyIdent(p.anchoredLocator),E=this.relative?J.relative(s.cwd,p.cwd):p.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Yt();var vC=class extends ft{constructor(){super(...arguments);this.args=ge.Proxy()}static{this.paths=[["node"]]}static{this.usage=ot.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. `,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ge();Yt();var SC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` Check only the plugins from https. If this command detects any plugin differences in the CI environment, it will throw an error. `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=await ze.findRcFiles(this.context.cwd);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let c of s)if(c.data?.plugins)for(let f of c.data.plugins){if(!f.checksum||!f.spec.match(/^https?:/))continue;let p=await ln.get(f.spec,{configuration:r}),h=Nn.makeHash(p);if(f.checksum===h)continue;let E=he.pretty(r,f.path,he.Type.PATH),C=he.pretty(r,f.spec,he.Type.URL),S=`${E} is different from the file provided by ${C}`;n.reportJson({...f,newChecksum:h}),n.reportError(0,S)}})).exitCode()}};Ge();Ge();Dt();Yt();var Iye=Ie("os");Ge();Dt();Yt();var dye=Ie("os");Ge();wc();Yt();var zlt="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Sm(t,e){let r=await ln.get(zlt,{configuration:t}),s=as(r.toString());return Object.fromEntries(Object.entries(s).filter(([a,n])=>!e||Fr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var DC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Sm(r,fn);for(let[c,{experimental:f,...p}]of Object.entries(n)){let h=c;f&&(h+=" [experimental]"),a.reportJson({name:c,experimental:f,...p}),a.reportInfo(null,h)}})).exitCode()}};var Zlt=/^[0-9]+$/,Xlt=process.platform==="win32";function mye(t){return Zlt.test(t)?`pull/${t}/head`:t}var $lt=({repository:t,branch:e},r)=>[["git","init",fe.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",mye(e)],["git","reset","--hard","FETCH_HEAD"]],ect=({branch:t})=>[["git","fetch","origin","--depth=1",mye(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],tct=({plugins:t,noMinify:e},r,s)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",J.resolve(s,a)])),...e?["--no-minify"]:[],"|"],[Xlt?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",fe.fromPortablePath(r),"|"]],PC=class extends ft{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=ot.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=typeof this.installPath<"u"?J.resolve(this.context.cwd,fe.toPortablePath(this.installPath)):J.resolve(fe.toPortablePath((0,dye.tmpdir)()),"yarnpkg-sources",Nn.makeHash(this.repository).slice(0,6));return(await Ot.start({configuration:r,stdout:this.context.stdout},async c=>{await zq(this,{configuration:r,report:c,target:a}),c.reportSeparator(),c.reportInfo(0,"Building a fresh bundle"),c.reportSeparator();let f=await qr.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=J.join(a,`packages/yarnpkg-cli/bundles/yarn-${f.stdout.trim()}.js`);ce.existsSync(p)||(await $v(tct(this,p,a),{configuration:r,context:this.context,target:a}),c.reportSeparator());let h=await ce.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await Jq(r,null,async()=>h,{report:c});this.skipPlugins||await rct(this,E,{project:s,report:c,target:a})}})).exitCode()}};async function $v(t,{configuration:e,context:r,target:s}){for(let[a,...n]of t){let c=n[n.length-1]==="|";if(c&&n.pop(),c)await qr.pipevp(a,n,{cwd:s,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${he.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} `);try{await qr.execvp(a,n,{cwd:s,strict:!0})}catch(f){throw r.stdout.write(f.stdout||f.stack),f}}}}async function zq(t,{configuration:e,report:r,target:s}){let a=!1;if(!t.force&&ce.existsSync(J.join(s,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await $v(ect(t),{configuration:e,context:t.context,target:s}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await ce.removePromise(s),await ce.mkdirPromise(s,{recursive:!0}),await $v($lt(t,s),{configuration:e,context:t.context,target:s}))}async function rct(t,e,{project:r,report:s,target:a}){let n=await Sm(r.configuration,e),c=new Set(Object.keys(n));for(let f of r.configuration.plugins.keys())c.has(f)&&await Zq(f,t,{project:r,report:s,target:a})}Ge();Ge();Dt();Yt();var yye=ut(Ai()),Eye=Ie("vm");var bC=class extends ft{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: - If the plugin is stored within the Yarn repository, it can be referenced by name. - Third-party plugins can be referenced directly through their public urls. - Local plugins can be referenced by their path on the disk. If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Rt.find(r,this.context.cwd),c,f;if(this.name.match(/^\.{0,2}[\\/]/)||fe.isAbsolute(this.name)){let p=J.resolve(this.context.cwd,fe.toPortablePath(this.name));a.reportInfo(0,`Reading ${he.pretty(r,p,he.Type.PATH)}`),c=J.relative(n.cwd,p),f=await ce.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new jt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}c=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!yye.default.valid(h.reference))throw new jt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=G.stringifyIdent(h),C=await Sm(r,fn);if(!Object.hasOwn(C,E)){let S=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry. `;throw r.plugins.has(E)?S+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:S+=`Note that only the plugins referenced on our website (${he.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",he.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${he.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",he.Type.URL)}).`,new jt(51,S)}c=E,p=C[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):fn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${fn}/`))}a.reportInfo(0,`Downloading ${he.pretty(r,p,"green")}`),f=await ln.get(p,{configuration:r})}await Xq(c,f,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function Xq(t,e,{checksum:r=!0,project:s,report:a}){let{configuration:n}=s,c={},f={exports:c};(0,Eye.runInNewContext)(e.toString(),{module:f,exports:c});let h=`.yarn/plugins/${f.exports.name}.cjs`,E=J.resolve(s.cwd,h);a.reportInfo(0,`Saving the new plugin in ${he.pretty(n,h,"magenta")}`),await ce.mkdirPromise(J.dirname(E),{recursive:!0}),await ce.writeFilePromise(E,e);let C={path:h,spec:t};r&&(C.checksum=Nn.makeHash(e)),await ze.addPlugin(s.cwd,[C])}var nct=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],xC=class extends ft{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=typeof this.installPath<"u"?J.resolve(this.context.cwd,fe.toPortablePath(this.installPath)):J.resolve(fe.toPortablePath((0,Iye.tmpdir)()),"yarnpkg-sources",Nn.makeHash(this.repository).slice(0,6));return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:c}=await Rt.find(r,this.context.cwd),f=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=G.stringifyIdent(f),h=await Sm(r,fn);if(!Object.hasOwn(h,p))throw new jt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await zq(this,{configuration:r,report:n,target:s}),await Zq(E,this,{project:c,report:n,target:s})})).exitCode()}};async function Zq(t,{context:e,noMinify:r},{project:s,report:a,target:n}){let c=t.replace(/@yarnpkg\//,""),{configuration:f}=s;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${c}`),a.reportSeparator(),await $v(nct({pluginName:c,noMinify:r},n),{configuration:f,context:e,target:n}),a.reportSeparator();let p=J.resolve(n,`packages/${c}/bundles/${t}.js`),h=await ce.readFilePromise(p);await Xq(t,h,{project:s,report:a})}Ge();Dt();Yt();var kC=class extends ft{constructor(){super(...arguments);this.name=ge.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let c=this.name,f=G.parseIdent(c);if(!r.plugins.has(c))throw new nt(`${G.prettyIdent(r,f)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${c}.cjs`,h=J.resolve(s.cwd,p);ce.existsSync(h)&&(n.reportInfo(0,`Removing ${he.pretty(r,p,he.Type.PATH)}...`),await ce.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await ze.updateConfiguration(s.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let C=E.filter(S=>S.path!==p);return C.length===0?ze.deleteProperty:C.length===E.length?E:C}})})).exitCode()}};Ge();Yt();var QC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. `,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let c=this.context.plugins.plugins.has(n),f=n;c&&(f+=" [builtin]"),a.reportJson({name:n,builtin:c}),a.reportInfo(null,`${f}`)}})).exitCode()}};Ge();Ge();Yt();var RC=class extends ft{constructor(){super(...arguments);this.idents=ge.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=ot.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=new Set;for(let f of this.idents)c.add(G.parseIdent(f).identHash);if(await s.restoreInstallState({restoreResolutions:!1}),await s.resolveEverything({cache:n,report:new ki}),c.size>0)for(let f of s.storedPackages.values())c.has(f.identHash)&&(s.storedBuildState.delete(f.locatorHash),s.skippedBuilds.delete(f.locatorHash));else s.storedBuildState.clear(),s.skippedBuilds.clear();return await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();Yt();var $q=ut(Go());Ul();var TC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:fo($l)});this.patterns=ge.Rest()}static{this.paths=[["remove"]]}static{this.usage=ot.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.all?s.workspaces:[a],f=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let I of this.patterns){let T=!1,N=G.parseIdent(I);for(let U of c){let W=[...U.manifest.peerDependenciesMeta.keys()];for(let ee of(0,$q.default)(W,I))U.manifest.peerDependenciesMeta.delete(ee),h=!0,T=!0;for(let ee of f){let ie=U.manifest.getForScope(ee),ue=[...ie.values()].map(le=>G.stringifyIdent(le));for(let le of(0,$q.default)(ue,G.stringifyIdent(N))){let{identHash:me}=G.parseIdent(le),pe=ie.get(me);if(typeof pe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[ee].delete(me),E.push([U,ee,pe]),h=!0,T=!0}}}T||p.push(I)}let C=p.length>1?"Patterns":"Pattern",S=p.length>1?"don't":"doesn't",b=this.all?"any":"this";if(p.length>0)throw new nt(`${C} ${he.prettyList(r,p,he.Type.CODE)} ${S} match any packages referenced by ${b} workspace`);return h?(await r.triggerMultipleHooks(I=>I.afterWorkspaceDependencyRemoval,E),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ge();Ge();Yt();var Cye=Ie("util"),FC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async c=>{let f=a.manifest.scripts,p=je.sortMap(f.keys(),C=>C),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((C,S)=>Math.max(C,S.length),0);for(let[C,S]of f.entries())c.reportInfo(null,`${C.padEnd(E," ")} ${(0,Cye.inspect)(S,h)}`),c.reportJson({name:C,script:S})})).exitCode()}};Ge();Ge();Yt();var NC=class extends ft{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}static{this.paths=[["run"]]}static{this.usage=ot.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a,locator:n}=await Rt.find(r,this.context.cwd);await s.restoreInstallState();let c=this.topLevel?s.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await In.hasPackageScript(c,this.scriptName,{project:s}))return await In.executePackageScript(c,this.scriptName,this.args,{project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let f=await In.getPackageAccessibleBinaries(c,{project:s});if(f.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await In.executePackageAccessibleBinary(c,this.scriptName,this.args,{cwd:this.context.cwd,project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:f})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(s.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(E.length===1)return await In.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new nt(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new nt(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new nt("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,C]of $I)for(let S of C)if(h.length>=S.length&&JSON.stringify(h.slice(0,S.length))===JSON.stringify(S))throw new nt(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new nt(`Couldn't find a script named "${this.scriptName}".`)}}};Ge();Ge();Yt();var OC=class extends ft{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}static{this.paths=[["set","resolution"]]}static{this.usage=ot.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(await s.restoreInstallState({restoreResolutions:!1}),!a)throw new ar(s.cwd,this.context.cwd);let c=G.parseDescriptor(this.descriptor,!0),f=G.makeDescriptor(c,this.resolution);return s.storedDescriptors.set(c.descriptorHash,c),s.storedDescriptors.set(f.descriptorHash,f),s.resolutionAliases.set(c.descriptorHash,f.descriptorHash),await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ge();Dt();Yt();var wye=ut(Go()),LC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}static{this.paths=[["unlink"]]}static{this.usage=ot.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=s.topLevelWorkspace,f=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of c.manifest.resolutions)h.startsWith("portal:")&&f.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=J.resolve(this.context.cwd,fe.toPortablePath(p));if(je.isPathLike(p)){let E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Rt.find(E,h);if(!S)throw new ar(C.cwd,h);if(this.all){for(let b of C.workspaces)b.manifest.name&&f.add(G.stringifyIdent(b.anchoredLocator));if(f.size===0)throw new nt("No workspace found to be unlinked in the target project")}else{if(!S.manifest.name)throw new nt("The target workspace doesn't have a name and thus cannot be unlinked");f.add(G.stringifyIdent(S.anchoredLocator))}}else{let E=[...c.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,wye.default)(E,p))f.add(C)}}return c.manifest.resolutions=c.manifest.resolutions.filter(({pattern:p})=>!f.has(p.descriptor.fullName)),await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();Yt();var Bye=ut(Vv()),e5=ut(Go());Ul();var MC=class extends ft{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:fo($l)});this.patterns=ge.Rest()}static{this.paths=[["up"]]}static{this.usage=ot.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]})}static{this.schema=[tB("recursive",qf.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=[...s.storedDescriptors.values()],f=c.map(E=>G.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(G.parseDescriptor(E).range!=="unknown")throw new nt("Ranges aren't allowed when using --recursive");for(let C of(0,e5.default)(f,E)){let S=G.parseIdent(C);p.add(S.identHash)}}let h=c.filter(E=>p.has(E.identHash));for(let E of h)s.storedDescriptors.delete(E.descriptorHash),s.storedResolutions.delete(E.descriptorHash);return await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.fixed,f=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=Kv(this,s),h=f?["keep","reuse","project","latest"]:["project","latest"],E=[],C=[];for(let N of this.patterns){let U=!1,W=G.parseDescriptor(N),ee=G.stringifyIdent(W);for(let ie of s.workspaces)for(let ue of["dependencies","devDependencies"]){let me=[...ie.manifest.getForScope(ue).values()].map(Be=>G.stringifyIdent(Be)),pe=ee==="*"?me:(0,e5.default)(me,ee);for(let Be of pe){let Ce=G.parseIdent(Be),g=ie.manifest[ue].get(Ce.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let we=G.makeDescriptor(Ce,W.range);E.push(Promise.resolve().then(async()=>[ie,ue,g,await zv(we,{project:s,workspace:ie,cache:n,target:ue,fixed:c,modifier:p,strategies:h})])),U=!0}}U||C.push(N)}if(C.length>1)throw new nt(`Patterns ${he.prettyList(r,C,he.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new nt(`Pattern ${he.prettyList(r,C,he.Type.CODE)} doesn't match any packages referenced by any workspace`);let S=await Promise.all(E),b=await lA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async N=>{for(let[,,U,{suggestions:W,rejections:ee}]of S){let ie=W.filter(ue=>ue.descriptor!==null);if(ie.length===0){let[ue]=ee;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");let le=this.cli.error(ue);s.configuration.get("enableNetwork")?N.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range ${le}`):N.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) ${le}`)}else ie.length>1&&!f&&N.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(b.hasErrors())return b.exitCode();let I=!1,T=[];for(let[N,U,,{suggestions:W}]of S){let ee,ie=W.filter(pe=>pe.descriptor!==null),ue=ie[0].descriptor,le=ie.every(pe=>G.areDescriptorsEqual(pe.descriptor,ue));ie.length===1||le?ee=ue:(I=!0,{answer:ee}=await(0,Bye.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,N)} \u276F ${U}?`,choices:W.map(({descriptor:pe,name:Be,reason:Ce})=>pe?{name:Be,hint:Ce,descriptor:pe}:{name:Be,hint:Ce,disabled:!0}),onCancel:()=>process.exit(130),result(pe){return this.find(pe,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=N.manifest[U].get(ee.identHash);if(typeof me>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(me.descriptorHash!==ee.descriptorHash)N.manifest[U].set(ee.identHash,ee),T.push([N,U,me,ee]);else{let pe=r.makeResolver(),Be={project:s,resolver:pe},Ce=r.normalizeDependency(me),g=pe.bindDescriptor(Ce,N.anchoredLocator,Be);s.forgetResolution(g)}}return await r.triggerMultipleHooks(N=>N.afterWorkspaceDependencyReplacement,T),I&&this.context.stdout.write(` `),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ge();Ge();Ge();Yt();var UC=class extends ft{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}static{this.paths=[["why"]]}static{this.usage=ot.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=G.parseIdent(this.package).identHash,c=this.recursive?sct(s,n,{configuration:r,peers:this.peers}):ict(s,n,{configuration:r,peers:this.peers});xs.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function ict(t,e,{configuration:r,peers:s}){let a=je.sortMap(t.storedPackages.values(),f=>G.stringifyLocator(f)),n={},c={children:n};for(let f of a){let p={};for(let E of f.dependencies.values()){if(!s&&f.peerDependencies.has(E.identHash))continue;let C=t.storedResolutions.get(E.descriptorHash);if(!C)throw new Error("Assertion failed: The resolution should have been registered");let S=t.storedPackages.get(C);if(!S)throw new Error("Assertion failed: The package should have been registered");if(S.identHash!==e)continue;{let I=G.stringifyLocator(f);n[I]={value:[f,he.Type.LOCATOR],children:p}}let b=G.stringifyLocator(S);p[b]={value:[{descriptor:E,locator:S},he.Type.DEPENDENT]}}}return c}function sct(t,e,{configuration:r,peers:s}){let a=je.sortMap(t.workspaces,S=>G.stringifyLocator(S.anchoredLocator)),n=new Set,c=new Set,f=S=>{if(n.has(S.locatorHash))return c.has(S.locatorHash);if(n.add(S.locatorHash),S.identHash===e)return c.add(S.locatorHash),!0;let b=!1;S.identHash===e&&(b=!0);for(let I of S.dependencies.values()){if(!s&&S.peerDependencies.has(I.identHash))continue;let T=t.storedResolutions.get(I.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let N=t.storedPackages.get(T);if(!N)throw new Error("Assertion failed: The package should have been registered");f(N)&&(b=!0)}return b&&c.add(S.locatorHash),b};for(let S of a)f(S.anchoredPackage);let p=new Set,h={},E={children:h},C=(S,b,I)=>{if(!c.has(S.locatorHash))return;let T=I!==null?he.tuple(he.Type.DEPENDENT,{locator:S,descriptor:I}):he.tuple(he.Type.LOCATOR,S),N={},U={value:T,children:N},W=G.stringifyLocator(S);if(b[W]=U,!(I!==null&&t.tryWorkspaceByLocator(S))&&!p.has(S.locatorHash)){p.add(S.locatorHash);for(let ee of S.dependencies.values()){if(!s&&S.peerDependencies.has(ee.identHash))continue;let ie=t.storedResolutions.get(ee.descriptorHash);if(!ie)throw new Error("Assertion failed: The resolution should have been registered");let ue=t.storedPackages.get(ie);if(!ue)throw new Error("Assertion failed: The package should have been registered");C(ue,N,ee)}}};for(let S of a)C(S.anchoredPackage,h,null);return E}Ge();var u5={};Vt(u5,{GitFetcher:()=>tS,GitResolver:()=>rS,default:()=>Dct,gitUtils:()=>ka});Ge();Dt();var ka={};Vt(ka,{TreeishProtocols:()=>eS,clone:()=>c5,fetchBase:()=>qye,fetchChangedFiles:()=>Wye,fetchChangedWorkspaces:()=>vct,fetchRoot:()=>Gye,isGitUrl:()=>jC,lsRemote:()=>jye,normalizeLocator:()=>Bct,normalizeRepoUrl:()=>_C,resolveUrl:()=>l5,splitRepoUrl:()=>W0,validateRepoUrl:()=>a5});Ge();Dt();Yt();ql();var _ye=ut(Lye()),HC=ut(Ie("querystring")),s5=ut(Ai());function i5(t,e,r){let s=t.indexOf(r);return t.lastIndexOf(e,s>-1?s:1/0)}function Mye(t){try{return new URL(t)}catch{return}}function Cct(t){let e=i5(t,"@","#"),r=i5(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),i5(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Uye(t){return Mye(t)||Mye(Cct(t))}function _C(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Uye(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function Hye(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var wct=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],eS=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(eS||{});function jC(t){return t?wct.some(e=>!!t.match(e)):!1}function W0(t){t=_C(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),s=t.slice(e+1);if(s.match(/^[a-z]+=/)){let a=HC.default.parse(s);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(eS).find(p=>Object.hasOwn(a,p)),[c,f]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(eS))delete a[p];return{repo:r,treeish:{protocol:c,request:f},extra:a}}else{let a=s.indexOf(":"),[n,c]=a===-1?[null,s]:[s.slice(0,a),s.slice(a+1)];return{repo:r,treeish:{protocol:n,request:c},extra:{}}}}function Bct(t){return G.makeLocator(t,_C(t.reference))}function a5(t,{configuration:e}){let r=_C(t,{git:!0});if(!ln.getNetworkSettings(`https://${(0,_ye.default)(r).resource}`,{configuration:e}).enableNetwork)throw new jt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function jye(t,e){let r=a5(t,{configuration:e}),s=await o5("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:Hye()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,c;for(;(c=n.exec(s.stdout))!==null;)a.set(c[2],c[1]);return a}async function l5(t,e){let{repo:r,treeish:{protocol:s,request:a},extra:n}=W0(t),c=await jye(r,e),f=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return HC.default.stringify({...n,commit:E})}case"head":{let C=c.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof C>"u")throw new Error(`Unknown head ("${E}")`);return HC.default.stringify({...n,commit:C})}case"tag":{let C=c.get(`refs/tags/${E}`);if(typeof C>"u")throw new Error(`Unknown tag ("${E}")`);return HC.default.stringify({...n,commit:C})}case"semver":{let C=Fr.validRange(E);if(!C)throw new Error(`Invalid range ("${E}")`);let S=new Map([...c.entries()].filter(([I])=>I.startsWith("refs/tags/")).map(([I,T])=>[s5.default.parse(I.slice(10)),T]).filter(I=>I[0]!==null)),b=s5.default.maxSatisfying([...S.keys()],C);if(b===null)throw new Error(`No matching range ("${E}")`);return HC.default.stringify({...n,commit:S.get(b)})}case null:{let C;if((C=p("commit",E))!==null||(C=p("tag",E))!==null||(C=p("head",E))!==null)return C;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return f(h,E)}catch{return null}};return _C(`${r}#${f(s,a)}`)}async function c5(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:s,request:a}}=W0(t);if(s!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=a5(r,{configuration:e}),c=await ce.mktempPromise(),f={cwd:c,env:Hye()};return await o5("cloning the repository",["clone","-c core.autocrlf=false",n,fe.fromPortablePath(c)],f,{configuration:e,normalizedRepoUrl:n}),await o5("switching branch",["checkout",`${a}`],f,{configuration:e,normalizedRepoUrl:n}),c})}async function Gye(t){let e,r=t;do{if(e=r,await ce.existsPromise(J.join(e,".git")))return e;r=J.dirname(e)}while(r!==e);return null}async function qye(t,{baseRefs:e}){if(e.length===0)throw new nt("Can't run this command with zero base refs specified.");let r=[];for(let f of e){let{code:p}=await qr.execvp("git",["merge-base",f,"HEAD"],{cwd:t});p===0&&r.push(f)}if(r.length===0)throw new nt(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:s}=await qr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=s.trim(),{stdout:n}=await qr.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),c=n.trim();return{hash:a,title:c}}async function Wye(t,{base:e,project:r}){let s=je.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await qr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>J.resolve(t,fe.toPortablePath(h))),{stdout:c}=await qr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),f=c.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>J.resolve(t,fe.toPortablePath(h))),p=[...new Set([...n,...f].sort())];return s?p.filter(h=>!J.relative(r.cwd,h).match(s)):p}async function vct({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new nt("This command can only be run from within a Yarn project");let r=[J.resolve(e.cwd,Er.lockfile),J.resolve(e.cwd,e.configuration.get("cacheFolder")),J.resolve(e.cwd,e.configuration.get("installStatePath")),J.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(c=>c.populateYarnPaths,e,c=>{c!=null&&r.push(c)});let s=await Gye(e.configuration.projectCwd);if(s==null)throw new nt("This command can only be run on Git repositories");let a=await qye(s,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await Wye(s,{base:a.hash,project:e});return new Set(je.mapAndFilter(n,c=>{let f=e.tryWorkspaceByFilePath(c);return f===null?je.mapAndFilter.skip:r.some(p=>c.startsWith(p))?je.mapAndFilter.skip:f}))}async function o5(t,e,r,{configuration:s,normalizedRepoUrl:a}){try{return await qr.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof qr.ExecError))throw n;let c=n.reportExtra,f=n.stderr.toString();throw new jt(1,`Failed ${t}`,p=>{p.reportError(1,` ${he.prettyField(s,{label:"Repository URL",value:he.tuple(he.Type.URL,a)})}`);for(let h of f.matchAll(/^(.+?): (.*)$/gm)){let[,E,C]=h;E=E.toLowerCase();let S=E==="error"?"Error":`${PB(E)} Error`;p.reportError(1,` ${he.prettyField(s,{label:S,value:he.tuple(he.Type.NO_HINT,C)})}`)}c?.(p)})}}var tS=class{supports(e,r){return jC(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,s);let n={...r,checksums:a},c=await this.downloadHosted(e,n);if(c!==null)return c;let[f,p,h]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:f,releaseFs:p,prefixPath:G.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(s=>s.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let s=W0(e.reference),a=await c5(e.reference,r.project.configuration),n=J.resolve(a,s.extra.cwd??vt.dot),c=J.join(n,"package.tgz");await In.prepareExternalProject(n,c,{configuration:r.project.configuration,report:r.report,workspace:s.extra.workspace,locator:e});let f=await ce.readFilePromise(c);return await je.releaseAfterUseAsync(async()=>await ps.convertToZip(f,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1}))}};Ge();Ge();var rS=class{supportsDescriptor(e,r){return jC(e.range)}supportsLocator(e,r){return jC(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=await l5(e.range,s.project.configuration);return[G.makeLocator(e,a)]}async getSatisfying(e,r,s,a){let n=W0(e.range);return{locators:s.filter(f=>{if(f.identHash!==e.identHash)return!1;let p=W0(f.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Sct={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[tS],resolvers:[rS]};var Dct=Sct;Yt();var GC=class extends ft{constructor(){super(...arguments);this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=ge.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["workspaces","list"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let c=this.since?await ka.fetchChangedWorkspaces({ref:this.since,project:s}):s.workspaces,f=new Set(c);if(this.recursive)for(let p of[...c].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)f.add(h);for(let p of f){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let C=new Set,S=new Set;for(let b of Ut.hardDependencies)for(let[I,T]of h.getForScope(b)){let N=s.tryWorkspaceByDescriptor(T);N===null?s.workspacesByIdent.has(I)&&S.add(T):C.add(N)}E={workspaceDependencies:Array.from(C).map(b=>b.relativeCwd),mismatchedWorkspaceDependencies:Array.from(S).map(b=>G.stringifyDescriptor(b))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?G.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ge();Ge();Yt();var qC=class extends ft{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspace"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=s.workspaces,c=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),f=c.get(this.workspaceName);if(f===void 0){let p=Array.from(c.keys()).sort();throw new nt(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${p.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:f.cwd})}};var Pct={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Yye.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[aC,lC,cC,uC,OC,PC,EC,GC,pC,hC,gC,dC,sC,oC,fC,AC,mC,yC,IC,CC,wC,BC,LC,vC,SC,xC,bC,kC,DC,QC,RC,TC,FC,NC,MC,UC,qC]},bct=Pct;var d5={};Vt(d5,{default:()=>kct});Ge();var Qt={optional:!0},A5=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Qt}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Qt,"postcss-jsx":Qt,"postcss-less":Qt,"postcss-markdown":Qt,"postcss-scss":Qt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Qt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Qt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Qt,"vue-template-compiler":Qt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Qt,"utf-8-validate":Qt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt,"vuetify-loader":Qt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Qt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Qt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Qt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Qt,tinyliquid:Qt,"liquid-node":Qt,jade:Qt,"then-jade":Qt,dust:Qt,"dustjs-helpers":Qt,"dustjs-linkedin":Qt,swig:Qt,"swig-templates":Qt,"razor-tmpl":Qt,atpl:Qt,liquor:Qt,twig:Qt,ejs:Qt,eco:Qt,jazz:Qt,jqtpl:Qt,hamljs:Qt,hamlet:Qt,whiskers:Qt,"haml-coffee":Qt,"hogan.js":Qt,templayed:Qt,handlebars:Qt,underscore:Qt,lodash:Qt,pug:Qt,"then-pug":Qt,qejs:Qt,walrus:Qt,mustache:Qt,just:Qt,ect:Qt,mote:Qt,toffee:Qt,dot:Qt,"bracket-template":Qt,ractive:Qt,nunjucks:Qt,htmling:Qt,"babel-core":Qt,plates:Qt,"react-dom":Qt,react:Qt,"arc-templates":Qt,vash:Qt,slm:Qt,marko:Qt,teacup:Qt,"coffee-script":Qt,squirrelly:Qt,twing:Qt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt,vue:Qt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Qt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Qt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Qt,"webpack-command":Qt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Qt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Qt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Qt,jimp:Qt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Qt,"eslint-import-resolver-typescript":Qt,"eslint-import-resolver-webpack":Qt,"@typescript-eslint/parser":Qt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Qt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Qt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Qt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Qt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":Qt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Qt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Qt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Qt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Qt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}],["@fastify/type-provider-typebox@^5.0.0",{peerDependencies:{fastify:"^5.0.0"}}],["@fastify/type-provider-typebox@^4.0.0",{peerDependencies:{fastify:"^4.0.0"}}]];var p5;function Vye(){return typeof p5>"u"&&(p5=Ie("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),p5}var h5;function Jye(){return typeof h5>"u"&&(h5=Ie("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),h5}var g5;function Kye(){return typeof g5>"u"&&(g5=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),g5}var zye=new Map([[G.makeIdent(null,"fsevents").identHash,Vye],[G.makeIdent(null,"resolve").identHash,Jye],[G.makeIdent(null,"typescript").identHash,Kye]]),xct={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,s]of A5)e(G.parseDescriptor(r,!0),s)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let s=G.parseIdent(e.slice(r.length)),a=zye.get(s.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,s)=>typeof zye.get(t.identHash)>"u"?t:G.makeDescriptor(t,G.makeRange({protocol:"patch:",source:G.stringifyDescriptor(t),selector:`optional!builtin`,params:null}))}},kct=xct;var T5={};Vt(T5,{ConstraintsCheckCommand:()=>XC,ConstraintsQueryCommand:()=>zC,ConstraintsSourceCommand:()=>ZC,default:()=>Kct});Ge();Ge();iS();var YC=class{constructor(e){this.project=e}createEnvironment(){let e=new WC(["cwd","ident"]),r=new WC(["workspace","type","ident"]),s=new WC(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,c=new Map;for(let f of this.project.storedPackages.values()){let p=Array.from(f.peerDependencies.values(),h=>[G.stringifyIdent(h),h.range]);n.set(f.locatorHash,{workspace:null,ident:G.stringifyIdent(f),version:f.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>f.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>f.peerDependenciesMeta.get(h)?.optional===!0))})}for(let f of this.project.storedPackages.values()){let p=n.get(f.locatorHash);p.dependencies=new Map(Array.from(f.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let C=n.get(E);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");return[G.stringifyIdent(h),C]})),p.dependencies.delete(p.ident)}for(let f of this.project.workspaces){let p=G.stringifyIdent(f.anchoredLocator),h=f.manifest.exportTo({}),E=n.get(f.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let C=(T,N,{caller:U=fs.getCaller()}={})=>{let W=nS(T),ee=je.getMapWithDefault(a.manifestUpdates,f.cwd),ie=je.getMapWithDefault(ee,W),ue=je.getSetWithDefault(ie,N);U!==null&&ue.add(U)},S=T=>C(T,void 0,{caller:fs.getCaller()}),b=T=>{je.getArrayWithDefault(a.reportedErrors,f.cwd).push(T)},I=e.insert({cwd:f.relativeCwd,ident:p,manifest:h,pkg:E,set:C,unset:S,error:b});c.set(f,I);for(let T of Ut.allDependencies)for(let N of f.manifest[T].values()){let U=G.stringifyIdent(N),W=()=>{C([T,U],void 0,{caller:fs.getCaller()})},ee=ue=>{C([T,U],ue,{caller:fs.getCaller()})},ie=null;if(T!=="peerDependencies"&&(T!=="dependencies"||!f.manifest.devDependencies.has(N.identHash))){let ue=f.anchoredPackage.dependencies.get(N.identHash);if(ue){if(typeof ue>"u")throw new Error("Assertion failed: The dependency should have been registered");let le=this.project.storedResolutions.get(ue.descriptorHash);if(typeof le>"u")throw new Error("Assertion failed: The resolution should have been registered");let me=n.get(le);if(typeof me>"u")throw new Error("Assertion failed: The package should have been registered");ie=me}}r.insert({workspace:I,ident:U,range:N.range,type:T,resolution:ie,update:ee,delete:W,error:b})}}for(let f of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(f);if(!p)continue;let h=c.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(f.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:s,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},s=await this.project.loadUserConfig();return s?.constraints?(await s.constraints(r),e.result):null}};Ge();Ge();Yt();var zC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=ge.String()}static{this.paths=[["constraints","query"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` This command will output all matches to the given prolog query. `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(lS(),aS)),s=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Rt.find(s,this.context.cwd),n=await r.find(a),c=this.query;return c.endsWith(".")||(c=`${c}.`),(await Ot.start({configuration:s,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(c)){let E=Array.from(Object.entries(h)),C=E.length,S=E.reduce((b,[I])=>Math.max(b,I.length),0);for(let b=0;b(lS(),aS)),s=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Rt.find(s,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ge();Ge();Yt();iS();var XC=class extends ft{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);await s.restoreInstallState();let a=await s.loadUserConfig(),n;if(a?.constraints)n=new YC(s);else{let{Constraints:h}=await Promise.resolve().then(()=>(lS(),aS));n=await h.find(s)}let c,f=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:C,remainingErrors:S}=nF(s,E,{fix:this.fix}),b=[];for(let[I,T]of C){let N=I.manifest.indent;I.manifest=new Ut,I.manifest.indent=N,I.manifest.load(T),b.push(I.persistManifest())}if(await Promise.all(b),!(C.size>0&&h>1)){c=Zye(S,{configuration:r}),f=!1,p=!0;for(let[,I]of S)for(let T of I)T.fixable?f=!0:p=!1}}if(c.children.length===0)return 0;if(f){let h=p?`Those errors can all be fixed by running ${he.pretty(r,"yarn constraints --fix",he.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${he.pretty(r,"yarn constraints --fix",he.Type.CODE)}`;await Ot.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return c.children=je.sortMap(c.children,h=>h.value[1]),xs.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};iS();var Jct={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[zC,ZC,XC],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),s;if(r?.constraints)s=new YC(t);else{let{Constraints:c}=await Promise.resolve().then(()=>(lS(),aS));s=await c.find(t)}let a=await s.process();if(!a)return;let{remainingErrors:n}=nF(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[c,f]of n)for(let p of f)e(84,`${he.pretty(t.configuration,c.anchoredLocator,he.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${he.pretty(t.configuration,"yarn constraints",he.Type.CODE)} for more details`)}}},Kct=Jct;var F5={};Vt(F5,{CreateCommand:()=>$C,DlxCommand:()=>ew,default:()=>Zct});Ge();Yt();var $C=class extends ft{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let s=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(s),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),c=G.stringifyIdent(n);return a.range!=="unknown"&&(c+=`@${a.range}`),this.cli.run(["dlx",...r,c,...this.args])}};Ge();Ge();Dt();Yt();var ew=class extends ft{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=ot.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return ze.telemetry=null,await ce.mktempPromise(async r=>{let s=J.join(r,`dlx-${process.pid}`);await ce.mkdirPromise(s),await ce.writeFilePromise(J.join(s,"package.json"),`{} `),await ce.writeFilePromise(J.join(s,"yarn.lock"),"");let a=J.join(s,".yarnrc.yml"),n=await ze.findProjectCwd(this.context.cwd),f={enableGlobalCache:!(await ze.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Yf(68),level:he.LogLevel.Discard}]},p=n!==null?J.join(n,".yarnrc.yml"):null;p!==null&&ce.existsSync(p)?(await ce.copyFilePromise(p,a),await ze.updateConfiguration(s,N=>{let U=je.toMerged(N,f);return Array.isArray(N.plugins)&&(U.plugins=N.plugins.map(W=>{let ee=typeof W=="string"?W:W.path,ie=fe.isAbsolute(ee)?ee:fe.resolve(fe.fromPortablePath(n),ee);return typeof W=="string"?ie:{path:ie,spec:W.spec}})),U})):await ce.writeJsonPromise(a,f);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,C=await this.cli.run(["add","--fixed","--",...h],{cwd:s,quiet:this.quiet});if(C!==0)return C;this.quiet||this.context.stdout.write(` `);let S=await ze.find(s,this.context.plugins),{project:b,workspace:I}=await Rt.find(S,s);if(I===null)throw new ar(b.cwd,s);await b.restoreInstallState();let T=await In.getWorkspaceAccessibleBinaries(I);return T.has(E)===!1&&T.size===1&&typeof this.packages>"u"&&(E=Array.from(T)[0][0]),await In.executeWorkspaceAccessibleBinary(I,E,this.args,{packageAccessibleBinaries:T,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var zct={commands:[$C,ew]},Zct=zct;var L5={};Vt(L5,{ExecFetcher:()=>uS,ExecResolver:()=>fS,default:()=>eut,execUtils:()=>aF});Ge();Ge();Dt();var cA="exec:";var aF={};Vt(aF,{loadGeneratorFile:()=>cS,makeLocator:()=>O5,makeSpec:()=>BEe,parseSpec:()=>N5});Ge();Dt();function N5(t){let{params:e,selector:r}=G.parseRange(t),s=fe.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:s}}function BEe({parentLocator:t,path:e,generatorHash:r,protocol:s}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function O5(t,{parentLocator:e,path:r,generatorHash:s,protocol:a}){return G.makeLocator(t,BEe({parentLocator:e,path:r,generatorHash:s,protocol:a}))}async function cS(t,e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=J.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,n.localPath)}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=J.join(c.prefixPath,a);return await f.readFilePromise(p,"utf8")}var uS=class{supports(e,r){return!!e.reference.startsWith(cA)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:cA});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async fetchFromDisk(e,r){let s=await cS(e.reference,cA,r);return ce.mktempPromise(async a=>{let n=J.join(a,"generator.js");return await ce.writeFilePromise(n,s),ce.mktempPromise(async c=>{if(await this.generatePackage(c,e,n,r),!ce.existsSync(J.join(c,"build")))throw new Error("The script should have generated a build directory");return await ps.makeArchiveFromDirectory(J.join(c,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,s,a){return await ce.mktempPromise(async n=>{let c=await In.makeScriptEnv({project:a.project,binFolder:n}),f=J.join(e,"runtime.js");return await ce.mktempPromise(async p=>{let h=J.join(p,"buildfile.log"),E=J.join(e,"generator"),C=J.join(e,"build");await ce.mkdirPromise(E),await ce.mkdirPromise(C);let S={tempDir:fe.fromPortablePath(E),buildDir:fe.fromPortablePath(C),locator:G.stringifyLocator(r)};await ce.writeFilePromise(f,` // Expose 'Module' as a global variable Object.defineProperty(global, 'Module', { get: () => require('module'), configurable: true, enumerable: false, }); // Expose non-hidden built-in modules as global variables for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { Object.defineProperty(global, name, { get: () => require(name), configurable: true, enumerable: false, }); } // Expose the 'execEnv' global variable Object.defineProperty(global, 'execEnv', { value: { ...${JSON.stringify(S)}, }, enumerable: true, }); `);let b=c.NODE_OPTIONS||"",I=/\s*--require\s+\S*\.pnp\.c?js\s*/g;b=b.replace(I," ").trim(),c.NODE_OPTIONS=b;let{stdout:T,stderr:N}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)}) `,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await qr.pipevp(process.execPath,["--require",fe.fromPortablePath(f),fe.fromPortablePath(s),G.stringifyIdent(r)],{cwd:e,env:c,stdin:null,stdout:T,stderr:N});if(U!==0)throw ce.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${he.pretty(a.project.configuration,h,he.Type.PATH)})`)})})}};Ge();Ge();var Xct=2,fS=class{supportsDescriptor(e,r){return!!e.range.startsWith(cA)}supportsLocator(e,r){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=N5(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=await cS(G.makeRange({protocol:cA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),cA,s.fetchOptions),f=Nn.makeHash(`${Xct}`,c).slice(0,6);return[O5(e,{parentLocator:n,path:a,generatorHash:f,protocol:cA})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var $ct={fetchers:[uS],resolvers:[fS]},eut=$ct;var U5={};Vt(U5,{FileFetcher:()=>gS,FileResolver:()=>dS,TarballFileFetcher:()=>mS,TarballFileResolver:()=>yS,default:()=>nut,fileUtils:()=>xm});Ge();Dt();var tw=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,AS=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,$i="file:";var xm={};Vt(xm,{fetchArchiveFromLocator:()=>hS,makeArchiveFromLocator:()=>lF,makeBufferFromLocator:()=>M5,makeLocator:()=>rw,makeSpec:()=>vEe,parseSpec:()=>pS});Ge();Dt();function pS(t){let{params:e,selector:r}=G.parseRange(t),s=fe.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:s}}function vEe({parentLocator:t,path:e,hash:r,protocol:s}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function rw(t,{parentLocator:e,path:r,hash:s,protocol:a}){return G.makeLocator(t,vEe({parentLocator:e,path:r,hash:s,protocol:a}))}async function hS(t,e){let{parentLocator:r,path:s}=G.parseFileStyleRange(t.reference,{protocol:$i}),a=J.isAbsolute(s)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let c=n.packageFs,f=J.join(n.prefixPath,s);return await je.releaseAfterUseAsync(async()=>await c.readFilePromise(f),n.releaseFs)}async function lF(t,{protocol:e,fetchOptions:r,inMemory:s=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),c=J.isAbsolute(n)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(a,r),f=c.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,c.localPath)}:c;c!==f&&c.releaseFs&&c.releaseFs();let p=f.packageFs,h=J.join(f.prefixPath,n);return await je.releaseAfterUseAsync(async()=>await ps.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:s}),f.releaseFs)}async function M5(t,{protocol:e,fetchOptions:r}){return(await lF(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var gS=class{supports(e,r){return!!e.reference.startsWith($i)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:$i});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async fetchFromDisk(e,r){return lF(e,{protocol:$i,fetchOptions:r})}};Ge();Ge();var tut=2,dS=class{supportsDescriptor(e,r){return e.range.match(tw)?!0:!!e.range.startsWith($i)}supportsLocator(e,r){return!!e.reference.startsWith($i)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return tw.test(e.range)&&(e=G.makeDescriptor(e,`${$i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=pS(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=await M5(G.makeLocator(e,G.makeRange({protocol:$i,source:a,selector:a,params:{locator:G.stringifyLocator(n)}})),{protocol:$i,fetchOptions:s.fetchOptions}),f=Nn.makeHash(`${tut}`,c).slice(0,6);return[rw(e,{parentLocator:n,path:a,hash:f,protocol:$i})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ge();var mS=class{supports(e,r){return AS.test(e.reference)?!!e.reference.startsWith($i):!1}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromDisk(e,r){let s=await hS(e,r);return await ps.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();Ge();var yS=class{supportsDescriptor(e,r){return AS.test(e.range)?!!(e.range.startsWith($i)||tw.test(e.range)):!1}supportsLocator(e,r){return AS.test(e.reference)?!!e.reference.startsWith($i):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return tw.test(e.range)&&(e=G.makeDescriptor(e,`${$i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=pS(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=rw(e,{parentLocator:n,path:a,hash:"",protocol:$i}),f=await hS(c,s.fetchOptions),p=Nn.makeHash(f).slice(0,6);return[rw(e,{parentLocator:n,path:a,hash:p,protocol:$i})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var rut={fetchers:[mS,gS],resolvers:[yS,dS]},nut=rut;var j5={};Vt(j5,{GithubFetcher:()=>ES,default:()=>sut,githubUtils:()=>cF});Ge();Dt();var cF={};Vt(cF,{invalidGithubUrlMessage:()=>PEe,isGithubUrl:()=>_5,parseGithubUrl:()=>H5});var SEe=ut(Ie("querystring")),DEe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function _5(t){return t?DEe.some(e=>!!t.match(e)):!1}function H5(t){let e;for(let f of DEe)if(e=t.match(f),e)break;if(!e)throw new Error(PEe(t));let[,r,s,a,n="master"]=e,{commit:c}=SEe.default.parse(n);return n=c||n.replace(/[^:]*:/,""),{auth:r,username:s,reponame:a,treeish:n}}function PEe(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var ES=class{supports(e,r){return!!_5(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s=await ln.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await ce.mktempPromise(async a=>{let n=new Sn(a);await ps.extractArchiveTo(s,n,{stripComponents:1});let c=ka.splitRepoUrl(e.reference),f=J.join(a,"package.tgz");await In.prepareExternalProject(a,f,{configuration:r.project.configuration,report:r.report,workspace:c.extra.workspace,locator:e});let p=await ce.readFilePromise(f);return await ps.convertToZip(p,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:s,username:a,reponame:n,treeish:c}=H5(e.reference);return`https://${s?`${s}@`:""}github.com/${a}/${n}/archive/${c}.tar.gz`}};var iut={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let s=new ES;if(!s.supports(e,r))return null;try{return await s.fetch(e,r)}catch{return null}}}},sut=iut;var G5={};Vt(G5,{TarballHttpFetcher:()=>CS,TarballHttpResolver:()=>wS,default:()=>aut});Ge();function IS(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var CS=class{supports(e,r){return IS(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s=await ln.get(e.reference,{configuration:r.project.configuration});return await ps.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();var wS=class{supportsDescriptor(e,r){return IS(e.range)}supportsLocator(e,r){return IS(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){return[G.convertDescriptorToLocator(e)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var out={fetchers:[CS],resolvers:[wS]},aut=out;var q5={};Vt(q5,{InitCommand:()=>z0,InitInitializerCommand:()=>nw,default:()=>cut});Yt();Ge();Ge();Dt();Yt();var z0=class extends ft{constructor(){super(...arguments);this.private=ge.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=ge.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=ge.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=ge.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=ge.Boolean("-2",!1,{hidden:!0});this.yes=ge.Boolean("-y,--yes",{hidden:!0})}static{this.paths=[["init"]]}static{this.usage=ot.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return s!==null?await this.executeProxy(r,s):await this.executeRegular(r)}async executeProxy(r,s){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new nt("Cannot use the --install flag from within a project subdirectory");ce.existsSync(this.context.cwd)||await ce.mkdirPromise(this.context.cwd,{recursive:!0});let a=J.join(this.context.cwd,Er.lockfile);ce.existsSync(a)||await ce.writeFilePromise(a,"");let n=await this.cli.run(["set","version",s],{quiet:!0});if(n!==0)return n;let c=[];return this.private&&c.push("-p"),this.workspace&&c.push("-w"),this.name&&c.push(`-n=${this.name}`),this.yes&&c.push("-y"),await ce.mktempPromise(async f=>{let{code:p}=await qr.pipevp("yarn",["init",...c],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await In.makeScriptEnv({binFolder:f})});return p})}async initialize(){}async executeRegular(r){let s=null;try{s=(await Rt.find(r,this.context.cwd)).project}catch{s=null}ce.existsSync(this.context.cwd)||await ce.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ut.tryFind(this.context.cwd),n=a??new Ut,c=Object.fromEntries(r.get("initFields").entries());n.load(c),n.name=n.name??G.makeIdent(r.get("initScope"),this.name??J.basename(this.context.cwd)),n.packageManager=fn&&je.isTaggedYarnVersion(fn)?`yarn@${fn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await ce.mkdirPromise(J.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let f={};n.exportTo(f);let p=J.join(this.context.cwd,Ut.fileName);await ce.changeFilePromise(p,`${JSON.stringify(f,null,2)} `,{automaticNewlines:!0});let h=[p],E=J.join(this.context.cwd,"README.md");if(ce.existsSync(E)||(await ce.writeFilePromise(E,`# ${G.stringifyIdent(n.name)} `),h.push(E)),!s||s.cwd===this.context.cwd){let C=J.join(this.context.cwd,Er.lockfile);ce.existsSync(C)||(await ce.writeFilePromise(C,""),h.push(C));let b=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Whether you use PnP or not, the node_modules folder is often used to store","# build artifacts that should be gitignored","node_modules","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(ue=>`${ue} `).join(""),I=J.join(this.context.cwd,".gitignore");ce.existsSync(I)||(await ce.writeFilePromise(I,b),h.push(I));let N=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(ue=>`${ue} `).join(""),U=J.join(this.context.cwd,".gitattributes");ce.existsSync(U)||(await ce.writeFilePromise(U,N),h.push(U));let W={"*":{charset:"utf-8",endOfLine:"lf",indentSize:2,indentStyle:"space",insertFinalNewline:!0}};je.mergeIntoTarget(W,r.get("initEditorConfig"));let ee=`root = true `;for(let[ue,le]of Object.entries(W)){ee+=` [${ue}] `;for(let[me,pe]of Object.entries(le)){let Be=me.replace(/[A-Z]/g,Ce=>`_${Ce.toLowerCase()}`);ee+=`${Be} = ${pe} `}}let ie=J.join(this.context.cwd,".editorconfig");ce.existsSync(ie)||(await ce.writeFilePromise(ie,ee),h.push(ie)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),ce.existsSync(J.join(this.context.cwd,".git"))||(await qr.execvp("git",["init"],{cwd:this.context.cwd}),await qr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await qr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var nw=class extends z0{constructor(){super(...arguments);this.initializer=ge.String();this.argv=ge.Proxy()}static{this.paths=[["init"]]}async initialize(){this.context.stdout.write(` `),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};var lut={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[z0,nw]},cut=lut;var HW={};Vt(HW,{SearchCommand:()=>Iw,UpgradeInteractiveCommand:()=>Cw,default:()=>ygt});Ge();var xEe=ut(Ie("os"));function iw({stdout:t}){if(xEe.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}Yt();var HIe=ut(l9()),c9={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},oAt=(0,HIe.default)(c9.appId,c9.apiKey).initIndex(c9.indexName),u9=async(t,e=0)=>await oAt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var CD=["regular","dev","peer"],Iw=class extends ft{static{this.paths=[["search"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the search interface",details:` This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. `,examples:[["Open the search window","yarn search"]]})}async execute(){iw(this.context);let{Gem:e}=await Promise.resolve().then(()=>(qF(),kW)),{ScrollableItems:r}=await Promise.resolve().then(()=>(JF(),VF)),{useKeypress:s}=await Promise.resolve().then(()=>(yD(),m2e)),{useMinistore:a}=await Promise.resolve().then(()=>(OW(),NW)),{renderForm:n}=await Promise.resolve().then(()=>(XF(),ZF)),{default:c}=await Promise.resolve().then(()=>ut(P2e())),{Box:f,Text:p}=await Promise.resolve().then(()=>ut(Wc())),{default:h,useEffect:E,useState:C}=await Promise.resolve().then(()=>ut(hn())),S=await ze.find(this.context.cwd,this.context.plugins),b=()=>h.createElement(f,{flexDirection:"row"},h.createElement(f,{flexDirection:"column",width:48},h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move between packages.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select a package.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," again to change the target."))),h.createElement(f,{flexDirection:"column"},h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),I=()=>h.createElement(h.Fragment,null,h.createElement(f,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(f,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(f,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),T=()=>h.createElement(f,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),N=({hit:pe,active:Be})=>{let[Ce,g]=a(pe.name,null);s({active:Be},(Ae,se)=>{if(se.name!=="space")return;if(!Ce){g(CD[0]);return}let X=CD.indexOf(Ce)+1;X===CD.length?g(null):g(CD[X])},[Ce,g]);let we=G.parseIdent(pe.name),ye=G.prettyIdent(S,we);return h.createElement(f,null,h.createElement(f,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},ye)),h.createElement(f,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},pe.owner.name)),h.createElement(f,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},pe.version)),h.createElement(f,{width:16,marginLeft:1},h.createElement(p,null,pe.humanDownloadsLast30Days)))},U=({name:pe,active:Be})=>{let[Ce]=a(pe,null),g=G.parseIdent(pe);return h.createElement(f,null,h.createElement(f,{width:47},h.createElement(p,{bold:!0}," - ",G.prettyIdent(S,g))),CD.map(we=>h.createElement(f,{key:we,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ce===we})," ",h.createElement(p,{bold:!0},we)))))},W=()=>h.createElement(f,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ie=await n(({useSubmit:pe})=>{let Be=a();pe(Be);let Ce=Array.from(Be.keys()).filter(j=>Be.get(j)!==null),[g,we]=C(""),[ye,Ae]=C(0),[se,X]=C([]),De=j=>{j.match(/\t| /)||we(j)},Te=async()=>{Ae(0);let j=await u9(g);j.query===g&&X(j.hits)},mt=async()=>{let j=await u9(g,ye+1);j.query===g&&j.page-1===ye&&(Ae(j.page),X([...se,...j.hits]))};return E(()=>{g?Te():X([])},[g]),h.createElement(f,{flexDirection:"column"},h.createElement(b,null),h.createElement(f,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(f,{width:41},h.createElement(c,{value:g,onChange:De,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(I,null)),se.length?h.createElement(r,{radius:2,loop:!1,children:se.map(j=>h.createElement(N,{key:j.name,hit:j,active:!1})),willReachEnd:mt}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(f,{flexDirection:"row",marginTop:1},h.createElement(f,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(T,null)),Ce.length?Ce.map(j=>h.createElement(U,{key:j,name:j,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(W,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ie>"u")return 1;let ue=Array.from(ie.keys()).filter(pe=>ie.get(pe)==="regular"),le=Array.from(ie.keys()).filter(pe=>ie.get(pe)==="dev"),me=Array.from(ie.keys()).filter(pe=>ie.get(pe)==="peer");return ue.length&&await this.cli.run(["add",...ue]),le.length&&await this.cli.run(["add","--dev",...le]),me&&await this.cli.run(["add","--peer",...me]),0}};Ge();Yt();GG();var F2e=ut(Ai()),T2e=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function N2e(t,e){return t.length>0?[t.slice(0,e)].concat(N2e(t.slice(e),e)):[]}var Cw=class extends ft{static{this.paths=[["upgrade-interactive"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){iw(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(R2e(),Q2e)),{Pad:r}=await Promise.resolve().then(()=>(_W(),k2e)),{ScrollableItems:s}=await Promise.resolve().then(()=>(JF(),VF)),{useMinistore:a}=await Promise.resolve().then(()=>(OW(),NW)),{renderForm:n}=await Promise.resolve().then(()=>(XF(),ZF)),{Box:c,Text:f}=await Promise.resolve().then(()=>ut(Wc())),{default:p,useEffect:h,useRef:E,useState:C}=await Promise.resolve().then(()=>ut(hn())),S=await ze.find(this.context.cwd,this.context.plugins),{project:b,workspace:I}=await Rt.find(S,this.context.cwd),T=await Kr.find(S);if(!I)throw new ar(b.cwd,this.context.cwd);await b.restoreInstallState({restoreResolutions:!1});let N=this.context.stdout.rows-7,U=(we,ye)=>{let Ae=pde(we,ye),se="";for(let X of Ae)X.added?se+=he.pretty(S,X.value,"green"):X.removed||(se+=X.value);return se},W=(we,ye)=>{if(we===ye)return ye;let Ae=G.parseRange(we),se=G.parseRange(ye),X=Ae.selector.match(T2e),De=se.selector.match(T2e);if(!X||!De)return U(we,ye);let Te=["gray","red","yellow","green","magenta"],mt=null,j="";for(let rt=1;rt{let se=await Zu.fetchDescriptorFrom(we,Ae,{project:b,cache:T,preserveModifier:ye,workspace:I});return se!==null?se.range:we.range},ie=async we=>{let ye=F2e.default.valid(we.range)?`^${we.range}`:we.range,[Ae,se]=await Promise.all([ee(we,we.range,ye).catch(()=>null),ee(we,we.range,"latest").catch(()=>null)]),X=[{value:null,label:we.range}];return Ae&&Ae!==we.range?X.push({value:Ae,label:W(we.range,Ae)}):X.push({value:null,label:""}),se&&se!==Ae&&se!==we.range?X.push({value:se,label:W(we.range,se)}):X.push({value:null,label:""}),X},ue=()=>p.createElement(c,{flexDirection:"row"},p.createElement(c,{flexDirection:"column",width:49},p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},""),"/",p.createElement(f,{bold:!0,color:"cyanBright"},"")," to select packages.")),p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},""),"/",p.createElement(f,{bold:!0,color:"cyanBright"},"")," to select versions."))),p.createElement(c,{flexDirection:"column"},p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},"")," to install.")),p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},"")," to abort.")))),le=()=>p.createElement(c,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(c,{width:50},p.createElement(f,{bold:!0},p.createElement(f,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:"gray"},"Latest"))),me=({active:we,descriptor:ye,suggestions:Ae})=>{let[se,X]=a(ye.descriptorHash,null),De=G.stringifyIdent(ye),Te=Math.max(0,45-De.length);return p.createElement(p.Fragment,null,p.createElement(c,null,p.createElement(c,{width:45},p.createElement(f,{bold:!0},G.prettyIdent(S,ye)),p.createElement(r,{active:we,length:Te})),p.createElement(e,{active:we,options:Ae,value:se,skewer:!0,onChange:X,sizes:[17,17,17]})))},pe=({dependencies:we})=>{let[ye,Ae]=C(we.map(()=>null)),se=E(!0),X=async De=>{let Te=await ie(De);return Te.filter(mt=>mt.label!=="").length<=1?null:{descriptor:De,suggestions:Te}};return h(()=>()=>{se.current=!1},[]),h(()=>{let De=Math.trunc(N*1.75),Te=we.slice(0,De),mt=we.slice(De),j=N2e(mt,N),rt=Te.map(X).reduce(async(Fe,Ne)=>{await Fe;let be=await Ne;be!==null&&se.current&&Ae(Ve=>{let ke=Ve.findIndex(Ue=>Ue===null),it=[...Ve];return it[ke]=be,it})},Promise.resolve());j.reduce((Fe,Ne)=>Promise.all(Ne.map(be=>Promise.resolve().then(()=>X(be)))).then(async be=>{be=be.filter(Ve=>Ve!==null),await Fe,se.current&&Ae(Ve=>{let ke=Ve.findIndex(it=>it===null);return Ve.slice(0,ke).concat(be).concat(Ve.slice(ke+be.length))})}),rt).then(()=>{se.current&&Ae(Fe=>Fe.filter(Ne=>Ne!==null))})},[]),ye.length?p.createElement(s,{radius:N>>1,children:ye.map((De,Te)=>De!==null?p.createElement(me,{key:Te,active:!1,descriptor:De.descriptor,suggestions:De.suggestions}):p.createElement(f,{key:Te},"Loading..."))}):p.createElement(f,null,"No upgrades found")},Ce=await n(({useSubmit:we})=>{we(a());let ye=new Map;for(let se of b.workspaces)for(let X of["dependencies","devDependencies"])for(let De of se.manifest[X].values())b.tryWorkspaceByDescriptor(De)===null&&(De.range.startsWith("link:")||ye.set(De.descriptorHash,De));let Ae=je.sortMap(ye.values(),se=>G.stringifyDescriptor(se));return p.createElement(c,{flexDirection:"column"},p.createElement(ue,null),p.createElement(le,null),p.createElement(pe,{dependencies:Ae}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ce>"u")return 1;let g=!1;for(let we of b.workspaces)for(let ye of["dependencies","devDependencies"]){let Ae=we.manifest[ye];for(let se of Ae.values()){let X=Ce.get(se.descriptorHash);typeof X<"u"&&X!==null&&(Ae.set(se.identHash,G.makeDescriptor(se,X)),g=!0)}}return g?await b.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:T}):0}};var mgt={commands:[Iw,Cw]},ygt=mgt;var GW={};Vt(GW,{default:()=>wgt});Ge();var BD="jsr:";Ge();Ge();function ww(t){let e=t.range.slice(4);if(Fr.validRange(e))return G.makeDescriptor(t,`npm:${G.stringifyIdent(G.wrapIdentIntoScope(t,"jsr"))}@${e}`);let r=G.tryParseDescriptor(e,!0);if(r!==null)return G.makeDescriptor(t,`npm:${G.stringifyIdent(G.wrapIdentIntoScope(r,"jsr"))}@${r.range}`);throw new Error(`Invalid range: ${t.range}`)}function Bw(t){return G.makeLocator(G.wrapIdentIntoScope(t,"jsr"),`npm:${t.reference.slice(4)}`)}function jW(t){return G.makeLocator(G.unwrapIdentFromScope(t,"jsr"),`jsr:${t.reference.slice(4)}`)}var $F=class{supports(e,r){return e.reference.startsWith(BD)}getLocalPath(e,r){let s=Bw(e);return r.fetcher.getLocalPath(s,r)}fetch(e,r){let s=Bw(e);return r.fetcher.fetch(s,r)}};var eN=class{supportsDescriptor(e,r){return!!e.range.startsWith(BD)}supportsLocator(e,r){return!!e.reference.startsWith(BD)}shouldPersistResolution(e,r){let s=Bw(e);return r.resolver.shouldPersistResolution(s,r)}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{inner:ww(e)}}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(ww(e));return(await s.resolver.getCandidates(a,r,s)).map(c=>jW(c))}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(ww(e));return a.resolver.getSatisfying(n,r,s,a)}async resolve(e,r){let s=Bw(e),a=await r.resolver.resolve(s,r);return{...a,...jW(a)}}};var Egt=["dependencies","devDependencies","peerDependencies"];function Igt(t,e){for(let r of Egt)for(let s of t.manifest.getForScope(r).values()){if(!s.range.startsWith("jsr:"))continue;let a=ww(s),n=r==="dependencies"?G.makeDescriptor(s,"unknown"):null,c=n!==null&&t.manifest.ensureDependencyMeta(n).optional?"optionalDependencies":r;e[c][G.stringifyIdent(s)]=a.range}}var Cgt={hooks:{beforeWorkspacePacking:Igt},resolvers:[eN],fetchers:[$F]},wgt=Cgt;var qW={};Vt(qW,{LinkFetcher:()=>vD,LinkResolver:()=>SD,PortalFetcher:()=>DD,PortalResolver:()=>PD,default:()=>vgt});Ge();Dt();var rh="portal:",nh="link:";var vD=class{supports(e,r){return!!e.reference.startsWith(nh)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:nh});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:nh}),n=J.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,n.localPath),localPath:vt.root}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=J.resolve(c.localPath??c.packageFs.getRealPath(),c.prefixPath,a);return n.localPath?{packageFs:new Sn(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new Hf(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,discardFromLookup:!0}}};Ge();Dt();var SD=class{supportsDescriptor(e,r){return!!e.range.startsWith(nh)}supportsLocator(e,r){return!!e.reference.startsWith(nh)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(nh.length);return[G.makeLocator(e,`${nh}${fe.toPortablePath(a)}`)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ge();Dt();var DD=class{supports(e,r){return!!e.reference.startsWith(rh)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:rh});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:rh}),n=J.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,n.localPath),localPath:vt.root}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=J.resolve(c.localPath??c.packageFs.getRealPath(),c.prefixPath,a);return n.localPath?{packageFs:new Sn(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,localPath:p}:{packageFs:new Hf(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot}}};Ge();Ge();Dt();var PD=class{supportsDescriptor(e,r){return!!e.range.startsWith(rh)}supportsLocator(e,r){return!!e.reference.startsWith(rh)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(rh.length);return[G.makeLocator(e,`${rh}${fe.toPortablePath(a)}`)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Bgt={fetchers:[vD,DD],resolvers:[SD,PD]},vgt=Bgt;var PY={};Vt(PY,{NodeModulesLinker:()=>jD,NodeModulesMode:()=>BY,PnpLooseLinker:()=>GD,default:()=>Hdt});Dt();Ge();Dt();Dt();var YW=(t,e)=>`${t}@${e}`,O2e=(t,e)=>{let r=e.indexOf("#"),s=r>=0?e.substring(r+1):e;return YW(t,s)};var M2e=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),s=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:s,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},c;n.debugLevel>=0&&(c=Date.now());let f=Qgt(t,n),p=!1,h=0;do{let E=VW(f,[f],new Set([f.locator]),new Map,n);p=E.anotherRoundNeeded||E.isGraphChanged,n.fastLookupPossible=!1,h++}while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-c}ms, rounds: ${h}`),n.debugLevel>=1){let E=bD(f);if(VW(f,[f],new Set([f.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${E}, next tree: ${bD(f)}`);let S=U2e(f);if(S)throw new Error(`${S}, after hoisting finished: ${bD(f)}`)}return n.debugLevel>=2&&console.log(bD(f)),Rgt(f)},Sgt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=n=>{if(!s.has(n)){s.add(n);for(let c of n.hoistedDependencies.values())r.set(c.name,c);for(let c of n.dependencies.values())n.peerNames.has(c.name)||a(c)}};return a(e),r},Dgt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=new Set,n=(c,f)=>{if(s.has(c))return;s.add(c);for(let h of c.hoistedDependencies.values())if(!f.has(h.name)){let E;for(let C of t)E=C.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of c.dependencies.values())p.add(h.name);for(let h of c.dependencies.values())c.peerNames.has(h.name)||n(h,p)};return n(e,a),r},L2e=(t,e)=>{if(e.decoupled)return e;let{name:r,references:s,ident:a,locator:n,dependencies:c,originalDependencies:f,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:C,hoistPriority:S,dependencyKind:b,hoistedFrom:I,hoistedTo:T}=e,N={name:r,references:new Set(s),ident:a,locator:n,dependencies:new Map(c),originalDependencies:new Map(f),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:C,hoistPriority:S,dependencyKind:b,hoistedFrom:new Map(I),hoistedTo:new Map(T)},U=N.dependencies.get(r);return U&&U.ident==N.ident&&N.dependencies.set(r,N),t.dependencies.set(N.name,N),N},Pgt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let s=Array.from(e.keys());s.sort((a,n)=>{let c=e.get(a),f=e.get(n);if(f.hoistPriority!==c.hoistPriority)return f.hoistPriority-c.hoistPriority;{let p=c.dependents.size+c.peerDependents.size;return f.dependents.size+f.peerDependents.size-p}});for(let a of s){let n=a.substring(0,a.indexOf("@",1)),c=a.substring(n.length+1);if(!t.peerNames.has(n)){let f=r.get(n);f||(f=[],r.set(n,f)),f.indexOf(c)<0&&f.push(c)}}return r},WW=t=>{let e=new Set,r=(s,a=new Set)=>{if(!a.has(s)){a.add(s);for(let n of s.peerNames)if(!t.peerNames.has(n)){let c=t.dependencies.get(n);c&&!e.has(c)&&r(c,a)}e.add(s)}};for(let s of t.dependencies.values())t.peerNames.has(s.name)||r(s);return e},VW=(t,e,r,s,a,n=new Set)=>{let c=e[e.length-1];if(n.has(c))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(c);let f=Tgt(c),p=Pgt(c,f),h=t==c?new Map:a.fastLookupPossible?Sgt(e):Dgt(e),E,C=!1,S=!1,b=new Map(Array.from(p.entries()).map(([T,N])=>[T,N[0]])),I=new Map;do{let T=kgt(t,e,r,h,b,p,s,I,a);T.isGraphChanged&&(S=!0),T.anotherRoundNeeded&&(C=!0),E=!1;for(let[N,U]of p)U.length>1&&!c.dependencies.has(N)&&(b.delete(N),U.shift(),b.set(N,U[0]),E=!0)}while(E);for(let T of c.dependencies.values())if(!c.peerNames.has(T.name)&&!r.has(T.locator)){r.add(T.locator);let N=VW(t,[...e,T],r,I,a);N.isGraphChanged&&(S=!0),N.anotherRoundNeeded&&(C=!0),r.delete(T.locator)}return{anotherRoundNeeded:C,isGraphChanged:S}},bgt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},xgt=(t,e,r,s,a,n,c,f,{outputReason:p,fastLookupPossible:h})=>{let E,C=null,S=new Set;p&&(E=`${Array.from(e).map(N=>yo(N)).join("\u2192")}`);let b=r[r.length-1],T=!(s.ident===b.ident);if(p&&!T&&(C="- self-reference"),T&&(T=s.dependencyKind!==1,p&&!T&&(C="- workspace")),T&&s.dependencyKind===2&&(T=!bgt(s),p&&!T&&(C="- external soft link with unhoisted dependencies")),T&&(T=!t.peerNames.has(s.name),p&&!T&&(C=`- cannot shadow peer: ${yo(t.originalDependencies.get(s.name).locator)} at ${E}`)),T){let N=!1,U=a.get(s.name);if(N=!U||U.ident===s.ident,p&&!N&&(C=`- filled by: ${yo(U.locator)} at ${E}`),N)for(let W=r.length-1;W>=1;W--){let ie=r[W].dependencies.get(s.name);if(ie&&ie.ident!==s.ident){N=!1;let ue=f.get(b);ue||(ue=new Set,f.set(b,ue)),ue.add(s.name),p&&(C=`- filled by ${yo(ie.locator)} at ${r.slice(0,W).map(le=>yo(le.locator)).join("\u2192")}`);break}}T=N}if(T&&(T=n.get(s.name)===s.ident,p&&!T&&(C=`- filled by: ${yo(c.get(s.name)[0])} at ${E}`)),T){let N=!0,U=new Set(s.peerNames);for(let W=r.length-1;W>=1;W--){let ee=r[W];for(let ie of U){if(ee.peerNames.has(ie)&&ee.originalDependencies.has(ie))continue;let ue=ee.dependencies.get(ie);ue&&t.dependencies.get(ie)!==ue&&(W===r.length-1?S.add(ue):(S=null,N=!1,p&&(C=`- peer dependency ${yo(ue.locator)} from parent ${yo(ee.locator)} was not hoisted to ${E}`))),U.delete(ie)}if(!N)break}T=N}if(T&&!h)for(let N of s.hoistedDependencies.values()){let U=a.get(N.name)||t.dependencies.get(N.name);if(!U||N.ident!==U.ident){T=!1,p&&(C=`- previously hoisted dependency mismatch, needed: ${yo(N.locator)}, available: ${yo(U?.locator)}`);break}}return S!==null&&S.size>0?{isHoistable:2,dependsOn:S,reason:C}:{isHoistable:T?0:1,reason:C}},tN=t=>`${t.name}@${t.locator}`,kgt=(t,e,r,s,a,n,c,f,p)=>{let h=e[e.length-1],E=new Set,C=!1,S=!1,b=(U,W,ee,ie,ue)=>{if(E.has(ie))return;let le=[...W,tN(ie)],me=[...ee,tN(ie)],pe=new Map,Be=new Map;for(let Ae of WW(ie)){let se=xgt(h,r,[h,...U,ie],Ae,s,a,n,f,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(Ae,se),se.isHoistable===2)for(let X of se.dependsOn){let De=pe.get(X.name)||new Set;De.add(Ae.name),pe.set(X.name,De)}}let Ce=new Set,g=(Ae,se,X)=>{if(!Ce.has(Ae)){Ce.add(Ae),Be.set(Ae,{isHoistable:1,reason:X});for(let De of pe.get(Ae.name)||[])g(ie.dependencies.get(De),se,p.debugLevel>=2?`- peer dependency ${yo(Ae.locator)} from parent ${yo(ie.locator)} was not hoisted`:"")}};for(let[Ae,se]of Be)se.isHoistable===1&&g(Ae,se,se.reason);let we=!1;for(let Ae of Be.keys())if(!Ce.has(Ae)){S=!0;let se=c.get(ie);se&&se.has(Ae.name)&&(C=!0),we=!0,ie.dependencies.delete(Ae.name),ie.hoistedDependencies.set(Ae.name,Ae),ie.reasons.delete(Ae.name);let X=h.dependencies.get(Ae.name);if(p.debugLevel>=2){let De=Array.from(W).concat([ie.locator]).map(mt=>yo(mt)).join("\u2192"),Te=h.hoistedFrom.get(Ae.name);Te||(Te=[],h.hoistedFrom.set(Ae.name,Te)),Te.push(De),ie.hoistedTo.set(Ae.name,Array.from(e).map(mt=>yo(mt.locator)).join("\u2192"))}if(!X)h.ident!==Ae.ident&&(h.dependencies.set(Ae.name,Ae),ue.add(Ae));else for(let De of Ae.references)X.references.add(De)}if(ie.dependencyKind===2&&we&&(C=!0),p.check){let Ae=U2e(t);if(Ae)throw new Error(`${Ae}, after hoisting dependencies of ${[h,...U,ie].map(se=>yo(se.locator)).join("\u2192")}: ${bD(t)}`)}let ye=WW(ie);for(let Ae of ye)if(Ce.has(Ae)){let se=Be.get(Ae);if((a.get(Ae.name)===Ae.ident||!ie.reasons.has(Ae.name))&&se.isHoistable!==0&&ie.reasons.set(Ae.name,se.reason),!Ae.isHoistBorder&&me.indexOf(tN(Ae))<0){E.add(ie);let De=L2e(ie,Ae);b([...U,ie],le,me,De,T),E.delete(ie)}}},I,T=new Set(WW(h)),N=Array.from(e).map(U=>tN(U));do{I=T,T=new Set;for(let U of I){if(U.locator===h.locator||U.isHoistBorder)continue;let W=L2e(h,U);b([],Array.from(r),N,W,T)}}while(T.size>0);return{anotherRoundNeeded:C,isGraphChanged:S}},U2e=t=>{let e=[],r=new Set,s=new Set,a=(n,c,f)=>{if(r.has(n)||(r.add(n),s.has(n)))return;let p=new Map(c);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),C=()=>`${Array.from(s).concat([n]).map(S=>yo(S.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let S=c.get(h.name);(S!==E||!S||S.ident!==h.ident)&&e.push(`${C()} - broken peer promise: expected ${h.ident} but found ${S&&S.ident}`)}else{let S=f.hoistedFrom.get(n.name),b=n.hoistedTo.get(h.name),I=`${S?` hoisted from ${S.join(", ")}`:""}`,T=`${b?` hoisted to ${b}`:""}`,N=`${C()}${I}`;E?E.ident!==h.ident&&e.push(`${N} - broken require promise for ${h.name}${T}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${N} - broken require promise: no required dependency ${h.name}${T} found`)}}s.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);s.delete(n)};return a(t,t.dependencies,t),e.join(` `)},Qgt=(t,e)=>{let{identName:r,name:s,reference:a,peerNames:n}=t,c={name:s,references:new Set([a]),locator:YW(r,a),ident:O2e(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},f=new Map([[t,c]]),p=(h,E)=>{let C=f.get(h),S=!!C;if(!C){let{name:b,identName:I,reference:T,peerNames:N,hoistPriority:U,dependencyKind:W}=h,ee=e.hoistingLimits.get(E.locator);C={name:b,references:new Set([T]),locator:YW(I,T),ident:O2e(I,T),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(N),reasons:new Map,decoupled:!0,isHoistBorder:ee?ee.has(b):!1,hoistPriority:U||0,dependencyKind:W||0,hoistedFrom:new Map,hoistedTo:new Map},f.set(h,C)}if(E.dependencies.set(h.name,C),E.originalDependencies.set(h.name,C),S){let b=new Set,I=T=>{if(!b.has(T)){b.add(T),T.decoupled=!1;for(let N of T.dependencies.values())T.peerNames.has(N.name)||I(N)}};I(C)}else for(let b of h.dependencies)p(b,C)};for(let h of t.dependencies)p(h,c);return c},JW=t=>t.substring(0,t.indexOf("@",1)),Rgt=t=>{let e={name:t.name,identName:JW(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),s=(a,n,c)=>{let f=r.has(a),p;if(n===a)p=c;else{let{name:h,references:E,locator:C}=a;p={name:h,identName:JW(C),references:E,dependencies:new Set}}if(c.dependencies.add(p),!f){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||s(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())s(a,t,e);return e},Tgt=t=>{let e=new Map,r=new Set([t]),s=c=>`${c.name}@${c.ident}`,a=c=>{let f=s(c),p=e.get(f);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(f,p)),p},n=(c,f)=>{let p=!!r.has(f);if(a(f).dependents.add(c.ident),!p){r.add(f);for(let E of f.dependencies.values()){let C=a(E);C.hoistPriority=Math.max(C.hoistPriority,E.hoistPriority),f.peerNames.has(E.name)?C.peerDependents.add(f.ident):n(f,E)}}};for(let c of t.dependencies.values())t.peerNames.has(c.name)||n(t,c);return e},yo=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let s=t.substring(e+1);if(s==="workspace:.")return".";if(s){let a=(s.indexOf("#")>0?s.split("#")[1]:s).replace("npm:","");return s.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var bD=t=>{let e=0,r=(a,n,c="")=>{if(e>5e4||n.has(a))return"";e++;let f=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h":"")+(S!==E.name?`a:${E.name}:`:"")+yo(E.locator)+(C?` ${C}`:"")} `,p+=r(E,n,`${c}${h5e4?` Tree is too large, part of the tree has been dunped `:"")};var xD=(s=>(s.WORKSPACES="workspaces",s.DEPENDENCIES="dependencies",s.NONE="none",s))(xD||{}),_2e="node_modules",rg="$wsroot$";var kD=(t,e)=>{let{packageTree:r,hoistingLimits:s,errors:a,preserveSymlinksRequired:n}=Ngt(t,e),c=null;if(a.length===0){let f=M2e(r,{hoistingLimits:s});c=Lgt(t,f,e)}return{tree:c,errors:a,preserveSymlinksRequired:n}},pA=t=>`${t.name}@${t.reference}`,zW=t=>{let e=new Map;for(let[r,s]of t.entries())if(!s.dirList){let a=e.get(s.locator);a||(a={target:s.target,linkType:s.linkType,locations:[],aliases:s.aliases},e.set(s.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((s,a)=>{let n=s.split(J.delimiter).length,c=a.split(J.delimiter).length;return a===s?0:n!==c?c-n:a>s?1:-1});return e},H2e=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,s=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,s)},KW=(t,e,r,s)=>{if(t.linkType!=="SOFT")return!1;let a=fe.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return J.contains(s,a)===null},Fgt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let s=fe.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},c=t.getDependencyTreeRoots(),f=new Map,p=new Set,h=(S,b)=>{let I=pA(S);if(p.has(I))return;p.add(I);let T=t.getPackageInformation(S);if(T){let N=b?pA(b):"";if(pA(S)!==N&&T.linkType==="SOFT"&&!S.reference.startsWith("link:")&&!KW(T,S,t,s)){let U=j2e(T,S,t);(!f.get(U)||S.reference.startsWith("workspace:"))&&f.set(U,S)}for(let[U,W]of T.packageDependencies)W!==null&&(T.packagePeers.has(U)||h(t.getLocator(U,W),S))}};for(let S of c)h(S,null);let E=s.split(J.sep);for(let S of f.values()){let b=t.getPackageInformation(S),T=fe.toPortablePath(b.packageLocation.slice(0,-1)).split(J.sep).slice(E.length),N=n;for(let U of T){let W=N.children.get(U);W||(W={children:new Map},N.children.set(U,W)),N=W}N.workspaceLocator=S}let C=(S,b)=>{if(S.workspaceLocator){let I=pA(b),T=a.get(I);T||(T=new Set,a.set(I,T)),T.add(S.workspaceLocator)}for(let I of S.children.values())C(I,S.workspaceLocator||b)};for(let S of n.children.values())C(S,n.workspaceLocator);return a},Ngt=(t,e)=>{let r=[],s=!1,a=new Map,n=Fgt(t),c=t.getPackageInformation(t.topLevel);if(c===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let f=t.findPackageLocator(c.packageLocation);if(f===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=fe.toPortablePath(c.packageLocation.slice(0,-1)),h={name:f.name,identName:f.name,reference:f.reference,peerNames:c.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,C=(b,I)=>`${pA(I)}:${b}`,S=(b,I,T,N,U,W,ee,ie)=>{let ue=C(b,T),le=E.get(ue),me=!!le;!me&&T.name===f.name&&T.reference===f.reference&&(le=h,E.set(ue,h));let pe=KW(I,T,t,p);if(!le){let Ae=0;pe?Ae=2:I.linkType==="SOFT"&&T.name.endsWith(rg)&&(Ae=1),le={name:b,identName:T.name,reference:T.reference,dependencies:new Set,peerNames:Ae===1?new Set:I.packagePeers,dependencyKind:Ae},E.set(ue,le)}let Be;if(pe?Be=2:U.linkType==="SOFT"?Be=1:Be=0,le.hoistPriority=Math.max(le.hoistPriority||0,Be),ie&&!pe){let Ae=pA({name:N.identName,reference:N.reference}),se=a.get(Ae)||new Set;a.set(Ae,se),se.add(le.name)}let Ce=new Map(I.packageDependencies);if(e.project){let Ae=e.project.workspacesByCwd.get(fe.toPortablePath(I.packageLocation.slice(0,-1)));if(Ae){let se=new Set([...Array.from(Ae.manifest.peerDependencies.values(),X=>G.stringifyIdent(X)),...Array.from(Ae.manifest.peerDependenciesMeta.keys())]);for(let X of se)Ce.has(X)||(Ce.set(X,W.get(X)||null),le.peerNames.add(X))}}let g=pA({name:T.name.replace(rg,""),reference:T.reference}),we=n.get(g);if(we)for(let Ae of we)Ce.set(`${Ae.name}${rg}`,Ae.reference);(I!==U||I.linkType!=="SOFT"||!pe&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(ee)))&&N.dependencies.add(le);let ye=T!==f&&I.linkType==="SOFT"&&!T.name.endsWith(rg)&&!pe;if(!me&&!ye){let Ae=new Map;for(let[se,X]of Ce)if(X!==null){let De=t.getLocator(se,X),Te=t.getLocator(se.replace(rg,""),X),mt=t.getPackageInformation(Te);if(mt===null)throw new Error("Assertion failed: Expected the package to have been registered");let j=KW(mt,De,t,p);if(e.validateExternalSoftLinks&&e.project&&j){mt.packageDependencies.size>0&&(s=!0);for(let[Ve,ke]of mt.packageDependencies)if(ke!==null){let it=G.parseLocator(Array.isArray(ke)?`${ke[0]}@${ke[1]}`:`${Ve}@${ke}`);if(pA(it)!==pA(De)){let Ue=Ce.get(Ve);if(Ue){let x=G.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${Ve}@${Ue}`);H2e(x,it)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(De.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,it)} conflicts with parent dependency ${G.prettyLocator(e.project.configuration,x)}`})}else{let x=Ae.get(Ve);if(x){let w=x.target,P=G.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${Ve}@${w}`);H2e(P,it)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(De.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,it)} conflicts with dependency ${G.prettyLocator(e.project.configuration,P)} from sibling portal ${G.prettyIdent(e.project.configuration,G.parseIdent(x.portal.name))}`})}else Ae.set(Ve,{target:it.reference,portal:De})}}}}let rt=e.hoistingLimitsByCwd?.get(ee),Fe=j?ee:J.relative(p,fe.toPortablePath(mt.packageLocation))||vt.dot,Ne=e.hoistingLimitsByCwd?.get(Fe);S(se,mt,De,le,I,Ce,Fe,rt==="dependencies"||Ne==="dependencies"||Ne==="workspaces")}}};return S(f.name,c,f,h,c,c.packageDependencies,vt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:s}};function j2e(t,e,r){let s=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return fe.toPortablePath(s||t.packageLocation)}function Ogt(t,e,r){let s=e.getLocator(t.name.replace(rg,""),t.reference),a=e.getPackageInformation(s);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:fe.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:j2e(a,t,e)}}var Lgt=(t,e,r)=>{let s=new Map,a=(E,C,S)=>{let{linkType:b,target:I}=Ogt(E,t,r);return{locator:pA(E),nodePath:C,target:I,linkType:b,aliases:S}},n=E=>{let[C,S]=E.split("/");return S?{scope:C,name:S}:{scope:null,name:C}},c=new Set,f=(E,C,S)=>{if(c.has(E))return;c.add(E);let b=Array.from(E.references).sort().join("#");for(let I of E.dependencies){let T=Array.from(I.references).sort().join("#");if(I.identName===E.identName.replace(rg,"")&&T===b)continue;let N=Array.from(I.references).sort(),U={name:I.identName,reference:N[0]},{name:W,scope:ee}=n(I.name),ie=ee?[ee,W]:[W],ue=J.join(C,_2e),le=J.join(ue,...ie),me=`${S}/${U.name}`,pe=a(U,S,N.slice(1)),Be=!1;if(pe.linkType==="SOFT"&&r.project){let Ce=r.project.workspacesByCwd.get(pe.target.slice(0,-1));Be=!!(Ce&&!Ce.manifest.name)}if(!I.name.endsWith(rg)&&!Be){let Ce=s.get(le);if(Ce){if(Ce.dirList)throw new Error(`Assertion failed: ${le} cannot merge dir node with leaf node`);{let ye=G.parseLocator(Ce.locator),Ae=G.parseLocator(pe.locator);if(Ce.linkType!==pe.linkType)throw new Error(`Assertion failed: ${le} cannot merge nodes with different link types ${Ce.nodePath}/${G.stringifyLocator(ye)} and ${S}/${G.stringifyLocator(Ae)}`);if(ye.identHash!==Ae.identHash)throw new Error(`Assertion failed: ${le} cannot merge nodes with different idents ${Ce.nodePath}/${G.stringifyLocator(ye)} and ${S}/s${G.stringifyLocator(Ae)}`);pe.aliases=[...pe.aliases,...Ce.aliases,G.parseLocator(Ce.locator).reference]}}s.set(le,pe);let g=le.split("/"),we=g.indexOf(_2e);for(let ye=g.length-1;we>=0&&ye>we;ye--){let Ae=fe.toPortablePath(g.slice(0,ye).join(J.sep)),se=g[ye],X=s.get(Ae);if(!X)s.set(Ae,{dirList:new Set([se])});else if(X.dirList){if(X.dirList.has(se))break;X.dirList.add(se)}}}f(I,pe.linkType==="SOFT"?pe.target:le,me)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return s.set(h,p),f(e,h,""),s};Ge();Ge();Dt();Dt();eA();wc();var gY={};Vt(gY,{PnpInstaller:()=>Gm,PnpLinker:()=>sg,UnplugCommand:()=>Sw,default:()=>pdt,getPnpPath:()=>og,jsInstallUtils:()=>gA,pnpUtils:()=>HD,quotePathIfNeeded:()=>DBe});Dt();var SBe=Ie("url");Ge();Ge();Dt();Dt();var G2e={DEFAULT:{collapsed:!1,next:{"*":"DEFAULT"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA","*":"DEFAULT"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{"*":"FALLBACK_EXCLUSION_ENTRIES"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{"*":"FALLBACK_EXCLUSION_DATA"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{"*":"DEFAULT"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{"*":"PACKAGE_REGISTRY_ENTRIES"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_STORE_DATA"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{"*":"PACKAGE_STORE_ENTRIES"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_INFORMATION_DATA"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES","*":"DEFAULT"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{"*":"PACKAGE_DEPENDENCY"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{"*":"DEFAULT"}}};function Mgt(t,e,r){let s="";s+="[";for(let a=0,n=t.length;a"u"||(f!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=rN(p,h,e,r).replace(/^ +/g,""),f+=1)}return a+="}",a}function Hgt(t,e,r){let s=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ `;let c=0;for(let f=0,p=s.length;f"u"||(c!==0&&(n+=",",n+=` `),n+=a,n+=JSON.stringify(h),n+=": ",n+=rN(h,E,e,a).replace(/^ +/g,""),c+=1)}return c!==0&&(n+=` `),n+=r,n+="}",n}function rN(t,e,r,s){let{next:a}=G2e[r],n=a[t]||a["*"];return q2e(e,n,s)}function q2e(t,e,r){let{collapsed:s}=G2e[e];return Array.isArray(t)?s?Mgt(t,e,r):Ugt(t,e,r):typeof t=="object"&&t!==null?s?_gt(t,e,r):Hgt(t,e,r):JSON.stringify(t)}function W2e(t){return q2e(t,"TOP_LEVEL","")}function QD(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function jgt(t){let e=new Map,r=QD(t.fallbackExclusionList||[],[({name:s,reference:a})=>s,({name:s,reference:a})=>a]);for(let{name:s,reference:a}of r){let n=e.get(s);typeof n>"u"&&e.set(s,n=new Set),n.add(a)}return Array.from(e).map(([s,a])=>[s,Array.from(a)])}function Ggt(t){return QD(t.fallbackPool||[],([e])=>e)}function qgt(t){let e=[],r=t.dependencyTreeRoots.find(s=>t.packageRegistry.get(s.name)?.get(s.reference)?.packageLocation==="./");for(let[s,a]of QD(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){if(s===null)continue;let n=[];e.push([s,n]);for(let[c,{packageLocation:f,packageDependencies:p,packagePeers:h,linkType:E,discardFromLookup:C}]of QD(a,([S])=>S===null?"0":`1${S}`)){if(c===null)continue;let S=[];s!==null&&c!==null&&!p.has(s)&&S.push([s,c]);for(let[U,W]of p)S.push([U,W]);let b=QD(S,([U])=>U),I=h&&h.size>0?Array.from(h):void 0,N={packageLocation:f,packageDependencies:b,packagePeers:I,linkType:E,discardFromLookup:C||void 0};n.push([c,N]),r&&s===r.name&&c===r.reference&&e.unshift([null,[[null,N]]])}}return e}function RD(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,pnpZipBackend:t.pnpZipBackend,fallbackExclusionList:jgt(t),fallbackPool:Ggt(t),packageRegistryData:qgt(t)}}var J2e=ut(V2e());function K2e(t,e){return[t?`${t} `:"",`/* eslint-disable */ `,`// @ts-nocheck `,`"use strict"; `,` `,e,` `,(0,J2e.default)()].join("")}function Wgt(t){return JSON.stringify(t,null,2)}function Ygt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ `)}'`}function Vgt(t){return[`const RAW_RUNTIME_STATE = `,`${Ygt(W2e(t))}; `,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); `,`} `].join("")}function Jgt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` const fs = require('fs'); `,` const path = require('path'); `,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(Er.pnpData)}); `,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); `,`} `].join("")}function z2e(t){let e=RD(t),r=Vgt(e);return K2e(t.shebang,r)}function Z2e(t){let e=RD(t),r=Jgt(),s=K2e(t.shebang,r);return{dataFile:Wgt(e),loaderFile:s}}Dt();function XW(t,{basePath:e}){let r=fe.toPortablePath(e),s=J.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,c=new Map(t.packageRegistryData.map(([C,S])=>[C,new Map(S.map(([b,I])=>{if(C===null!=(b===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let T=I.discardFromLookup??!1,N={name:C,reference:b},U=n.get(I.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&T,T||(U.locator=N)):n.set(I.packageLocation,{locator:N,discardFromLookup:T});let W=null;return[b,{packageDependencies:new Map(I.packageDependencies),packagePeers:new Set(I.packagePeers),linkType:I.linkType,discardFromLookup:T,get packageLocation(){return W||(W=J.join(s,I.packageLocation))}}]}))])),f=new Map(t.fallbackExclusionList.map(([C,S])=>[C,new Set(S)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:f,pnpZipBackend:t.pnpZipBackend,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:c}}Dt();Dt();var sh=Ie("module"),jm=Ie("url"),lY=Ie("util");var ta=Ie("url");var tBe=ut(Ie("assert"));var $W=Array.isArray,TD=JSON.stringify,FD=Object.getOwnPropertyNames,Hm=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),eY=(t,e)=>RegExp.prototype.exec.call(t,e),tY=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),ng=(t,...e)=>String.prototype.endsWith.apply(t,e),rY=(t,...e)=>String.prototype.includes.apply(t,e),nY=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),ND=(t,...e)=>String.prototype.indexOf.apply(t,e),X2e=(t,...e)=>String.prototype.replace.apply(t,e),ig=(t,...e)=>String.prototype.slice.apply(t,e),hA=(t,...e)=>String.prototype.startsWith.apply(t,e),$2e=Map,eBe=JSON.parse;function OD(t,e,r){return class extends r{constructor(...s){super(e(...s)),this.code=t,this.name=`${r.name} [${t}]`}}}var rBe=OD("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),iY=OD("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),nBe=OD("ERR_INVALID_PACKAGE_TARGET",(t,e,r,s=!1,a=void 0)=>{let n=typeof r=="string"&&!s&&r.length&&!hA(r,"./");return e==="."?((0,tBe.default)(s===!1),`Invalid "exports" main target ${TD(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${s?"imports":"exports"}" target ${TD(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),LD=OD("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),iBe=OD("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var iN=Ie("url");function sBe(t,e){let r=Object.create(null);for(let s=0;se):t+e}MD(r,t,s,c,a)}eY(aBe,ig(t,2))!==null&&MD(r,t,s,c,a);let p=new URL(t,s),h=p.pathname,E=new URL(".",s).pathname;if(hA(h,E)||MD(r,t,s,c,a),e==="")return p;if(eY(aBe,e)!==null){let C=n?X2e(r,"*",()=>e):r+e;Zgt(C,s,c,a)}return n?new URL(tY(lBe,p.href,()=>e)):new URL(e,p)}function $gt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function vw(t,e,r,s,a,n,c,f){if(typeof e=="string")return Xgt(e,r,s,t,a,n,c,f);if($W(e)){if(e.length===0)return null;let p;for(let h=0;hn?-1:n>a||r===-1?1:s===-1||t.length>e.length?-1:e.length>t.length?1:0}function edt(t,e,r){if(typeof t=="string"||$W(t))return!0;if(typeof t!="object"||t===null)return!1;let s=FD(t),a=!1,n=0;for(let c=0;c=h.length&&ng(e,C)&&uBe(n,h)===1&&nY(h,"*")===E&&(n=h,c=ig(e,E,e.length-C.length))}}if(n){let p=r[n],h=vw(t,p,c,n,s,!0,!1,a);return h==null&&sY(e,t,s),h}sY(e,t,s)}function ABe({name:t,base:e,conditions:r,readFileSyncFn:s}){if(t==="#"||hA(t,"#/")||ng(t,"/")){let c="is not a valid internal imports specifier name";throw new iY(t,c,(0,ta.fileURLToPath)(e))}let a,n=oBe(e,s);if(n.exists){a=(0,ta.pathToFileURL)(n.pjsonPath);let c=n.imports;if(c)if(Hm(c,t)&&!rY(t,"*")){let f=vw(a,c[t],"",t,e,!1,!0,r);if(f!=null)return f}else{let f="",p,h=FD(c);for(let E=0;E=C.length&&ng(t,b)&&uBe(f,C)===1&&nY(C,"*")===S&&(f=C,p=ig(t,S,t.length-b.length))}}if(f){let E=c[f],C=vw(a,E,p,f,e,!0,!0,r);if(C!=null)return C}}}zgt(t,a,e)}Dt();var rdt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function gs(t,e,r={},s){s??=rdt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:s},pnpCode:{...a,value:t},data:{...a,value:r}})}function lf(t){return fe.normalize(fe.fromPortablePath(t))}var dBe=ut(hBe());function mBe(t){return ndt(),aY[t]}var aY;function ndt(){aY||(aY={"--conditions":[],...gBe(idt()),...gBe(process.execArgv)})}function gBe(t){return(0,dBe.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function idt(){let t=[],e=sdt(process.env.NODE_OPTIONS||"",t);return t.length,e}function sdt(t,e){let r=[],s=!1,a=!0;for(let n=0;nparseInt(t,10)),yBe=ml>19||ml===19&&ih>=2||ml===18&&ih>=13,IXt=ml===20&&ih<6||ml===19&&ih>=3,CXt=ml>19||ml===19&&ih>=6,wXt=ml>=21||ml===20&&ih>=10||ml===18&&ih>=19,BXt=ml>=21||ml===20&&ih>=10||ml===18&&ih>=20,vXt=ml>=22;function EBe(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>fe.fromPortablePath(uo.resolveVirtual(fe.toPortablePath(e)))),yBe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function cY(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,s=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,c=/\/$/,f=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Fe of["react-scripts","gatsby"]){let Ne=t.packageRegistry.get(Fe);if(Ne)for(let be of Ne.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Fe,reference:be})}}let{ignorePattern:C,packageRegistry:S,packageLocatorsByLocations:b}=t;function I(Fe,Ne){return{fn:Fe,args:Ne,error:null,result:null}}function T(Fe){let Ne=process.stderr?.hasColors?.()??process.stdout.isTTY,be=(it,Ue)=>`\x1B[${it}m${Ue}\x1B[0m`,Ve=Fe.error;console.error(Ve?be("31;1",`\u2716 ${Fe.error?.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),Fe.args.length>0&&console.error();for(let it of Fe.args)console.error(` ${be("37;1","In \u2190")} ${(0,lY.inspect)(it,{colors:Ne,compact:!0})}`);Fe.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,lY.inspect)(Fe.result,{colors:Ne,compact:!0})}`));let ke=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(ke.length>0){console.error();for(let it of ke)console.error(` ${be("38;5;244",it)}`)}console.error()}function N(Fe,Ne){if(e.allowDebug===!1)return Ne;if(Number.isFinite(s)){if(s>=2)return(...be)=>{let Ve=I(Fe,be);try{return Ve.result=Ne(...be)}catch(ke){throw Ve.error=ke}finally{T(Ve)}};if(s>=1)return(...be)=>{try{return Ne(...be)}catch(Ve){let ke=I(Fe,be);throw ke.error=Ve,T(ke),Ve}}}return Ne}function U(Fe){let Ne=g(Fe);if(!Ne)throw gs("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ne}function W(Fe){if(Fe.name===null)return!0;for(let Ne of t.dependencyTreeRoots)if(Ne.name===Fe.name&&Ne.reference===Fe.reference)return!0;return!1}let ee=new Set(["node","require",...mBe("--conditions")]);function ie(Fe,Ne=ee,be){let Ve=Ae(J.join(Fe,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ve===null)throw gs("INTERNAL",`The locator that owns the "${Fe}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ke}=U(Ve),it=J.join(ke,Er.manifest);if(!e.fakeFs.existsSync(it))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(it,"utf8"));if(Ue.exports==null)return null;let x=J.contains(ke,Fe);if(x===null)throw gs("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");x!=="."&&!f.test(x)&&(x=`./${x}`);try{let w=fBe({packageJSONUrl:(0,jm.pathToFileURL)(fe.fromPortablePath(it)),packageSubpath:x,exports:Ue.exports,base:be?(0,jm.pathToFileURL)(fe.fromPortablePath(be)):null,conditions:Ne});return fe.toPortablePath((0,jm.fileURLToPath)(w))}catch(w){throw gs("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:lf(Fe),locator:Ve,pkgJson:Ue,subpath:lf(x),conditions:Ne},w.code)}}function ue(Fe,Ne,{extensions:be}){let Ve;try{Ne.push(Fe),Ve=e.fakeFs.statSync(Fe)}catch{}if(Ve&&!Ve.isDirectory())return e.fakeFs.realpathSync(Fe);if(Ve&&Ve.isDirectory()){let ke;try{ke=JSON.parse(e.fakeFs.readFileSync(J.join(Fe,Er.manifest),"utf8"))}catch{}let it;if(ke&&ke.main&&(it=J.resolve(Fe,ke.main)),it&&it!==Fe){let Ue=ue(it,Ne,{extensions:be});if(Ue!==null)return Ue}}for(let ke=0,it=be.length;ke{let x=JSON.stringify(Ue.name);if(Ve.has(x))return;Ve.add(x);let w=we(Ue);for(let P of w)if(U(P).packagePeers.has(Fe))ke(P);else{let F=be.get(P.name);typeof F>"u"&&be.set(P.name,F=new Set),F.add(P.reference)}};ke(Ne);let it=[];for(let Ue of[...be.keys()].sort())for(let x of[...be.get(Ue)].sort())it.push({name:Ue,reference:x});return it}function Ae(Fe,{resolveIgnored:Ne=!1,includeDiscardFromLookup:be=!1}={}){if(pe(Fe)&&!Ne)return null;let Ve=J.relative(t.basePath,Fe);Ve.match(n)||(Ve=`./${Ve}`),Ve.endsWith("/")||(Ve=`${Ve}/`);do{let ke=b.get(Ve);if(typeof ke>"u"||ke.discardFromLookup&&!be){Ve=Ve.substring(0,Ve.lastIndexOf("/",Ve.length-2)+1);continue}return ke.locator}while(Ve!=="");return null}function se(Fe){try{return e.fakeFs.readFileSync(fe.toPortablePath(Fe),"utf8")}catch(Ne){if(Ne.code==="ENOENT")return;throw Ne}}function X(Fe,Ne,{considerBuiltins:be=!0}={}){if(Fe.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Fe==="pnpapi")return fe.toPortablePath(e.pnpapiResolution);if(be&&(0,sh.isBuiltin)(Fe))return null;let Ve=lf(Fe),ke=Ne&&lf(Ne);if(Ne&&pe(Ne)&&(!J.isAbsolute(Fe)||Ae(Fe)===null)){let x=me(Fe,Ne);if(x===!1)throw gs("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${Ve}" Required by: ${ke} `,{request:Ve,issuer:ke});return fe.toPortablePath(x)}let it,Ue=Fe.match(a);if(Ue){if(!Ne)throw gs("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ve,issuer:ke});let[,x,w]=Ue,P=Ae(Ne);if(!P){let Re=me(Fe,Ne);if(Re===!1)throw gs("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). Require path: "${Ve}" Required by: ${ke} `,{request:Ve,issuer:ke});return fe.toPortablePath(Re)}let F=U(P).packageDependencies.get(x),z=null;if(F==null&&P.name!==null){let Re=t.fallbackExclusionList.get(P.name);if(!Re||!Re.has(P.reference)){for(let Ct=0,qt=h.length;CtW(lt))?Z=gs("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. Required package: ${x}${x!==Ve?` (via "${Ve}")`:""} Required by: ${P.name}@${P.reference} (via ${ke}) ${Re.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} `).join("")} `,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Re}):Z=gs("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. Required package: ${x}${x!==Ve?` (via "${Ve}")`:""} Required by: ${P.name}@${P.reference} (via ${ke}) ${Re.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} `).join("")} `,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Re})}else F===void 0&&(!be&&(0,sh.isBuiltin)(Fe)?W(P)?Z=gs("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. Required package: ${x}${x!==Ve?` (via "${Ve}")`:""} Required by: ${ke} `,{request:Ve,issuer:ke,dependencyName:x}):Z=gs("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in ${P.name}'s dependencies, this makes the require call ambiguous and unsound. Required package: ${x}${x!==Ve?` (via "${Ve}")`:""} Required by: ${ke} `,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x}):W(P)?Z=gs("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. Required package: ${x}${x!==Ve?` (via "${Ve}")`:""} Required by: ${ke} `,{request:Ve,issuer:ke,dependencyName:x}):Z=gs("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${x}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. Required package: ${x}${x!==Ve?` (via "${Ve}")`:""} Required by: ${P.name}@${P.reference} (via ${ke}) `,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x}));if(F==null){if(z===null||Z===null)throw Z||new Error("Assertion failed: Expected an error to have been set");F=z;let Re=Z.message.replace(/\n.*/g,"");Z.message=Re,!E.has(Re)&&s!==0&&(E.add(Re),process.emitWarning(Z))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:x,reference:F},oe=U($);if(!oe.packageLocation)throw gs("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. Required package: ${$.name}@${$.reference}${$.name!==Ve?` (via "${Ve}")`:""} Required by: ${P.name}@${P.reference} (via ${ke}) `,{request:Ve,issuer:ke,dependencyLocator:Object.assign({},$)});let xe=oe.packageLocation;w?it=J.join(xe,w):it=xe}else if(J.isAbsolute(Fe))it=J.normalize(Fe);else{if(!Ne)throw gs("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ve,issuer:ke});let x=J.resolve(Ne);Ne.match(c)?it=J.normalize(J.join(x,Fe)):it=J.normalize(J.join(J.dirname(x),Fe))}return J.normalize(it)}function De(Fe,Ne,be=ee,Ve){if(n.test(Fe))return Ne;let ke=ie(Ne,be,Ve);return ke?J.normalize(ke):Ne}function Te(Fe,{extensions:Ne=Object.keys(sh.Module._extensions)}={}){let be=[],Ve=ue(Fe,be,{extensions:Ne});if(Ve)return J.normalize(Ve);{EBe(be.map(Ue=>fe.fromPortablePath(Ue)));let ke=lf(Fe),it=Ae(Fe);if(it){let{packageLocation:Ue}=U(it),x=!0;try{e.fakeFs.accessSync(Ue)}catch(w){if(w?.code==="ENOENT")x=!1;else{let P=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw gs("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${P}). Missing package: ${it.name}@${it.reference} Expected package location: ${lf(Ue)} `,{unqualifiedPath:ke,extensions:Ne})}}if(!x){let w=Ue.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw gs("QUALIFIED_PATH_RESOLUTION_FAILED",`${w} Missing package: ${it.name}@${it.reference} Expected package location: ${lf(Ue)} `,{unqualifiedPath:ke,extensions:Ne})}}throw gs("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${ke} ${be.map(Ue=>`Not found: ${lf(Ue)} `).join("")}`,{unqualifiedPath:ke,extensions:Ne})}}function mt(Fe,Ne,be){if(!Ne)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ve=ABe({name:Fe,base:(0,jm.pathToFileURL)(fe.fromPortablePath(Ne)),conditions:be.conditions??ee,readFileSyncFn:se});if(Ve instanceof URL)return Te(fe.toPortablePath((0,jm.fileURLToPath)(Ve)),{extensions:be.extensions});if(Ve.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return j(Ve,Ne,be)}function j(Fe,Ne,be={}){try{if(Fe.startsWith("#"))return mt(Fe,Ne,be);let{considerBuiltins:Ve,extensions:ke,conditions:it}=be,Ue=X(Fe,Ne,{considerBuiltins:Ve});if(Fe==="pnpapi")return Ue;if(Ue===null)return null;let x=()=>Ne!==null?pe(Ne):!1,w=(!Ve||!(0,sh.isBuiltin)(Fe))&&!x()?De(Fe,Ue,it,Ne):Ue;return Te(w,{extensions:ke})}catch(Ve){throw Object.hasOwn(Ve,"pnpCode")&&Object.assign(Ve.data,{request:lf(Fe),issuer:Ne&&lf(Ne)}),Ve}}function rt(Fe){let Ne=J.normalize(Fe),be=uo.resolveVirtual(Ne);return be!==Ne?be:null}return{VERSIONS:Be,topLevel:Ce,getLocator:(Fe,Ne)=>Array.isArray(Ne)?{name:Ne[0],reference:Ne[1]}:{name:Fe,reference:Ne},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Fe=[];for(let[Ne,be]of S)for(let Ve of be.keys())Ne!==null&&Ve!==null&&Fe.push({name:Ne,reference:Ve});return Fe},getPackageInformation:Fe=>{let Ne=g(Fe);if(Ne===null)return null;let be=fe.fromPortablePath(Ne.packageLocation);return{...Ne,packageLocation:be}},findPackageLocator:Fe=>Ae(fe.toPortablePath(Fe)),resolveToUnqualified:N("resolveToUnqualified",(Fe,Ne,be)=>{let Ve=Ne!==null?fe.toPortablePath(Ne):null,ke=X(fe.toPortablePath(Fe),Ve,be);return ke===null?null:fe.fromPortablePath(ke)}),resolveUnqualified:N("resolveUnqualified",(Fe,Ne)=>fe.fromPortablePath(Te(fe.toPortablePath(Fe),Ne))),resolveRequest:N("resolveRequest",(Fe,Ne,be)=>{let Ve=Ne!==null?fe.toPortablePath(Ne):null,ke=j(fe.toPortablePath(Fe),Ve,be);return ke===null?null:fe.fromPortablePath(ke)}),resolveVirtual:N("resolveVirtual",Fe=>{let Ne=rt(fe.toPortablePath(Fe));return Ne!==null?fe.fromPortablePath(Ne):null})}}Dt();var IBe=(t,e,r)=>{let s=RD(t),a=XW(s,{basePath:e}),n=fe.join(e,Er.pnpCjs);return cY(a,{fakeFs:r,pnpapiResolution:n})};var fY=ut(wBe());Yt();var gA={};Vt(gA,{checkManifestCompatibility:()=>BBe,extractBuildRequest:()=>sN,getExtractHint:()=>AY,hasBindingGyp:()=>pY});Ge();Dt();function BBe(t){return G.isPackageCompatible(t,fs.getArchitectureSet())}function sN(t,e,r,{configuration:s}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(s,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(s,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!s.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(s,t)} lists build scripts, but all build scripts have been disabled.`)}:BBe(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(s,t)} The ${fs.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var adt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function AY(t){return t.packageFs.getExtractHint({relevantExtensions:adt})}function pY(t){let e=J.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var HD={};Vt(HD,{getUnpluggedPath:()=>_D});Ge();Dt();function _D(t,{configuration:e}){return J.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var ldt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),sg=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let s=og(r.project).cjs;if(!ce.existsSync(s))throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=je.getFactoryWithDefault(this.pnpCache,s,()=>je.dynamicRequire(s,{cachingStrategy:je.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},c=a.getPackageInformation(n);if(!c)throw new nt(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return fe.toPortablePath(c.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=og(r.project).cjs;if(!ce.existsSync(s))return null;let n=je.getFactoryWithDefault(this.pnpCache,s,()=>je.dynamicRequire(s,{cachingStrategy:je.CachingStrategy.FsTime})).findPackageLocator(fe.fromPortablePath(e));return n?G.makeLocator(G.parseIdent(n.name),n.reference):null}makeInstaller(e){return new Gm(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},Gm=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new je.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,s){let a=G.stringifyIdent(e),n=e.reference,c=!!this.opts.project.tryWorkspaceByLocator(e),f=G.isVirtualLocator(e),p=e.peerDependencies.size>0&&!f,h=!p&&!c,E=!p&&e.linkType!=="SOFT",C,S;if(h||E){let ee=f?G.devirtualizeLocator(e):e;C=this.customData.store.get(ee.locatorHash),typeof C>"u"&&(C=await cdt(r),e.linkType==="HARD"&&this.customData.store.set(ee.locatorHash,C)),C.manifest.type==="module"&&(this.isESMLoaderRequired=!0),S=this.opts.project.getDependencyMeta(ee,e.version)}let b=h?sN(e,C,S,{configuration:this.opts.project.configuration}):null,I=E?await this.unplugPackageIfNeeded(e,C,r,S,s):r.packageFs;if(J.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let T=J.resolve(I.getRealPath(),r.prefixPath),N=hY(this.opts.project.cwd,T),U=new Map,W=new Set;if(f){for(let ee of e.peerDependencies.values())U.set(G.stringifyIdent(ee),null),W.add(G.stringifyIdent(ee));if(!c){let ee=G.devirtualizeLocator(e);this.virtualTemplates.set(ee.locatorHash,{location:hY(this.opts.project.cwd,uo.resolveVirtual(T)),locator:ee})}}return je.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:N,packageDependencies:U,packagePeers:W,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:T,buildRequest:b}}async attachInternalDependencies(e,r){let s=this.getPackageInformation(e);for(let[a,n]of r){let c=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];s.packageDependencies.set(G.stringifyIdent(a),c)}}async attachExternalDependents(e,r){for(let s of r)this.getDiskInformation(s).packageDependencies.set(G.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=og(this.opts.project);if(this.isEsmEnabled()||await ce.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await ce.removePromise(e.cjs),await ce.removePromise(e.data),await ce.removePromise(e.esmLoader),await ce.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:C,location:S}of this.virtualTemplates.values())je.getMapWithDefault(this.packageRegistry,G.stringifyIdent(C)).set(C.reference,{packageLocation:S,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});let r=this.opts.project.configuration.get("pnpFallbackMode"),s=this.opts.project.workspaces.map(({anchoredLocator:C})=>({name:G.stringifyIdent(C),reference:C.reference})),a=r!=="none",n=[],c=new Map,f=je.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang"),E=this.opts.project.configuration.get("pnpZipBackend");if(r==="dependencies-only")for(let C of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(C)&&n.push({name:G.stringifyIdent(C),reference:C.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:s,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:c,ignorePattern:f,pnpZipBackend:E,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=og(this.opts.project),s=await this.locateNodeModules(e.ignorePattern);if(s.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of s)await ce.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=z2e(e);await ce.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await ce.removePromise(r.data)}else{let{dataFile:n,loaderFile:c}=Z2e(e);await ce.changeFilePromise(r.cjs,c,{automaticNewlines:!0,mode:493}),await ce.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await ce.changeFilePromise(r.esmLoader,(0,fY.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await ce.removePromise(a);else for(let n of await ce.readdirPromise(a)){let c=J.resolve(a,n);this.unpluggedPaths.has(c)||await ce.removePromise(c)}}async locateNodeModules(e){let r=[],s=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=J.join(a.cwd,"node_modules");if(s&&s.test(J.relative(this.opts.project.cwd,a.cwd))||!ce.existsSync(n))continue;let c=await ce.readdirPromise(n,{withFileTypes:!0}),f=c.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(f.length===c.length)r.push(n);else for(let p of f)r.push(J.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,s,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,s,n):s.packageFs}shouldBeUnplugged(e,r,s){return typeof s.unplugged<"u"?s.unplugged:ldt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(sN(e,r,s,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,s){let a=_D(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new _f(a,{baseFs:r.packageFs,pathUtils:J}):(this.unpluggedPaths.add(a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=J.join(a,r.prefixPath,".ready");await ce.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await ce.mkdirPromise(a,{recursive:!0}),await ce.copyPromise(a,vt.dot,{baseFs:r.packageFs,overwrite:!1}),await ce.writeFilePromise(n,""))})),new Sn(a))}getPackageInformation(e){let r=G.stringifyIdent(e),s=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${G.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(s);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${G.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=je.getMapWithDefault(this.packageRegistry,"@@disk"),s=hY(this.opts.project.cwd,e);return je.getFactoryWithDefault(r,s,()=>({packageLocation:s,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function hY(t,e){let r=J.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function cdt(t){let e=await Ut.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ut,r=new Set(["preinstall","install","postinstall"]);for(let s of e.scripts.keys())r.has(s)||e.scripts.delete(s);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:AY(t),hasBindingGyp:pY(t)}}}Ge();Ge();Yt();var vBe=ut(Go());var Sw=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["unplug"]]}static{this.usage=ot.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new nt("This command can only be used if the `nodeLinker` option is set to `pnp`");await s.restoreInstallState();let c=new Set(this.patterns),f=this.patterns.map(b=>{let I=G.parseDescriptor(b),T=I.range!=="unknown"?I:G.makeDescriptor(I,"*");if(!Fr.validRange(T.range))throw new nt(`The range of the descriptor patterns must be a valid semver range (${G.prettyDescriptor(r,T)})`);return N=>{let U=G.stringifyIdent(N);return!vBe.default.isMatch(U,G.stringifyIdent(T))||N.version&&!Fr.satisfiesWithPrereleases(N.version,T.range)?!1:(c.delete(b),!0)}}),p=()=>{let b=[];for(let I of s.storedPackages.values())!s.tryWorkspaceByLocator(I)&&!G.isVirtualLocator(I)&&f.some(T=>T(I))&&b.push(I);return b},h=b=>{let I=new Set,T=[],N=(U,W)=>{if(I.has(U.locatorHash))return;let ee=!!s.tryWorkspaceByLocator(U);if(!(W>0&&!this.recursive&&ee)&&(I.add(U.locatorHash),!s.tryWorkspaceByLocator(U)&&f.some(ie=>ie(U))&&T.push(U),!(W>0&&!this.recursive)))for(let ie of U.dependencies.values()){let ue=s.storedResolutions.get(ie.descriptorHash);if(!ue)throw new Error("Assertion failed: The resolution should have been registered");let le=s.storedPackages.get(ue);if(!le)throw new Error("Assertion failed: The package should have been registered");N(le,W+1)}};for(let U of b)N(U.anchoredPackage,0);return T},E,C;if(this.all&&this.recursive?(E=p(),C="the project"):this.all?(E=h(s.workspaces),C="any workspace"):(E=h([a]),C="this workspace"),c.size>1)throw new nt(`Patterns ${he.prettyList(r,c,he.Type.CODE)} don't match any packages referenced by ${C}`);if(c.size>0)throw new nt(`Pattern ${he.prettyList(r,c,he.Type.CODE)} doesn't match any packages referenced by ${C}`);E=je.sortMap(E,b=>G.stringifyLocator(b));let S=await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async b=>{for(let I of E){let T=I.version??"unknown",N=s.topLevelWorkspace.manifest.ensureDependencyMeta(G.makeDescriptor(I,T));N.unplugged=!0,b.reportInfo(0,`Will unpack ${G.prettyLocator(r,I)} to ${he.pretty(r,_D(I,{configuration:r}),he.Type.PATH)}`),b.reportJson({locator:G.stringifyLocator(I),version:T})}await s.topLevelWorkspace.persistManifest(),this.json||b.reportSeparator()});return S.hasErrors()?S.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var og=t=>({cjs:J.join(t.cwd,Er.pnpCjs),data:J.join(t.cwd,Er.pnpData),esmLoader:J.join(t.cwd,Er.pnpEsmLoader)}),DBe=t=>/\s/.test(t)?JSON.stringify(t):t;async function udt(t,e,r){let s=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(s," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n||void 0;return}let c=og(t),f=`--require ${DBe(fe.fromPortablePath(c.cjs))}`;ce.existsSync(c.esmLoader)&&(f=`${f} --experimental-loader ${(0,SBe.pathToFileURL)(fe.fromPortablePath(c.esmLoader)).href}`),ce.existsSync(c.cjs)&&(e.NODE_OPTIONS=n?`${f} ${n}`:f)}async function fdt(t,e){let r=og(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var Adt={hooks:{populateYarnPaths:fdt,setupScriptEnvironment:udt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},minizip:{description:"Whether Yarn should use minizip to extract archives",type:"BOOLEAN",default:!1},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpZipBackend:{description:"Whether to use the experimental js implementation for the ZipFS",type:"STRING",values:["libzip","js"],default:"libzip"},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[sg],commands:[Sw]},pdt=Adt;var FBe=ut(QBe());Yt();var wY=ut(Ie("crypto")),NBe=ut(Ie("fs")),OBe=1,Ri="node_modules",oN=".bin",LBe=".yarn-state.yml",kdt=1e3,BY=(s=>(s.CLASSIC="classic",s.HARDLINKS_LOCAL="hardlinks-local",s.HARDLINKS_GLOBAL="hardlinks-global",s))(BY||{}),jD=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let s=r.project.tryWorkspaceByLocator(e);if(s)return s.cwd;let a=await je.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await CY(r.project,{unrollAliases:!0}));if(a===null)throw new nt("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(G.stringifyLocator(e));if(!n){let p=new nt(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let c=n.locations.sort((p,h)=>p.split(J.sep).length-h.split(J.sep).length),f=J.join(r.project.configuration.startingCwd,Ri);return c.find(p=>J.contains(f,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=await je.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await CY(r.project,{unrollAliases:!0}));if(s===null)return null;let{locationRoot:a,segments:n}=aN(J.resolve(e),{skipPrefix:r.project.cwd}),c=s.locationTree.get(a);if(!c)return null;let f=c.locator;for(let p of n){if(c=c.children.get(p),!c)break;f=c.locator||f}return G.parseLocator(f)}makeInstaller(e){return new IY(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},IY=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let s=J.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await Qdt(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!G.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,c=new Set;n.has(G.stringifyIdent(e))||n.set(G.stringifyIdent(e),e.reference);let f=e;if(G.isVirtualLocator(e)){f=G.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(G.stringifyIdent(E),null),c.add(G.stringifyIdent(E))}let p={packageLocation:`${fe.fromPortablePath(s)}/`,packageDependencies:n,packagePeers:c,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(f.locatorHash,h),{packageLocation:s,buildRequest:null}}async attachInternalDependencies(e,r){let s=this.localStore.get(e.locatorHash);if(typeof s>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let c=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];s.pnpNode.packageDependencies.set(G.stringifyIdent(a),c)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new uo({baseFs:new $f({maxOpenFiles:80,readOnlyArchives:!0})}),r=await CY(this.opts.project),s=this.opts.project.configuration.get("nmMode");(r===null||s!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:s,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(S=>{let b=this.opts.project.configuration.get("nmHoistingLimits");try{b=je.validateEnum(xD,S.manifest.installConfig?.hoistingLimits??b)}catch{let I=G.prettyWorkspace(this.opts.project.configuration,S);this.opts.report.reportWarning(57,`${I}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(xD).join(", ")}, using default: "${b}"`)}return[S.relativeCwd,b]})),n=new Map(this.opts.project.workspaces.map(S=>{let b=this.opts.project.configuration.get("nmSelfReferences");return b=S.manifest.installConfig?.selfReferences??b,[S.relativeCwd,b]})),c={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(S,b)=>Array.isArray(b)?{name:b[0],reference:b[1]}:{name:S,reference:b},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(S=>{let b=S.anchoredLocator;return{name:G.stringifyIdent(b),reference:b.reference}}),getPackageInformation:S=>{let b=S.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:G.makeLocator(G.parseIdent(S.name),S.reference),I=this.localStore.get(b.locatorHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return I.pnpNode},findPackageLocator:S=>{let b=this.opts.project.tryWorkspaceByCwd(fe.toPortablePath(S));if(b!==null){let I=b.anchoredLocator;return{name:G.stringifyIdent(I),reference:I.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:S=>fe.fromPortablePath(uo.resolveVirtual(fe.toPortablePath(S)))},{tree:f,errors:p,preserveSymlinksRequired:h}=kD(c,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!f){for(let{messageName:S,text:b}of p)this.opts.report.reportError(S,b);return}let E=zW(f);await Mdt(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async S=>{let b=G.parseLocator(S),I=this.localStore.get(b.locatorHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the slot to exist");return I.customPackageData.manifest}});let C=[];for(let[S,b]of E.entries()){if(_Be(S))continue;let I=G.parseLocator(S),T=this.localStore.get(I.locatorHash);if(typeof T>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(T.pkg))continue;let N=gA.extractBuildRequest(T.pkg,T.customPackageData,T.dependencyMeta,{configuration:this.opts.project.configuration});N&&C.push({buildLocations:b.locations,locator:I,buildRequest:N})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${he.pretty(this.opts.project.configuration,"--preserve-symlinks",he.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:C}}};async function Qdt(t,e){let r=await Ut.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ut,s=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())s.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:gA.hasBindingGyp(e)}}}async function Rdt(t,e,r,s,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will `,n+=`# cause your node_modules installation to become invalidated. `,n+=` `,n+=`__metadata: `,n+=` version: ${OBe} `,n+=` nmMode: ${s.value} `;let c=Array.from(e.keys()).sort(),f=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of c){let C=e.get(E);n+=` `,n+=`${JSON.stringify(E)}: `,n+=` locations: `;for(let S of C.locations){let b=J.contains(t.cwd,S);if(b===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=` - ${JSON.stringify(b)} `}if(C.aliases.length>0){n+=` aliases: `;for(let S of C.aliases)n+=` - ${JSON.stringify(S)} `}if(E===f&&r.size>0){n+=` bin: `;for(let[S,b]of r){let I=J.contains(t.cwd,S);if(I===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=` ${JSON.stringify(I)}: `;for(let[T,N]of b){let U=J.relative(J.join(S,Ri),N);n+=` ${JSON.stringify(T)}: ${JSON.stringify(U)} `}}}}let p=t.cwd,h=J.join(p,Ri,LBe);a&&await ce.removePromise(h),await ce.changeFilePromise(h,n,{automaticNewlines:!0})}async function CY(t,{unrollAliases:e=!1}={}){let r=t.cwd,s=J.join(r,Ri,LBe),a;try{a=await ce.statPromise(s)}catch{}if(!a)return null;let n=as(await ce.readFilePromise(s,"utf8"));if(n.__metadata.version>OBe)return null;let c=n.__metadata.nmMode||"classic",f=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let C=E.locations.map(b=>J.join(r,b)),S=E.bin;if(S)for(let[b,I]of Object.entries(S)){let T=J.join(r,fe.toPortablePath(b)),N=je.getMapWithDefault(p,T);for(let[U,W]of Object.entries(I))N.set(U,fe.toPortablePath([T,Ri,W].join(J.sep)))}if(f.set(h,{target:vt.dot,linkType:"HARD",locations:C,aliases:E.aliases||[]}),e&&E.aliases)for(let b of E.aliases){let{scope:I,name:T}=G.parseLocator(h),N=G.makeLocator(G.makeIdent(I,T),b),U=G.stringifyLocator(N);f.set(U,{target:vt.dot,linkType:"HARD",locations:C,aliases:[]})}}return{locatorMap:f,binSymlinks:p,locationTree:MBe(f,{skipPrefix:t.cwd}),nmMode:c,mtimeMs:a.mtimeMs}}var Pw=async(t,e)=>{if(t.split(J.sep).indexOf(Ri)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await ce.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await ce.unlinkPromise(t);return}let s=await ce.readdirPromise(t,{withFileTypes:!0});for(let n of s){let c=J.join(t,n.name);n.isDirectory()?(n.name!==Ri||e&&e.innerLoop)&&await Pw(c,{innerLoop:!0,contentsOnly:!1}):await ce.unlinkPromise(c)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await ce.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},RBe=4,aN=(t,{skipPrefix:e})=>{let r=J.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let s=r.split(J.sep).filter(p=>p!==""),a=s.indexOf(Ri),n=s.slice(0,a).join(J.sep),c=J.join(e,n),f=s.slice(a);return{locationRoot:c,segments:f}},MBe=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let s=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&J.contains(e,n.target)!==null){let f=je.getFactoryWithDefault(r,n.target,s);f.locator=a,f.linkType=n.linkType}for(let c of n.locations){let{locationRoot:f,segments:p}=aN(c,{skipPrefix:e}),h=je.getFactoryWithDefault(r,f,s);for(let E=0;E{if(process.platform==="win32"&&r==="junctions"){let s;try{s=await ce.lstatPromise(t)}catch{}if(!s||s.isDirectory()){await ce.symlinkPromise(t,e,"junction");return}}await ce.symlinkPromise(J.relative(J.dirname(e),t),e)};async function UBe(t,e,r){let s=J.join(t,`${wY.default.randomBytes(16).toString("hex")}.tmp`);try{await ce.writeFilePromise(s,r);try{await ce.linkPromise(s,e)}catch{}}finally{await ce.unlinkPromise(s)}}async function Tdt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:s,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&s&&r.digest){let f=J.join(s,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await ce.statPromise(f);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs{await ce.mkdirPromise(t,{recursive:!0});let f=async(E=vt.dot)=>{let C=J.join(e,E),S=await r.readdirPromise(C,{withFileTypes:!0}),b=new Map;for(let I of S){let T=J.join(E,I.name),N,U=J.join(C,I.name);if(I.isFile()){if(N={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let W=await Nn.checksumFile(U,{baseFs:r,algorithm:"sha1"});N.digest=W}}else if(I.isDirectory())N={kind:"directory"};else if(I.isSymbolicLink())N={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(b.set(T,N),I.isDirectory()&&T!==Ri){let W=await f(T);for(let[ee,ie]of W)b.set(ee,ie)}}return b},p;if(a.value==="hardlinks-global"&&s&&c){let E=J.join(s,c.substring(0,2),`${c.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await ce.readFilePromise(E,"utf8"))))}catch{p=await f()}}else p=await f();let h=!1;for(let[E,C]of p){let S=J.join(e,E),b=J.join(t,E);if(C.kind==="directory")await ce.mkdirPromise(b,{recursive:!0});else if(C.kind==="file"){let I=C.mtimeMs;await Tdt({srcPath:S,dstPath:b,entry:C,nmMode:a,baseFs:r,globalHardlinksStore:s}),C.mtimeMs!==I&&(h=!0)}else C.kind==="symlink"&&await vY(J.resolve(J.dirname(b),C.symlinkTo),b,n)}if(a.value==="hardlinks-global"&&s&&h&&c){let E=J.join(s,c.substring(0,2),`${c.substring(2)}.json`);await ce.removePromise(E),await UBe(s,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function Ndt(t,e,r,s){let a=new Map,n=new Map,c=new Map,f=!1,p=(h,E,C,S,b)=>{let I=!0,T=J.join(h,E),N=new Set;if(E===Ri||E.startsWith("@")){let W;try{W=ce.statSync(T)}catch{}I=!!W,W?W.mtimeMs>r?(f=!0,N=new Set(ce.readdirSync(T))):N=new Set(C.children.get(E).children.keys()):f=!0;let ee=e.get(h);if(ee){let ie=J.join(h,Ri,oN),ue;try{ue=ce.statSync(ie)}catch{}if(!ue)f=!0;else if(ue.mtimeMs>r){f=!0;let le=new Set(ce.readdirSync(ie)),me=new Map;n.set(h,me);for(let[pe,Be]of ee)le.has(pe)&&me.set(pe,Be)}else n.set(h,ee)}}else I=b.has(E);let U=C.children.get(E);if(I){let{linkType:W,locator:ee}=U,ie={children:new Map,linkType:W,locator:ee};if(S.children.set(E,ie),ee){let ue=je.getSetWithDefault(c,ee);ue.add(T),c.set(ee,ue)}for(let ue of U.children.keys())p(T,ue,U,ie,N)}else U.locator&&s.storedBuildState.delete(G.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:C,locator:S}=E,b={children:new Map,linkType:C,locator:S};if(a.set(h,b),S){let I=je.getSetWithDefault(c,E.locator);I.add(h),c.set(E.locator,I)}E.children.has(Ri)&&p(h,Ri,E,b,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:c,installChangedByUser:f}}function _Be(t){let e=G.parseDescriptor(t);return G.isVirtualDescriptor(e)&&(e=G.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Odt(t,e,r,{loadManifest:s}){let a=new Map;for(let[f,{locations:p}]of t){let h=_Be(f)?null:await s(f,p[0]),E=new Map;if(h)for(let[C,S]of h.bin){let b=J.join(p[0],S);S!==""&&ce.existsSync(b)&&E.set(C,S)}a.set(f,E)}let n=new Map,c=(f,p,h)=>{let E=new Map,C=J.contains(r,f);if(h.locator&&C!==null){let S=a.get(h.locator);for(let[b,I]of S){let T=J.join(f,fe.toPortablePath(I));E.set(b,T)}for(let[b,I]of h.children){let T=J.join(f,b),N=c(T,T,I);N.size>0&&n.set(f,new Map([...n.get(f)||new Map,...N]))}}else for(let[S,b]of h.children){let I=c(J.join(f,S),p,b);for(let[T,N]of I)E.set(T,N)}return E};for(let[f,p]of e){let h=c(f,f,p);h.size>0&&n.set(f,new Map([...n.get(f)||new Map,...h]))}return n}var TBe=(t,e)=>{if(!t||!e)return t===e;let r=G.parseLocator(t);G.isVirtualLocator(r)&&(r=G.devirtualizeLocator(r));let s=G.parseLocator(e);return G.isVirtualLocator(s)&&(s=G.devirtualizeLocator(s)),G.areLocatorsEqual(r,s)};function SY(t){return J.join(t.get("globalFolder"),"store")}function Ldt(t,e){let r=s=>{let a=s.split(J.sep),n=a.lastIndexOf(Ri);if(n<0||n==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${s}`);return a.slice(0,n+(a[n+1].startsWith("@")?3:2)).join(J.sep)};for(let s of t.values())for(let[a,n]of s)e.has(r(n))&&s.delete(a)}async function Mdt(t,e,{baseFs:r,project:s,report:a,loadManifest:n,realLocatorChecksums:c}){let f=J.join(s.cwd,Ri),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:C}=Ndt(t.locationTree,t.binSymlinks,t.mtimeMs,s),S=MBe(e,{skipPrefix:s.cwd}),b=[],I=async({srcDir:Be,dstDir:Ce,linkType:g,globalHardlinksStore:we,nmMode:ye,windowsLinkType:Ae,packageChecksum:se})=>{let X=(async()=>{try{g==="SOFT"?(await ce.mkdirPromise(J.dirname(Ce),{recursive:!0}),await vY(J.resolve(Be),Ce,Ae)):await Fdt(Ce,Be,{baseFs:r,globalHardlinksStore:we,nmMode:ye,windowsLinkType:Ae,packageChecksum:se})}catch(De){throw De.message=`While persisting ${Be} -> ${Ce} ${De.message}`,De}finally{ie.tick()}})().then(()=>b.splice(b.indexOf(X),1));b.push(X),b.length>RBe&&await Promise.race(b)},T=async(Be,Ce,g)=>{let we=(async()=>{let ye=async(Ae,se,X)=>{try{X.innerLoop||await ce.mkdirPromise(se,{recursive:!0});let De=await ce.readdirPromise(Ae,{withFileTypes:!0});for(let Te of De){if(!X.innerLoop&&Te.name===oN)continue;let mt=J.join(Ae,Te.name),j=J.join(se,Te.name);Te.isDirectory()?(Te.name!==Ri||X&&X.innerLoop)&&(await ce.mkdirPromise(j,{recursive:!0}),await ye(mt,j,{...X,innerLoop:!0})):me.value==="hardlinks-local"||me.value==="hardlinks-global"?await ce.linkPromise(mt,j):await ce.copyFilePromise(mt,j,NBe.default.constants.COPYFILE_FICLONE)}}catch(De){throw X.innerLoop||(De.message=`While cloning ${Ae} -> ${se} ${De.message}`),De}finally{X.innerLoop||ie.tick()}};await ye(Be,Ce,g)})().then(()=>b.splice(b.indexOf(we),1));b.push(we),b.length>RBe&&await Promise.race(b)},N=async(Be,Ce,g)=>{if(g)for(let[we,ye]of Ce.children){let Ae=g.children.get(we);await N(J.join(Be,we),ye,Ae)}else{Ce.children.has(Ri)&&await Pw(J.join(Be,Ri),{contentsOnly:!1});let we=J.basename(Be)===Ri&&p.has(J.join(J.dirname(Be)));await Pw(Be,{contentsOnly:Be===f,isWorkspaceDir:we})}};for(let[Be,Ce]of p){let g=S.get(Be);for(let[we,ye]of Ce.children){if(we===".")continue;let Ae=g&&g.children.get(we),se=J.join(Be,we);await N(se,ye,Ae)}}let U=async(Be,Ce,g)=>{if(g){TBe(Ce.locator,g.locator)||await Pw(Be,{contentsOnly:Ce.linkType==="HARD"});for(let[we,ye]of Ce.children){let Ae=g.children.get(we);await U(J.join(Be,we),ye,Ae)}}else{Ce.children.has(Ri)&&await Pw(J.join(Be,Ri),{contentsOnly:!0});let we=J.basename(Be)===Ri&&S.has(J.join(J.dirname(Be)));await Pw(Be,{contentsOnly:Ce.linkType==="HARD",isWorkspaceDir:we})}};for(let[Be,Ce]of S){let g=p.get(Be);for(let[we,ye]of Ce.children){if(we===".")continue;let Ae=g&&g.children.get(we);await U(J.join(Be,we),ye,Ae)}}let W=new Map,ee=[];for(let[Be,Ce]of E)for(let g of Ce){let{locationRoot:we,segments:ye}=aN(g,{skipPrefix:s.cwd}),Ae=S.get(we),se=we;if(Ae){for(let X of ye)if(se=J.join(se,X),Ae=Ae.children.get(X),!Ae)break;if(Ae){let X=TBe(Ae.locator,Be),De=e.get(Ae.locator),Te=De.target,mt=se,j=De.linkType;if(X)W.has(Te)||W.set(Te,mt);else if(Te!==mt){let rt=G.parseLocator(Ae.locator);G.isVirtualLocator(rt)&&(rt=G.devirtualizeLocator(rt)),ee.push({srcDir:Te,dstDir:mt,linkType:j,realLocatorHash:rt.locatorHash})}}}}for(let[Be,{locations:Ce}]of e.entries())for(let g of Ce){let{locationRoot:we,segments:ye}=aN(g,{skipPrefix:s.cwd}),Ae=p.get(we),se=S.get(we),X=we,De=e.get(Be),Te=G.parseLocator(Be);G.isVirtualLocator(Te)&&(Te=G.devirtualizeLocator(Te));let mt=Te.locatorHash,j=De.target,rt=g;if(j===rt)continue;let Fe=De.linkType;for(let Ne of ye)se=se.children.get(Ne);if(!Ae)ee.push({srcDir:j,dstDir:rt,linkType:Fe,realLocatorHash:mt});else for(let Ne of ye)if(X=J.join(X,Ne),Ae=Ae.children.get(Ne),!Ae){ee.push({srcDir:j,dstDir:rt,linkType:Fe,realLocatorHash:mt});break}}let ie=Ao.progressViaCounter(ee.length),ue=a.reportProgress(ie),le=s.configuration.get("nmMode"),me={value:le},pe=s.configuration.get("winLinkType");try{let Be=me.value==="hardlinks-global"?`${SY(s.configuration)}/v1`:null;if(Be&&!await ce.existsPromise(Be)){await ce.mkdirpPromise(Be);for(let g=0;g<256;g++)await ce.mkdirPromise(J.join(Be,g.toString(16).padStart(2,"0")))}for(let g of ee)(g.linkType==="SOFT"||!W.has(g.srcDir))&&(W.set(g.srcDir,g.dstDir),await I({...g,globalHardlinksStore:Be,nmMode:me,windowsLinkType:pe,packageChecksum:c.get(g.realLocatorHash)||null}));await Promise.all(b),b.length=0;for(let g of ee){let we=W.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==we&&await T(we,g.dstDir,{nmMode:me})}await Promise.all(b),await ce.mkdirPromise(f,{recursive:!0}),Ldt(h,new Set(ee.map(g=>g.dstDir)));let Ce=await Odt(e,S,s.cwd,{loadManifest:n});await Udt(h,Ce,s.cwd,pe),await Rdt(s,e,Ce,me,{installChangedByUser:C}),le=="hardlinks-global"&&me.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{ue.stop()}}async function Udt(t,e,r,s){for(let a of t.keys()){if(J.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=J.join(a,Ri,oN);await ce.removePromise(n)}}for(let[a,n]of e){if(J.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let c=J.join(a,Ri,oN),f=t.get(a)||new Map;await ce.mkdirPromise(c,{recursive:!0});for(let p of f.keys())n.has(p)||(await ce.removePromise(J.join(c,p)),process.platform==="win32"&&await ce.removePromise(J.join(c,`${p}.cmd`)));for(let[p,h]of n){let E=f.get(p),C=J.join(c,p);E!==h&&(process.platform==="win32"?await(0,FBe.default)(fe.fromPortablePath(h),fe.fromPortablePath(C),{createPwshFile:!1}):(await ce.removePromise(C),await vY(h,C,s),J.contains(r,await ce.realpathPromise(h))!==null&&await ce.chmodPromise(h,493)))}}}Ge();Dt();eA();var GD=class extends sg{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new DY(r)}},DY=class extends Gm{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let s=new uo({baseFs:new $f({maxOpenFiles:80,readOnlyArchives:!0})}),a=IBe(r,this.opts.project.cwd,s),{tree:n,errors:c}=kD(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:C,text:S}of c)this.opts.report.reportError(C,S);return}let f=new Map;r.fallbackPool=f;let p=(C,S)=>{let b=G.parseLocator(S.locator),I=G.stringifyIdent(b);I===C?f.set(C,b.reference):f.set(C,[I,b.reference])},h=J.join(this.opts.project.cwd,Er.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let C of E.dirList){let S=J.join(h,C),b=n.get(S);if(typeof b>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in b)p(C,b);else for(let I of b.dirList){let T=J.join(S,I),N=n.get(T);if(typeof N>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in N)p(`${C}/${I}`,N);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var _dt={hooks:{cleanGlobalArtifacts:async t=>{let e=SY(t);await ce.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[jD,GD]},Hdt=_dt;var PK={};Vt(PK,{NpmHttpFetcher:()=>VD,NpmRemapResolver:()=>JD,NpmSemverFetcher:()=>oh,NpmSemverResolver:()=>KD,NpmTagResolver:()=>zD,default:()=>rPt,npmConfigUtils:()=>hi,npmHttpUtils:()=>an,npmPublishUtils:()=>v1});Ge();var JBe=ut(Ai());var oi="npm:";var an={};Vt(an,{AuthType:()=>WBe,customPackageError:()=>qm,del:()=>imt,get:()=>Wm,getIdentUrl:()=>WD,getPackageMetadata:()=>Qw,handleInvalidAuthenticationError:()=>ag,post:()=>rmt,put:()=>nmt});Ge();Ge();Dt();var kY=ut(Vv());ql();var qBe=ut(Ai());var hi={};Vt(hi,{RegistryType:()=>jBe,getAuditRegistry:()=>jdt,getAuthConfiguration:()=>xY,getDefaultRegistry:()=>qD,getPublishRegistry:()=>Gdt,getRegistryConfiguration:()=>GBe,getScopeConfiguration:()=>bY,getScopeRegistry:()=>bw,isPackageApproved:()=>xw,normalizeRegistry:()=>Jc});Ge();var HBe=ut(Go()),jBe=(s=>(s.AUDIT_REGISTRY="npmAuditRegistry",s.FETCH_REGISTRY="npmRegistryServer",s.PUBLISH_REGISTRY="npmPublishRegistry",s))(jBe||{});function Jc(t){return t.replace(/\/$/,"")}function jdt({configuration:t}){return qD({configuration:t,type:"npmAuditRegistry"})}function Gdt(t,{configuration:e}){return t.publishConfig?.registry?Jc(t.publishConfig.registry):t.name?bw(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):qD({configuration:e,type:"npmPublishRegistry"})}function bw(t,{configuration:e,type:r="npmRegistryServer"}){let s=bY(t,{configuration:e});if(s===null)return qD({configuration:e,type:r});let a=s.get(r);return a===null?qD({configuration:e,type:r}):Jc(a)}function qD({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return Jc(r!==null?r:t.get("npmRegistryServer"))}function GBe(t,{configuration:e}){let r=e.get("npmRegistries"),s=Jc(t),a=r.get(s);if(typeof a<"u")return a;let n=r.get(s.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}var qdt=new Map([["npmRegistryServer","https://npm.jsr.io/"]]);function bY(t,{configuration:e}){if(t===null)return null;let s=e.get("npmScopes").get(t);return s||(t==="jsr"?qdt:null)}function xY(t,{configuration:e,ident:r}){let s=r&&bY(r.scope,{configuration:e});return s?.get("npmAuthIdent")||s?.get("npmAuthToken")?s:GBe(t,{configuration:e})||e}function Wdt({configuration:t,version:e,publishTimes:r}){let s=t.get("npmMinimalAgeGate");if(s){let a=r?.[e];if(typeof a>"u"||(new Date().getTime()-new Date(a).getTime())/60/1e3Ydt(e,r,s))}function xw(t){return!Wdt(t)||Vdt(t)}var WBe=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(WBe||{});async function ag(t,{attemptedAs:e,registry:r,headers:s,configuration:a}){if(cN(t))throw new jt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new jt(41,`Invalid authentication (${typeof e!="string"?`as ${await omt(r,s,{configuration:a})}`:`attempted as ${e}`})`)}function qm(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${he.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function WD(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var YBe=new Map,Jdt=new Map;async function Kdt(t){return await je.getFactoryWithDefault(YBe,t,async()=>{let e=null;try{e=await ce.readJsonPromise(t)}catch{}return e})}async function zdt(t,e,{configuration:r,cached:s,registry:a,headers:n,version:c,...f}){return await je.getFactoryWithDefault(Jdt,t,async()=>await Wm(WD(e),{...f,customErrorMessage:qm,configuration:r,registry:a,ident:e,headers:{...n,"If-None-Match":s?.etag,"If-Modified-Since":s?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(s===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:s.metadata}}let E=Xdt(JSON.parse(h.body.toString())),C={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return YBe.set(t,Promise.resolve(C)),Promise.resolve().then(async()=>{let S=`${t}-${process.pid}.tmp`;await ce.mkdirPromise(J.dirname(S),{recursive:!0}),await ce.writeJsonPromise(S,C,{compact:!0}),await ce.renamePromise(S,t)}).catch(()=>{}),{...h,body:E}}}))}function Zdt(t){return t.scope!==null?`@${t.scope}-${t.name}-${t.scope.length}`:t.name}async function Qw(t,{cache:e,project:r,registry:s,headers:a,version:n,...c}){let{configuration:f}=r;s=YD(f,{ident:t,registry:s});let p=emt(f,s),h=J.join(p,`${Zdt(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await Kdt(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(f.get("enableOfflineMode")){let C=structuredClone(E.metadata),S=new Set;if(e){for(let I of Object.keys(C.versions)){let T=G.makeLocator(t,`npm:${I}`),N=e.getLocatorMirrorPath(T);(!N||!ce.existsSync(N))&&(delete C.versions[I],S.add(I))}let b=C["dist-tags"].latest;if(S.has(b)){let I=Object.keys(E.metadata.versions).sort(qBe.default.compare),T=I.indexOf(b);for(;S.has(I[T])&&T>=0;)T-=1;T>=0?C["dist-tags"].latest=I[T]:delete C["dist-tags"].latest}}return C}}return await zdt(h,t,{...c,configuration:f,cached:E,registry:s,headers:a,version:n})}var VBe=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function Xdt(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,Kd(r,VBe)])),time:t.time}}var $dt=Nn.makeHash("time",...VBe).slice(0,6);function emt(t,e){let r=tmt(t),s=new URL(e);return J.join(r,$dt,s.hostname)}function tmt(t){return J.join(t.get("globalFolder"),"metadata/npm")}async function Wm(t,{configuration:e,headers:r,ident:s,authType:a,allowOidc:n,registry:c,...f}){c=YD(e,{ident:s,registry:c}),s&&s.scope&&typeof a>"u"&&(a=1);let p=await lN(c,{authType:a,allowOidc:n,configuration:e,ident:s});p&&(r={...r,authorization:p});try{return await ln.get(t.charAt(0)==="/"?`${c}${t}`:t,{configuration:e,headers:r,...f})}catch(h){throw await ag(h,{registry:c,configuration:e,headers:r}),h}}async function rmt(t,e,{attemptedAs:r,configuration:s,headers:a,ident:n,authType:c=3,allowOidc:f,registry:p,otp:h,...E}){p=YD(s,{ident:n,registry:p});let C=await lN(p,{authType:c,allowOidc:f,configuration:s,ident:n});C&&(a={...a,authorization:C}),h&&(a={...a,...kw(h)});try{return await ln.post(p+t,e,{configuration:s,headers:a,...E})}catch(S){if(!cN(S)||h)throw await ag(S,{attemptedAs:r,registry:p,configuration:s,headers:a}),S;h=await QY(S,{configuration:s});let b={...a,...kw(h)};try{return await ln.post(`${p}${t}`,e,{configuration:s,headers:b,...E})}catch(I){throw await ag(I,{attemptedAs:r,registry:p,configuration:s,headers:a}),I}}}async function nmt(t,e,{attemptedAs:r,configuration:s,headers:a,ident:n,authType:c=3,allowOidc:f,registry:p,otp:h,...E}){p=YD(s,{ident:n,registry:p});let C=await lN(p,{authType:c,allowOidc:f,configuration:s,ident:n});C&&(a={...a,authorization:C}),h&&(a={...a,...kw(h)});try{return await ln.put(p+t,e,{configuration:s,headers:a,...E})}catch(S){if(!cN(S))throw await ag(S,{attemptedAs:r,registry:p,configuration:s,headers:a}),S;h=await QY(S,{configuration:s});let b={...a,...kw(h)};try{return await ln.put(`${p}${t}`,e,{configuration:s,headers:b,...E})}catch(I){throw await ag(I,{attemptedAs:r,registry:p,configuration:s,headers:a}),I}}}async function imt(t,{attemptedAs:e,configuration:r,headers:s,ident:a,authType:n=3,allowOidc:c,registry:f,otp:p,...h}){f=YD(r,{ident:a,registry:f});let E=await lN(f,{authType:n,allowOidc:c,configuration:r,ident:a});E&&(s={...s,authorization:E}),p&&(s={...s,...kw(p)});try{return await ln.del(f+t,{configuration:r,headers:s,...h})}catch(C){if(!cN(C)||p)throw await ag(C,{attemptedAs:e,registry:f,configuration:r,headers:s}),C;p=await QY(C,{configuration:r});let S={...s,...kw(p)};try{return await ln.del(`${f}${t}`,{configuration:r,headers:S,...h})}catch(b){throw await ag(b,{attemptedAs:e,registry:f,configuration:r,headers:s}),b}}}function YD(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return bw(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return Jc(r)}async function lN(t,{authType:e=2,allowOidc:r=!1,configuration:s,ident:a}){let n=xY(t,{configuration:s,ident:a}),c=smt(n,e);if(!c)return null;let f=await s.reduceHook(p=>p.getNpmAuthenticationHeader,void 0,t,{configuration:s,ident:a});if(f)return f;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let p=n.get("npmAuthIdent");return p.includes(":")?`Basic ${Buffer.from(p).toString("base64")}`:`Basic ${p}`}if(r&&a){let p=await amt(t,{configuration:s,ident:a});if(p)return`Bearer ${p}`}if(c&&e!==1)throw new jt(33,"No authentication configured for request");return null}function smt(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function omt(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await ln.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function QY(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Ot.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,he.pretty(e,"$1",he.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&fs.openUrl){let{openNow:c}=await(0,kY.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});c&&(await fs.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:s}=await(0,kY.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` `),s}function cN(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function kw(t){return{"npm-otp":t}}async function amt(t,{configuration:e,ident:r}){let s=null;if(process.env.GITLAB)s=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(t).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,n=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);n.searchParams.append("audience",a),s=(await ln.get(n.href,{configuration:e,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!s)return null;try{return(await ln.post(`${t}/-/npm/v1/oidc/token/exchange/package${WD(r)}`,null,{configuration:e,jsonResponse:!0,headers:{Authorization:`Bearer ${s}`}})).token||null}catch{}return null}var VD=class{supports(e,r){if(!e.reference.startsWith(oi))return!1;let{selector:s,params:a}=G.parseRange(e.reference);return!(!JBe.default.valid(s)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let{params:s}=G.parseRange(e.reference);if(s===null||typeof s.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Wm(s.__archiveUrl,{customErrorMessage:qm,configuration:r.project.configuration,ident:e});return await ps.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();var JD=class{supportsDescriptor(e,r){return!(!e.range.startsWith(oi)||!G.tryParseDescriptor(e.range.slice(oi.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){let s=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(oi.length),!0));return r.resolver.getResolutionDependencies(s,r)}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(oi.length),!0));return await s.resolver.getCandidates(a,r,s)}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(oi.length),!0));return a.resolver.getSatisfying(n,r,s,a)}resolve(e,r){throw new Error("Unreachable")}};Ge();Ge();var KBe=ut(Ai());var oh=class t{supports(e,r){if(!e.reference.startsWith(oi))return!1;let s=new URL(e.reference);return!(!KBe.default.valid(s.pathname)||s.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s;try{s=await Wm(t.getLocatorUrl(e),{customErrorMessage:qm,configuration:r.project.configuration,ident:e})}catch{s=await Wm(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:qm,configuration:r.project.configuration,ident:e})}return await ps.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:s}){let a=bw(e.scope,{configuration:s}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Fr.clean(e.reference.slice(oi.length));if(r===null)throw new jt(10,"The npm semver resolver got selected, but the version isn't semver");return`${WD(e)}/-/${e.name}-${r}.tgz`}};Ge();Ge();Ge();var RY=ut(Ai());var uN=G.makeIdent(null,"node-gyp"),lmt=/\b(node-gyp|prebuild-install)\b/,KD=class{supportsDescriptor(e,r){return e.range.startsWith(oi)?!!Fr.validRange(e.range.slice(oi.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(oi))return!1;let{selector:s}=G.parseRange(e.reference);return!!RY.default.valid(s)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=Fr.validRange(e.range.slice(oi.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(oi.length)}`);let n=await Qw(e,{cache:s.fetchOptions?.cache,project:s.project,version:RY.default.valid(a.raw)?a.raw:void 0}),c=je.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Fr.SemVer(h);if(a.test(E))return xw({configuration:s.project.configuration,ident:e,version:h,publishTimes:n.time})?E:je.mapAndFilter.skip}catch{}return je.mapAndFilter.skip}),f=c.filter(h=>!n.versions[h.raw].deprecated),p=f.length>0?f:c;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${oi}${h.raw}`),C=n.versions[h.raw].dist.tarball;return oh.isConventionalTarballUrl(E,C,{configuration:s.project.configuration})?E:G.bindLocator(E,{__archiveUrl:C})})}async getSatisfying(e,r,s,a){let n=Fr.validRange(e.range.slice(oi.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(oi.length)}`);return{locators:je.mapAndFilter(s,p=>{if(p.identHash!==e.identHash)return je.mapAndFilter.skip;let h=G.tryParseRange(p.reference,{requireProtocol:oi});if(!h)return je.mapAndFilter.skip;let E=new Fr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:je.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:s}=G.parseRange(e.reference),a=Fr.clean(s);if(a===null)throw new jt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await Qw(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new jt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new jt(16,`Registry failed to return reference "${a}"`);let c=new Ut;if(c.load(n.versions[a]),!c.dependencies.has(uN.identHash)&&!c.peerDependencies.has(uN.identHash)){for(let f of c.scripts.values())if(f.match(lmt)){c.dependencies.set(uN.identHash,G.makeDescriptor(uN,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:c.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(c.dependencies),peerDependencies:c.peerDependencies,dependenciesMeta:c.dependenciesMeta,peerDependenciesMeta:c.peerDependenciesMeta,bin:c.bin}}};Ge();Ge();var fN=ut(Ai());var zD=class{supportsDescriptor(e,r){return!(!e.range.startsWith(oi)||!Mp.test(e.range.slice(oi.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(oi.length),n=await Qw(e,{cache:s.fetchOptions?.cache,project:s.project});if(!Object.hasOwn(n,"dist-tags"))throw new jt(15,'Registry returned invalid data - missing "dist-tags" field');let c=n["dist-tags"];if(!Object.hasOwn(c,a))throw new jt(16,`Registry failed to return tag "${a}"`);let f=Object.keys(n.versions),p=n.time,h=c[a];if(a==="latest"&&!xw({configuration:s.project.configuration,ident:e,version:h,publishTimes:p})){let S=h.includes("-"),b=fN.default.rsort(f).find(I=>fN.default.lt(I,h)&&(S||!I.includes("-"))&&xw({configuration:s.project.configuration,ident:e,version:I,publishTimes:p}));if(!b)throw new jt(16,`The version for tag "${a}" is quarantined, and no lower version is available`);h=b}let E=G.makeLocator(e,`${oi}${h}`),C=n.versions[h].dist.tarball;return oh.isConventionalTarballUrl(E,C,{configuration:s.project.configuration})?[E]:[G.bindLocator(E,{__archiveUrl:C})]}async getSatisfying(e,r,s,a){let n=[];for(let c of s){if(c.identHash!==e.identHash)continue;let f=G.tryParseRange(c.reference,{requireProtocol:oi});if(!(!f||!fN.default.valid(f.selector))){if(f.params?.__archiveUrl){let p=G.makeRange({protocol:oi,selector:f.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(G.makeDescriptor(e,p),r,a);if(c.reference!==h.reference)continue}n.push(c)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var v1={};Vt(v1,{getGitHead:()=>$Dt,getPublishAccess:()=>Uxe,getReadmeContent:()=>_xe,makePublishBody:()=>XDt});Ge();Ge();Dt();var IV={};Vt(IV,{PackCommand:()=>jw,default:()=>HEt,packUtils:()=>yA});Ge();Ge();Ge();Dt();Yt();var yA={};Vt(yA,{genPackList:()=>FN,genPackStream:()=>EV,genPackageManifest:()=>DSe,hasPackScripts:()=>mV,prepareForPack:()=>yV});Ge();Dt();var dV=ut(Go()),vSe=ut(ISe()),SSe=Ie("zlib"),kEt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],QEt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function mV(t){return!!(In.hasWorkspaceScript(t,"prepack")||In.hasWorkspaceScript(t,"postpack"))}async function yV(t,{report:e},r){await In.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let s=J.join(t.cwd,Ut.fileName);await ce.existsPromise(s)&&await t.manifest.loadFile(s,{baseFs:ce}),await r()}finally{await In.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function EV(t,e){typeof e>"u"&&(e=await FN(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(J.normalize(n));for(let n of t.manifest.bin.values())r.add(J.normalize(n));let s=vSe.default.pack();process.nextTick(async()=>{for(let n of e){let c=J.normalize(n),f=J.resolve(t.cwd,c),p=J.join("package",c),h=await ce.lstatPromise(f),E={name:p,mtime:new Date(fi.SAFE_TIME*1e3)},C=r.has(c)?493:420,S,b,I=new Promise((N,U)=>{S=N,b=U}),T=N=>{N?b(N):S()};if(h.isFile()){let N;c==="package.json"?N=Buffer.from(JSON.stringify(await DSe(t),null,2)):N=await ce.readFilePromise(f),s.entry({...E,mode:C,type:"file"},N,T)}else h.isSymbolicLink()?s.entry({...E,mode:C,type:"symlink",linkname:await ce.readlinkPromise(f)},T):T(new Error(`Unsupported file type ${h.mode} for ${fe.fromPortablePath(c)}`));await I}s.finalize()});let a=(0,SSe.createGzip)();return s.pipe(a),a}async function DSe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function FN(t){let e=t.project,r=e.configuration,s={accept:[],reject:[]};for(let C of QEt)s.reject.push(C);for(let C of kEt)s.accept.push(C);s.reject.push(r.get("rcFilename"));let a=C=>{if(C===null||!C.startsWith(`${t.cwd}/`))return;let S=J.relative(t.cwd,C),b=J.resolve(vt.root,S);s.reject.push(b)};a(J.resolve(e.cwd,Er.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(C=>C.populateYarnPaths,e,C=>{a(C)});for(let C of e.workspaces){let S=J.relative(t.cwd,C.cwd);S!==""&&!S.match(/^(\.\.)?\//)&&s.reject.push(`/${S}`)}let n={accept:[],reject:[]},c=t.manifest.publishConfig?.main??t.manifest.main,f=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;c!=null&&n.accept.push(J.resolve(vt.root,c)),f!=null&&n.accept.push(J.resolve(vt.root,f)),typeof p=="string"&&n.accept.push(J.resolve(vt.root,p));for(let C of h.values())n.accept.push(J.resolve(vt.root,C));if(p instanceof Map)for(let[C,S]of p.entries())n.accept.push(J.resolve(vt.root,C)),typeof S=="string"&&n.accept.push(J.resolve(vt.root,S));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let C of t.manifest.files)PSe(n.accept,C,{cwd:vt.root})}return await REt(t.cwd,{hasExplicitFileList:E,globalList:s,ignoreList:n})}async function REt(t,{hasExplicitFileList:e,globalList:r,ignoreList:s}){let a=[],n=new Hf(t),c=[[vt.root,[s]]];for(;c.length>0;){let[f,p]=c.pop(),h=await n.lstatPromise(f);if(!wSe(f,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(f),C=!1,S=!1;if(!e||f!==vt.root)for(let T of E)C=C||T===".gitignore",S=S||T===".npmignore";let b=S?await CSe(n,f,".npmignore"):C?await CSe(n,f,".gitignore"):null,I=b!==null?[b].concat(p):p;wSe(f,{globalList:r,ignoreLists:p})&&(I=[...p,{accept:[],reject:["**/*"]}]);for(let T of E)c.push([J.resolve(f,T),I])}else(h.isFile()||h.isSymbolicLink())&&a.push(J.relative(vt.root,f))}return a.sort()}async function CSe(t,e,r){let s={accept:[],reject:[]},a=await t.readFilePromise(J.join(e,r),"utf8");for(let n of a.split(/\n/g))PSe(s.reject,n,{cwd:e});return s}function TEt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=J.resolve(e,t)),r&&(t=`!${t}`),t}function PSe(t,e,{cwd:r}){let s=e.trim();s===""||s[0]==="#"||t.push(TEt(s,{cwd:r}))}function wSe(t,{globalList:e,ignoreLists:r}){let s=TN(t,e.accept);if(s!==0)return s===2;let a=TN(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let c=TN(t,n.accept);if(c!==0)return c===2;let f=TN(t,n.reject);if(f!==0)return f===1}return!1}function TN(t,e){let r=e,s=[];for(let a=0;a{await yV(a,{report:p},async()=>{p.reportJson({base:fe.fromPortablePath(a.cwd)});let h=await FN(a);for(let E of h)p.reportInfo(null,fe.fromPortablePath(E)),p.reportJson({location:fe.fromPortablePath(E)});if(!this.dryRun){let E=await EV(a,h);await ce.mkdirPromise(J.dirname(c),{recursive:!0});let C=ce.createWriteStream(c);E.pipe(C),await new Promise(S=>{C.on("finish",S)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${he.pretty(r,c,he.Type.PATH)}`),p.reportJson({output:fe.fromPortablePath(c)}))})).exitCode()}};function FEt(t,{workspace:e}){let r=t.replace("%s",NEt(e)).replace("%v",OEt(e));return fe.toPortablePath(r)}function NEt(t){return t.manifest.name!==null?G.slugifyIdent(t.manifest.name):"package"}function OEt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var LEt=["dependencies","devDependencies","peerDependencies"],MEt="workspace:",UEt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of LEt)for(let a of t.manifest.getForScope(s).values()){let n=r.tryWorkspaceByDescriptor(a),c=G.parseRange(a.range);if(c.protocol===MEt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new jt(21,`${G.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let f;G.areDescriptorsEqual(a,n.anchoredDescriptor)||c.selector==="*"?f=n.manifest.version??"0.0.0":c.selector==="~"||c.selector==="^"?f=`${c.selector}${n.manifest.version??"0.0.0"}`:f=c.selector;let p=s==="dependencies"?G.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":s;e[h][G.stringifyIdent(a)]=f}}},_Et={hooks:{beforeWorkspacePacking:UEt},commands:[jw]},HEt=_Et;var Mxe=ut(OSe());Ge();var Oxe=ut(Nxe()),{env:Bt}=process,GDt="application/vnd.in-toto+json",qDt="https://in-toto.io/Statement/v0.1",WDt="https://in-toto.io/Statement/v1",YDt="https://slsa.dev/provenance/v0.2",VDt="https://slsa.dev/provenance/v1",JDt="https://github.com/actions/runner",KDt="https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1",zDt="https://github.com/npm/cli/gitlab",ZDt="v0alpha1",Lxe=async(t,e)=>{let r;if(Bt.GITHUB_ACTIONS){if(!Bt.ACTIONS_ID_TOKEN_REQUEST_URL)throw new jt(91,'Provenance generation in GitHub Actions requires "write" access to the "id-token" permission');let s=(Bt.GITHUB_WORKFLOW_REF||"").replace(`${Bt.GITHUB_REPOSITORY}/`,""),a=s.indexOf("@"),n=s.slice(0,a),c=s.slice(a+1);r={_type:WDt,subject:t,predicateType:VDt,predicate:{buildDefinition:{buildType:KDt,externalParameters:{workflow:{ref:c,repository:`${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}`,path:n}},internalParameters:{github:{event_name:Bt.GITHUB_EVENT_NAME,repository_id:Bt.GITHUB_REPOSITORY_ID,repository_owner_id:Bt.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}@${Bt.GITHUB_REF}`,digest:{gitCommit:Bt.GITHUB_SHA}}]},runDetails:{builder:{id:`${JDt}/${Bt.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}/actions/runs/${Bt.GITHUB_RUN_ID}/attempts/${Bt.GITHUB_RUN_ATTEMPT}`}}}}}else if(Bt.GITLAB_CI){if(!Bt.SIGSTORE_ID_TOKEN)throw new jt(91,`Provenance generation in GitLab CI requires "SIGSTORE_ID_TOKEN" with "sigstore" audience to be present in "id_tokens". For more info see: https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:qDt,subject:t,predicateType:YDt,predicate:{buildType:`${zDt}/${ZDt}`,builder:{id:`${Bt.CI_PROJECT_URL}/-/runners/${Bt.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA},entryPoint:Bt.CI_JOB_NAME},parameters:{CI:Bt.CI,CI_API_GRAPHQL_URL:Bt.CI_API_GRAPHQL_URL,CI_API_V4_URL:Bt.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:Bt.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:Bt.CI_BUILD_ID,CI_BUILD_NAME:Bt.CI_BUILD_NAME,CI_BUILD_REF:Bt.CI_BUILD_REF,CI_BUILD_REF_NAME:Bt.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:Bt.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:Bt.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:Bt.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:Bt.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:Bt.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:Bt.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:Bt.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:Bt.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:Bt.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:Bt.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:Bt.CI_COMMIT_TITLE,CI_CONFIG_PATH:Bt.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:Bt.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:Bt.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:Bt.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:Bt.CI_JOB_ID,CI_JOB_NAME:Bt.CI_JOB_NAME,CI_JOB_NAME_SLUG:Bt.CI_JOB_NAME_SLUG,CI_JOB_STAGE:Bt.CI_JOB_STAGE,CI_JOB_STARTED_AT:Bt.CI_JOB_STARTED_AT,CI_JOB_URL:Bt.CI_JOB_URL,CI_NODE_TOTAL:Bt.CI_NODE_TOTAL,CI_PAGES_DOMAIN:Bt.CI_PAGES_DOMAIN,CI_PAGES_URL:Bt.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:Bt.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:Bt.CI_PIPELINE_ID,CI_PIPELINE_IID:Bt.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:Bt.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:Bt.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:Bt.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:Bt.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:Bt.CI_PROJECT_ID,CI_PROJECT_NAME:Bt.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:Bt.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:Bt.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:Bt.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:Bt.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:Bt.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:Bt.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:Bt.CI_PROJECT_TITLE,CI_PROJECT_URL:Bt.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:Bt.CI_PROJECT_VISIBILITY,CI_REGISTRY:Bt.CI_REGISTRY,CI_REGISTRY_IMAGE:Bt.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:Bt.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:Bt.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:Bt.CI_RUNNER_ID,CI_RUNNER_TAGS:Bt.CI_RUNNER_TAGS,CI_SERVER_HOST:Bt.CI_SERVER_HOST,CI_SERVER_NAME:Bt.CI_SERVER_NAME,CI_SERVER_PORT:Bt.CI_SERVER_PORT,CI_SERVER_PROTOCOL:Bt.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:Bt.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:Bt.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:Bt.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:Bt.CI_SERVER_URL,CI_SERVER_VERSION:Bt.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:Bt.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:Bt.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:Bt.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:Bt.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:Bt.GITLAB_CI,GITLAB_FEATURES:Bt.GITLAB_FEATURES,GITLAB_USER_ID:Bt.GITLAB_USER_ID,GITLAB_USER_LOGIN:Bt.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:Bt.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:Bt.CI_RUNNER_DESCRIPTION,architecture:Bt.CI_RUNNER_EXECUTABLE_ARCH,server:Bt.CI_SERVER_URL,project:Bt.CI_PROJECT_PATH,job:{id:Bt.CI_JOB_ID},pipeline:{id:Bt.CI_PIPELINE_ID,ref:Bt.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${Bt.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA}}]}}}else throw new jt(91,"Provenance generation is only supported in GitHub Actions and GitLab CI");return Oxe.attest(Buffer.from(JSON.stringify(r)),GDt,e)};async function XDt(t,e,{access:r,tag:s,registry:a,gitHead:n,provenance:c}){let f=t.manifest.name,p=t.manifest.version,h=G.stringifyIdent(f),E=Mxe.default.fromData(e,{algorithms:["sha1","sha512"]}),C=r??Uxe(t,f),S=await _xe(t),b=await yA.genPackageManifest(t),I=`${h}-${p}.tgz`,T=new URL(`${Jc(a)}/${h}/-/${I}`),N={[I]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}};if(c){let U={name:`pkg:npm/${h.replace(/^@/,"%40")}@${p}`,digest:{sha512:E.sha512[0].hexDigest()}},W=await Lxe([U]),ee=JSON.stringify(W);N[`${h}-${p}.sigstore`]={content_type:W.mediaType,data:ee,length:ee.length}}return{_id:h,_attachments:N,name:h,access:C,"dist-tags":{[s]:p},versions:{[p]:{...b,_id:`${h}@${p}`,name:h,version:p,gitHead:n,dist:{shasum:E.sha1[0].hexDigest(),integrity:E.sha512[0].toString(),tarball:T.toString()}}},readme:S}}async function $Dt(t){try{let{stdout:e}=await qr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function Uxe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function _xe(t){let e=fe.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${G.stringifyIdent(r)} `;try{a=await ce.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var DK={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Hxe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},ePt={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry in minutes to be considered for installation",type:"NUMBER",default:0},npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:"STRING",isArray:!0,default:[]}},tPt={configuration:{...DK,...Hxe,...ePt,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...DK,...Hxe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Jc,valueDefinition:{description:"",type:"SHAPE",properties:{...DK}}}},fetchers:[VD,oh],resolvers:[JD,KD,zD]},rPt=tPt;var OK={};Vt(OK,{NpmAuditCommand:()=>D1,NpmInfoCommand:()=>P1,NpmLoginCommand:()=>b1,NpmLogoutCommand:()=>k1,NpmPublishCommand:()=>Q1,NpmTagAddCommand:()=>T1,NpmTagListCommand:()=>R1,NpmTagRemoveCommand:()=>F1,NpmWhoamiCommand:()=>N1,default:()=>cPt,npmAuditTypes:()=>KP,npmAuditUtils:()=>xL});Ge();Ge();Yt();var RK=ut(Go());Ul();var KP={};Vt(KP,{Environment:()=>VP,Severity:()=>JP});var VP=(s=>(s.All="all",s.Production="production",s.Development="development",s))(VP||{}),JP=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(JP||{});var xL={};Vt(xL,{allSeverities:()=>S1,getPackages:()=>QK,getReportTree:()=>xK,getSeverityInclusions:()=>bK,getTopLevelDependencies:()=>kK});Ge();var jxe=ut(Ai());var S1=["info","low","moderate","high","critical"];function bK(t){if(typeof t>"u")return new Set(S1);let e=S1.indexOf(t),r=S1.slice(e);return new Set(r)}function xK(t){let e={},r={children:e};for(let[s,a]of je.sortMap(Object.entries(t),n=>n[0]))for(let n of je.sortMap(a,c=>`${c.id}`))e[`${s}/${n.id}`]={value:he.tuple(he.Type.IDENT,G.parseIdent(s)),children:{ID:typeof n.id<"u"&&{label:"ID",value:he.tuple(he.Type.ID,n.id)},Issue:{label:"Issue",value:he.tuple(he.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:he.tuple(he.Type.URL,n.url)},Severity:{label:"Severity",value:he.tuple(he.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:he.tuple(he.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(jxe.default.compare).map(c=>({value:he.tuple(he.Type.REFERENCE,c)}))},Dependents:{label:"Dependents",children:je.sortMap(n.dependents,c=>G.stringifyLocator(c)).map(c=>({value:he.tuple(he.Type.LOCATOR,c)}))}}};return r}function kK(t,e,{all:r,environment:s}){let a=[],n=r?t.workspaces:[e],c=["all","production"].includes(s),f=["all","development"].includes(s);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!f:!c)||a.push({workspace:p,dependency:h});return a}function QK(t,e,{recursive:r}){let s=new Map,a=new Set,n=[],c=(f,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(G.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let S=G.stringifyIdent(E),b=je.getMapWithDefault(s,S);je.getArrayWithDefault(b,E.version).push(f)}if(r)for(let S of E.dependencies.values())n.push([E,S])};for(let{workspace:f,dependency:p}of e)n.push([f.anchoredLocator,p]);for(;n.length>0;){let[f,p]=n.shift();c(f,p)}return s}var D1=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:fo(VP)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:fo(JP)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=ot.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${S1.map(r=>`\`${r}\``).join(", ")}. If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=kK(s,a,{all:this.all,environment:this.environment}),c=QK(s,n,{recursive:this.recursive}),f=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[N,U]of c)f.some(W=>RK.default.isMatch(N,W))||(p[N]=[...U.keys()]);let h=hi.getAuditRegistry({configuration:r}),E,C=await lA.start({configuration:r,stdout:this.context.stdout},async()=>{let N=an.post("/-/npm/v1/security/advisories/bulk",p,{authType:an.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([ee,ie])=>{let ue=await an.getPackageMetadata(G.parseIdent(ee),{project:s});return je.mapAndFilter(ie,le=>{let{deprecated:me}=ue.versions[le];return me?[ee,le,me]:je.mapAndFilter.skip})})),W=await N;for(let[ee,ie,ue]of U.flat(1))Object.hasOwn(W,ee)&&W[ee].some(le=>Fr.satisfiesWithPrereleases(ie,le.vulnerable_versions))||(W[ee]??=[],W[ee].push({id:`${ee} (deprecation)`,title:(typeof ue=="string"?ue:"").trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ie}));E=W});if(C.hasErrors())return C.exitCode();let S=bK(this.severity),b=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),I=Object.create(null);for(let[N,U]of Object.entries(E)){let W=U.filter(ee=>!RK.default.isMatch(`${ee.id}`,b)&&S.has(ee.severity));W.length>0&&(I[N]=W.map(ee=>{let ie=c.get(N);if(typeof ie>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ue=[...ie.keys()].filter(me=>Fr.satisfiesWithPrereleases(me,ee.vulnerable_versions)),le=new Map;for(let me of ue)for(let pe of ie.get(me))le.set(pe.locatorHash,pe);return{...ee,versions:ue,dependents:[...le.values()]}}))}let T=Object.keys(I).length>0;return T?(xs.emitTree(xK(I),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async N=>{N.reportInfo(1,"No audit suggestions")}),T?1:0)}};Ge();Ge();Dt();Yt();var TK=ut(Ai()),FK=Ie("util"),P1=class extends ft{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],c=!1,f=await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let ie=s.topLevelWorkspace;if(!ie.manifest.name)throw new nt(`Missing ${he.pretty(r,"name",he.Type.CODE)} field in ${fe.fromPortablePath(J.join(ie.cwd,Er.manifest))}`);E=G.makeDescriptor(ie.manifest.name,"unknown")}else E=G.parseDescriptor(h);let C=an.getIdentUrl(E),S=NK(await an.get(C,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:an.customPackageError})),b=Object.keys(S.versions).sort(TK.default.compareLoose),T=S["dist-tags"].latest||b[b.length-1],N=Fr.validRange(E.range);if(N){let ie=TK.default.maxSatisfying(b,N);ie!==null?T=ie:(p.reportWarning(0,`Unmet range ${G.prettyRange(r,E.range)}; falling back to the latest version`),c=!0)}else Object.hasOwn(S["dist-tags"],E.range)?T=S["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${G.prettyRange(r,E.range)}; falling back to the latest version`),c=!0);let U=S.versions[T],W={...S,...U,version:T,versions:b},ee;if(a!==null){ee={};for(let ie of a){let ue=W[ie];if(typeof ue<"u")ee[ie]=ue;else{p.reportWarning(1,`The ${he.pretty(r,ie,he.Type.CODE)} field doesn't exist inside ${G.prettyIdent(r,E)}'s information`),c=!0;continue}}}else this.json||(delete W.dist,delete W.readme,delete W.users),ee=W;p.reportJson(ee),this.json||n.push(ee)}});FK.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||c)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,FK.inspect)(p,{depth:1/0,colors:!0,compact:!1})} `);return f.exitCode()}};function NK(t){if(Array.isArray(t)){let e=[];for(let r of t)r=NK(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let s=NK(t[r]);s&&(e[r]=s)}return e}else return t||null}Ge();Ge();Yt();var Gxe=ut(Vv()),b1=class extends ft{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=await kL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ot.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let c=await sPt({configuration:r,registry:s,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),f=await nPt(s,c,r);return await iPt(s,f,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function kL({scope:t,publish:e,configuration:r,cwd:s}){return t&&e?hi.getScopeRegistry(t,{configuration:r,type:hi.RegistryType.PUBLISH_REGISTRY}):t?hi.getScopeRegistry(t,{configuration:r}):e?hi.getPublishRegistry((await eC(r,s)).manifest,{configuration:r}):hi.getDefaultRegistry({configuration:r})}async function nPt(t,e,r){let s=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:an.AuthType.NO_AUTH};try{return(await an.put(s,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let c={...n,authType:an.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},f=await an.get(s,c);for(let[E,C]of Object.entries(f))(!a[E]||E==="roles")&&(a[E]=C);let p=`${s}/-rev/${a._rev}`;return(await an.put(p,a,c)).token}async function iPt(t,e,{alwaysAuth:r,scope:s}){let a=c=>f=>{let p=je.isIndexableObject(f)?f:{},h=p[c],E=je.isIndexableObject(h)?h:{};return{...p,[c]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=s?{npmScopes:a(s)}:{npmRegistries:a(t)};return await ze.updateHomeConfiguration(n)}async function sPt({configuration:t,registry:e,report:r,stdin:s,stdout:a}){r.reportInfo(0,`Logging in to ${he.pretty(t,e,he.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let c=await(0,Gxe.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:s,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:s,stdout:a}]);return r.reportSeparator(),c}Ge();Ge();Yt();var x1=new Set(["npmAuthIdent","npmAuthToken"]),k1=class extends ft{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=async()=>{let n=await kL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),c=await ze.find(this.context.cwd,this.context.plugins),f=G.makeIdent(this.scope??null,"pkg");return!hi.getAuthConfiguration(n,{configuration:c,ident:f}).get("npmAuthToken")};return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await aPt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await qxe("npmScopes",this.scope),await s()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let c=await kL({configuration:r,cwd:this.context.cwd,publish:this.publish});await qxe("npmRegistries",c),await s()?n.reportInfo(0,`Successfully logged out from ${c}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};function oPt(t,e){let r=t[e];if(!je.isIndexableObject(r))return!1;let s=new Set(Object.keys(r));if([...x1].every(n=>!s.has(n)))return!1;for(let n of x1)s.delete(n);if(s.size===0)return t[e]=void 0,!0;let a={...r};for(let n of x1)delete a[n];return t[e]=a,!0}async function aPt(){let t=e=>{let r=!1,s=je.isIndexableObject(e)?{...e}:{};s.npmAuthToken&&(delete s.npmAuthToken,r=!0);for(let a of Object.keys(s))oPt(s,a)&&(r=!0);if(Object.keys(s).length!==0)return r?s:e};return await ze.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function qxe(t,e){return await ze.updateHomeConfiguration({[t]:r=>{let s=je.isIndexableObject(r)?r:{};if(!Object.hasOwn(s,e))return r;let a=s[e],n=je.isIndexableObject(a)?a:{},c=new Set(Object.keys(n));if([...x1].every(p=>!c.has(p)))return r;for(let p of x1)c.delete(p);if(c.size===0)return Object.keys(s).length===1?void 0:{...s,[e]:void 0};let f={};for(let p of x1)f[p]=void 0;return{...s,[e]:{...n,...f}}}})}Ge();Dt();Yt();var Q1=class extends ft{constructor(){super(...arguments);this.access=ge.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=ge.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=ge.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=ge.String("--otp",{description:"The OTP token to use with the command"});this.provenance=ge.Boolean("--provenance",!1,{description:"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json."});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Show what would be published without actually publishing"});this.json=ge.Boolean("--json",!1,{description:"Output the result in JSON format"})}static{this.paths=[["npm","publish"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);if(a.manifest.private)throw new nt("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new nt("Workspaces must have valid names and versions to be published on an external registry");await s.restoreInstallState();let n=a.manifest.name,c=a.manifest.version,f=hi.getPublishRegistry(a.manifest,{configuration:r});return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async h=>{if(this.tolerateRepublish)try{let E=await an.get(an.getIdentUrl(n),{configuration:r,registry:f,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new jt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,c)){let C=`Registry already knows about version ${c}; skipping.`;h.reportWarning(0,C),h.reportJson({name:n.name,version:c,registry:f,warning:C,skipped:!0});return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await In.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await yA.prepareForPack(a,{report:h},async()=>{let E=await yA.genPackList(a);for(let W of E)h.reportInfo(null,fe.fromPortablePath(W)),h.reportJson({file:fe.fromPortablePath(W)});let C=await yA.genPackStream(a,E),S=await je.bufferStream(C),b=await v1.getGitHead(a.cwd),I=!1,T="";a.manifest.publishConfig&&"provenance"in a.manifest.publishConfig?(I=!!a.manifest.publishConfig.provenance,T=I?"Generating provenance statement because `publishConfig.provenance` field is set.":"Skipping provenance statement because `publishConfig.provenance` field is set to false."):this.provenance?(I=!0,T="Generating provenance statement because `--provenance` flag is set."):r.get("npmPublishProvenance")&&(I=!0,T="Generating provenance statement because `npmPublishProvenance` setting is set."),T&&(h.reportInfo(null,T),h.reportJson({type:"provenance",enabled:I,provenanceMessage:T}));let N=await v1.makePublishBody(a,S,{access:this.access,tag:this.tag,registry:f,gitHead:b,provenance:I});this.dryRun||await an.put(an.getIdentUrl(n),N,{configuration:r,registry:f,ident:n,otp:this.otp,jsonResponse:!0,allowOidc:!!(process.env.CI&&(process.env.GITHUB_ACTIONS||process.env.GITLAB))});let U=this.dryRun?`[DRY RUN] Package would be published to ${f} with tag ${this.tag}`:"Package archive published";h.reportInfo(0,U),h.reportJson({name:n.name,version:c,registry:f,tag:this.tag||"latest",files:E.map(W=>fe.fromPortablePath(W)),access:this.access||null,dryRun:this.dryRun,published:!this.dryRun,message:U,provenance:!!I})})})).exitCode()}};Ge();Yt();var Wxe=ut(Ai());Ge();Dt();Yt();var R1=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new ar(s.cwd,this.context.cwd);if(!a.manifest.name)throw new nt(`Missing 'name' field in ${fe.fromPortablePath(J.join(a.cwd,Er.manifest))}`);n=a.manifest.name}let c=await zP(n,r),p={children:je.sortMap(Object.entries(c),([h])=>h).map(([h,E])=>({value:he.tuple(he.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return xs.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function zP(t,e){let r=`/-/package${an.getIdentUrl(t)}/dist-tags`;return an.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:an.customPackageError})}var T1=class extends ft{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),c=n.range;if(!Wxe.default.valid(c))throw new nt(`The range ${he.pretty(r,n.range,he.Type.RANGE)} must be a valid semver version`);let f=hi.getPublishRegistry(a.manifest,{configuration:r}),p=he.pretty(r,n,he.Type.IDENT),h=he.pretty(r,c,he.Type.RANGE),E=he.pretty(r,this.tag,he.Type.CODE);return(await Ot.start({configuration:r,stdout:this.context.stdout},async S=>{let b=await zP(n,r);Object.hasOwn(b,this.tag)&&b[this.tag]===c&&S.reportWarning(0,`Tag ${E} is already set to version ${h}`);let I=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.put(I,c,{configuration:r,registry:f,ident:n,jsonRequest:!0,jsonResponse:!0}),S.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ge();Yt();var F1=class extends ft{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new nt("The 'latest' tag cannot be removed.");let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=G.parseIdent(this.package),c=hi.getPublishRegistry(a.manifest,{configuration:r}),f=he.pretty(r,this.tag,he.Type.CODE),p=he.pretty(r,n,he.Type.IDENT),h=await zP(n,r);if(!Object.hasOwn(h,this.tag))throw new nt(`${f} is not a tag of package ${p}`);return(await Ot.start({configuration:r,stdout:this.context.stdout},async C=>{let S=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.del(S,{configuration:r,registry:c,ident:n,jsonResponse:!0}),C.reportInfo(0,`Tag ${f} removed from package ${p}`)})).exitCode()}};Ge();Ge();Yt();var N1=class extends ft{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s;return this.scope&&this.publish?s=hi.getScopeRegistry(this.scope,{configuration:r,type:hi.RegistryType.PUBLISH_REGISTRY}):this.scope?s=hi.getScopeRegistry(this.scope,{configuration:r}):this.publish?s=hi.getPublishRegistry((await eC(r,this.context.cwd)).manifest,{configuration:r}):s=hi.getDefaultRegistry({configuration:r}),(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let c;try{c=await an.get("/-/whoami",{configuration:r,registry:s,authType:an.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(f){if(f.response?.statusCode===401||f.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw f}n.reportInfo(0,c.username)})).exitCode()}};var lPt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:"BOOLEAN",default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[D1,P1,b1,k1,Q1,T1,R1,F1,N1]},cPt=lPt;var GK={};Vt(GK,{PatchCommand:()=>H1,PatchCommitCommand:()=>_1,PatchFetcher:()=>tb,PatchResolver:()=>rb,default:()=>PPt,patchUtils:()=>gy});Ge();Ge();Dt();eA();var gy={};Vt(gy,{applyPatchFile:()=>RL,diffFolders:()=>HK,ensureUnpatchedDescriptor:()=>LK,ensureUnpatchedLocator:()=>FL,extractPackageToDisk:()=>_K,extractPatchFlags:()=>Xxe,isParentRequired:()=>UK,isPatchDescriptor:()=>TL,isPatchLocator:()=>Tg,loadPatchFiles:()=>eb,makeDescriptor:()=>NL,makeLocator:()=>MK,makePatchHash:()=>jK,parseDescriptor:()=>XP,parseLocator:()=>$P,parsePatchFile:()=>ZP,unpatchDescriptor:()=>vPt,unpatchLocator:()=>SPt});Ge();Dt();Ge();Dt();var uPt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function O1(t){return J.relative(vt.root,J.resolve(vt.root,fe.toPortablePath(t)))}function fPt(t){let e=t.trim().match(uPt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var APt=420,pPt=493;var Yxe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),hPt=t=>({header:fPt(t),parts:[]}),gPt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function dPt(t){let e=[],r=Yxe(),s="parsing header",a=null,n=null;function c(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function f(){c(),e.push(r),r=Yxe()}for(let p=0;p0?"patch":"mode change",W=null;switch(U){case"rename":{if(!E||!C)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:s,fromPath:O1(E),toPath:O1(C)}),W=C}break;case"file deletion":{let ee=a||I;if(!ee)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:s,hunk:N&&N[0]||null,path:O1(ee),mode:QL(p),hash:S})}break;case"file creation":{let ee=n||T;if(!ee)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:s,hunk:N&&N[0]||null,path:O1(ee),mode:QL(h),hash:b})}break;case"patch":case"mode change":W=T||n;break;default:je.assertNever(U);break}W&&c&&f&&c!==f&&e.push({type:"mode change",semverExclusivity:s,path:O1(W),oldMode:QL(c),newMode:QL(f)}),W&&N&&N.length&&e.push({type:"patch",semverExclusivity:s,path:O1(W),hunks:N,beforeHash:S,afterHash:b})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function QL(t){let e=parseInt(t,8)&511;if(e!==APt&&e!==pPt)throw new Error(`Unexpected file mode string: ${t}`);return e}function ZP(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),mPt(dPt(e))}function yPt(t){let e=0,r=0;for(let{type:s,lines:a}of t.parts)switch(s){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:je.assertNever(s);break}if(e!==t.header.original.length||r!==t.header.patched.length){let s=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${s(t.header.original.length)} ${s(t.header.patched.length)} @@, got @@ ${s(e)} ${s(r)} @@)`)}}Ge();Dt();var L1=class extends Error{constructor(r,s){super(`Cannot apply hunk #${r+1}`);this.hunk=s}};async function M1(t,e,r){let s=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,s.atime,s.mtime)}async function RL(t,{baseFs:e=new Yn,dryRun:r=!1,version:s=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&s!==null&&!Fr.satisfiesWithPrereleases(s,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await M1(e,J.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await M1(e,J.dirname(a.fromPath),async()=>{await M1(e,J.dirname(a.toPath),async()=>{await M1(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` `)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(J.dirname(a.path),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,fi.SAFE_TIME,fi.SAFE_TIME)}break;case"patch":await M1(e,a.path,async()=>{await CPt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let c=(await e.statPromise(a.path)).mode;if(Vxe(a.newMode)!==Vxe(c))continue;await M1(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:je.assertNever(a);break}}function Vxe(t){return(t&64)>0}function Jxe(t){return t.replace(/\s+$/,"")}function IPt(t,e){return Jxe(t)===Jxe(e)}async function CPt({hunks:t,path:e},{baseFs:r,dryRun:s=!1}){let a=await r.statSync(e).mode,c=(await r.readFileSync(e,"utf8")).split(/\n/),f=[],p=0,h=0;for(let C of t){let S=Math.max(h,C.header.patched.start+p),b=Math.max(0,S-h),I=Math.max(0,c.length-S-C.header.original.length),T=Math.max(b,I),N=0,U=0,W=null;for(;N<=T;){if(N<=b&&(U=S-N,W=Kxe(C,c,U),W!==null)){N=-N;break}if(N<=I&&(U=S+N,W=Kxe(C,c,U),W!==null))break;N+=1}if(W===null)throw new L1(t.indexOf(C),C);f.push(W),p+=N,h=U+C.header.original.length}if(s)return;let E=0;for(let C of f)for(let S of C)switch(S.type){case"splice":{let b=S.index+E;c.splice(b,S.numToDelete,...S.linesToInsert),E+=S.linesToInsert.length-S.numToDelete}break;case"pop":c.pop();break;case"push":c.push(S.line);break;default:je.assertNever(S);break}await r.writeFilePromise(e,c.join(` `),{mode:a})}function Kxe(t,e,r){let s=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let c=e[r];if(c==null||!IPt(c,n))return null;r+=1}a.type==="deletion"&&(s.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&s.push({type:"push",line:""}))}break;case"insertion":s.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&s.push({type:"pop"});break;default:je.assertNever(a.type);break}return s}var BPt=/^builtin<([^>]+)>$/;function U1(t,e){let{protocol:r,source:s,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(s===null)throw new Error("Patch locators must explicitly define their source");let c=a?a.split(/&/).map(E=>fe.toPortablePath(E)):[],f=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(s);return{parentLocator:f,sourceItem:h,patchPaths:c,sourceVersion:p}}function TL(t){return t.range.startsWith("patch:")}function Tg(t){return t.reference.startsWith("patch:")}function XP(t){let{sourceItem:e,...r}=U1(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function $P(t){let{sourceItem:e,...r}=U1(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function vPt(t){let{sourceItem:e}=U1(t.range,G.parseDescriptor);return e}function SPt(t){let{sourceItem:e}=U1(t.reference,G.parseLocator);return e}function LK(t){if(!TL(t))return t;let{sourceItem:e}=U1(t.range,G.parseDescriptor);return e}function FL(t){if(!Tg(t))return t;let{sourceItem:e}=U1(t.reference,G.parseLocator);return e}function zxe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:s,patchHash:a},n){let c=t!==null?{locator:G.stringifyLocator(t)}:{},f=typeof s<"u"?{version:s}:{},p=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...f,...p,...c}})}function NL(t,{parentLocator:e,sourceDescriptor:r,patchPaths:s}){return G.makeDescriptor(t,zxe({parentLocator:e,sourceItem:r,patchPaths:s},G.stringifyDescriptor))}function MK(t,{parentLocator:e,sourcePackage:r,patchPaths:s,patchHash:a}){return G.makeLocator(t,zxe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:s,patchHash:a},G.stringifyLocator))}function Zxe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:s},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let c=a.match(BPt);return c!==null?s(c[1]):a.startsWith("~/")?r(a.slice(2)):J.isAbsolute(a)?t(a):e(a)}function Xxe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function UK(t){return Zxe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function eb(t,e,r){let s=t!==null?await r.fetcher.fetch(t,r):null,a=s&&s.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,s.localPath)}:s;s&&s!==a&&s.releaseFs&&s.releaseFs();let n=await je.releaseAfterUseAsync(async()=>await Promise.all(e.map(async c=>{let f=Xxe(c),p=await Zxe({onAbsolute:async h=>await ce.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(J.join(a.prefixPath,h),"utf8")},onProject:async h=>await ce.readFilePromise(J.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},c);return{...f,source:p}})));for(let c of n)typeof c.source=="string"&&(c.source=c.source.replace(/\r\n?/g,` `));return n}async function _K(t,{cache:e,project:r}){let s=r.storedPackages.get(t.locatorHash);if(typeof s>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=FL(t),n=r.storedChecksums,c=new ki,f=await ce.mktempPromise(),p=J.join(f,"source"),h=J.join(f,"user"),E=J.join(f,".yarn-patch.json"),C=r.configuration.makeFetcher(),S=[];try{let b,I;if(t.locatorHash===a.locatorHash){let T=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c});S.push(()=>T.releaseFs?.()),b=T,I=T}else b=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>b.releaseFs?.()),I=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>I.releaseFs?.());await Promise.all([ce.copyPromise(p,b.prefixPath,{baseFs:b.packageFs}),ce.copyPromise(h,I.prefixPath,{baseFs:I.packageFs}),ce.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:s.version})])}finally{for(let b of S)b()}return ce.detachTemp(f),h}async function HK(t,e){let r=fe.fromPortablePath(t).replace(/\\/g,"/"),s=fe.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await qr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,s],{cwd:fe.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': ${n}`);let c=r.startsWith("/")?f=>f.slice(1):f=>f;return a.replace(new RegExp(`(a|b)(${je.escapeRegExp(`/${c(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${je.escapeRegExp(`/${c(s)}/`)}`,"g"),"$1/").replace(new RegExp(je.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(je.escapeRegExp(`${s}/`),"g"),"")}function jK(t,e){let r=[];for(let{source:s}of t){if(s===null)continue;let a=ZP(s);for(let n of a){let{semverExclusivity:c,...f}=n;c!==null&&e!==null&&!Fr.satisfiesWithPrereleases(e,c)||r.push(JSON.stringify(f))}}return Nn.makeHash(`${3}`,...r).slice(0,6)}Ge();function $xe(t,{configuration:e,report:r}){for(let s of t.parts)for(let a of s.lines)switch(s.type){case"context":r.reportInfo(null,` ${he.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${he.pretty(e,a,he.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${he.pretty(e,a,he.Type.ADDED)}`);break;default:je.assertNever(s.type)}}var tb=class{supports(e,r){return!!Tg(e)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async patchPackage(e,r){let{parentLocator:s,sourceLocator:a,sourceVersion:n,patchPaths:c}=$P(e),f=await eb(s,c,r),p=await ce.mktempPromise(),h=J.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),C=G.getIdentVendorPath(e),S=new As(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await je.releaseAfterUseAsync(async()=>{await S.copyPromise(C,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),S.saveAndClose();for(let{source:b,optional:I}of f){if(b===null)continue;let T=new As(h,{level:r.project.configuration.get("compressionLevel")}),N=new Sn(J.resolve(vt.root,C),{baseFs:T});try{await RL(ZP(b),{baseFs:N,version:n})}catch(U){if(!(U instanceof L1))throw U;let W=r.project.configuration.get("enableInlineHunks"),ee=!W&&!I?" (set enableInlineHunks for details)":"",ie=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${ee}`,ue=le=>{W&&$xe(U.hunk,{configuration:r.project.configuration,report:le})};if(T.discardAndClose(),I){r.report.reportWarningOnce(66,ie,{reportExtra:ue});continue}else throw new jt(66,ie,ue)}T.saveAndClose()}return new As(h,{level:r.project.configuration.get("compressionLevel")})}};Ge();var rb=class{supportsDescriptor(e,r){return!!TL(e)}supportsLocator(e,r){return!!Tg(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){let{patchPaths:a}=XP(e);return a.every(n=>!UK(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:s}=XP(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(s)}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=XP(e),c=await eb(a,n,s.fetchOptions),f=r.sourceDescriptor;if(typeof f>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=jK(c,f.version);return[MK(e,{parentLocator:a,sourcePackage:f,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:s}=$P(e);return{...await r.resolver.resolve(s,r),...e}}};Ge();Dt();Yt();var _1=class extends ft{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}static{this.paths=[["patch-commit"]]}static{this.usage=ot.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=J.resolve(this.context.cwd,fe.toPortablePath(this.patchFolder)),c=J.join(n,"../source"),f=J.join(n,"../.yarn-patch.json");if(!ce.existsSync(c))throw new nt("The argument folder didn't get created by 'yarn patch'");let p=await HK(c,n),h=await ce.readJsonPromise(f),E=G.parseLocator(h.locator,!0);if(!s.storedPackages.has(E.locatorHash))throw new nt("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let C=r.get("patchFolder"),S=J.join(C,`${G.slugifyLocator(E)}.patch`);await ce.mkdirPromise(C,{recursive:!0}),await ce.writeFilePromise(S,p);let b=[],I=new Map;for(let T of s.storedPackages.values()){if(G.isVirtualLocator(T))continue;let N=T.dependencies.get(E.identHash);if(!N)continue;let U=G.ensureDevirtualizedDescriptor(N),W=LK(U),ee=s.storedResolutions.get(W.descriptorHash);if(!ee)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!s.storedPackages.get(ee))throw new Error("Assertion failed: Expected the package to have been registered");let ue=s.tryWorkspaceByLocator(T);if(ue)b.push(ue);else{let le=s.originalPackages.get(T.locatorHash);if(!le)throw new Error("Assertion failed: Expected the original package to have been registered");let me=le.dependencies.get(N.identHash);if(!me)throw new Error("Assertion failed: Expected the original dependency to have been registered");I.set(me.descriptorHash,me)}}for(let T of b)for(let N of Ut.hardDependencies){let U=T.manifest[N].get(E.identHash);if(!U)continue;let W=NL(U,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[J.join(Er.home,J.relative(s.cwd,S))]});T.manifest[N].set(U.identHash,W)}for(let T of I.values()){let N=NL(T,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[J.join(Er.home,J.relative(s.cwd,S))]});s.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:G.stringifyIdent(N),description:T.range}},reference:N.range})}await s.persist()}};Ge();Dt();Yt();var H1=class extends ft{constructor(){super(...arguments);this.update=ge.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String()}static{this.paths=[["patch"]]}static{this.usage=ot.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=G.parseLocator(this.package);if(c.reference==="unknown"){let f=je.mapAndFilter([...s.storedPackages.values()],p=>p.identHash!==c.identHash?je.mapAndFilter.skip:G.isVirtualLocator(p)?je.mapAndFilter.skip:Tg(p)!==this.update?je.mapAndFilter.skip:p);if(f.length===0)throw new nt("No package found in the project for the given locator");if(f.length>1)throw new nt(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${f.map(p=>` - ${G.prettyLocator(r,p)}`).join("")}`);c=f[0]}if(!s.storedPackages.has(c.locatorHash))throw new nt("No package found in the project for the given locator");await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=FL(c),h=await _K(c,{cache:n,project:s});f.reportJson({locator:G.stringifyLocator(p),path:fe.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";f.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),f.reportInfo(0,`You can now edit the following folder: ${he.pretty(r,fe.fromPortablePath(h),"magenta")}`),f.reportInfo(0,`Once you are done run ${he.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${fe.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var DPt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[_1,H1],fetchers:[tb],resolvers:[rb]},PPt=DPt;var YK={};Vt(YK,{PnpmLinker:()=>nb,default:()=>TPt});Ge();Dt();Yt();var nb=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new nt(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let c=e,f=e;do{f=c,c=J.dirname(f);let p=a.locatorByPath.get(f);if(p)return p}while(c!==f);return null}makeInstaller(e){return new qK(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},qK=class{constructor(e){this.opts=e;this.asyncActions=new je.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=$b(ce,{indexPath:J.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,s){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,s);case"HARD":return this.installPackageHard(e,r,s)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,s){let a=J.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?J.join(a,Er.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,s){let a=xPt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await ce.mkdirPromise(n,{recursive:!0}),await ce.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let f=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await Ut.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ut,misc:{hasBindingGyp:gA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(f,e.version),E=gA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!eke(e,{project:this.opts.project}))return;let s=this.customData.pathsByLocator.get(e.locatorHash);if(typeof s>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=s;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await ce.mkdirPromise(a,{recursive:!0});let c=await kPt(a),f=new Map(c),p=[n],h=(C,S)=>{let b=S;eke(S,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),b=G.devirtualizeLocator(S));let I=this.customData.pathsByLocator.get(b.locatorHash);if(typeof I>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(S)})`);let T=G.stringifyIdent(C),N=J.join(a,T),U=J.relative(J.dirname(N),I.packageLocation),W=f.get(T);f.delete(T),p.push(Promise.resolve().then(async()=>{if(W){if(W.isSymbolicLink()&&await ce.readlinkPromise(N)===U)return;await ce.removePromise(N)}await ce.mkdirpPromise(J.dirname(N)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await ce.symlinkPromise(I.packageLocation,N,"junction"):await ce.symlinkPromise(U,N)}))},E=!1;for(let[C,S]of r)C.identHash===e.identHash&&(E=!0),h(C,S);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(G.convertLocatorToDescriptor(e),e),p.push(QPt(a,f)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=tke(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await ce.removePromise(e);else{let r;try{r=new Set(await ce.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:s}of this.customData.pathsByLocator.values()){if(!s)continue;let a=J.contains(e,s);if(a===null)continue;let[n]=a.split(J.sep);r.delete(n)}await Promise.all([...r].map(async s=>{await ce.removePromise(J.join(e,s))}))}return await this.asyncActions.wait(),await WK(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await WK(bPt(this.opts.project)),{customData:this.customData}}};function bPt(t){return J.join(t.cwd,Er.nodeModules)}function tke(t){return t.configuration.get("pnpmStoreFolder")}function xPt(t,{project:e}){let r=G.slugifyLocator(t),s=tke(e),a=J.join(s,r,"package"),n=J.join(s,r,Er.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function eke(t,{project:e}){return!G.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function kPt(t){let e=new Map,r=[];try{r=await ce.readdirPromise(t,{withFileTypes:!0})}catch(s){if(s.code!=="ENOENT")throw s}try{for(let s of r)if(!s.name.startsWith("."))if(s.name.startsWith("@")){let a=await ce.readdirPromise(J.join(t,s.name),{withFileTypes:!0});if(a.length===0)e.set(s.name,s);else for(let n of a)e.set(`${s.name}/${n.name}`,n)}else e.set(s.name,s)}catch(s){if(s.code!=="ENOENT")throw s}return e}async function QPt(t,e){let r=[],s=new Set;for(let a of e.keys()){r.push(ce.removePromise(J.join(t,a)));let n=G.tryParseIdent(a)?.scope;n&&s.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...s].map(a=>WK(J.join(t,a)))))}async function WK(t){try{await ce.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY"&&e.code!=="EBUSY")throw e}}var RPt={configuration:{pnpmStoreFolder:{description:"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.",type:"ABSOLUTE_PATH",default:"./node_modules/.store"}},linkers:[nb]},TPt=RPt;var $K={};Vt($K,{StageCommand:()=>j1,default:()=>qPt,stageUtils:()=>LL});Ge();Dt();Yt();Ge();Dt();var LL={};Vt(LL,{ActionType:()=>VK,checkConsensus:()=>OL,expandDirectory:()=>zK,findConsensus:()=>ZK,findVcsRoot:()=>JK,genCommitMessage:()=>XK,getCommitPrefix:()=>rke,isYarnFile:()=>KK});Dt();var VK=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(VK||{});async function JK(t,{marker:e}){do if(!ce.existsSync(J.join(t,e)))t=J.dirname(t);else return t;while(t!=="/");return null}function KK(t,{roots:e,names:r}){if(r.has(J.basename(t)))return!0;do if(!e.has(t))t=J.dirname(t);else return!0;while(t!=="/");return!1}function zK(t){let e=[],r=[t];for(;r.length>0;){let s=r.pop(),a=ce.readdirSync(s);for(let n of a){let c=J.resolve(s,n);ce.lstatSync(c).isDirectory()?r.push(c):e.push(c)}}return e}function OL(t,e){let r=0,s=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:s+=1);return r>=s}function ZK(t){let e=OL(t,/^(\w\(\w+\):\s*)?\w+s/),r=OL(t,/^(\w\(\w+\):\s*)?[A-Z]/),s=OL(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:s}}function rke(t){return t.useComponent?"chore(yarn): ":""}var FPt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function XK(t,e){let r=rke(t),s=[],a=e.slice().sort((n,c)=>n[0]-c[0]);for(;a.length>0;){let[n,c]=a.shift(),f=FPt.get(n);t.useUpperCase&&s.length===0&&(f=`${f[0].toUpperCase()}${f.slice(1)}`),t.useThirdPerson&&(f+="s");let p=[c];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),s.push(`${f} ${h}`)}return`${r}${s.join(", ")}`}var NPt="Commit generated via `yarn stage`",OPt=11;async function nke(t){let{code:e,stdout:r}=await qr.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function LPt(t,e){let r=[],s=e.filter(h=>J.basename(h.path)==="package.json");for(let{action:h,path:E}of s){let C=J.relative(t,E);if(h===4){let S=await nke(t),{stdout:b}=await qr.execvp("git",["show",`${S}:${C}`],{cwd:t,strict:!0}),I=await Ut.fromText(b),T=await Ut.fromFile(E),N=new Map([...T.dependencies,...T.devDependencies]),U=new Map([...I.dependencies,...I.devDependencies]);for(let[W,ee]of U){let ie=G.stringifyIdent(ee),ue=N.get(W);ue?ue.range!==ee.range&&r.push([4,`${ie} to ${ue.range}`]):r.push([3,ie])}for(let[W,ee]of N)U.has(W)||r.push([2,G.stringifyIdent(ee)])}else if(h===0){let S=await Ut.fromFile(E);S.name?r.push([0,G.stringifyIdent(S.name)]):r.push([0,"a package"])}else if(h===1){let S=await nke(t),{stdout:b}=await qr.execvp("git",["show",`${S}:${C}`],{cwd:t,strict:!0}),I=await Ut.fromText(b);I.name?r.push([1,G.stringifyIdent(I.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await qr.execvp("git",["log",`-${OPt}`,"--pretty=format:%s"],{cwd:t}),c=a===0?n.split(/\n/g).filter(h=>h!==""):[],f=ZK(c);return XK(f,r)}var MPt={0:[" A ","?? "],4:[" M "],1:[" D "]},UPt={0:["A "],4:["M "],1:["D "]},ike={async findRoot(t){return await JK(t,{marker:".git"})},async filterChanges(t,e,r,s){let{stdout:a}=await qr.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),c=s?.staged?UPt:MPt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=J.resolve(t,p.slice(3));if(!s?.staged&&h==="?? "&&p.endsWith("/"))return zK(E).map(C=>({action:0,path:C}));{let S=[0,4,1].find(b=>c[b].includes(h));return S!==void 0?[{action:S,path:E}]:[]}})).filter(p=>KK(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await LPt(t,e)},async makeStage(t,e){let r=e.map(s=>fe.fromPortablePath(s.path));await qr.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let s=e.map(a=>fe.fromPortablePath(a.path));await qr.execvp("git",["add","-N","--",...s],{cwd:t,strict:!0}),await qr.execvp("git",["commit","-m",`${r} ${NPt} `,"--",...s],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(s=>fe.fromPortablePath(s.path));await qr.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var _Pt=[ike],j1=class extends ft{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=ot.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),{driver:a,root:n}=await HPt(s.cwd),c=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(C=>C.populateYarnPaths,s,C=>{c.push(C)});let f=new Set;for(let C of c)for(let S of jPt(n,C))f.add(S);let p=new Set([r.get("rcFilename"),Er.lockfile,Er.manifest]),h=await a.filterChanges(n,f,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} `);else for(let C of h)this.context.stdout.write(`${fe.fromPortablePath(C.path)} `);else if(this.reset){let C=await a.filterChanges(n,f,p,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,C)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function HPt(t){let e=null,r=null;for(let s of _Pt)if((r=await s.findRoot(t))!==null){e=s;break}if(e===null||r===null)throw new nt("No stage driver has been found for your current project");return{driver:e,root:r}}function jPt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let s;try{s=ce.statSync(e)}catch{break}if(s.isSymbolicLink())e=J.resolve(J.dirname(e),ce.readlinkSync(e));else break}return r}var GPt={commands:[j1]},qPt=GPt;var ez={};Vt(ez,{default:()=>XPt});Ge();Ge();Dt();var ake=ut(Ai());Ge();var ske=ut(l9()),WPt="e8e1bd300d860104bb8c58453ffa1eb4",YPt="OFCNCOG2CU",oke=async(t,e)=>{let r=G.stringifyIdent(t),a=VPt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},VPt=t=>(0,ske.default)(YPt,WPt,{requester:{async send(r){try{let s=await ln.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var lke=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,JPt=async(t,e,r,s)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(ce.existsSync(J.join(t.cwd,"tsconfig.json"))||ce.existsSync(J.join(a.cwd,"tsconfig.json")))))return;let f=n.makeResolver(),p={project:a,resolver:f,report:new ki};if(!await oke(r,n))return;let E=lke(r),C=G.parseRange(r.range).selector;if(!Fr.validRange(C)){let N=n.normalizeDependency(r),U=await f.getCandidates(N,{},p);C=G.parseRange(U[0].reference).selector}let S=ake.default.coerce(C);if(S===null)return;let b=`${Zu.Modifier.CARET}${S.major}`,I=G.makeDescriptor(G.makeIdent("types",E),b),T=je.mapAndFind(a.workspaces,N=>{let U=N.manifest.dependencies.get(r.identHash)?.descriptorHash,W=N.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&W!==r.descriptorHash)return je.mapAndFind.skip;let ee=[];for(let ie of Ut.allDependencies){let ue=N.manifest[ie].get(I.identHash);typeof ue>"u"||ee.push([ie,ue])}return ee.length===0?je.mapAndFind.skip:ee});if(typeof T<"u")for(let[N,U]of T)t.manifest[N].set(U.identHash,U);else{try{let N=n.normalizeDependency(I);if((await f.getCandidates(N,{},p)).length===0)return}catch{return}t.manifest[Zu.Target.DEVELOPMENT].set(I.identHash,I)}},KPt=async(t,e,r)=>{if(r.scope==="types")return;let{project:s}=t,{configuration:a}=s;if(!(a.get("tsEnableAutoTypes")??(ce.existsSync(J.join(t.cwd,"tsconfig.json"))||ce.existsSync(J.join(s.cwd,"tsconfig.json")))))return;let c=lke(r),f=G.makeIdent("types",c);for(let p of Ut.allDependencies)typeof t.manifest[p].get(f.identHash)>"u"||t.manifest[p].delete(f.identHash)},zPt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},ZPt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:JPt,afterWorkspaceDependencyRemoval:KPt,beforeWorkspacePacking:zPt}},XPt=ZPt;var sz={};Vt(sz,{VersionApplyCommand:()=>Y1,VersionCheckCommand:()=>V1,VersionCommand:()=>J1,default:()=>nbt,versionUtils:()=>W1});Ge();Ge();Yt();var W1={};Vt(W1,{Decision:()=>G1,applyPrerelease:()=>cke,applyReleases:()=>iz,applyStrategy:()=>ib,clearVersionFiles:()=>tz,getUndecidedDependentWorkspaces:()=>ob,getUndecidedWorkspaces:()=>ML,openVersionFile:()=>q1,requireMoreDecisions:()=>ebt,resolveVersionFiles:()=>sb,suggestStrategy:()=>nz,updateVersionFiles:()=>rz,validateReleaseDecision:()=>dy});Ge();Dt();wc();Yt();ql();var kA=ut(Ai()),$Pt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,G1=(h=>(h.UNDECIDED="undecided",h.DECLINE="decline",h.MAJOR="major",h.MINOR="minor",h.PATCH="patch",h.PREMAJOR="premajor",h.PREMINOR="preminor",h.PREPATCH="prepatch",h.PRERELEASE="prerelease",h))(G1||{});function dy(t){let e=kA.default.valid(t);return e||je.validateEnum(N4(G1,"UNDECIDED"),t)}async function sb(t,{prerelease:e=null}={}){let r=new Map,s=t.configuration.get("deferredVersionFolder");if(!ce.existsSync(s))return r;let a=await ce.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let c=J.join(s,n),f=await ce.readFilePromise(c,"utf8"),p=as(f);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let C=G.parseIdent(h),S=t.tryWorkspaceByIdent(C);if(S===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${J.basename(c)} references ${h})`);if(S.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,S.anchoredLocator)})`);let b=S.manifest.raw.stableVersion??S.manifest.version,I=r.get(S),T=ib(E==="prerelease"?S.manifest.version:b,dy(E));if(T===null)throw new Error(`Assertion failed: Expected ${b} to support being bumped via strategy ${E}`);let N=typeof I<"u"?kA.default.gt(T,I)?T:I:T;r.set(S,N)}}return e&&(r=new Map([...r].map(([n,c])=>[n,cke(c,{current:n.manifest.version,prerelease:e})]))),r}async function tz(t){let e=t.configuration.get("deferredVersionFolder");ce.existsSync(e)&&await ce.removePromise(e)}async function rz(t,e){let r=new Set(e),s=t.configuration.get("deferredVersionFolder");if(!ce.existsSync(s))return;let a=await ce.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let c=J.join(s,n),f=await ce.readFilePromise(c,"utf8"),p=as(f),h=p?.releases;if(h){for(let E of Object.keys(h)){let C=G.parseIdent(E),S=t.tryWorkspaceByIdent(C);(S===null||r.has(S))&&delete p.releases[E]}Object.keys(p.releases).length>0?await ce.changeFilePromise(c,nl(new nl.PreserveOrdering(p))):await ce.unlinkPromise(c)}}}async function q1(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new nt("This command can only be run from within a Yarn project");let s=await ka.fetchRoot(r.projectCwd),a=s!==null?await ka.fetchBase(s,{baseRefs:r.get("changesetBaseRefs")}):null,n=s!==null?await ka.fetchChangedFiles(s,{base:a.hash,project:t}):[],c=r.get("deferredVersionFolder"),f=n.filter(b=>J.contains(c,b)!==null);if(f.length>1)throw new nt(`Your current branch contains multiple versioning files; this isn't supported: - ${f.map(b=>fe.fromPortablePath(b)).join(` - `)}`);let p=new Set(je.mapAndFilter(n,b=>{let I=t.tryWorkspaceByFilePath(b);return I===null?je.mapAndFilter.skip:I}));if(f.length===0&&p.size===0&&!e)return null;let h=f.length===1?f[0]:J.join(c,`${Nn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=ce.existsSync(h)?await ce.readFilePromise(h,"utf8"):"{}",C=as(E),S=new Map;for(let b of C.declined||[]){let I=G.parseIdent(b),T=t.getWorkspaceByIdent(I);S.set(T,"decline")}for(let[b,I]of Object.entries(C.releases||{})){let T=G.parseIdent(b),N=t.getWorkspaceByIdent(T);S.set(N,dy(I))}return{project:t,root:s,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(b=>b.manifest.version!==null)),releases:S,async saveAll(){let b={},I=[],T=[];for(let N of t.workspaces){if(N.manifest.version===null)continue;let U=G.stringifyIdent(N.anchoredLocator),W=S.get(N);W==="decline"?I.push(U):typeof W<"u"?b[U]=dy(W):p.has(N)&&T.push(U)}await ce.mkdirPromise(J.dirname(h),{recursive:!0}),await ce.changeFilePromise(h,nl(new nl.PreserveOrdering({releases:Object.keys(b).length>0?b:void 0,declined:I.length>0?I:void 0,undecided:T.length>0?T:void 0})))}}}function ebt(t){return ML(t).size>0||ob(t).length>0}function ML(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function ob(t,{include:e=new Set}={}){let r=[],s=new Map(je.mapAndFilter([...t.releases],([n,c])=>c==="decline"?je.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(je.mapAndFilter([...t.releases],([n,c])=>c!=="decline"?je.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||s.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let c of Ut.hardDependencies)for(let f of n.manifest.getForScope(c).values()){let p=t.project.tryWorkspaceByDescriptor(f);p!==null&&s.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function nz(t,e){let r=kA.default.clean(e);for(let s of Object.values(G1))if(s!=="undecided"&&s!=="decline"&&kA.default.inc(t,s)===r)return s;return null}function ib(t,e){if(kA.default.valid(e))return e;if(t===null)throw new nt(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!kA.default.valid(t))throw new nt(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=kA.default.inc(t,e);if(r===null)throw new nt(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function iz(t,e,{report:r,exact:s}){let a=new Map;for(let n of t.workspaces)for(let c of Ut.allDependencies)for(let f of n.manifest[c].values()){let p=t.tryWorkspaceByDescriptor(f);if(p===null||!e.has(p))continue;je.getArrayWithDefault(a,p).push([n,c,f.identHash])}for(let[n,c]of e){let f=n.manifest.version;n.manifest.version=c,kA.default.prerelease(c)===null?delete n.manifest.raw.stableVersion:n.manifest.raw.stableVersion||(n.manifest.raw.stableVersion=f);let p=n.manifest.name!==null?G.stringifyIdent(n.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,n.anchoredLocator)}: Bumped to ${c}`),r.reportJson({cwd:fe.fromPortablePath(n.cwd),ident:p,oldVersion:f,newVersion:c});let h=a.get(n);if(!(typeof h>"u"))for(let[E,C,S]of h){let b=E.manifest[C].get(S);if(typeof b>"u")throw new Error("Assertion failed: The dependency should have existed");let I=b.range,T=!1;if(I.startsWith(Ei.protocol)&&(I=I.slice(Ei.protocol.length),T=!0,I===n.relativeCwd))continue;let N=I.match($Pt);if(!N){r.reportWarning(0,`Couldn't auto-upgrade range ${I} (in ${G.prettyLocator(t.configuration,E.anchoredLocator)})`);continue}let U=s?`${c}`:`${N[1]}${c}`;T&&(U=`${Ei.protocol}${U}`);let W=G.makeDescriptor(b,U);E.manifest[C].set(S,W)}}}var tbt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function cke(t,{current:e,prerelease:r}){let s=new kA.default.SemVer(e),a=s.prerelease.slice(),n=[];s.prerelease=[],s.format()!==t&&(a.length=0);let c=!0,f=r.split(/\./g);for(let p of f){let h=tbt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():c=!1;else{let E=c?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),c=!1)}}return s.prerelease&&(s.prerelease=[]),`${t}-${n.join(".")}`}var Y1=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.exact=ge.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` This command will apply the deferred version changes and remove their definitions from the repository. Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. By default only the current workspace will be bumped, but you can configure this behavior by using one of: - \`--recursive\` to also apply the version bump on its dependencies - \`--all\` to apply the version bump on all packages in the repository Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await sb(s,{prerelease:p}),E=new Map;if(this.all)E=h;else{let C=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let S of C){let b=h.get(S);typeof b<"u"&&E.set(S,b)}}if(E.size===0){let C=h.size>0?" Did you want to add --all?":"";f.reportWarning(0,`The current workspace doesn't seem to require a version bump.${C}`);return}iz(s,E,{report:f,exact:this.exact}),this.dryRun||(p||(this.all?await tz(s):await rz(s,[...E.keys()])),f.reportSeparator())});return this.dryRun||c.hasErrors()?c.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ge();Dt();Yt();var UL=ut(Ai());var V1=class extends ft{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){iw(this.context);let{Gem:r}=await Promise.resolve().then(()=>(qF(),kW)),{ScrollableItems:s}=await Promise.resolve().then(()=>(JF(),VF)),{FocusRequest:a}=await Promise.resolve().then(()=>(RW(),E2e)),{useListInput:n}=await Promise.resolve().then(()=>(YF(),I2e)),{renderForm:c}=await Promise.resolve().then(()=>(XF(),ZF)),{Box:f,Text:p}=await Promise.resolve().then(()=>ut(Wc())),{default:h,useCallback:E,useState:C}=await Promise.resolve().then(()=>ut(hn())),S=await ze.find(this.context.cwd,this.context.plugins),{project:b,workspace:I}=await Rt.find(S,this.context.cwd);if(!I)throw new ar(b.cwd,this.context.cwd);await b.restoreInstallState();let T=await q1(b);if(T===null||T.releaseRoots.size===0)return 0;if(T.root===null)throw new nt("This command can only be run on Git repositories");let N=()=>h.createElement(f,{flexDirection:"row",paddingBottom:1},h.createElement(f,{flexDirection:"column",width:60},h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),h.createElement(f,{flexDirection:"column"},h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to save.")),h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),U=({workspace:me,active:pe,decision:Be,setDecision:Ce})=>{let g=me.manifest.raw.stableVersion??me.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(S,me.anchoredLocator)})`);if(UL.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let we=["undecided","decline","patch","minor","major"];n(Be,we,{active:pe,minus:"left",plus:"right",set:Ce});let ye=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},UL.default.valid(Be)?Be:UL.default.inc(g,Be)));return h.createElement(f,{flexDirection:"column"},h.createElement(f,null,h.createElement(p,null,G.prettyLocator(S,me.anchoredLocator)," - ",ye)),h.createElement(f,null,we.map(Ae=>h.createElement(f,{key:Ae,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:Ae===Be})," ",Ae)))))},W=me=>{let pe=new Set(T.releaseRoots),Be=new Map([...me].filter(([Ce])=>pe.has(Ce)));for(;;){let Ce=ob({project:T.project,releases:Be}),g=!1;if(Ce.length>0){for(let[we]of Ce)if(!pe.has(we)){pe.add(we),g=!0;let ye=me.get(we);typeof ye<"u"&&Be.set(we,ye)}}if(!g)break}return{relevantWorkspaces:pe,relevantReleases:Be}},ee=()=>{let[me,pe]=C(()=>new Map(T.releases)),Be=E((Ce,g)=>{let we=new Map(me);g!=="undecided"?we.set(Ce,g):we.delete(Ce);let{relevantReleases:ye}=W(we);pe(ye)},[me,pe]);return[me,Be]},ie=({workspaces:me,releases:pe})=>{let Be=[];Be.push(`${me.size} total`);let Ce=0,g=0;for(let we of me){let ye=pe.get(we);typeof ye>"u"?g+=1:ye!=="decline"&&(Ce+=1)}return Be.push(`${Ce} release${Ce===1?"":"s"}`),Be.push(`${g} remaining`),h.createElement(p,{color:"yellow"},Be.join(", "))},le=await c(({useSubmit:me})=>{let[pe,Be]=ee();me(pe);let{relevantWorkspaces:Ce}=W(pe),g=new Set([...Ce].filter(se=>!T.releaseRoots.has(se))),[we,ye]=C(0),Ae=E(se=>{switch(se){case a.BEFORE:ye(we-1);break;case a.AFTER:ye(we+1);break}},[we,ye]);return h.createElement(f,{flexDirection:"column"},h.createElement(N,null),h.createElement(f,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(f,{flexDirection:"column",marginTop:1,paddingLeft:2},[...T.changedFiles].map(se=>h.createElement(f,{key:se},h.createElement(p,null,h.createElement(p,{color:"grey"},fe.fromPortablePath(T.root)),fe.sep,fe.relative(fe.fromPortablePath(T.root),fe.fromPortablePath(se)))))),T.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(f,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(f,{marginTop:1},h.createElement(ie,{workspaces:T.releaseRoots,releases:pe})):null,h.createElement(f,{marginTop:1,flexDirection:"column"},h.createElement(s,{active:we%2===0,radius:1,size:2,onFocusRequest:Ae},[...T.releaseRoots].map(se=>h.createElement(U,{key:se.cwd,workspace:se,decision:pe.get(se)||"undecided",setDecision:X=>Be(se,X)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(f,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(f,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(f,{marginTop:1},h.createElement(ie,{workspaces:g,releases:pe})):null,h.createElement(f,{marginTop:1,flexDirection:"column"},h.createElement(s,{active:we%2===1,radius:2,size:2,onFocusRequest:Ae},[...g].map(se=>h.createElement(U,{key:se.cwd,workspace:se,decision:pe.get(se)||"undecided",setDecision:X=>Be(se,X)}))))):null)},{versionFile:T},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof le>"u")return 1;T.releases.clear();for(let[me,pe]of le)T.releases.set(me,pe);await T.saveAll()}async executeStandard(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return await s.restoreInstallState(),(await Ot.start({configuration:r,stdout:this.context.stdout},async c=>{let f=await q1(s);if(f===null||f.releaseRoots.size===0)return;if(f.root===null)throw new nt("This command can only be run on Git repositories");if(c.reportInfo(0,`Your PR was started right after ${he.pretty(r,f.baseHash.slice(0,7),"yellow")} ${he.pretty(r,f.baseTitle,"magenta")}`),f.changedFiles.size>0){c.reportInfo(0,"You have changed the following files since then:"),c.reportSeparator();for(let S of f.changedFiles)c.reportInfo(null,`${he.pretty(r,fe.fromPortablePath(f.root),"gray")}${fe.sep}${fe.relative(fe.fromPortablePath(f.root),fe.fromPortablePath(S))}`)}let p=!1,h=!1,E=ML(f);if(E.size>0){p||c.reportSeparator();for(let S of E)c.reportError(0,`${G.prettyLocator(r,S.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let C=ob(f);for(let[S,b]of C)h||c.reportSeparator(),c.reportError(0,`${G.prettyLocator(r,S.anchoredLocator)} doesn't have a release strategy attached, but depends on ${G.prettyWorkspace(r,b)} which is planned for release.`),h=!0;(p||h)&&(c.reportSeparator(),c.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),c.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Ge();Yt();var _L=ut(Ai());var J1=class extends ft{constructor(){super(...arguments);this.deferred=ge.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=ge.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=ge.String()}static{this.paths=[["version"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let c=_L.default.valid(this.strategy),f=this.strategy==="decline",p;if(c)if(a.manifest.version!==null){let E=nz(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!f){if(E===null)throw new nt("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!_L.default.valid(E))throw new nt(`Can't bump the version (${E}) if it's not valid semver`)}p=dy(this.strategy)}if(!n){let C=(await sb(s)).get(a);if(typeof C<"u"&&p!=="decline"){let S=ib(a.manifest.version,p);if(_L.default.lt(S,C))throw new nt(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let h=await q1(s,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};var rbt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[Y1,V1,J1]},nbt=rbt;var oz={};Vt(oz,{WorkspacesFocusCommand:()=>K1,WorkspacesForeachCommand:()=>Z1,default:()=>obt});Ge();Ge();Yt();var K1=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ge.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ge.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ge.Rest()}static{this.paths=[["workspaces","focus"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);await s.restoreInstallState({restoreResolutions:!1});let c;if(this.all)c=new Set(s.workspaces);else if(this.workspaces.length===0){if(!a)throw new ar(s.cwd,this.context.cwd);c=new Set([a])}else c=new Set(this.workspaces.map(f=>s.getWorkspaceByIdent(G.parseIdent(f))));for(let f of c)for(let p of this.production?["dependencies"]:Ut.hardDependencies)for(let h of f.manifest.getForScope(p).values()){let E=s.tryWorkspaceByDescriptor(h);E!==null&&c.add(E)}for(let f of s.workspaces)c.has(f)?this.production&&f.manifest.devDependencies.clear():(f.manifest.installConfig=f.manifest.installConfig||{},f.manifest.installConfig.selfReferences=!1,f.manifest.dependencies.clear(),f.manifest.devDependencies.clear(),f.manifest.peerDependencies.clear(),f.manifest.scripts.clear());return await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ge();Ge();Ge();Yt();var z1=ut(Go()),fke=ut(Ld());Ul();var Z1=class extends ft{constructor(){super(...arguments);this.from=ge.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=ge.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=ge.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=ge.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=ge.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=ge.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=ge.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=ge.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:h_([fo(["unlimited"]),$2(p_(),[d_(),g_(1)])])});this.topological=ge.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=ge.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=ge.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=ge.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=ge.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=ge.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspaces","foreach"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A --no-private npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]})}static{this.schema=[tB("all",qf.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),m_(["all","recursive","since","worktree"],{missingIf:"undefined"})]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!this.all&&!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),c=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new nt("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let f=Ce=>{this.dryRun&&this.context.stdout.write(`${Ce} `)},p=()=>{let Ce=this.from.map(g=>z1.default.matcher(g));return s.workspaces.filter(g=>{let we=G.stringifyIdent(g.anchoredLocator),ye=g.relativeCwd;return Ce.some(Ae=>Ae(we)||Ae(ye))})},h=[];if(this.since?(f("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ka.fetchChangedWorkspaces({ref:this.since,project:s}))):this.from?(f("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(f("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(f("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(f("Option --all is set; selecting all workspaces"),h=[...s.workspaces]),this.dryRun&&!this.all){for(let Ce of h)f(` - ${Ce.relativeCwd} ${G.prettyLocator(r,Ce.anchoredLocator)}`);h.length>0&&f("")}let E;if(this.recursive?this.since?(f("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceDependents()]).flat())):(f("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(f("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ce of E)f(` - ${Ce.relativeCwd} ${G.prettyLocator(r,Ce.anchoredLocator)}`);let C=[],S=!1;if(c?.includes(":")){for(let Ce of s.workspaces)if(Ce.manifest.scripts.has(c)&&(S=!S,S===!1))break}for(let Ce of h){if(c&&!Ce.manifest.scripts.has(c)&&!S&&!(await In.getWorkspaceAccessibleBinaries(Ce)).has(c)){f(`Excluding ${Ce.relativeCwd} because it doesn't have a "${c}" script`);continue}if(!(c===r.env.npm_lifecycle_event&&Ce.cwd===a.cwd)){if(this.include.length>0&&!z1.default.isMatch(G.stringifyIdent(Ce.anchoredLocator),this.include)&&!z1.default.isMatch(Ce.relativeCwd,this.include)){f(`Excluding ${Ce.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(z1.default.isMatch(G.stringifyIdent(Ce.anchoredLocator),this.exclude)||z1.default.isMatch(Ce.relativeCwd,this.exclude))){f(`Excluding ${Ce.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Ce.manifest.private===!0){f(`Excluding ${Ce.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Ce)}}if(this.dryRun)return 0;let b=this.verbose??(this.context.stdout.isTTY?1/0:0),I=b>0,T=b>1,N=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(fs.availableParallelism()/2):1,U=N===1?!1:this.parallel,W=U?this.interlaced:!0,ee=(0,fke.default)(N),ie=new Map,ue=new Set,le=0,me=null,pe=!1,Be=await Ot.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ce=>{let g=async(we,{commandIndex:ye})=>{if(pe)return-1;!U&&T&&ye>1&&Ce.reportSeparator();let Ae=ibt(we,{configuration:r,label:I,commandIndex:ye}),[se,X]=uke(Ce,{prefix:Ae,interlaced:W}),[De,Te]=uke(Ce,{prefix:Ae,interlaced:W});try{T&&Ce.reportInfo(null,`${Ae?`${Ae} `:""}Process started`);let mt=Date.now(),j=await this.cli.run([this.commandName,...this.args],{cwd:we.cwd,stdout:se,stderr:De})||0;se.end(),De.end(),await X,await Te;let rt=Date.now();if(T){let Fe=r.get("enableTimers")?`, completed in ${he.pretty(r,rt-mt,he.Type.DURATION)}`:"";Ce.reportInfo(null,`${Ae?`${Ae} `:""}Process exited (exit code ${j})${Fe}`)}return j===130&&(pe=!0,me=j),j}catch(mt){throw se.end(),De.end(),await X,await Te,mt}};for(let we of C)ie.set(we.anchoredLocator.locatorHash,we);for(;ie.size>0&&!Ce.hasErrors();){let we=[];for(let[X,De]of ie){if(ue.has(De.anchoredDescriptor.descriptorHash))continue;let Te=!0;if(this.topological||this.topologicalDev){let mt=this.topologicalDev?new Map([...De.manifest.dependencies,...De.manifest.devDependencies]):De.manifest.dependencies;for(let j of mt.values()){let rt=s.tryWorkspaceByDescriptor(j);if(Te=rt===null||!ie.has(rt.anchoredLocator.locatorHash),!Te)break}}if(Te&&(ue.add(De.anchoredDescriptor.descriptorHash),we.push(ee(async()=>{let mt=await g(De,{commandIndex:++le});return ie.delete(X),ue.delete(De.anchoredDescriptor.descriptorHash),{workspace:De,exitCode:mt}})),!U))break}if(we.length===0){let X=Array.from(ie.values()).map(De=>G.prettyLocator(r,De.anchoredLocator)).join(", ");Ce.reportError(3,`Dependency cycle detected (${X})`);return}let ye=await Promise.all(we);ye.forEach(({workspace:X,exitCode:De})=>{De!==0&&Ce.reportError(0,`The command failed in workspace ${G.prettyLocator(r,X.anchoredLocator)} with exit code ${De}`)});let se=ye.map(X=>X.exitCode).find(X=>X!==0);(this.topological||this.topologicalDev)&&typeof se<"u"&&Ce.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return me!==null?me:Be.exitCode()}};function uke(t,{prefix:e,interlaced:r}){let s=t.createStreamReporter(e),a=new je.DefaultStream;a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()});let n=new Promise(f=>{s.on("finish",()=>{f(a.active)})});if(r)return[a,n];let c=new je.BufferStream;return c.pipe(a,{end:!1}),c.on("finish",()=>{a.end()}),[c,n]}function ibt(t,{configuration:e,commandIndex:r,label:s}){if(!s)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,c=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],f=c[r%c.length];return he.pretty(e,n,f)}var sbt={commands:[K1,Z1]},obt=sbt;var uz={};Vt(uz,{default:()=>ubt});Ge();Ge();var az="catalog:";var lz=t=>t.startsWith(az),abt=t=>t.range.slice(az.length)||null,Ake=t=>t===null?"default catalog":`catalog "${t}"`,lbt=t=>t.scope?`@${t.scope}/${t.name}`:t.name,cz=(t,e,r,s)=>{let a=abt(e),n;if(a===null)n=t.configuration.get("catalog");else try{let E=t.configuration.get("catalogs");E&&(n=E.get(a))}catch{n=void 0}if(!n||n.size===0)throw new jt(82,`${G.prettyDescriptor(t.configuration,e)}: ${Ake(a)} not found or empty`);let c=lbt(e),f=n.get(c);if(!f)throw new jt(82,`${G.prettyDescriptor(t.configuration,e)}: entry not found in ${Ake(a)}`);let p=t.configuration.normalizeDependency(G.makeDescriptor(e,f));return r.bindDescriptor(p,t.topLevelWorkspace.anchoredLocator,s)};var cbt={configuration:{catalog:{description:"The default catalog of packages",type:"MAP",valueDefinition:{description:"The catalog of packages",type:"STRING"}},catalogs:{description:"Named catalogs of packages",type:"MAP",valueDefinition:{description:"A named catalog",type:"MAP",valueDefinition:{description:"Package version in the catalog",type:"STRING"}}}},hooks:{beforeWorkspacePacking:(t,e)=>{let r=t.project,s=r.configuration.makeResolver(),a={project:r,resolver:s,report:new ki};for(let n of Ut.allDependencies){let c=e[n];if(c)for(let[f,p]of Object.entries(c)){if(typeof p!="string"||!lz(p))continue;let h=G.parseIdent(f),E=G.makeDescriptor(h,p),C=cz(r,E,s,a),{protocol:S,source:b,params:I,selector:T}=G.parseRange(G.convertToManifestRange(C.range));S===t.project.configuration.get("defaultProtocol")&&(S=null),c[f]=G.makeRange({protocol:S,source:b,params:I,selector:T})}}},reduceDependency:async(t,e,r,s,{resolver:a,resolveOptions:n})=>lz(t.range)?cz(e,t,a,n):t}},ubt=cbt;var tC=()=>({modules:new Map([["@yarnpkg/cli",Gv],["@yarnpkg/core",jv],["@yarnpkg/fslib",_2],["@yarnpkg/libzip",fv],["@yarnpkg/parsers",J2],["@yarnpkg/shell",mv],["clipanion",oB],["semver",fbt],["typanion",Ea],["@yarnpkg/plugin-essentials",f5],["@yarnpkg/plugin-compat",d5],["@yarnpkg/plugin-constraints",T5],["@yarnpkg/plugin-dlx",F5],["@yarnpkg/plugin-exec",L5],["@yarnpkg/plugin-file",U5],["@yarnpkg/plugin-git",u5],["@yarnpkg/plugin-github",j5],["@yarnpkg/plugin-http",G5],["@yarnpkg/plugin-init",q5],["@yarnpkg/plugin-interactive-tools",HW],["@yarnpkg/plugin-jsr",GW],["@yarnpkg/plugin-link",qW],["@yarnpkg/plugin-nm",PY],["@yarnpkg/plugin-npm",PK],["@yarnpkg/plugin-npm-cli",OK],["@yarnpkg/plugin-pack",IV],["@yarnpkg/plugin-patch",GK],["@yarnpkg/plugin-pnp",gY],["@yarnpkg/plugin-pnpm",YK],["@yarnpkg/plugin-stage",$K],["@yarnpkg/plugin-typescript",ez],["@yarnpkg/plugin-version",sz],["@yarnpkg/plugin-workspace-tools",oz],["@yarnpkg/plugin-catalog",uz]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-catalog"])});function gke({cwd:t,pluginConfiguration:e}){let r=new Ca({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:fn??""});return Object.assign(r,{defaultContext:{...Ca.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function Abt(t){if(je.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,s=">=18.12.0";if(Fr.satisfiesWithPrereleases(r,s))return!0;let a=new nt(`This tool requires a Node version compatible with ${s} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Ca.defaultContext.stdout.write(t.error(a)),!1}async function dke({selfPath:t,pluginConfiguration:e}){return await ze.find(fe.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function pbt(t,e,{yarnPath:r}){if(!ce.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let s={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,pke.execFileSync)(process.execPath,[fe.fromPortablePath(r),...e],s)}catch(a){return a.status??1}return 0}function hbt(t,e){let r=null,s=e;return e.length>=2&&e[0]==="--cwd"?(r=fe.toPortablePath(e[1]),s=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=fe.toPortablePath(e[0].slice(6)),s=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=fe.toPortablePath(e[e.length-1]),s=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?J.resolve(r):J.cwd(),s}function gbt(t,{configuration:e}){if(!e.get("enableTelemetry")||hke.isCI||!process.stdout.isTTY)return;ze.telemetry=new XI(e,"puba9cdc10ec5790a2cf4969dd413a47270");let s=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())$I.has(a.match(s)?.[1]??"")&&ze.telemetry?.reportPluginName(a);t.binaryVersion&&ze.telemetry.reportVersion(t.binaryVersion)}function mke(t,{configuration:e}){for(let r of e.plugins.values())for(let s of r.commands||[])t.register(s)}async function dbt(t,e,{selfPath:r,pluginConfiguration:s}){if(!Abt(t))return 1;let a=await dke({selfPath:r,pluginConfiguration:s}),n=a.get("yarnPath"),c=a.get("ignorePath");if(n&&!c)return pbt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let f=hbt(t,e);gbt(t,{configuration:a}),mke(t,{configuration:a});let p=t.process(f,t.defaultContext);return p.help||ze.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function Bde({cwd:t=J.cwd(),pluginConfiguration:e=tC()}={}){let r=gke({cwd:t,pluginConfiguration:e}),s=await dke({pluginConfiguration:e,selfPath:null});return mke(r,{configuration:s}),r}async function YT(t,{cwd:e=J.cwd(),selfPath:r,pluginConfiguration:s}){let a=gke({cwd:e,pluginConfiguration:s});function n(){Ca.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await dbt(a,t,{selfPath:r,pluginConfiguration:s})}catch(c){Ca.defaultContext.stdout.write(a.error(c)),process.exitCode=1}finally{process.off("beforeExit",n),await ce.rmtempPromise()}}YT(process.argv.slice(2),{cwd:J.cwd(),selfPath:fe.toPortablePath(fe.resolve(process.argv[1])),pluginConfiguration:tC()});})(); /** @license Copyright (c) 2015, Rebecca Turner Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /** @license Copyright Node.js contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** @license The MIT License (MIT) Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** @license Copyright Joyent, Inc. and other Node contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*! Bundled license information: is-number/index.js: (*! * is-number * * Copyright (c) 2014-present, Jon Schlinkert. * Released under the MIT License. *) to-regex-range/index.js: (*! * to-regex-range * * Copyright (c) 2015-present, Jon Schlinkert. * Released under the MIT License. *) fill-range/index.js: (*! * fill-range * * Copyright (c) 2014-present, Jon Schlinkert. * Licensed under the MIT License. *) is-extglob/index.js: (*! * is-extglob * * Copyright (c) 2014-2016, Jon Schlinkert. * Licensed under the MIT License. *) is-glob/index.js: (*! * is-glob * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. *) queue-microtask/index.js: (*! queue-microtask. MIT License. Feross Aboukhadijeh *) run-parallel/index.js: (*! run-parallel. MIT License. Feross Aboukhadijeh *) git-url-parse/lib/index.js: (*! * buildToken * Builds OAuth token prefix (helper function) * * @name buildToken * @function * @param {GitUrl} obj The parsed Git url object. * @return {String} token prefix *) object-assign/index.js: (* object-assign (c) Sindre Sorhus @license MIT *) react/cjs/react.production.min.js: (** @license React v17.0.2 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) scheduler/cjs/scheduler.production.min.js: (** @license React v0.20.2 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) react-reconciler/cjs/react-reconciler.production.min.js: (** @license React v0.26.2 * react-reconciler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) is-windows/index.js: (*! * is-windows * * Copyright © 2015-2018, Jon Schlinkert. * Released under the MIT License. *) */ ================================================ FILE: .yarnrc.yml ================================================ yarnPath: .yarn/releases/yarn-4.10.3.cjs nodeLinker: node-modules ================================================ FILE: CHANGELOG.md ================================================ ## pdfkit changelog ### Unreleased - Bump node version requirement to 20+ - Bump minimum supported browsers to Firefox 115, iOS/Safari 16 - Fix text with input x as null ### [v0.18.0] - 2026-03-14 - Fix garbled text copying in Chrome/Edge for PDFs with >256 unique characters (#1659) - Fix Link accessibility issues - Fix Table Accessibility Issue: Operator CS/cs not allowed in this current state - Fix Interlaced PNG with indexed transparency rendered incorrectly - Fix SVG path parser incorrectly handle arc flags without separators - Add pageLayout option to control how pages are displayed in PDF viewers - Preserve existing PageMode instead of overwriting when adding outlines - Add userUnit option for custom page units (PDF 1.6) - Support outlines that jump to specific page positions with custom zoom level - Add robust handling of null byte padding in JPEG images - Replace outdated jpeg-exif with minimal implementation - Replace outdated crypto-js with maintained small alternatives - Fix issue with indentation with `indentAllLines: true` when a new page is created ### [v0.17.2] - 2025-08-30 - Fix rendering lists that spans across pages ### [v0.17.1] - 2025-05-02 - Fix null values in table cells rendering as `[object Object]` - Fix further LineWrapper precision issues - Optmize standard font handling. Less code, less memory usage ### [v0.17.0] - 2025-04-12 - Fix precision rounding issues in LineWrapper - Fix fonts without a postscriptName - Add support for dynamic sizing - Add support for rotatable text - Fix page cascade options when text overflows - Add table generation - Fix y position when using `image()` without x and y coordinates - Improve Prettier configuration ### [v0.16.0] - 2024-12-29 - Update fontkit to 2.0 - Update linebreak to 1.1 - Add support for spot colors - Add support to scale text horizontally - Add an option to keep the indentation after a new line starts and allow to indent a whole paragraph/text element - Add `Name` property for set custom icon for `note()` - Fix sets tab order to "Structure" when a document is tagged - Fix font cache collision for fonts with missing postscript name or bad TTF metadata or identical metadata for different fonts - Fix for embedding fonts into PDF (font name must not contain spaces) - Fix measuring text when OpenType features are passed in to .text() ### [v0.15.2] - 2024-12-15 - Fix index not counting when rendering ordered lists (#1517) - Fix PDF/A3 compliance of attachments - Fix CIDSet generation only for PDF/A1 subset - Fix missing acroform font dictionary - Fix modify time comparison check equality embedded files ### [v0.15.1] - 2024-10-30 - Fix browserify transform sRGB_IEC61966_2_1.icc file - Fix time comparison check equality embedded files ### [v0.15.0] - 2024-03-23 - Add subset for PDF/UA - Fix for line breaks in list items (#1486) - Fix for soft hyphen not being replaced by visible hyphen if necessary (#457) - Optimize output files by ignoring identity transforms - Fix for Acroforms - setting an option to false will still apply the flag (#1495) - Fix for text extraction in PDFium-based viewers due to invalid ToUnicodeMap (#1498) - Remove deprecated `write` method - Drop support for Node.js < 18 and for browsers released before 2020 ### [v0.14.0] - 2023-11-09 - Add support for PDF/A-1b, PDF/A-1a, PDF/A-2b, PDF/A-2a, PDF/A-3b, PDF/A-3a - Update crypto-js to v4.2.0 (properly fix security issue) - Add support for EXIF orientation on JPEG images (#626 and #1353) ### [v0.13.0] - 2021-10-24 - Add tiling pattern support ### [v0.12.3] - 2021-08-01 - Remove examples from published package ### [v0.12.2] - 2021-08-01 - Fix for PDF accessibility check. (#1265) - Allow applying 'underline' and 'strike' text styling together on a text - Allow to specify the AcroForm text fontSize - Update crypto-js to v4.0 (properly fix security issue) ### [v0.12.1] - 2021-04-10 - Update crypto-js to v3.3 (fix security issue) - Update fontkit to 1.8.1 ### [v0.12.0] - 2021-04-04 - Add support for Embedded Files and File Attachment Annotations - Accessibility support - Replace integration tests by visual regression tests - Fix access permissions in PDF version 1.7ext3 - Fix Buffer() is deprecation warning - Add `forms.md` to generate documentation files - Fix "@" in FontName ### [v0.11.0] - 2019-12-03 - Fix infinite loop when an individual character is bigger than the width of the text. - Fix infinite loop when text is positioned after page right margin - Allow links in continued text to be stopped by setting link to null - Add support to interlaced PNG files - Do not emit \_interopDefault helper in commonjs build - Fix gradient with multiple stops (#1045) - Set link annotation flag to print by default - Add support for AcroForms - Drop support for (uncommon) cid less fonts on standalone build (reduces bundle size) ### [v0.10.0] - 2019-06-06 - Fix links to pages within the document - Add support for named destinations - Throw errors when `dash(...)` is passed invalid lengths - Remove PDFDocument#output method - Add standalone build (js/pdfkit.standalone.js) ### [v0.9.1] - 2019-04-30 - Fix setting printing permission - Fix corruption of string objects in browser - Add option to set default font - Remove call to fontkit.openSync - Add standalone virtual file system implementation - Add option (fontLayoutCache) to disable font layout cache ### [v0.9.0] - 2019-01-28 - Convert to code base from coffescript to ES6+ - Fix loading grayscale / transparent PNG files - Reduce number of calls to async functions - Implement encryption / access control ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing to pdfkit ## Table of Contents - [Contributing to pdfkit](#contributing-to-pdfkit) - [Table of Contents](#table-of-contents) - [Code Organization](#code-organization) - [Setting Up the project locally](#setting-up-the-project-locally) - [Running and writing tests](#running-and-writing-tests) - [Documentation](#documentation) - [Submitting a Pull Request](#submitting-a-pull-request) ## Code Organization pdfkit is organized in the following folders: - `lib`: The actual source code. - `js`: The built / distributable code. - `docs`: Code and artifacts to generate documentation. - `demo`: Node and browser demos. - `tests/unit`: Tests behavior of specific classes / methods. - `tests/visual`: Compare the pdf output against a reference. **Working on your first Pull Request?** You can learn how from this _free_ series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) ## Setting Up the project locally To install the project you need to have `node` 1. [Fork](https://help.github.com/articles/fork-a-repo/) the project, clone your fork: ``` # Clone your fork git clone https://github.com//pdfkit.git # Navigate to the newly cloned directory cd pdfkit ``` 2. `npm install` to install dependencies 3. `npm run build` to build the library 4. `npm run demo` to run the demo (check demo/out.pdf) 5. `npm run browser-demo` to run the browser demo (check demo/browser.html) > Tip: Keep your `master` branch pointing at the original repository and make > pull requests from branches on your fork. To do this, run: > > ``` > git remote add upstream https://github.com/foliojs/pdfkit.git > git fetch upstream > git branch --set-upstream-to=upstream/master master > ``` > > This will add the original repository as a "remote" called "upstream," > then fetch the git information from that remote, then set your local `master` > branch to use the upstream master branch whenever you run `git pull`. > Then you can make all of your pull request branches based on this `master` > branch. Whenever you want to update your version of `master`, do a regular > `git pull`. ## Running and writing tests Tests are run using [Vitest](https://vitest.dev/) and are categorized as unit and visual tests. Visual tests check the pdf image screenshot against a reference stored as snapshots. Unit tests check behavior of specific classes / methods isolatedly. Test commands * `npm run test`: Run all tests * `npm run test:unit`: Run unit tests * `npm run test:visual`: Run visual tests * `npm run lint`: Run linter To write new tests, look for the *.spec.js files at `test/unit` and `test/visual` as examples > Visual tests should use an embedded font, instead of system fonts, to ensure uniform rendering between different environments ## Documentation See `README.md` in the `docs` subdirectory for more information. ## Submitting a Pull Request Please go through existing issues and pull requests to check if somebody else is already working on it. Also, make sure to run the tests and lint the code before you commit your changes. > Tests should be added to check the changed behavior even if is a bug fix. If the proposed change affects document structure a unit test should be added, if affects rendering, add a visual test ================================================ FILE: LICENSE ================================================ MIT LICENSE Copyright (c) 2014 Devon Govett Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # PDFKit A JavaScript PDF generation library for Node and the browser. ## Description PDFKit is a PDF document generation library for Node and the browser that makes creating complex, multi-page, printable documents easy. The API embraces chainability, and includes both low level functions as well as abstractions for higher level functionality. The PDFKit API is designed to be simple, so generating complex documents is often as simple as a few function calls. Check out some of the [documentation and examples](http://pdfkit.org/docs/getting_started.html) to see for yourself! You can also read the guide as a [self-generated PDF](http://pdfkit.org/docs/guide.pdf) with example output displayed inline. If you'd like to see how it was generated, check out the README in the [docs](https://github.com/foliojs/pdfkit/tree/master/docs) folder. You can also try out an interactive in-browser demo of PDFKit [here](http://pdfkit.org/demo/browser.html). ## Installation Use [npm](http://npmjs.org/) or [yarn](https://yarnpkg.com/) package manager. Just type the following command: ```bash # with npm npm install pdfkit # with yarn yarn add pdfkit ``` ## Features - Vector graphics - HTML5 canvas-like API - Path operations - SVG path parser for easy path creation - Transformations - Linear and radial gradients - Text - Line wrapping (with soft hyphen recognition) - Text alignments - Bulleted lists - Font embedding - Supports TrueType (.ttf), OpenType (.otf), WOFF, WOFF2, TrueType Collections (.ttc), and Datafork TrueType (.dfont) fonts - Font subsetting - See [fontkit](http://github.com/foliojs/fontkit) for more details on advanced glyph layout support. - Image embedding - Supports JPEG and PNG files (including indexed PNGs, and PNGs with transparency) - Tables - Annotations - Links - Notes - Highlights - Underlines - etc. - AcroForms - Outlines - PDF security - Encryption - Access privileges (printing, copying, modifying, annotating, form filling, content accessibility, document assembly) - Accessibility support (marked content, logical structure, Tagged PDF, PDF/UA) ## Coming soon! - Patterns fills - Higher level APIs for laying out content - More performance optimizations - Even more awesomeness, perhaps written by you! Please fork this repository and send me pull requests. ## Example ```javascript const PDFDocument = require('pdfkit'); const fs = require('fs'); // Create a document const doc = new PDFDocument(); // Pipe its output somewhere, like to a file or HTTP response // See below for browser usage doc.pipe(fs.createWriteStream('output.pdf')); // Embed a font, set the font size, and render some text doc .font('fonts/PalatinoBold.ttf') .fontSize(25) .text('Some text with an embedded font!', 100, 100); // Add an image, constrain it to a given size, and center it vertically and horizontally doc.image('path/to/image.png', { fit: [250, 300], align: 'center', valign: 'center' }); // Add another page doc .addPage() .fontSize(25) .text('Here is some vector graphics...', 100, 100); // Draw a triangle doc .save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill('#FF3300'); // Apply some transforms and render an SVG path with the 'even-odd' fill rule doc .scale(0.6) .translate(470, -380) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('red', 'even-odd') .restore(); // Add some text with annotations doc .addPage() .fillColor('blue') .text('Here is a link!', 100, 100) .underline(100, 100, 160, 27, { color: '#0000FF' }) .link(100, 100, 160, 27, 'http://google.com/'); // Finalize PDF file doc.end(); ``` [The PDF output from this example](http://pdfkit.org/demo/out.pdf) (with a few additions) shows the power of PDFKit — producing complex documents with a very small amount of code. For more, see the `demo` folder and the [PDFKit programming guide](http://pdfkit.org/docs/getting_started.html). ## Browser Usage There are three ways to use PDFKit in the browser: - Use [Browserify](http://browserify.org/). See demo [source code](https://github.com/foliojs/pdfkit/blob/master/examples/browserify/browser.js) and [build script](https://github.com/foliojs/pdfkit/blob/master/package.json#L62) - Use [webpack](https://webpack.js.org/). See [complete example](https://github.com/foliojs/pdfkit/blob/master/examples/webpack). - Use prebuilt version. Distributed as `pdfkit.standalone.js` file in the [releases](https://github.com/foliojs/pdfkit/releases) or in the package `js` folder. In addition to PDFKit, you'll need somewhere to stream the output to. HTML5 has a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) object which can be used to store binary data, and get URLs to this data in order to display PDF output inside an iframe, or upload to a server, etc. In order to get a Blob from the output of PDFKit, you can use the [blob-stream](https://github.com/devongovett/blob-stream) module. The following example uses Browserify or webpack to load `PDFKit` and `blob-stream`. See [here](https://codepen.io/blikblum/pen/gJNWMg?editors=1010) and [here](https://codepen.io/blikblum/pen/YboVNq?editors=1010) for examples of prebuilt version usage. ```javascript // require dependencies const PDFDocument = require('pdfkit'); const blobStream = require('blob-stream'); // create a document the same way as above const doc = new PDFDocument(); // pipe the document to a blob const stream = doc.pipe(blobStream()); // add your content to the document here, as usual // get a blob when you are done doc.end(); stream.on('finish', function() { // get a blob you can do whatever you like with const blob = stream.toBlob('application/pdf'); // or get a blob URL for display in the browser const url = stream.toBlobURL('application/pdf'); iframe.src = url; }); ``` You can see an interactive in-browser demo of PDFKit [here](http://pdfkit.org/demo/browser.html). Note that in order to Browserify a project using PDFKit, you need to install the `brfs` module, which is used to load built-in font data into the package. It is listed as a `devDependency` in PDFKit's `package.json`, so it isn't installed by default for Node users. If you forget to install it, Browserify will print an error message. ## Documentation For complete API documentation and more examples, see the [PDFKit website](http://pdfkit.org/). ## License PDFKit is available under the MIT license. ================================================ FILE: docs/.gitignore ================================================ *.html css/ img/ js/ ================================================ FILE: docs/README.md ================================================ # PDFKit Guide The PDFKit guide can be read a number of ways. The first is online at [pdfkit.org](http://pdfkit.org/). You can also read the guide in PDF form, in this directory or [online](http://pdfkit.org/docs/guide.pdf). Both the website and the PDF guide are generated from the Markdown files in this directory. Just run `npm run docs` to generate them. You will need to have ImageMagick 7 installed so the `magick` command is on your `$PATH`. The examples are actually run when generating the PDF in order to show the results inline. The `generate.js` file in this directory is actually quite short. It parses the markdown files into a tree structure using [markdown-js](https://github.com/evilstreak/markdown-js), syntax highlights the code examples using [codemirror](https://github.com/marijnh/codemirror), compiles and runs the code examples and puts the results inline, and generates the PDF using PDFKit. You can read the generator script source code to get a feeling for how you might do something slightly more complex than the guide itself shows. The markdown syntax used is pretty much standard, with a couple tweaks. 1. Code example output is references using the image notation, using the alt text as the example number starting from zero in the current file, and the title as the example output height. E.g. `![x](name "height")`. 2. Page breaks are added before `h1` and `h2`s, unless there are two in a row. `h3` is treated the same as `h2` but can be used to avoid this in the case you need multiple `h2`s on the same page. 3. The horizontal rule syntax (`* * *`) denotes an explicit page break ================================================ FILE: docs/accessibility.md ================================================ # Accessibility Accessible PDFs are usable by visually impaired users who rely on screen readers/text-to-speech engines/vocalisation. The two main tasks required to create accessible PDFs are marking content and defining the document's logical structure. These are detailed in the following sections. Some other simpler tasks are also required. This checklist covers everything that is required to create a conformant PDF/UA (PDF for Universal Accessibility) document (which is an extension of Tagged PDF): * Pass the option `pdfVersion: '1.5'` (or a higher version) when creating your `PDFDocument` (depending on the features you use, you may only need 1.4; refer to the PDF reference for details). * Pass the option `subset: 'PDF/UA'` when creating your `PDFDocument` (if you wish the PDF to be identified as PDF/UA-1). * Pass the option `tagged: true` when creating your `PDFDocument` (technically, this sets the `Marked` property in the `Markings` dictionary to `true` in the PDF). * Provide a `Title` in the `info` option, and pass `displayTitle: true` when creating your `PDFDocument`. * Specify natural language in the document options and/or logical structure and/or non-structure marked `Span` content. * Add logical structure with all significant content included. * Include accessibility information (such as alternative text, actual text, etc.) in the logical structure and/or non-structure marked `Span` content. * Include all spaces which separate words/sentences/etc. in your marked structure content, even at the ends of lines, paragraphs, etc.. I.e. don't do `doc.text("Hello, world!")` but instead do `doc.text("Hello, world! ")`. * Mark all non-structure content as artifacts. * As well as creating the logical structure, write objects to the PDF in the natural "reading order". * Do not convey information solely using visuals (such as colour, contrast or position on the page). * No flickering or flashing content. ## Marked Content Marked content sequences are foundational to creating accessible PDFs. All marked content sequences are associated with a registered tag, such as 'Span'. Example of marking content: // Mark some text as a "Span" doc.markContent('Span'); doc.text('Hello, world! '); doc.endMarkedContent(); Marked content is automatically ended when a page is ended, and if a new page is automatically added by text wrapping, marking is automatically begun again on the new page. Tags to use are listed in a later section. ### Marked Content Options When marking content, you can provide options (take care to use correct capitalisation): * `type` - used for artifact content; may be `Pagination` (e.g. headers and footers), `Layout` (e.g. rules and backgrounds) or `Page` (cut marks etc.) * `bbox` - bounding box for artifact content: `[left, top, right, bottom]` in default coordinates * `attached` - used for `Pagination` artifact content, array of one or more strings: `Top`, `Bottom`, `Left`, `Right` * `lang` - used for `Span` content: human language code (e.g. `en-AU`) which overrides default document language, and any enclosing structure element language * `alt` - used for `Span` content: alternative text for an image or other visual content * `expanded` - used for `Span` content: the expanded form of an abbreviation or acronym * `actual` - used for `Span` content: the actual text the content represents (e.g. if it is rendered as vector graphics) It is advisable not to use `Span` content for specifying alternative text, expanded form, or actual text, especially if there is a possibility of the content automatically wrapping, which would result in the text appearing twice. Set these options on an associated structure element instead. ## Logical Structure Logical structures defines the reading order of a document, and can provide alternative text for images and other visual content. To define logical structure, you need to mark the structure content, keep a reference to it, then incorporate it into a structure tree. > So far, PDFKit only supports marked content in the logical structure, not annotations, forms, > or anything else. Example of marking structure content: // Mark some text as a paragraph ("P"); the tag should match the intended structure element's type const myStructContent = doc.markStructureContent('P'); doc.text('Hello, world! '); doc.endMarkedContent(); Example of the simplest of structure trees: // Add a single structure element which includes the structure content to the document's structure doc.addStructure(doc.struct('P', myStructContent)); Tags/element types to use are listed in a later section. Note that to be conformant to Tagged PDF, all content not part of the logical structure should be marked as `Artifact`. ### Automatic Ending of Structure Content and Artifacts Structure content does not nest, and is mutually exclusive with artifact content; marking structure or artifact content will automatically end current marking of structure or artifact content (and any descendent marking): // Mark multiple paragraphs without needing to close them doc.markContent('Artifact', { type: "Layout" }); doc.rect(x1, y1, w1, h1); const myStructContent = doc.markStructureContent('P'); doc.text('Hello, world! '); doc.markContent('Artifact', { type: "Layout" }); doc.rect(x2, y2, w2, h2); const myStructContent = doc.markStructureContent('P'); doc.markContent('Span'); doc.text('Bonjour, tout le monde! '); doc.markContent('Artifact', { type: "Layout" }); doc.rect(x3, y3, w3, h3); const myStructContent = doc.markStructureContent('P'); doc.text('Hello again! '); ### Complex Structure Multiple elements may be added directly to the document, or to structure elements, and may nest: // Create nested structure elements const section1 = doc.struct('Sect', [ doc.struct('P', [ someTextStructureContent, doc.struct('Link', someLinkStructureContent), moreTextStructureContent ]) ]); const section2 = doc.struct('Sect', secondSectionStructureContent); // Add them to the document's structure doc.addStructure(section1).addStructure(section2); ### Incremental Construction of Structure Structure can be built incrementally. Elements can optionally be (recursively) ended once you have finished adding to them, allowing them to be flushed out as soon as possible: // Begin a new section and add it to the document's structure const mySection = doc.struct('Sect'); doc.addStructure(mySection); // Create a new paragraph and add it to the section const myParagraph = doc.struct('P'); mySection.add(myParagraph); // Add content, both to the page, and the paragraph const myParagraphContent = doc.markStructureContent('P'); myParagraph.add(myParagraphContent); doc.text('Hello, world! '); // End the paragraph, allowing it to be flushed out, freeing memory myParagraph.end(); Note that if you provide children when creating a structure element (i.e. providing them to `doc.struct()` rather than using `structElem.add()`) then `structElem.end()` is called automatically. You therefore cannot add additional children with `structElem.add()`, i.e. you cannot mix atomic and incremental styles for the same structure element. For an element to be flushed out, it must: * be ended, * have been added to its parent, and * if it has content defined through closures (see next section), be attached to the document's structure (through its ancestors) When you call `doc.end()`, the document's structure is recursively ended, resulting in all elements being flushed out. If you created elements but forgot to add them to the document's structure, they will not be flushed, but the PDF stream will wait for them to be flushed before ending, causing your application to hang. Make sure if you create any elements, you add them to a parent, so ultimately all elements are attached to the document. It's best to add elements to their parents as you go. ### Shortcut for Elements Containing Only Marked Content The common case where a structure element contains only content marked with a tag matching the structure element type can be achieved by using a closure: doc.addStructure(doc.struct('P', () => { doc.text('Hello, world! '); })); This is equivalent to: const myStruct = doc.struct('P'); doc.addStructure(myStruct); const myStructContent = doc.markStructureContent('P'); doc.text('Hello, world! '); doc.endMarkedContent(); myStruct.add(myStructContent); myStruct.end(); Note that the content is marked and the closure is executed *if/when the element is attached to the document's structure*. This means that you can do something like this: const myParagraph = doc.struct('P', [ () => { doc.text("Please see ", { continued: true }); }, doc.struct('Link', () => { doc.text("something", { link: "http://www.example.com/", continued: true }); }), () => { doc.text(" for details. ", { link: null }); } ]); and no content will be added to the page until/unless something like this is done: doc.addStructure(section1); section1.add(myParagraph); // Content is added now or alternatively: section1.add(myParagraph); doc.addStructure(section1); // Content is added now This is important because otherwise when the `Link` element is constructed, its content will be added to the page, and then the list containing the link element will be passed to the construct the `P` element, and only during the construction of the `P` element will the other `P` content be added to the page, resulting in page content being out of order. It's best to add elements to their parents as you go. ### Structure Element Options When creating a structure element, you can provide options: * `title` - title of the structure element (e.g. "Chapter 1") * `lang` - human language code (e.g. `en-AU`) which overrides default document language * `alt` - alternative text for an image or other visual content * `expanded` - the expanded form of an abbreviation or acronym * `actual` - the actual text the content represents (e.g. if it is rendered as vector graphics) Example of a structure tree with options specified: const titlePage = doc.struct('Sect', { title: 'Title Page' }, [ doc.struct('H', [ doc.struct('Span', { expanded: 'Portable Document Format for Universal Accessibility', actual: 'PDF/UA' }, [ pdfUAStructureContent ]), doc.struct('Span', { actual: 'in a Nutshell' }, [ inANutshellStructureContent ]), ]), doc.struct('Figure', { alt: 'photo of a concrete path with tactile paving' }, [ photoStructureContent ]) ]); ### Automatic Marking and Structure Construction for Text The `text()` method accepts a `structParent` option which you can use to specify a structure element to add each paragraph to. It will mark each paragraph of content, create a structure element for it, and then add it to the parent element you provided. It will use the `P` type, unless you specify a different type with a `structType` option. Example of creating structure automatically with `text()`: // Create a section, add it to the document structure, then add paragraphs to it const section = doc.struct('Sect'); doc.addStructure(section); doc.text("Foo. \nBar. ", { structParent: section }); This is equivalent to: const section = doc.struct('Sect'); doc.addStructure(section); section.add(doc.struct('P', () => { doc.text("Foo. "); }); section.add(doc.struct('P', () => { doc.text("Bar. "); }); The `list()` method also accepts a `structParent` option. By default, it add list items (type `LI`) to the parent, each of which contains a label (type `Lbl`, which holds the bullet, number, or letter) and a body (type `LBody`, which holds the actual item content). You can override the default types with a `structTypes` option, which is a list: `[ itemType, labelType, bodyType ]`. You can make any of the types `null` to omit that part of the structure (i.e. to add labels and bodies directly to the parent, and/or to collapse the label and body into a single element). Example of creating structure automatically with `list()`: // Create a list, add it to the structure tree, then add items to it const list = doc.struct('List'); someElement.add(list); doc.list(["Foo. ", "Bar. "], { structParent: list }); ## Tags and Structure Element Types Here are the tags and structure element types which are defined in Tagged PDF. You must ensure you give them with the correct capitalisation. > Tagged PDF also supports custom types which map to standard types, but PDFKit does not > have support for this. Non-structure tags: * `Artifact` - used to mark all content not part of the logical structure * `ReversedChars` - every string of text has characters in reverse order for technical reasons (due to how fonts work for right-to-left languages); strings may have spaces at the beginning or end to separate words, but may not have spaces in the middle "Grouping" elements: * `Document` - whole document; must be used if there are multiple parts or articles * `Part` - part of a document * `Art` - article * `Sect` - section; may nest * `Div` - generic division * `BlockQuote` - block quotation * `Caption` - describing a figure or table * `TOC` - table of contents, may be nested, and may be used for lists of figures, tables, etc. * `TOCI` - table of contents (leaf) item * `Index` - index (text with accompanying `Reference` content) * `NonStruct` - non-structural grouping element (element itself not intended to be exported to other formats like HTML, but 'transparent' to its content which is processed normally) * `Private` - content only meaningful to the creator (element and its content not intended to be exported to other formats like HTML) "Block" elements: * `H` - heading (first element in a section, etc.) * `H1` to `H6` - heading of a particular level intended for use only if nesting sections is not possible for some reason * `P` - paragraph * `L` - list; should include optional `Caption`, and list items * `LI` - list item; should contain `Lbl` and/or `LBody` * `Lbl` - label (bullet, number, or "dictionary headword") * `LBody` - list body (item text, or "dictionary definition"); may have nested lists or other blocks "Table" elements: * `Table` - table; should either contain `TR`, or `THead`, `TBody` and/or `TFoot` * `TR` - table row * `TH` - table heading cell * `TD` - table data cell * `THead` - table header row group * `TBody` - table body row group; may have more than one per table * `TFoot` - table footer row group "Inline" elements: * `Span` - generic inline content * `Quote` - inline quotation * `Note` - e.g. footnote; may have a `Lbl` (see "block" elements) * `Reference` - content in a document that refers to other content (e.g. page number in an index) * `BibEntry` - bibliography entry; may have a `Lbl` (see "block" elements) * `Code` - code * `Link` - hyperlink; should contain a link annotation * `Annot` - annotation (other than a link) * `Ruby` - Chinese/Japanese pronunciation/explanation * `RB` - Ruby base text * `RT` - Ruby annotation text * `RP` - Ruby punctuation * `Warichu` - Japanese/Chinese longer description * `WT` - Warichu text * `WP` - Warichu punctuation "Illustration" elements (should have `alt` and/or `actualtext` set): * `Figure` - figure * `Formula` - formula * `Form` - form widget ================================================ FILE: docs/annotations.md ================================================ # Annotations in PDFKit Annotations are interactive features of the PDF format, and they make it possible to include things like links and attached notes, or to highlight, underline or strikeout portions of text. Annotations are added using the various helper methods, and each type of annotation is defined by a rectangle and some other properties. Here is a list of the available annotation methods: * `note(x, y, width, height, contents, options)` * `link(x, y, width, height, url, options)` * `goTo(x, y, w, h, name, options)` * `highlight(x, y, width, height, options)` * `underline(x, y, width, height, options)` * `strike(x, y, width, height, options)` * `lineAnnotation(x1, y1, x2, y2, options)` * `rectAnnotation(x, y, width, height, options)` * `ellipseAnnotation(x, y, width, height, options)` * `textAnnotation(x, y, width, height, text, options)` * `fileAnnotation(x, y, width, height, file, options)` Many of the annotations have a `color` option that you can specify. You can use an array of RGB values, a hex color, a named CSS color value, or a named spot color value for that option. A custom icon can be set using option `Name` property. Possible values are: `'Comment'`, `'Key'`, `'Note'`, `'Help'`, `'NewParagraph'`, `'Paragraph'` and `'Insert'`. If you are adding an annotation to a piece of text, such as a link or underline, you will need to know the width and height of the text in order to create the required rectangle for the annotation. There are two methods that you can use to do that. To get the width of any piece of text in the current font, just call the `widthOfString` method with the string you want to measure. To get the line height in the current font, just call the `currentLineHeight` method. You must remember that annotations have a stacking order. If you are putting more than one annotation on a single area and one of those annotations is a link, make sure that the link is the last one you add, otherwise it will be covered by another annotation and the user won't be able to click it. * * * Here is an example that uses a few of the annotation types. // Add the link text doc.fontSize(25) .fillColor('blue') .text('This is a link!', 20, 0); // Measure the text const width = doc.widthOfString('This is a link!'); const height = doc.currentLineHeight(); // Add the underline and link annotations doc.underline(20, 0, width, height, {color: 'blue'}) .link(20, 0, width, height, 'http://google.com/'); // Create the highlighted text doc.moveDown() .fillColor('black') .highlight(20, doc.y, doc.widthOfString('This text is highlighted!'), height) .text('This text is highlighted!'); // Create text with a spot color doc.addSpotColor('PANTONE185C', 0, 100, 78, 9) doc.moveDown() .fillColor('PANTONE185C') .text('This text uses spot color!'); // Create the crossed out text doc.moveDown() .strike(20, doc.y, doc.widthOfString('STRIKE!'), height) .text('STRIKE!'); // Create note doc.note(10, 30, 30, 30, "Text of note"); // Create note with custom options doc.note(10, 80, 30, 30, "Text of custom note", {Name: 'Key', color: 'red'}); // Adding go to as annotation doc.goTo(20, doc.y, 10, 20, 'LINK', {}); The output of this example looks like this. ![0](images/annotations.png) Annotations are currently not the easiest things to add to PDF documents, but that is the fault of the PDF spec itself. Calculating a rectangle manually isn't fun, but PDFKit makes it easier for a few common annotations applied to text, including links, underlines, and strikes. Here's an example showing two of them: doc.fontSize(20) .fillColor('red') .text('Another link!', 20, 0, { link: 'http://apple.com/', underline: true } ); The output is as you'd expect: ![1]() ================================================ FILE: docs/attachments.md ================================================ # Attachments in PDFKit ## Embedded Files Embedded files make it possible to embed any external file into a PDF. Adding an embedded file is as simple as calling the `file` method and specifying a filepath. doc.file(path.join(__dirname, 'example.txt')) It is also possible to embed data directly as a Buffer, ArrayBuffer or base64 encoded string. If you are embedding data, it is recommended you also specify a filename like this: doc.file(Buffer.from('this will be a text file'), { name: 'example.txt' }) When embedding a data URL, the `type` option will be set to the data URL's MIME type automatically: doc.file('data:text/plain;base64,YmFzZTY0IHN0cmluZw==', { name: 'base64.txt' }) There are a few other options for `doc.file`: * `name` - specify the embedded file's name * `type` - specify the embedded file's subtype as a [MIME-Type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) * `description` - add descriptive text for the embedded file * `hidden` - if true, do not show file in the list of embedded files * `creationDate` - override the date and time the file was created * `modifiedDate` - override the date and time the file was last updated * `relationship` - relationship between the PDF document and its attached file. Can be 'Alternative', 'Data', 'Source', 'Supplement' or 'Unspecified'. If you are attaching a file from your file system, creationDate and modifiedDate will be set to the source file's creationDate and modifiedDate. Setting the `hidden` option prevents this file from showing up in the pdf viewer's attachment panel. While this may not be very useful for embedded files, it is absolutely necessary for file annotations, to prevent them from showing up twice in the attachment panel. ## File Annotations A file annotation contains a reference to an embedded file that can be placed anywhere in the document. File annotations show up in your reader's annotation panel as well as the attachment panel. In order to add a file annotation, you should first read the chapter on annotations. Like other annotations, you specify position and size with `x`, `y`, `width` and `height`, unlike other annotations you must also specify a file object. The file object may contain the same options as `doc.file` in the previous section with the addition of the source file or buffered data in `src`. Here is an example of adding a file annotation: const file = { src: path.join(__dirname, 'example.txt'), name: 'example.txt', description: 'file annotation description' } const options = { Name: 'Paperclip' } doc.fileAnnotation(100, 100, 100, 100, file, options) The annotation's appearance may be changed by setting the `Name` option to one of the three predefined icons `GraphPush`, `Paperclip` or `Push` (default value). ================================================ FILE: docs/destinations.md ================================================ # Destinations Anchor may specify a destination by `addNamedDestination(name, ...args)`, which consists of a page, the location of the display window on that page, and the zoom factor to use when displaying that page. Examples of creating anchor: // Insert anchor for current page doc.addNamedDestination('LINK'); // Insert anchor for current page with only horizontal magnified to fit where vertical top is 100 doc.addNamedDestination('LINK', 'FitH', 100); // Insert anchor to display a portion of the current page, 1/2 inch in from the top and left and zoomed 50% doc.addNamedDestination('LINK', 'XYZ', 36, 36, 50); // Insert anchor for this text doc.text('End of paragraph', { destination: 'ENDP' }); Examples of go to link to anchor: // Go to annotation doc.goTo(10, 10, 100, 20, 'LINK') // Go to annotation for this text doc.text('Another goto', 20, 0, { goTo: 'ENDP', underline: true }); ================================================ FILE: docs/forms.md ================================================ # Forms in PDFKit Forms are an interactive feature of the PDF format. Forms make it possible to add form annotations such as text fields, combo boxes, buttons and actions. Before addings forms to a PDF you must call the document `initForm()` method. - `initForm()` - Must be called before adding a form annotation to the document. ```javascript doc.font('Helvetica'); // establishes the default form field font doc.initForm(); ``` ## Form Annotation Methods Form annotations are added using the following document methods. - `formText( name, x, y, width, height, options)` - `formPushButton( name, x, y, width, height, name, options)` - `formCombo( name, x, y, width, height, options)` - `formList( name, x, y, width, height, options)` The above methods call the `formAnnotation` method with type set to one of `text`, `pushButton`, `radioButton`, `combo` or `list`. - `formAnnotation( name, type, x, y, width, height, options)` ### `name` Parameter Form annotations are each given a `name` that is used for identification. Field names are hierarchical using a period ('.') as a separaror (_e.g._ _shipping.address.street_). More than one form field can have the same name. When this happens, the fields will have the same value. There is more information on `name` in the **Field Names** section below. ### `options` Parameter #### Common Options Form Annotation `options` that are common across all form annotation types are: - `required` [_boolean_] - The field must have a value by the time the form is submitted. - `noExport` [_boolean_] - The field will not be exported if a form is submitted. - `readOnly` [_boolean_] - The user may not change the value of the field, and the field will not respond to mouse clicks. This is useful for fields that have computed values. - `value` [_number|string_] - The field's value. - `defaultValue` [_number|string_] - The default value to which the field reverts if a reset-form action is executed. Some form annotations have `color` options. You can use an array of RGB values, a hex color, or a named CSS color value for that option. - `backgroundColor` - field background color - `borderColor` - field border color #### Text Field Options - `align` [_string_] - Sets the alignment to `left`, `center` or `right`. - `multiline` [_boolean_] - Allows the field to have multiple lines of text. - `password` [_boolean_] - The text will be masked (_e.g._ with asterisks). - `noSpell` [_boolean_] - If set, text entered in the field is not spell-checked - `format` [_object_] - See the section on **Text Field Formatting** below. - `fontSize` [_number_] - Sets the fontSize (default or 0 means auto sizing) ```js doc.formText('leaf2', 10, 60, 200, 40, { multiline: true, align: 'right', format: { type: 'date', params: 'm/d' } }); ``` #### Combo and List Field Options - `sort` [_boolean_] - The field options will be sorted alphabetically. - `edit` [_boolean_] - (combo only) Allow the user to enter a value in the field. - `multiSelect` [_boolean_] - Allow more than one choice to be selected. - `noSpell` [_boolean_] - (combo only) If set and `edit` is true, text entered in the field is not spell-checked. - `select` [_array_] - Array of choices to display in the combo or list form field. ```js opts = { select: ['', 'github', 'bitbucket', 'gitlab'], value: '', defaultValue: '', align: 'left' }; doc.formCombo('ch1', 10, y, 100, 20, opts); ``` #### Button Field Options - `label` [_string_] - Sets the label text. You can also set an icon, but for this you will need to 'expert-up' and dig deeper into the PDF Reference manual. ```js var opts = { backgroundColor: 'yellow', label: 'Test Button' }; doc.formPushButton('btn1', 10, 200, 100, 30, opts); ``` ### Text Field Formatting When needing to format the text value of a Form Annotation, the following `options` are available. This will cause predefined document JavaScript actions to automatically format the text. Refer to the section _Formatting scripts_ in [Acrobat Forms Plugin](https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/#t=Acro12_MasterBook%2FIAC_API_FormsIntro%2FMethods1.htm) of the Acrobat SDK documentation for more information. Add a format dictionary to `options`. The dictionary must contain a `type` attribute. - `format` - generic object - `format.type` - value must be one of `date`, `time`, `percent`, `number`, `zip`, `zipPlus4`, `phone` or `ssn`. When `type` is `date`, `time`, `percent` or `number` the format dictionary must contain additional parameters as described below. #### Date format - `format.param` (_string_) - specifies the value and display format and can include: - `d` - single digit day of month - `dd` - double digit day of month - `m` - month digit - `mm` - month double digit - `mmm` - abbreviated month name - `mmmm` - full month name - `yy` - two digit year - `yyyy` - four digit year - `hh` - hour for 12 hour clock - `HH` - hour for 24 hour clock - `MM` - two digit minute - `tt` - am or pm ```js // Date text field formatting doc.formText('field.date', 10, 60, 200, 40, { align: 'center', format: { type: 'date', param: 'mmmm d, yyyy' } }); ``` #### Time format - `format.param` - value must be a number between 0 and 3, representing the formats "14:30", "2:30 PM", "14:30:15" and "2:30:15 PM". ```js // Time text field formatting doc.formText('field.time', 10, 60, 200, 40, { align: 'center', format: { type: 'time', param: 2 } }); ``` #### Number and percent format - `format.nDec` [_number_] - the number of places after the decimal point - `format.sepComma` [_boolean_] - display a comma separator, otherwise do not display a separator. - `format.negStyle` [_string_] (number only) - the value must be one of `MinusBlack` , `Red`, `ParensBlack`, `ParensRed` - `format.currency` [_string_] (number only) - a currency symbol to display - `format.currencyPrepend` [_boolean_] (number only) - set to true to prepend the currency symbol ```js // Currency text field formatting doc.formText('leaf2', 10, 60, 200, 40, { multiline: true, align: 'right', format: { type: 'number', nDec: 2, sepComma: true, negStyle: 'ParensRed', currency: '$', currencyPrepend: true } }); ``` ## Field Names Form Annotations are, by default, added to the root of the PDF document. A PDF form is organized in a name heirarchy, for example _shipping.address.street_. Capture this heirarchy either by setting the `name` of each _form annotation_ with the full hierarchical name (e.g. _shipping.address.street_) or by creating a hierarchy of _form fields_ and _form annotations_ and refering to a form field or form annotations parent using `options.parent`. A _form field_ is an invisible node in the PDF form and is created using the document `formField` method. A form field must include the node's `name` (e.g. _shipping_) and may include other information such as the default font that is to be used by all child form annotations. Using the `formField` method you might create a _shipping_ field that is added to the root of the document, an _address_ field that refers to the _shipping_ field as it's parent, and a _street_ Form Annotation that would refer to the _address_ field as it's parent. Create form fields using the document method: - `formField( name, options )` - returns a reference to the field -- _Example PDF using field hierarchy, three text fields and a push button_ -- ```javascript doc.font('Helvetica'); // establishes the default font doc.initForm(); let rootField = doc.formField('rootField'); let child1Field = doc.formField('child1Field', { parent: rootField }); let child2Field = doc.formField('child2Field', { parent: rootField }); // Add text form annotation 'rootField.child1Field.leaf1' doc.formText('leaf1', 10, 10, 200, 40, { parent: child1Field, multiline: true }); // Add text form annotation 'rootField.child1Field.leaf2' doc.formText('leaf2', 10, 60, 200, 40, { parent: child1Field, multiline: true }); // Add text form annotation 'rootField.child2Field.leaf1' doc.formText('leaf1', 10, 110, 200, 80, { parent: child2Field, multiline: true }); // Add push button form annotation 'btn1' var opts = { backgroundColor: 'yellow', label: 'Test Button' }; doc.formPushButton('btn1', 10, 200, 100, 30, opts); ``` The output of this example looks like this. ![0](images/Forms.png) ### Advanced Form Field Use Forms can be quite complicated and your needs will likely grow to sometimes need to directly specify the attributes that will go into the Form Annotation or Field dictionaries. Consult the **PDF Reference** and set these attributes in the `options` object. Any options that are not listed above will be added directly to the corresponding PDF Object. ## Font The font used for a Form Annotation is set using the `document.font` method. Yes that's the same method as is used when setting the text font. The `font` method must be called before `initForm` and may be called before `formField` or any of the form annotation methods. ```js doc.font('Courier'); doc.formText('myfield', 10, 10, 200, 20); ``` ## Named JavaScript In support of Form Annotations that execute JavaScript in PDF, you may use the following document method: - `addNamedJavaScript( name, string )` ## Limitations It is recommended that you test your PDF form documents across all platforms and viewers that you wish to support. ### Form Field Appearances Form elements must each have an _appearance_ set using the `AP` attribute of the annotation. If this attribute is not set, the form element's value _may_ not be visible. Because appearances can be complex to generate, Adobe Acrobat has an option to build these apperances from form values and Form Annotation attributes when a PDF is first opened. To do this PDFKit always sets the Form dictionary's `NeedAppearances` attribute to true. This could mean that the PDF will be _dirty_ upon open, meaning it will need to be saved. The `NeedAppearances` flag may not be honored by all PDF viewers. Some form documents may not need to generate appearances. This may be the case for text Form Annotations that initially have no value. This is not true for push button widget annotations. Please test ### Document JavaScript Many PDF Viewers, aside from Adobe Acrobat Reader, do not implement document JavaScript. Even Adobe Readers may not implement document JavaScript where it is not permitted by a device's app store terms of service (e.g. iOS devices). ### Radio and Checkboxes Support for radio and checkboxes requires a more advanced attention to their rendered appearances and are not supported in this initial forms release. --- ================================================ FILE: docs/generate.js ================================================ const fs = require('fs'); const vm = require('vm'); const { markdown } = require('markdown'); const CodeMirror = require('codemirror/addon/runmode/runmode.node'); const PDFDocument = require('../'); process.chdir(__dirname); // setup code mirror javascript mode const filename = require.resolve('codemirror/mode/javascript/javascript'); const jsMode = fs.readFileSync(filename, 'utf8'); vm.runInNewContext(jsMode, { CodeMirror }); // style definitions for markdown const styles = { h1: { font: 'fonts/Alegreya-Bold.ttf', fontSize: 25, padding: 15, }, h2: { font: 'fonts/Alegreya-Bold.ttf', fontSize: 18, padding: 10, }, h3: { font: 'fonts/Alegreya-Bold.ttf', fontSize: 18, padding: 10, }, para: { font: 'fonts/Merriweather-Regular.ttf', fontSize: 10, padding: 10, }, code: { font: 'fonts/SourceCodePro-Regular.ttf', fontSize: 9, }, code_block: { padding: 10, background: '#2c2c2c', }, inlinecode: { font: 'fonts/SourceCodePro-Bold.ttf', fontSize: 10, }, listitem: { font: 'fonts/Merriweather-Regular.ttf', fontSize: 10, padding: 6, }, link: { font: 'fonts/Merriweather-Regular.ttf', fontSize: 10, color: 'blue', underline: true, }, example: { font: 'Helvetica', fontSize: 9, color: 'black', padding: 10, }, }; // syntax highlighting colors // based on Github's theme const colors = { keyword: '#cb4b16', atom: '#d33682', number: '#009999', def: '#2aa198', variable: '#108888', 'variable-2': '#b58900', 'variable-3': '#6c71c4', property: '#2aa198', operator: '#6c71c4', comment: '#999988', string: '#dd1144', 'string-2': '#009926', meta: '#768E04', qualifier: '#b58900', builtin: '#d33682', bracket: '#cb4b16', tag: '#93a1a1', attribute: '#2aa198', header: '#586e75', quote: '#93a1a1', link: '#93a1a1', special: '#6c71c4', default: '#002b36', }; // shared lorem ipsum text so we don't need to copy it into every example const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;'; let codeBlocks = []; let lastType = null; // This class represents a node in the markdown tree, and can render it to pdf class Node { constructor(tree) { // special case for text nodes if (typeof tree === 'string') { this.type = 'text'; this.text = tree; return; } this.type = tree.shift(); this.attrs = {}; if (typeof tree[0] === 'object' && !Array.isArray(tree[0])) { this.attrs = tree.shift(); } // parse sub nodes this.content = []; while (tree.length) { this.content.push(new Node(tree.shift())); } switch (this.type) { case 'header': this.type = `h${this.attrs.level}`; break; case 'code_block': // use code mirror to syntax highlight the code block var code = this.content[0].text; this.content = []; CodeMirror.runMode(code, 'javascript', (text, style) => { const color = colors[style] || colors.default; const opts = { color, continued: text !== '\n', }; return this.content.push(new Node(['code', opts, text])); }); if (this.content.length) { this.content[this.content.length - 1].attrs.continued = false; } codeBlocks.push(code); break; case 'img': // images are used to generate inline example output // stores the JS so it can be run // in the render method this.type = 'example'; code = codeBlocks[this.attrs.alt]; if (code) { this.code = code; } this.height = +this.attrs.title || 0; break; } this.style = styles[this.type] || styles.para; } // sets the styles on the document for this node setStyle(doc) { if (this.style.font) { doc.font(this.style.font); } if (this.style.fontSize) { doc.fontSize(this.style.fontSize); } if (this.style.color || this.attrs.color) { doc.fillColor(this.style.color || this.attrs.color); } else { doc.fillColor('black'); } const options = {}; options.align = this.style.align; options.link = this.attrs.href || null; // override continued link if (this.attrs.continued != null) { options.continued = this.attrs.continued; } return options; } // renders this node and its subnodes to the document render(doc, continued) { let y; if (continued == null) { continued = false; } switch (this.type) { case 'example': this.setStyle(doc); // translate all points in the example code to // the current point in the document doc.moveDown(); doc.save(); doc.translate(doc.x, doc.y); var { x } = doc; ({ y } = doc); doc.x = doc.y = 0; // Update the page width for those which rely on the width of the document var docPageWidth = doc.page.width; var docPageHeight = doc.page.height; var docPageMargins = doc.page.margins; doc.page.width = doc.page.width - x - doc.page.margins.right; doc.page.margins = { top: 0, left: 0, right: 0, bottom: 0 }; // run the example code with the document vm.runInNewContext(this.code, { doc, lorem, }); // restore points and styles y += doc.y; doc.restore(); doc.x = x; doc.y = y + this.height; doc.page.width = docPageWidth; doc.page.height = docPageHeight; doc.page.margins = docPageMargins; break; case 'hr': doc.addPage(); break; default: // loop through subnodes and render them for (let index = 0; index < this.content.length; index++) { const fragment = this.content[index]; if (this.type === 'numberlist') { let node = new Node(['inlinecode', `${index + 1}. `]); fragment.content.splice(0, 0, node); } if (fragment.type === 'text') { // add a new page for each heading, unless it follows another heading if ( ['h1', 'h2'].includes(this.type) && lastType != null && lastType !== 'h1' ) { doc.addPage(); } if (this.type === 'h1') { doc.h1Outline = doc.outline.addItem(fragment.text); } else if (this.type === 'h2' && doc.h1Outline !== null) { doc.h1Outline.addItem(fragment.text); } // set styles and whether this fragment is continued (for rich text wrapping) const options = this.setStyle(doc); if (options.continued == null) { options.continued = continued || index < this.content.length - 1; } // remove newlines unless this is code if (this.type !== 'code') { fragment.text = fragment.text.replace(/[\r\n]\s*/g, ' '); } doc.text(fragment.text, options); } else { fragment.render( doc, index < this.content.length - 1 && this.type !== 'bulletlist', ); } lastType = this.type; } } if (this.style.padding) { return (doc.y += this.style.padding); } } } // reads and renders a markdown/literate javascript file to the document const render = (doc, filename) => { codeBlocks = []; const tree = markdown.parse(fs.readFileSync(filename, 'utf8')); tree.shift(); const result = []; while (tree.length) { const node = new Node(tree.shift()); result.push(node.render(doc)); } return result; }; // renders the title page of the guide const renderTitlePage = (doc) => { const title = 'PDFKit Guide'; const author = 'By Devon Govett'; const version = `Version ${require('../package.json').version}`; doc.font('fonts/AlegreyaSans-Light.ttf', 60); doc.y = doc.page.height / 2 - doc.currentLineHeight(); doc.text(title, { align: 'center' }); const w = doc.widthOfString(title); doc.h1Outline = doc.outline.addItem(title); doc.fontSize(20); doc.y -= 10; doc.text(author, { align: 'center', indent: w - doc.widthOfString(author), }); doc.font(styles.para.font, 10); doc.text(version, { align: 'center', indent: w - doc.widthOfString(version), }); doc.addPage(); }; // render all sections of the guide and write the pdf file const doc = new PDFDocument(); doc.pipe(fs.createWriteStream('guide.pdf')); renderTitlePage(doc); render(doc, 'getting_started.md'); render(doc, 'paper_sizes.md'); render(doc, 'vector.md'); render(doc, 'text.md'); render(doc, 'images.md'); render(doc, 'outline.md'); render(doc, 'annotations.md'); render(doc, 'forms.md'); render(doc, 'destinations.md'); render(doc, 'attachments.md'); render(doc, 'accessibility.md'); render(doc, 'table.md'); render(doc, 'you_made_it.md'); doc.end(); ================================================ FILE: docs/generate_website.js ================================================ const pug = require('pug'); const { markdown } = require('markdown'); const fs = require('fs'); const vm = require('vm'); const { exec } = require('child_process'); const PDFDocument = require('../'); process.chdir(__dirname); if (!fs.existsSync('img')) { fs.mkdirSync('img'); } const files = [ '../README.md', 'getting_started.md', 'paper_sizes.md', 'vector.md', 'text.md', 'images.md', 'outline.md', 'annotations.md', 'forms.md', 'destinations.md', 'attachments.md', 'accessibility.md', 'table.md', 'you_made_it.md', ]; // shared lorem ipsum text so we don't need to copy it into every example const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;'; const getNodeName = function (node) { if (node.length === 3) { return node[2]; } const words = []; for (let i = 2; i < node.length; i++) { const part = node[i]; // e.g. ['inlinecode', 'value'] if (Array.isArray(part)) { words.push(part[1]); } else { words.push(part); } } return words.join(''); }; const extractHeaders = function (tree) { const headers = []; for (let index = 0; index < tree.length; index++) { const node = tree[index]; if (node[0] === 'header' && (headers.length === 0 || node[1].level > 1)) { const name = getNodeName(node); if (node[1].level > 2) { node[1].level = 2; } const hash = name.toLowerCase().replace(/\s+/g, '_'); node[1].id = hash; headers.push({ hash, title: name, }); } } return headers; }; let imageIndex = 0; const generateImages = function (tree) { // find code blocks const codeBlocks = []; for (var node of tree) { if (node[0] === 'code_block') { codeBlocks.push(node[1]); } } for (node of tree) { if (node[0] === 'para' && Array.isArray(node[1]) && node[1][0] === 'img') { // compile the code const attrs = node[1][1]; let code = codeBlocks[attrs.alt]; delete attrs.height; // used for pdf generation // create a PDF and run the example const doc = new PDFDocument(); const f = `img/${imageIndex++}`; var file = fs.createWriteStream(`${f}.pdf`); doc.pipe(file); doc.translate(doc.x, doc.y); doc.scale(0.8); doc.x = doc.y = 0; vm.runInNewContext(code, { doc, lorem, }); delete attrs.title; delete attrs.alt; attrs.href = `${f}.png`; // write the PDF, convert to PNG and trim with ImageMagick (https://imagemagick.org) file.on('finish', () => { exec( `magick -density 150x150 ${f}.pdf -trim ${f}.png`, (err, stdout, stderr) => { if (stderr) { console.error(stderr); } if (err) { console.error(err); } fs.unlinkSync(`${f}.pdf`); }, ); }); doc.end(); } } }; const pages = []; for (let file of Array.from(files)) { let content = fs.readFileSync(file, 'utf8'); // turn github highlighted code blocks into normal markdown code blocks content = content.replace( /^```javascript\n((:?.|\n)*?)\n```/gm, (m, $1) => ` ${$1.split('\n').join('\n ')}`, ); const tree = markdown.parse(content); const headers = extractHeaders(tree); generateImages(tree); file = file.replace(/README\.md/, 'index').replace(/\.md$/, ''); pages.push({ file, url: `/docs/${file}.html`, title: headers[0].title, headers: headers.slice(1), content: markdown.toHTML(tree), }); } for (let index = 0; index < pages.length; index++) { const page = pages[index]; page.pages = pages; page.index = index; const html = pug.renderFile('template.pug', page); fs.writeFileSync(page.file + '.html', html, 'utf8'); } ================================================ FILE: docs/getting_started.md ================================================ # Getting Started with PDFKit ### Installation Installation uses the [npm](http://npmjs.org/) package manager. Just type the following command after installing npm. npm install pdfkit ### Creating a document Creating a PDFKit document is quite simple. Just require the `pdfkit` module in your JavaScript source file and create an instance of the `PDFDocument` class. const PDFDocument = require('pdfkit'); const doc = new PDFDocument(); `PDFDocument` instances are readable Node streams. They don't get saved anywhere automatically, but you can call the `pipe` method to send the output of the PDF document to another writable Node stream as it is being written. When you're done with your document, call the `end` method to finalize it. Here is an example showing how to pipe to a file or an HTTP response. doc.pipe(fs.createWriteStream('/path/to/file.pdf')); // write to PDF doc.pipe(res); // HTTP response // add stuff to PDF here using methods described below... // finalize the PDF and end the stream doc.end(); The `write` and `output` methods found in PDFKit before version 0.5 are now deprecated. ## Using PDFKit in the browser PDFKit can be used in the browser as well as in Node! There are two ways to use PDFKit in the browser. The first is to create an app using an module bundler like [Browserify](http://browserify.org/) or [Webpack](https://webpack.js.org/). The second is to create a standalone pdfkit script as explained [here](https://github.com/foliojs/pdfkit/wiki/How-to-compile-standalone-PDFKit-for-use-in-the-browser). Using PDFKit in the browser is exactly the same as using it in Node, except you'll want to pipe the output to a destination supported in the browser, such as a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob). Blobs can be used to generate a URL to allow display of generated PDFs directly in the browser via an `iframe`, or they can be used to upload the PDF to a server, or trigger a download in the user's browser. To get a Blob from a `PDFDocument`, you should pipe it to a [blob-stream](https://github.com/devongovett/blob-stream), which is a module that generates a Blob from any Node-style stream. The following example uses Browserify to load `PDFKit` and `blob-stream`, but if you're not using Browserify, you can load them in whatever way you'd like (e.g. script tags). // require dependencies const PDFDocument = require('pdfkit'); const blobStream = require('blob-stream'); // create a document the same way as above const doc = new PDFDocument; // pipe the document to a blob const stream = doc.pipe(blobStream()); // add your content to the document here, as usual // get a blob when you're done doc.end(); stream.on('finish', function() { // get a blob you can do whatever you like with const blob = stream.toBlob('application/pdf'); // or get a blob URL for display in the browser const url = stream.toBlobURL('application/pdf'); iframe.src = url; }); You can see an interactive in-browser demo of PDFKit [here](http://pdfkit.org/demo/browser.html). Note that in order to Browserify a project using PDFKit, you need to install the `brfs` module with npm, which is used to load built-in font data into the package. It is listed as a `devDependencies` in PDFKit's `package.json`, so it isn't installed by default for Node users. If you forget to install it, Browserify will print an error message. ## Document options When creating a PDFDocument, you can pass various options to control the document behavior. ### Page Layout The `pageLayout` option specifies how pages should be displayed in a PDF viewer: | Value | Description | |-------|-------------| | `singlePage` | Display one page at a time | | `oneColumn` | Display pages in one column | | `twoColumnLeft` | Display pages in two columns, odd pages on left | | `twoColumnRight` | Display pages in two columns, odd pages on right | | `twoPageLeft` | Display two pages at a time, odd pages on left | | `twoPageRight` | Display two pages at a time, odd pages on right | const doc = new PDFDocument({ pageLayout: 'twoColumnLeft' }); ## Adding pages The first page of a PDFKit document is added for you automatically when you create the document unless you provide `autoFirstPage: false`. Subsequent pages must be added by you. Luckily, it is quite simple! doc.addPage() To add some content every time a page is created, either by calling `addPage()` or automatically, you can use the `pageAdded` event. doc.on('pageAdded', () => doc.text("Page Title")); You can also set some options for the page, such as its size and orientation. The `layout` property can be either `portrait` (the default) or `landscape`. The `size` property can be either an array specifying `[width, height]` in PDF points (72 per inch), or a string specifying a predefined size. A list of the predefined paper sizes can be seen [here](http://pdfkit.org/docs/paper_sizes.html). The default is `letter`. Passing a page options object to the `PDFDocument` constructor will set the default paper size and layout for every page in the document, which is then overridden by individual options passed to the `addPage` method. You can set the page margins in two ways. The first is by setting the `margin` / `margins` property to a single value, which applies that to all edges. The other way is to provide an object with `top`, `right`, `bottom`, and `left` values. By default, using a number this will be in points (the default PDF unit), however you can provide any of the following units inside a string and this will be converted for you: `em`, `in`, `px`, `cm`, `mm`, `pc`, `ex`, `ch`, `rem`, `vw`, `vmin`, `vmax`, `%`, `pt`. For those which are based on text sizes this will take the size of the font for the page (excluding `rem` which is always the document root font size) The default is a 1 inch (72 point) margin on all sides. For example: // Add a 50 point margin on all sides doc.addPage({ margin: 50 }); // Add a 2 inch margin on all sides doc.addPage({ margin: '2in' }); // Add a 2em(28pt) margin using the font size doc.addPage({ fontSize: 14, margin: '2em' }); // Add different margins on each side doc.addPage({ margins: { top: 50, bottom: 50, left: 72, right: 72 } }); ## Switching to previous pages PDFKit normally flushes pages to the output file immediately when a new page is created, making it impossible to jump back and add content to previous pages. This is normally not an issue, but in some circumstances it can be useful to add content to pages after the whole document, or a part of the document, has been created already. Examples include adding page numbers, or filling in other parts of information you don't have until the rest of the document has been created. PDFKit has a `bufferPages` option in versions v0.7.0 and later that allows you to control when pages are flushed to the output file yourself rather than letting PDFKit handle that for you. To use it, just pass `bufferPages: true` as an option to the `PDFDocument` constructor. Then, you can call `doc.switchToPage(pageNumber)` to switch to a previous page (page numbers start at 0). When you're ready to flush the buffered pages to the output file, call `flushPages`. This method is automatically called by `doc.end()`, so if you just want to buffer all pages in the document, you never need to call it. Finally, there is a `bufferedPageRange` method, which returns the range of pages that are currently buffered. Here is a small example that shows how you might add page numbers to a document. // create a document, and enable bufferPages mode let i; let end; const doc = new PDFDocument({ bufferPages: true}); // add some content... doc.addPage(); // ... doc.addPage(); // see the range of buffered pages const range = doc.bufferedPageRange(); // => { start: 0, count: 2 } for (i = range.start, end = range.start + range.count, range.start <= end; i < end; i++) { doc.switchToPage(i); doc.text(`Page ${i + 1} of ${range.count}`); } // manually flush pages that have been buffered doc.flushPages(); // or, if you are at the end of the document anyway, // doc.end() will call it for you automatically. doc.end(); ## Setting default font The default font is 'Helvetica'. It can be configured by passing `font` option // use Courier font by default const doc = new PDFDocument({font: 'Courier'}); ## Setting document metadata PDF documents can have various metadata associated with them, such as the title, or author of the document. You can add that information by adding it to the `doc.info` object, or by passing an info object into the document at creation time. Here is a list of all of the properties you can add to the document metadata. According to the PDF spec, each property must have its first letter capitalized. - `Title` - the title of the document - `Author` - the name of the author - `Subject` - the subject of the document - `Keywords` - keywords associated with the document - `CreationDate` - the date the document was created (added automatically by PDFKit) - `ModDate` - the date the document was last modified ## Encryption and Access Privileges PDF specification allow you to encrypt the PDF file and require a password when opening the file, and/or set permissions of what users can do with the PDF file. PDFKit implements standard security handler in PDF version 1.3 (40-bit RC4), version 1.4 (128-bit RC4), PDF version 1.7 (128-bit AES), and PDF version 1.7 ExtensionLevel 3 (256-bit AES). To enable encryption, provide a user password when creating the `PDFDocument` in `options` object. The PDF file will be encrypted when a user password is provided, and users will be prompted to enter the password to decrypt the file when opening it. - `userPassword` - the user password (string value) To set access privileges for the PDF file, you need to provide an owner password and permission settings in the `option` object when creating `PDFDocument`. By default, all operations are disallowed. You need to explicitly allow certain operations. - `ownerPassword` - the owner password (string value) - `permissions` - the object specifying PDF file permissions Following settings are allowed in `permissions` object: - `printing` - whether printing is allowed. Specify `"lowResolution"` to allow degraded printing, or `"highResolution"` to allow printing with high resolution - `modifying` - whether modifying the file is allowed. Specify `true` to allow modifying document content - `copying` - whether copying text or graphics is allowed. Specify `true` to allow copying - `annotating` - whether annotating, form filling is allowed. Specify `true` to allow annotating and form filling - `fillingForms` - whether form filling and signing is allowed. Specify `true` to allow filling in form fields and signing - `contentAccessibility` - whether copying text for accessibility is allowed. Specify `true` to allow copying for accessibility - `documentAssembly` - whether assembling document is allowed. Specify `true` to allow document assembly You can specify either user password, owner password or both passwords. Behavior differs according to passwords you provides: - When only user password is provided, users with user password are able to decrypt the file and have full access to the document. - When only owner password is provided, users are able to decrypt and open the document without providing any password, but the access is limited to those operations explicitly permitted. Users with owner password have full access to the document. - When both passwords are provided, users with user password are able to decrypt the file but only have limited access to the file according to permission settings. Users with owner password have full access to the document. Note that PDF file itself cannot enforce access privileges. When file is decrypted, PDF viewer applications have full access to the file content, and it is up to viewer applications to respect permission settings. To choose encryption method, you need to specify PDF version. PDFKit will choose best encryption method available in the PDF version you specified. - `pdfVersion` - a string value specifying PDF file version Available options includes: - `1.3` - PDF version 1.3 (default), 40-bit RC4 is used - `1.4` - PDF version 1.4, 128-bit RC4 is used - `1.5` - PDF version 1.5, 128-bit RC4 is used - `1.6` - PDF version 1.6, 128-bit AES is used - `1.7` - PDF version 1.7, 128-bit AES is used - `1.7ext3` - PDF version 1.7 ExtensionLevel 3, 256-bit AES is used When using PDF version 1.7 ExtensionLevel 3, password is truncated to 127 bytes of its UTF-8 representation. In older versions, password is truncated to 32 bytes, and only Latin-1 characters are allowed. ## PDF/A PDF/A is a standard (ISO 19005-1:2005) which defines rules for electornic documents intended for long-term archiving. The restrictions on PDF/A documents are: - Cannot be encrypted - Fonts must be embedded - No JavaScript - No audio content - No video content - Addition of XMP metadata - Must define color spaces Currently, PDFKit aims to support PDF/A-1b, PDF/A-2b, PDF/A-3b and PDF/A-1a, PDF/A-2a, PDF/A-3a standards, also known as level B conformance and level A conformance, respectively. In order to create PDF/A documents, set `subset` to either `PDF/A-1` or `PDF/A-1b` for level B (basic) conformance, or `PDF/A-1a` for level A (accessible) conformance when creating the `PDFDocument` in `options` object. Similary, use `PDF/A-2` or `PDF/A-2b` for PDF/A-2 level B conformance and `PDF/A-2a` for PDF/A-2 level A conformance. `PDF/A-3` or `PDF/A-3b` can be used for PDF/A-3 level B conformance and `PDF/A-3a` for PDF/A-3 level A conformance. Futhermore, you will need to specify the other options relevant to the PDF/A subset you wish to use, for PDF/A-1 being: - `pdfVersion` set to at least `1.4` - `tagged` set to `true` for PDF/A-1a For PDF/A-2 and PDF/A-3, the `pdfVersion` needs to be set to at least `1.7` and `tagged` needs to be `true` for level A conformance. In order to verify the generated document for PDF/A and its subsets conformance, veraPDF is an excellent open source validator. Please note that PDF/A requires fonts to be embedded, as such the standard fonts PDFKit comes with cannot be used because they are in AFM format, which only provides neccessary metrics, without the font data. You should use `registerFont()` and use embeddable fonts such as `ttf`. ### Adding content Once you've created a `PDFDocument` instance, you can add content to the document. Check out the other sections described in this document to learn about each type of content you can add. That's the basics! Now let's move on to PDFKit's powerful vector graphics abilities. ================================================ FILE: docs/images.md ================================================ # Images in PDFKit Adding images to PDFKit documents is an easy task. Just pass an image path, buffer, or data uri with base64 encoded data to the `image` method along with some optional arguments. PDFKit supports the JPEG and PNG formats. If an X and Y position are not provided, the image is rendered at the current point in the text flow (below the last line of text). Otherwise, it is positioned absolutely at the specified point. The image will be scaled according to the following options. - Neither `width` or `height` provided - image is rendered at full size - `width` provided but not `height` - image is scaled proportionally to fit in the provided `width` - `height` provided but not `width` - image is scaled proportionally to fit in the provided `height` - Both `width` and `height` provided - image is stretched to the dimensions provided - `scale` factor provided - image is scaled proportionally by the provided scale factor - `fit` array provided - image is scaled proportionally to fit within the passed width and height - `cover` array provided - image is scaled proportionally to completely cover the rectangle defined by the passed width and height - `link` - a URL to link this image to (shortcut to create an annotation) - `goTo` - go to anchor (shortcut to create an annotation) - `destination` - create anchor to this image - `ignoreOrientation` - (true/false) ignore JPEG EXIF orientation. By default, images with JPEG EXIF orientation are properly rotated and/or flipped. Defaults to `false`, unless `ignoreOrientation` option set to `true` when creating the `PDFDocument` object (e.g. `new PDFDocument({ignoreOrientation: true})`) When a `fit` or `cover` array is provided, PDFKit accepts these additional options: - `align` - horizontally align the image, the possible values are `'left'`, `'center'` and `'right'` - `valign` - vertically align the image, the possible values are `'top'`, `'center'` and `'bottom'` Here is an example showing some of these options. // Scale proprotionally to the specified width doc.image('images/test.jpeg', 0, 15, {width: 300}) .text('Proportional to width', 0, 0); // Fit the image within the dimensions doc.image('images/test.jpeg', 320, 15, {fit: [100, 100]}) .rect(320, 15, 100, 100) .stroke() .text('Fit', 320, 0); // Stretch the image doc.image('images/test.jpeg', 320, 145, {width: 200, height: 100}) .text('Stretch', 320, 130); // Scale the image doc.image('images/test.jpeg', 320, 280, {scale: 0.25}) .text('Scale', 320, 265); // Fit the image in the dimensions, and center it both horizontally and vertically doc.image('images/test.jpeg', 430, 15, {fit: [100, 100], align: 'center', valign: 'center'}) .rect(430, 15, 100, 100).stroke() .text('Centered', 430, 0); --- This example produces the following output: ![0](images/images.png '400') That is all there is to adding images to your PDF documents with PDFKit. Now let's look at adding outlines. ================================================ FILE: docs/outline.md ================================================ # Outlines in PDFKit Outlines are the heirachical bookmarks that display in some PDF readers. Currently only page bookmarks are supported, but more may be added in the future. They are simple to add and only require a single method: * `addItem(title, options)` Here is an example of adding a bookmark with a single child bookmark. // Get a reference to the Outline root const { outline } = doc; // Add a top-level bookmark const top = outline.addItem('Top Level'); // Add a sub-section top.addItem('Sub-section'); ## Options The `options` parameter supports the following properties: | Option | Type | Default | Description | |--------|------|---------|-------------| | `expanded` | boolean | `false` | Show children by default | | `pageNumber` | number | `null` | Link to specific page by index (0-based). If `null`, links to current page | | `fit` | boolean | `true` | Use `Fit` destination (fit entire page in window) | | `top` | number | `0` | Top position for `XYZ` destination (requires `fit: false`) | | `left` | number | `0` | Left position for `XYZ` destination (requires `fit: false`) | | `zoom` | number | `0` | Zoom level for `XYZ` destination (0 = current zoom, requires `fit: false`) | ### Expanded sections If `expanded` is set to `true`, all of that section's children will be visible by default. // Add a top-level bookmark const top = outline.addItem('Top Level', { expanded: true }); // Add a sub-section top.addItem('Sub-section'); ### Link to a specific page Use `pageNumber` to link to a specific page by its index (0-based). doc.text('Page 1'); doc.addPage(); doc.text('Page 2'); doc.addPage(); doc.text('Page 3'); // Link to page 1 (index 0) outline.addItem('Chapter 1', { pageNumber: 0 }); // Link to page 2 (index 1) outline.addItem('Chapter 2', { pageNumber: 1 }); ### Custom position and zoom (XYZ destination) Set `fit: false` to use XYZ destination with custom position and zoom level. // Jump to top-left corner of the page with 150% zoom outline.addItem('Section 1', { fit: false, top: 0, left: 0, zoom: 1.5 }); // Jump to a specific position (100pt from top) outline.addItem('Section 2', { pageNumber: 1, fit: false, top: 100, left: 0, zoom: 0 // 0 means keep current zoom level }); ================================================ FILE: docs/paper_sizes.md ================================================ # Paper Sizes When creating a new document or adding a new page to your current document, PDFKit allows you to set the page dimensions. To improve convenience, PDFKit has a number of predefined page sizes. These sizes are based on the most commonly used standard page sizes. ### Predefined Page Sizes The following predefined sizes are based on the ISO (International) standards. All the dimensions in brackets are in PostScript points. #### A-series * A0 (2383.94 x 3370.39) * A1 (1683.78 x 2383.94) * A2 (1190.55 x 1683.78) * A3 (841.89 x 1190.55) * A4 (595.28 x 841.89) * A5 (419.53 x 595.28) * A6 (297.64 x 419.53) * A7 (209.76 x 297.64) * A8 (147.40 x 209.76) * A9 (104.88 x 147.40) * A10 (73.70 x 104.88) #### B-series * B0 (2834.65 x 4008.19) * B1 (2004.09 x 2834.65) * B2 (1417.32 x 2004.09) * B3 (1000.63 x 1417.32) * B4 (708.66 x 1000.63) * B5 (498.90 x 708.66) * B6 (354.33 x 498.90) * B7 (249.45 x 354.33) * B8 (175.75 x 249.45) * B9 (124.72 x 175.75) * B10 (87.87 x 124.72) #### C-series * C0 (2599.37 x 3676.54) * C1 (1836.85 x 2599.37) * C2 (1298.27 x 1836.85) * C3 (918.43 x 1298.27) * C4 (649.13 x 918.43) * C5 (459.21 x 649.13) * C6 (323.15 x 459.21) * C7 (229.61 x 323.15) * C8 (161.57 x 229.61) * C9 (113.39 x 161.57) * C10 (79.37 x 113.39) #### RA-series * RA0 (2437.80 x 3458.27) * RA1 (1729.13 x 2437.80) * RA2 (1218.90 x 1729.13) * RA3 (864.57 x 1218.90) * RA4 (609.45 x 864.57) #### SRA-series * SRA0 (2551.18 x 3628.35) * SRA1 (1814.17 x 2551.18) * SRA2 (1275.59 x 1814.17) * SRA3 (907.09 x 1275.59) * SRA4 (637.80 x 907.09) The following predefined sizes are based on the common paper sizes used mainly in the United States of America and Canada. The dimensions in brackets are in PostScript points. * EXECUTIVE (521.86 x 756.00) * LEGAL (612.00 x 1008.00) * LETTER (612.00 X 792.00) * TABLOID (792.00 X 1224.00) PDFKit supports also the following paper sizes. The dimensions in brackets are in PostScript points. * 4A0 (4767.89 x 6740.79) * 2A0 (3370.39 x 4767.87) * FOLIO (612.00 X 936.00) ### Setting the page size In order to use the predefined sizes, the name of the size (as named in the lists above) should be passed to either the `PDFDocument` constructor or the `addPage()` function in the `size` property of the `options` object, as shown in the example below, using `A7` as the preferred size. // Passing size to the constructor const doc = new PDFDocument({size: 'A7'}); // Passing size to the addPage function doc.addPage({size: 'A7'}); ### User Unit (PDF 1.6+) The `userUnit` option allows you to scale the physical size of a page without changing the coordinate system. This is useful for creating large format documents like posters or banners that exceed the standard PDF coordinate limit (200 inches or 14400 points). The default value is `1.0`, where 1 unit equals 1/72 inch (1 point). Setting `userUnit: 2.0` means 1 unit equals 2/72 inch, effectively doubling the physical size of the page. // Create a page with 2x physical size doc.addPage({ size: 'A4', userUnit: 2.0 }); // Create a large poster (4x scale) doc.addPage({ size: [612, 792], userUnit: 4.0 }); ================================================ FILE: docs/publish_website.js ================================================ const ghpages = require('gh-pages'); const { argv } = process; const message = argv.length > 2 ? argv[2] : undefined; ghpages.publish( '.', { src: [ 'index.html', 'docs/*.html', 'docs/img/*.png', 'docs/guide.pdf', 'examples/browserify/browser.html', 'examples/browserify/bundle.js', 'examples/kitchen-sink.pdf', ], add: true, message, }, function (err) { if (err) { console.error(err); } }, ); ================================================ FILE: docs/table.md ================================================ # Tables in PDFKit ## The basics PDFKit makes adding tables to documents quite simple, and includes many options to customize the display of the output. ### A simple table Basic tables can be defined without configuration: doc.table({ data: [ ['Column 1', 'Column 2', 'Column 3'], ['One value goes here', 'Another one here', 'OK?'] ] }) or the more verbose way doc.table() .row(['Column 1', 'Column 2', 'Column 3']) .row(['One value goes here', 'Another one here', 'OK?']) ![1]() --- ### Defining column widths Tables allow you to define the widths of columns: * `*` - distributes equally, filling the whole available space (default) * `fixed value` - a fixed width based on the document content Example: doc.table({ columnStyles: [100, "*", 200, "*"], data: [ ["width=100", "star-sized", "width=200", "star-sized"], [ "fixed-width cells have exactly the specified width", { text: "nothing interesting here", textColor: "grey" }, { text: "nothing interesting here", textColor: "grey" }, { text: "nothing interesting here", textColor: "grey" } ], ], }); ![2]() --- ### Defining row heights doc.table({ rowStyles: [20, 50, 70], data: [ ["row 1 with height 20", "column B"], ["row 2 with height 50", "column B"], ["row 3 with height 70", "column B"], ], }); ![3]() With same height: doc.table({ rowStyles: 40, data: [ ["row 1", "column B"], ["row 2", "column B"], ["row 3", "column B"], ], }); ![4]() --- With height from function: doc.table({ rowStyles: (row) => (row + 1) * 25, data: [ ["row 1", "column B"], ["row 2", "column B"], ["row 3", "column B"], ], }); ![5]() --- ### Column/row spans Each cell can set a rowSpan or colSpan doc.table({ columnStyles: [200, "*", "*"], data: [ [{ colSpan: 2, text: "Header with Colspan = 2" }, "Header 3"], ["Header 1", "Header 2", "Header 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], [ { rowSpan: 3, text: "rowspan set to 3\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor", }, "Sample value 2", "Sample value 3", ], ["Sample value 2", "Sample value 3"], ["Sample value 2", "Sample value 3"], [ "Sample value 1", { colSpan: 2, rowSpan: 2, text: "Both:\nrowspan and colspan\ncan be defined at the same time", }, ], ["Sample value 1"], ], }) ![6]() --- ### Styling No borders: doc.table({ rowStyles: { border: false }, data: [ ["Header 1", "Header 2", "Header 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ], }) ![7]() Header line only: doc.table({ rowStyles: (i) => { return i < 1 ? { border: [0, 0, 1, 0] } : { border: false }; }, data: [ ["Header 1", "Header 2", "Header 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ], }) ![8]() --- Light Horizontal lines: doc.table({ rowStyles: (i) => { return i < 1 ? { border: [0, 0, 2, 0], borderColor: "black" } : { border: [0, 0, 1, 0], borderColor: "#aaa" }; }, data: [ ["Header 1", "Header 2", "Header 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ], }) ![9]() --- But you can provide a custom styler as well doc.table({ // Set the style for all cells defaultStyle: { border: 1, borderColor: "gray" }, // Set the style for cells based on their column columnStyles: (i) => { if (i === 0) return { border: { left: 2 }, borderColor: { left: "black" } }; if (i === 2) return { border: { right: 2 }, borderColor: { right: "black" } }; }, // Set the style for cells based on their row rowStyles: (i) => { if (i === 0) return { border: { top: 2 }, borderColor: { top: "black" } }; if (i === 3) return { border: { bottom: 2 }, borderColor: { bottom: "black" } }; }, data: [ ["Header 1", "Header 2", "Header 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ], }) ![10]() --- Zebra style doc.table({ rowStyles: (i) => { if (i % 2 === 0) return { backgroundColor: "#ccc" }; }, data: [ ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ["Sample value 1", "Sample value 2", "Sample value 3"], ], }) ![11]() --- ### Optional border doc.table({ data: [ [ { border: [true, false, false, false], backgroundColor: "#eee", text: "border:\n[true, false, false, false]" }, { border: false, backgroundColor: "#ddd", text: "border:\nfalse" }, { border: true, backgroundColor: "#eee", text: "border:\ntrue" }, ], [ { rowSpan: 3, border: true, backgroundColor: "#eef", text: "rowSpan: 3\n\nborder:\ntrue" }, { border: undefined, backgroundColor: "#eee", text: "border:\nundefined (default)" }, { border: [false, false, false, true], backgroundColor: "#ddd", text: "border:\n[false, false, false, true]" }, ], [ { colSpan: 2, border: true, backgroundColor: "#efe", text: "colSpan: 2\n\nborder:\ntrue" }, ], [ { border: 0, backgroundColor: "#eee", text: "border:\n0 (same as false)" }, { border: [false, true, true, false], backgroundColor: "#ddd", text: "border:\n[false, true, true, false]" }, ], ], }) ![12]() --- doc.table({ defaultStyle: { border: false, width: 60 }, data: [ ["", "column 1", "column 2", "column 3"], [ "row 1", { rowSpan: 3, colSpan: 3, border: true, backgroundColor: "#ccc", text: "rowSpan: 3\ncolSpan: 3\n\nborder:\n[true, true, true, true]", }, ], ["row 2"], ["row 3"], ], }) ![13]() --- When defining multiple styles, the cells follow the precedence: 1. `defaultStyle` 2. `columnStyles` 3. `rowStyles` 4. `cellStyle` so if a table was: doc.table({ defaultStyle: { border: 1 }, columnStyles: { border: { right: 2 } }, rowStyles: { border: { bottom: 3 } }, data: [ [{ border: { left: 4 } }] ] }) The resulting cell would have a style of: { border: { top: 1, // From the default right: 2, // From the column bottom: 3, // From the row left: 4 // From the cell } } Internally, PDFKit keeps track of the current X and Y position of table as it is added to the document. This way, any calls to `text` or `table` will be placed below the table row. doc .text('before') .table({ data: [ ['Column 1', 'Column 2', 'Column 3'], ['One value goes here', 'Another one here', 'OK?'] ] }) .text('after') ![16]() ## Table options - `position` - The position of the table (default `{x: doc.x, y: doc.y}`) - `maxWidth` - The maximum width the table can expand to (defaults to the remaining content width (offset from the tables position)) - `columnStyles` - Column definitions of the table. (default `auto`) - `rowStyles` - Row definitions of the table. (default `*`) - `defaultStyle` - Defaults to apply to every cell - `data` - The data to render (not required, you can call `.row()`). This can be an iterable (async or sync) - `debug` - Whether to show the debug lines for all the cells (default `false`) ## Cell options - `text` - The value, will be cast to a string (`null` and `undefined` are not rendered but the cell is still outlined) - `rowSpan` - How many rows this cell covers, follows the same logic as HTML `rowspan` - `colSpan` - How many columns this cell covers, follows the same logic as HTML `colspan` - `padding` - The padding for the cell (default `0.25em`) - `border` - The border for the cell (default `1pt`) - `borderColor` - The border colors for the cell (default `black`) - `font` - Font options for the cell - `backgroundColor` - Set the background color of the cell - `align` - The alignment of the cell text (default `{x: 'left', y: 'top'}`) - `textStroke` - The text stroke (default `0`) - `textStrokeColor` - Sets the text stroke color of the cells text (default `black`) - `textColor` - Sets the text color of the cells text (default `black`) - `type` - Sets the cell type (for accessibility) (default `TD`) - `textOptions` - Sets any text options you wish to provide (such as rotation) - `debug` - Whether to show the debug lines for the cell (default `false`) ## Column options Extends the [cell options](#cell-options) above with: - `width` - The width of the column (default `*`) - `minWidth` - The minimum width of the column (default `0`) - `maxWidth` - The maximum width of the column (default `Infinity`) ## Row options Extends the [cell options](#cell-options) above with: - `height` - The height of the row (default `auto`) - `minHeight` - The minimum height of the row (default `0`) - `maxHeight` - The maximum height of the row (default `Infinity`) ================================================ FILE: docs/template.pug ================================================ doctype html html head meta(charset='utf-8') title= title link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Source+Code+Pro:400,700|Alegreya:700|Merriweather') link(rel='stylesheet', href='/docs/css/index.css') link(rel='stylesheet', href='/docs/css/github.css') body nav(class='sidebar') ul li a(href='/', class=(/index/.test(url) ? 'selected' : '')) Home li a(href=pages[0].url) Documentation ul each page in pages.slice(1) li a(href=page.url, class=page.title == title ? 'selected' : '') = page.title.replace(/(with|in) PDFKit/, '') - if (page.title == title && headers.length) ul each header in headers li a(href='#' + header.hash)= header.title li a(href='/docs/guide.pdf') PDF Guide li a(href='/examples/kitchen-sink.pdf') Example PDF li a(href='/examples/browserify/browser.html') Interactive Browser Demo li a(href='http://github.com/foliojs/pdfkit') Source Code .main != content nav - if (index > 0) a(href=pages[index - 1].url, class='previous') Previous - if (index < pages.length - 1) a(href=pages[index + 1].url, class='next') Next script(src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js') script(src='/docs/js/scroll.js') script(src='/docs/js/highlight.pack.js') script. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-48340245-1', 'pdfkit.org'); ga('send', 'pageview'); ================================================ FILE: docs/text.md ================================================ # Text in PDFKit ## The basics PDFKit makes adding text to documents quite simple, and includes many options to customize the display of the output. Adding text to a document is as simple as calling the `text` method. doc.text('Hello world!') Internally, PDFKit keeps track of the current X and Y position of text as it is added to the document. This way, subsequent calls to the `text` method will automatically appear as new lines below the previous line. However, you can modify the position of text by passing X and Y coordinates to the `text` method after the text itself. doc.text('Hello world!', 100, 100) If you want to move down or up by lines, just call the `moveDown` or `moveUp` method with the number of lines you'd like to move (1 by default). ## Line wrapping and justification PDFKit includes support for line wrapping out of the box! If no options are given, text is automatically wrapped within the page margins and placed in the document flow below any previous text, or at the top of the page. PDFKit automatically inserts new pages as necessary so you don't have to worry about doing that for long pieces of text. PDFKit can also automatically wrap text into multiple columns. The text will automatically wrap unless you set the `lineBreak` option to `false`. By default it will wrap to the page margin, but the `width` option allows you to set a different width the text should be wrapped to. If you set the `height` option, the text will be clipped to the number of lines that can fit in that height. When line wrapping is enabled, you can choose a text justification. There are four options: `left` (the default), `center`, `right`, and `justify`. They work just as they do in your favorite word processor, but here is an example showing their use in a text box. const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl.'; doc.fontSize(8); doc.text(`This text is left aligned. ${lorem}`, { width: 410, align: 'left' } ); doc.moveDown(); doc.text(`This text is centered. ${lorem}`, { width: 410, align: 'center' } ); doc.moveDown(); doc.text(`This text is right aligned. ${lorem}`, { width: 410, align: 'right' } ); doc.moveDown(); doc.text(`This text is justified. ${lorem}`, { width: 410, align: 'justify' } ); // draw bounding rectangle doc.rect(doc.x, 0, 410, doc.y).stroke(); The output of this example, looks like this: ![2](images/alignments.png) ## Text styling PDFKit has many options for controlling the look of text added to PDF documents, which can be passed to the `text` method. They are enumerated below. * `lineBreak` - set to `false` to disable line wrapping all together * `width` - the width that text should be wrapped to (by default, the page width minus the left and right margin) * `height` - the maximum height that text should be clipped to * `rotation` - the rotation of the text in degrees (by default 0) * `ellipsis` - the character to display at the end of the text when it is too long. Set to `true` to use the default character. * `columns` - the number of columns to flow the text into * `columnGap` - the amount of space between each column (1/4 inch by default) * `indent` - the amount in PDF points (72 per inch) to indent each paragraph of text * `indentAllLines` - wheter to indent all lines of a paragraph (`false` by default - indents only the first line) * `paragraphGap` - the amount of space between each paragraph of text * `lineGap` - the amount of space between each line of text * `wordSpacing` - the amount of space between each word in the text * `characterSpacing` - the amount of space between each character in the text * `horizontalScaling` - ability to scale text horizontally (`100` percent by default) * `fill` - whether to fill the text (`true` by default) * `stroke` - whether to stroke the text * `link` - a URL to link this text to (shortcut to create an annotation) * `goTo` - go to anchor (shortcut to create an annotation) * `destination` - create anchor to this text * `underline` - whether to underline the text * `strike` - whether to strike out the text * `oblique` - whether to slant the text (angle in degrees or `true`) * `baseline` - the vertical alignment of the text with respect to its insertion point (values as [canvas textBaseline](https://www.w3schools.com/tags/canvas_textbaseline.asp)) * `continued` - whether the text segment will be followed immediately by another segment. Useful for changing styling in the middle of a paragraph. * `features` - an array of [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm) to apply. Can also be provided as an object with features as keys and boolean values. If not provided, a set of defaults is used. To deactivate default font features, you have to explicitly set them to false (`{ liga: false }`). When providing an empty array the default font features will still be used. Additionally, the fill and stroke color and opacity methods described in the [vector graphics section](vector.html) are applied to text content as well. * * * Here is an example combining some of the options above, wrapping a piece of text into three columns, in a specified width and height. const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;'; doc.text(lorem, { columns: 3, columnGap: 15, height: 100, width: 465, align: 'justify' }); The output looks like this: ![3]() ## Text measurements If you're working with documents that require precise layout, you may need to know the size of a piece of text. PDFKit has three methods to achieve this: `widthOfString(text, options)` , `heightOfString(text, options)` and `boundsOfString(text, options)/boundsOfString(text, x, y, options)`. All methods use the same options described in the Text styling section, and take into account the eventual line wrapping. However `boundsOfString` factors in text rotations and multi-line wrapped text, effectively producing the bounding box of the text, `{x: number, y: number, width: number, height: number}`. If `x` and `y` are not defined they will default to use `this.x` and `this.y`. ## Lists The `list` method creates a bulleted list. It accepts as arguments an array of strings, and the optional `x`, `y` position. You can create complex multilevel lists by using nested arrays. Lists use the following additional options: * `bulletRadius` * `textIndent` * `bulletIndent` ## Rich Text As mentioned above, PDFKit supports a simple form of rich text via the `continued` option. When set to true, PDFKit will retain the text wrapping state between `text` calls. This way, when you call text again after changing the text styles, the wrapping will continue right where it left off. The options given to the first `text` call are also retained for subsequent calls after a `continued` one, but of course you can override them. In the following example, the `width` option from the first `text` call is retained by the second call. doc.fillColor('green') .text(lorem.slice(0, 500), { width: 465, continued: true }).fillColor('red') .text(lorem.slice(500)); Here is the output: ![4]() To cancel a link in rich text set the `link` option to `null`. doc.fillColor('red') .text(lorem.slice(0, 199), { width: 465, continued: true }) .fillColor('blue') .text(lorem.slice(199, 282), { link: 'http://www.example.com', continued: true }) .fillColor('green') .text(lorem.slice(182, 400), { link: null }); Here is the output: ![5]() ## Fonts The PDF format defines 14 standard fonts that can be used in PDF documents. PDFKit supports each of them out of the box. Besides Symbol and Zapf Dingbats this includes 4 styles (regular, bold, italic/oblique, bold+italic) of Helvetica, Courier, and Times. To switch between standard fonts, call the `font` method with the corresponding Label: * `'Courier'` * `'Courier-Bold'` * `'Courier-Oblique'` * `'Courier-BoldOblique'` * `'Helvetica'` * `'Helvetica-Bold'` * `'Helvetica-Oblique'` * `'Helvetica-BoldOblique'` * `'Symbol'` * `'Times-Roman'` * `'Times-Bold'` * `'Times-Italic'` * `'Times-BoldItalic'` * `'ZapfDingbats'` The PDF format also allows fonts to be embedded right in the document. PDFKit supports embedding TrueType (`.ttf`), OpenType (`.otf`), WOFF, WOFF2, TrueType Collection (`.ttc`), and Datafork TrueType (`.dfont`) fonts. To change the font used to render text, just call the `font` method. If you are using a standard PDF font, just pass the name to the `font` method. Otherwise, pass the path to the font file, or a `Buffer` containing the font data. If the font is a collection font (`.ttc` and `.dfont` files), meaning that it contains multiple styles in the same file, you should pass the name of the style to be extracted from the collection. Here is an example showing how to set the font in each case. // Set the font size doc.fontSize(18); // Using a standard PDF font doc.font('Times-Roman') .text('Hello from Times Roman!') .moveDown(0.5); // Using a TrueType font (.ttf) doc.font('fonts/GoodDog.ttf') .text('This is Good Dog!') .moveDown(0.5); // Using a collection font (.ttc or .dfont) doc.font('fonts/Chalkboard.ttc', 'Chalkboard-Bold') .text('This is Chalkboard, not Comic Sans.'); The output of this example looks like this: ![6](images/fonts.png) Another nice feature of the PDFKit font support, is the ability to register a font file under a name for use later rather than entering the path to the font every time you want to use it. // Register a font doc.registerFont('Heading Font', 'fonts/Chalkboard.ttc', 'Chalkboard-Bold'); // Use the font later doc.font('Heading Font') .text('This is a heading.'); That's about all there is too it for text in PDFKit. Let's move on now to images. ================================================ FILE: docs/vector.md ================================================ # Vector Graphics in PDFKit ## An introduction to vector graphics Unlike images which are defined by pixels, vector graphics are defined through a series of drawing commands. This makes vector graphics scalable to any size without a reduction in quality (pixelization). The PDF format was designed with vector graphics in mind, so creating vector drawings is very easy. The PDFKit vector graphics APIs are very similar to that of the HTML5 canvas element, so if you are familiar at all with that API, you will find PDFKit easy to pick up. ### Creating basic shapes Shapes are defined by a series of lines and curves. `lineTo`, `bezierCurveTo` and `quadraticCurveTo` all draw from the current point (which you can set with `moveTo`) to the specified point (always the last two arguments). Bezier curves use two control points and quadratic curves use just one. Here is an example that illustrates defining a path. doc.moveTo(0, 20) // set the current point .lineTo(100, 160) // draw a line .quadraticCurveTo(130, 200, 150, 120) // draw a quadratic curve .bezierCurveTo(190, -40, 200, 200, 300, 150) // draw a bezier curve .lineTo(400, 90) // draw another line .stroke(); // stroke the path The output of this example looks like this: ![0](images/path.png "170") One thing to notice about this example is the use of method chaining. All methods in PDFKit are chainable, meaning that you can call one method right after the other without referencing the `doc` variable again. Of course, this is an option, so if you don't like how the code looks when chained, you don't have to write it that way. ## SVG paths PDFKit includes an SVG path parser, so you can include paths written in the SVG path syntax in your PDF documents. This makes it simple to include vector graphics elements produced in many popular editors such as Inkscape or Adobe Illustrator. The previous example could also be written using the SVG path syntax like this. doc.path('M 0,20 L 100,160 Q 130,200 150,120 C 190,-40 200,200 300,150 L 400,90') .stroke() ![1](images/path.png "170") The PDFKit SVG parser supports all of the command types supported by SVG, so any valid SVG path you throw at it should work as expected. ## Shape helpers PDFKit also includes some helpers that make defining common shapes much easier. Here is a list of the helpers. * `rect(x, y, width, height)` * `roundedRect(x, y, width, height, cornerRadius)` * `ellipse(centerX, centerY, radiusX, radiusY = radiusX)` * `circle(centerX, centerY, radius)` * `polygon(points...)` The last one, `polygon`, allows you to pass in a list of points (arrays of x,y pairs), and it will create the shape by moving to the first point, and then drawing lines to each consecutive point. Here is how you'd draw a triangle with the polygon helper. doc.polygon([100, 0], [50, 100], [150, 100]); doc.stroke(); The output of this example looks like this: ![2](images/triangle.png "100") ## Fill and stroke styles So far we have only been stroking our paths, but you can also fill them with the `fill` method, and both fill and stroke the same path with the `fillAndStroke` method. Note that calling `fill` and then `stroke` consecutively will not work because of a limitation in the PDF spec. Use the `fillAndStroke` method if you want to accomplish both operations on the same path. In order to make our drawings interesting, we really need to give them some style. PDFKit has many methods designed to do just that. * `lineWidth` * `lineCap` * `lineJoin` * `miterLimit` * `dash` * `fillColor` * `strokeColor` * `opacity` * `fillOpacity` * `strokeOpacity` Some of these are pretty self explanatory, but let's go through a few of them. ## Line cap and line join The `lineCap` and `lineJoin` properties accept constants describing what they should do. This is best illustrated by an example. // these examples are easier to see with a large line width doc.lineWidth(25); // line cap settings doc.lineCap('butt') .moveTo(50, 20) .lineTo(100, 20) .stroke(); doc.lineCap('round') .moveTo(150, 20) .lineTo(200, 20) .stroke(); // square line cap shown with a circle instead of a line so you can see it doc.lineCap('square') .moveTo(250, 20) .circle(275, 30, 15) .stroke(); // line join settings doc.lineJoin('miter') .rect(50, 100, 50, 50) .stroke(); doc.lineJoin('round') .rect(150, 100, 50, 50) .stroke(); doc.lineJoin('bevel') .rect(250, 100, 50, 50) .stroke(); The output of this example looks like this. ![3](images/line_styles.png "220") ## Dashed lines The `dash` method allows you to create non-continuous dashed lines. It takes a length specifying how long each dash should be, as well as an optional hash describing the additional properties `space` and `phase`. Lengths must be positive numbers; `dash` will throw if passed invalid lengths. The `space` option defines the length of the space between each dash, and the `phase` option defines the starting point of the sequence of dashes. By default the `space` attribute is equal to the `length` and the `phase` attribute is set to `0`. You can use the `undash` method to make the line solid again. The following example draws a circle with a dashed line where the space between the dashes is double the length of each dash. doc.circle(100, 50, 50) .dash(5, {space: 10}) .stroke(); The output of this example looks like this: ![4](images/dash.png "100") ## Color What is a drawing without color? PDFKit makes it simple to set the fill and stroke color and opacity. You can pass an array specifying an RGB or CMYK color, a hex color string, or use any of the named CSS colors. The `fillColor` and `strokeColor` methods accept an optional second argument as a shortcut for setting the `fillOpacity` and `strokeOpacity`. Finally, the `opacity` method is a convenience method that sets both the fill and stroke opacity to the same value. The `fill` and `stroke` methods also accept a color as an argument so that you don't have to call `fillColor` or `strokeColor` beforehand. The `fillAndStroke` method accepts both fill and stroke colors as arguments. doc.circle(100, 50, 50) .lineWidth(3) .fillOpacity(0.8) .fillAndStroke("red", "#900") This example produces the following output: ![5](images/color.png "100") ## Gradients PDFKit also supports gradient fills. Gradients can be used just like color fills, and are applied with the same methods (e.g. `fillColor`, or just `fill`). Before you can apply a gradient with these methods, however, you must create a gradient object. There are two types of gradients: linear and radial. They are created by the `linearGradient` and `radialGradient` methods. Their function signatures are listed below: * `linearGradient(x1, y1, x2, y2)` - `x1,y1` is the start point, `x2,y2` is the end point * `radialGradient(x1, y1, r1, x2, y2, r2)` - `r1` is the inner radius, `r2` is the outer radius Once you have a gradient object, you need to create color stops at points along that gradient. Stops are defined at percentage values (0 to 1), and take a color value (any usable by the fillColor method), and an optional opacity. You can see both linear and radial gradients in the following example: // Create a linear gradient let grad = doc.linearGradient(50, 0, 150, 100); grad.stop(0, 'green') .stop(1, 'red'); doc.rect(50, 0, 100, 100); doc.fill(grad); // Create a radial gradient grad = doc.radialGradient(300, 50, 0, 300, 50, 50); grad.stop(0, 'orange', 0) .stop(1, 'orange', 1); doc.circle(300, 50, 50); doc.fill(grad); Here is the output from the this example: ![6]() ## Winding rules Winding rules define how a path is filled and are best illustrated by an example. The winding rule is an optional attribute to the `fill` and `fillAndStroke` methods, and there are two values to choose from: `non-zero` and `even-odd`. // Initial setup doc.fillColor('red') .translate(-100, -50) .scale(0.8); // Draw the path with the non-zero winding rule doc.path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('non-zero'); // Draw the path with the even-odd winding rule doc.translate(280, 0) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('even-odd'); You'll notice that I used the `scale` and `translate` transformations in this example. We'll cover those in a minute. The output of this example, with some added labels, is below. ![7](images/winding_rules.png "200") ## Saving and restoring the graphics stack Once you start producing more complex vector drawings, you will want to be able to save and restore the state of the graphics context. The graphics state is basically a snapshot of all the styles and transformations (see below) that have been applied, and many states can be created and stored on a stack. Every time the `save` method is called, the current graphics state is pushed onto the stack, and when you call `restore`, the last state on the stack is applied to the context again. This way, you can save the state, change some styles, and then restore it to how it was before you made those changes. ### Transformations Transformations allow you to modify the look of a drawing without modifying the drawing itself. There are three types of transformations available, as well as a method for setting the transformation matrix yourself. They are `translate`, `rotate` and `scale`. The `translate` transformation takes two arguments, `x` and `y`, and effectively moves the origin of the page which is (0, 0) by default, to the left and right `x` and `y` units. The `rotate` transformation takes an angle and optionally, an object with an `origin` property. It rotates the document `angle` degrees around the passed `origin` or by default, around the origin (top left corner) of the page. The `scale` transformation takes a scale factor and an optional `origin` passed in an options hash as with the `rotate` transformation. It is used to increase or decrease the size of the units in the drawing, or change its size. For example, applying a scale of `0.5` would make the drawing appear at half size, and a scale of `2` would make it appear twice as large. If you are feeling particularly smart, you can modify the transformation matrix yourself using the `transform` method. We used the `scale` and `translate` transformations above, so here is an example of using the `rotate` transformation. We'll set the origin of the rotation to the center of the rectangle. doc.rotate(20, {origin: [150, 70]}) .rect(100, 20, 100, 100) .fill('gray'); This example produces the following effect. ![8](images/rotate.png "200") ## Clipping A clipping path is a path defined using the normal path creation methods, but instead of being filled or stroked, it becomes a mask that hides unwanted parts of the drawing. Everything falling inside the clipping path after it is created is visible, and everything outside the path is invisible. Here is an example that clips a checkerboard pattern to the shape of a circle. // Create a clipping path doc.circle(100, 100, 100) .clip(); // Draw a checkerboard pattern for (let row = 0; row < 10; row++) { for (let col = 0; col < 10; col++) { const color = (col % 2) - (row % 2) ? '#eee' : '#4183C4'; doc.rect(row * 20, col * 20, 20, 20) .fill(color); } } The result of this example is the following: ![9](images/clipping.png "200") If you want to "unclip", you can use the `save` method before the clipping, and then use `restore` to retrieve access to the whole page. That's it for vector graphics in PDFKit. Now let's move on to learning about PDFKit's text support! ================================================ FILE: docs/you_made_it.md ================================================ # You made it! That's all there is to creating PDF documents in PDFKit. It's really quite simple to create beautiful multi-page printable documents using Node.js! This guide was generated from Markdown files using a PDFKit generation script. The examples are actually run to generate the output shown inline. The script generates both the website and the PDF guide, and can be found [on Github](https://github.com/foliojs/pdfkit/blob/master/docs/generate.js). Check it out if you want to see an example of a slightly more complicated renderer using a parser for Markdown and a syntax highlighter. If you have any questions about what you've learned in this guide, please don't hesitate to [ask the author](https://twitter.com/devongovett) or post an issue on [Github](https://github.com/foliojs/pdfkit/issues). Enjoy! ================================================ FILE: eslint.config.mjs ================================================ import globals from "globals"; import js from "@eslint/js"; export default [ js.configs.recommended, { languageOptions: { globals: globals.node, sourceType: "module", }, }, { files: ["tests/**/*.js"], languageOptions: { globals: { ...globals.jest, }, } }, ]; ================================================ FILE: examples/accessible-links.js ================================================ var PDFDocument = require('../'); var fs = require('fs'); // Create a new PDFDocument var doc = new PDFDocument({ autoFirstPage: true, bufferPages: true, pdfVersion: '1.5', // @ts-ignore PDF/UA needs to be enforced for PAC accessibility checker subset: 'PDF/UA', tagged: true, displayTitle: true, lang: 'en-US', fontSize: 12, }); doc.pipe(fs.createWriteStream('accessible-links.pdf')); // Set some meta data doc.info['Title'] = 'Test Document'; doc.info['Author'] = 'Devon Govett'; // Initialise document logical structure var struct = doc.struct('Document'); doc.addStructure(struct); // Register a font name for use later doc.registerFont('Palatino', 'fonts/PalatinoBold.ttf'); // Set the font and draw some text struct.add( doc.struct('P', () => { doc .font('Palatino') .fontSize(25) .text('Some text with an embedded font! ', 100, 100); }), ); // Add another page doc.addPage(); // Add some text with annotations var linkSection = doc.struct('Sect'); struct.add(linkSection); var paragraph = doc.struct('P'); linkSection.add(paragraph); paragraph.add( doc.struct('Span', () => { doc .font('Palatino') .fillColor('black') .text('This is some text before ', 100, 100, { continued: true, }); }), ); paragraph.add( doc.struct( 'Link', { alt: 'Here is a link! ', }, () => { doc.fillColor('blue').text('Here is a link!', { link: 'http://google.com/', underline: true, continued: true, }); }, ), ); paragraph.add( doc.struct('Span', () => { doc.fillColor('black').text(' and this is text after the link.'); }), ); paragraph.end(); linkSection.end(); // End and flush the document doc.end(); ================================================ FILE: examples/attachment.js ================================================ const PDFDocument = require('../'); const fs = require('fs'); const path = require('path'); const doc = new PDFDocument({ pdfVersion: '1.4' }); doc.pipe(fs.createWriteStream('attachment.pdf')); doc.info['Title'] = 'Attachment Test'; // add an embedded file from file system doc.file(path.join(__dirname, 'images', 'test.png'), { name: 'test.png', type: 'image/png', description: 'this is a test image' }); // add some text doc.text(`This PDF contains three text files: Two file attachment annotations and one embedded file. If you can see them (not every PDF viewer supports embedded files), hover over the paperclip to see its description!`); // add a file attachment annotation // first, declare the file to be attached const file = { src: Buffer.from('buffered input!'), name: 'embedded.txt', creationDate: new Date(2020, 3, 1) }; // then, add the annotation doc.fileAnnotation(100, 150, 10, doc.currentLineHeight(), file); // declared files can be reused, but they will show up separately in the PDF Viewer's attachments panel // we're going to use the paperclip icon for this one together with a short description // be aware that some PDF Viewers may not render the icon correctly — or not at all doc.fileAnnotation(150, 150, 10, doc.currentLineHeight(), file, { Name: 'Paperclip', Contents: 'Paperclip attachment' }); doc.end(); ================================================ FILE: examples/browserify/browser.html ================================================

PDFKit Browser Demo

Bundled with Browserify

Website | Github

================================================ FILE: examples/browserify/browser.js ================================================ var PDFDocument = require('../..'); var blobStream = require('blob-stream'); var ace = require('brace'); require('brace/mode/javascript'); require('brace/theme/monokai'); var lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;\nMauris at ante tellus. Vestibulum a metus lectus. Praesent tempor purus a lacus blandit eget gravida ante hendrerit. Cras et eros metus. Sed commodo malesuada eros, vitae interdum augue semper quis. Fusce id magna nunc. Curabitur sollicitudin placerat semper. Cras et mi neque, a dignissim risus. Nulla venenatis porta lacus, vel rhoncus lectus tempor vitae. Duis sagittis venenatis rutrum. Curabitur tempor massa tortor.'; function makePDF(PDFDocument, blobStream, lorem, iframe) { // create a document and pipe to a blob var doc = new PDFDocument(); var stream = doc.pipe(blobStream()); // draw some text doc.fontSize(25).text('Here is some vector graphics...', 100, 80); // some vector graphics doc .save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill('#FF3300'); doc.circle(280, 200, 50).fill('#6600FF'); // an SVG path doc .scale(0.6) .translate(470, 130) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('red', 'even-odd') .restore(); doc.save(); // a gradient fill var gradient = doc .linearGradient(100, 300, 200, 300) .stop(0, 'green') .stop(0.5, 'red') .stop(1, 'green'); doc.rect(100, 300, 100, 100).fill(gradient); // stroke & fill uncolored tiling pattern var stripe45d = doc.pattern( [1, 1, 4, 4], 3, 3, '1 w 0 1 m 4 5 l s 2 0 m 5 3 l s' ); doc.circle(280, 350, 50).fill([stripe45d, 'blue']); doc .rect(380, 300, 100, 100) .fillColor('lime') .strokeColor([stripe45d, 'orange']) .lineWidth(5) .fillAndStroke(); doc.restore(); // and some justified text wrapped into columns doc .text('And here is some wrapped text...', 100, 450) .font('Times-Roman', 13) .moveDown() .text(lorem, { width: 412, align: 'justify', indent: 30, columns: 2, height: 300, ellipsis: true }); // end and display the document in the iframe to the right doc.end(); stream.on('finish', function() { iframe.src = stream.toBlobURL('application/pdf'); }); } var editor = ace.edit('editor'); editor.setTheme('ace/theme/monokai'); editor.getSession().setMode('ace/mode/javascript'); editor.setValue( makePDF .toString() .split('\n') .slice(1, -1) .join('\n') .replace(/^ /gm, '') ); editor .getSession() .getSelection() .clearSelection(); var iframe = document.querySelector('iframe'); makePDF(PDFDocument, blobStream, lorem, iframe); let debounceTimeout; editor.getSession().on('change', function() { try { if (debounceTimeout) { clearTimeout(debounceTimeout); } var fn = new Function( 'PDFDocument', 'blobStream', 'lorem', 'iframe', editor.getValue() ); debounceTimeout = setTimeout(() => { fn(PDFDocument, blobStream, lorem, iframe); debounceTimeout = undefined; }, 100); } catch (e) { console.log(e); } }); ================================================ FILE: examples/form.js ================================================ var PDFDocument = require('../'); var fs = require('fs'); // Create a new PDFDocument var doc = new PDFDocument(); doc.pipe(fs.createWriteStream('form.pdf')); // Set some meta data doc.info['Title'] = 'Test Form Document'; doc.info['Author'] = 'test-acroform.js'; doc.font('Helvetica'); // establishes the default font for forms doc.initForm(); let rootField = doc.formField('rootField'); doc.font('Courier'); let child1Field = doc.formField('child1Field', { parent: rootField }); doc.font('Helvetica'); let child2Field = doc.formField('child2Field', { parent: rootField }); let y = 10; doc.formText('leaf1', 10, y, 200, 20, { parent: child1Field, value: '1999-12-31', format: { type: 'date', param: 'yyyy-mm-dd' }, align: 'center' }); y += 30; opts = { parent: child1Field, value: 32.98, format: { type: 'number', nDec: 2, currency: '$', currencyPrepend: true }, align: 'right' }; doc.formText('dollar', 10, y, 200, 20, opts); y += 30; doc.formText('leaf2', 10, y, 200, 40, { parent: child1Field, multiline: true, align: 'right' }); y += 50; doc.formText('leaf3', 10, y, 200, 80, { parent: child2Field, multiline: true }); y += 90; var opts = { backgroundColor: 'yellow', label: 'Test Button' }; doc.formPushButton('btn1', 10, y, 100, 30, opts); y += 40; opts = { borderColor: 'black', select: ['Select Option', 'github', 'bitbucket', 'gitlab'], value: 'Select Option', defaultValue: 'Select Option', align: 'center', edit: true }; doc.formCombo('ch1', 10, y, 100, 20, opts); y += 30; opts = { borderColor: '#808080', select: ['github', 'bitbucket', 'gitlab', 'sourcesafe', 'perforce'], sort: true }; doc.formList('ch2', 10, y, 100, 45, opts); doc.end(); ================================================ FILE: examples/kitchen-sink-accessible.js ================================================ var PDFDocument = require('../'); var tiger = require('./tiger'); var fs = require('fs'); // Create a new PDFDocument var doc = new PDFDocument({ pdfVersion: '1.5', lang: 'en-US', tagged: true, displayTitle: true, // @ts-ignore PDF/UA needs to be enforced for PAC accessibility checker subset: 'PDF/UA', }); doc.pipe(fs.createWriteStream('kitchen-sink-accessible.pdf')); // Set some meta data doc.info['Title'] = 'Test Document'; doc.info['Author'] = 'Devon Govett'; // Initialise document logical structure var struct = doc.struct('Document'); doc.addStructure(struct); // Register a font name for use later doc.registerFont('Palatino', 'fonts/PalatinoBold.ttf'); // Set the font and draw some text struct.add( doc.struct('P', () => { doc .font('Palatino') .fontSize(25) .text('Some text with an embedded font! ', 100, 100); }) ); // Embed some images var imageSection = doc.struct('Sect'); struct.add(imageSection); imageSection.add( doc.struct('H1', () => { doc.fontSize(18).text('PNG and JPEG images: '); }) ); imageSection.add( doc.struct( 'Figure', { alt: 'Promotional image of an Apple laptop. ' }, () => { doc.image('images/test.png', 100, 160, { width: 412 }); } ) ); imageSection.add( doc.struct( 'Figure', { alt: 'Photograph of a path flanked by blossoming trees with surrounding hedges. ' }, () => { doc.image('images/test.jpeg', 190, 400, { height: 300 }); } ) ); imageSection.end(); // Add another page doc.addPage(); // Draw a triangle, a circle and a star var vectorSection = doc.struct('Sect'); struct.add(vectorSection); vectorSection.add( doc.struct('H1', () => { doc.fontSize(25).text('Here are some vector graphics... ', 100, 100); }) ); vectorSection.add( doc.struct( 'Figure', { alt: 'Orange triangle. ' }, () => { doc .save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill('#FF8800'); } ) ); vectorSection.add( doc.struct( 'Figure', { alt: 'Purple circle. ' }, () => { doc.circle(280, 200, 50).fill('#7722FF'); } ) ); vectorSection.add( doc.struct( 'Figure', { alt: 'Red star with hollow center. ' }, () => { doc .scale(0.6) .translate(470, 140) // render an SVG path .path('M 250,75 L 323,301 131,161 369,161 177,301 z') // fill using the even-odd winding rule .fill('red', 'even-odd') .restore(); } ) ); vectorSection.end(); // Draw some text wrapped to 412 points wide, split into paragraphs var wrappedSection = doc.struct('Sect'); struct.add(wrappedSection); wrappedSection.add( doc.struct('H1', () => { doc .text('And here is some wrapped text... ', 100, 300) .font('Helvetica', 13) // move down 1 line .moveDown(); }) ); var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;\nMauris at ante tellus. Vestibulum a metus lectus. Praesent tempor purus a lacus blandit eget gravida ante hendrerit. Cras et eros metus. Sed commodo malesuada eros, vitae interdum augue semper quis. Fusce id magna nunc. Curabitur sollicitudin placerat semper. Cras et mi neque, a dignissim risus. Nulla venenatis porta lacus, vel rhoncus lectus tempor vitae. Duis sagittis venenatis rutrum. Curabitur tempor massa tortor.'; doc.text(loremIpsum, { width: 412, align: 'justify', indent: 30, paragraphGap: 5, structParent: wrappedSection }); wrappedSection.end(); // Add another page doc.addPage(); // Set the font back and draw tiger line art based on an SVG var tigerSection = doc.struct('Sect'); struct.add(tigerSection); tigerSection.add( doc.struct('H1', () => { doc .font('Palatino', 25) .text('Rendering some SVG paths...', 100, 100) .translate(220, 300); }) ); tigerSection.add( doc.struct( 'Figure', { alt: 'Tiger line art. ' }, () => { var i, len, part; // Render each path that makes up the tiger image for (i = 0, len = tiger.length; i < len; i++) { part = tiger[i]; doc.save(); doc.path(part.path); // render an SVG path if (part['stroke-width']) { doc.lineWidth(part['stroke-width']); } if (part.fill !== 'none' && part.stroke !== 'none') { doc.fillAndStroke(part.fill, part.stroke); } else { if (part.fill !== 'none') { doc.fill(part.fill); } if (part.stroke !== 'none') { doc.stroke(part.stroke); } } doc.restore(); } } ) ); tigerSection.end(); // Add another page doc.addPage(); // Add some text with annotations var linkSection = doc.struct('Sect'); struct.add(linkSection); linkSection.add( doc.struct( 'Link', { alt: 'Here is a link! ' }, () => { doc.fillColor('blue').text('Here is a link!', 100, 100, { link: 'http://google.com/', underline: true }); } ) ); linkSection.end(); // Add a list with a font loaded from a TrueType collection file var listSection = doc.struct('Sect'); struct.add(listSection); var list = doc.struct('L'); listSection.add(list); doc .fillColor('#000') .font('fonts/Chalkboard.ttc', 'Chalkboard', 16) .list(['One, ', 'Two, ', 'Three. '], 100, 150, { structParent: list }); listSection.end(); // This recursively ends the list as well // End and flush the document doc.end(); ================================================ FILE: examples/kitchen-sink.js ================================================ var PDFDocument = require('../'); var tiger = require('./tiger'); var fs = require('fs'); // Create a new PDFDocument var doc = new PDFDocument(); doc.pipe(fs.createWriteStream('kitchen-sink.pdf')); // Set some meta data doc.info['Title'] = 'Test Document'; doc.info['Author'] = 'Devon Govett'; // Register a font name for use later doc.registerFont('Palatino', 'fonts/PalatinoBold.ttf'); // Set the font, draw some text, and embed an image doc .font('Palatino') .fontSize(25) .text('Some text with an embedded font!', 100, 100) .fontSize(18) .text('PNG and JPEG images:') .image('images/test.png', 100, 160, { width: 412 }) .image('images/test.jpeg', 190, 400, { height: 300 }); // Add another page doc .addPage() .fontSize(25) .text('Here is some vector graphics...', 100, 100); // Draw a triangle and a circle doc .save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill('#FF3300'); doc.circle(280, 200, 50).fill('#6600FF'); doc .scale(0.6) .translate(470, -380) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('red', 'even-odd') .restore(); // render an SVG path // fill using the even-odd winding rule var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;\nMauris at ante tellus. Vestibulum a metus lectus. Praesent tempor purus a lacus blandit eget gravida ante hendrerit. Cras et eros metus. Sed commodo malesuada eros, vitae interdum augue semper quis. Fusce id magna nunc. Curabitur sollicitudin placerat semper. Cras et mi neque, a dignissim risus. Nulla venenatis porta lacus, vel rhoncus lectus tempor vitae. Duis sagittis venenatis rutrum. Curabitur tempor massa tortor.'; // Draw some text wrapped to 412 points wide doc .text('And here is some wrapped text...', 100, 300) .font('Helvetica', 13) .moveDown() .text(loremIpsum, { // move down 1 line width: 412, align: 'justify', indent: 30, paragraphGap: 5 }); // Add another page, and set the font back doc .addPage() .font('Palatino', 25) .text('Rendering some SVG paths...', 100, 100) .translate(220, 300); var i, len, part; // Render each path that makes up the tiger image for (i = 0, len = tiger.length; i < len; i++) { part = tiger[i]; doc.save(); doc.path(part.path); // render an SVG path if (part['stroke-width']) { doc.lineWidth(part['stroke-width']); } if (part.fill !== 'none' && part.stroke !== 'none') { doc.fillAndStroke(part.fill, part.stroke); } else { if (part.fill !== 'none') { doc.fill(part.fill); } if (part.stroke !== 'none') { doc.stroke(part.stroke); } } doc.restore(); } // Add some text with annotations doc .addPage() .fillColor('blue') .text('Here is a link!', 100, 100, { link: 'http://google.com/', underline: true }); // Add a list with a font loaded from a TrueType collection file doc .fillColor('#000') .font('fonts/Chalkboard.ttc', 'Chalkboard', 16) .list(['One', 'Two', 'Three'], 100, 150); // Create text with a spot color doc.addSpotColor('PANTONE185C', 0, 100, 78, 9) doc.moveDown() .fillColor('PANTONE185C') .text('This text uses spot color!'); doc.moveDown(); doc .font('Helvetica') .fillColor('#000') .text('Horizontal scaling support:'); doc.moveDown(); doc .text(loremIpsum, { height: 100, width: 300, align: 'justify', }); doc .text(loremIpsum, { height: 100, width: 300, align: 'justify', horizontalScaling: 75 }); doc .text(loremIpsum, { height: 100, width: 300, align: 'justify', horizontalScaling: 130 }); doc.end(); ================================================ FILE: examples/png.js ================================================ const PDFDocument = require('..'); const fs = require('fs'); const doc = new PDFDocument(); doc.pipe(fs.createWriteStream('png.pdf')); // Set the background color to highlight the transparency doc.fillColor('lightblue'); doc.rect(0, 0, doc.page.width, doc.page.height).fill(); doc.fillColor('black'); doc.text('PNG with transparency (palette 8bit):', 60, 50); doc.image('../tests/images/pngsuite-palette-transparent-white.png', 60, 64); doc.text('PNG with transparency (palette 1bit):', 60, 100); doc.image('../tests/images/pallete-transparent-white-1bit.png', 60, 114); doc.end(); ================================================ FILE: examples/text-link.js ================================================ var fs = require('fs'); var PDFDocument = require('../'); var doc = new PDFDocument({ bufferPages: true }); doc.pipe(fs.createWriteStream('text-link.pdf')); doc.addPage(); doc.addPage(); doc.switchToPage(0); doc.text('First Page', { paragraphGap: 4 }); doc.text('Click here to go to Second Page', { link: 1, paragraphGap: 4 }); doc .text('Continued text ', { continued: true }) .text('with a link inside', { continued: true, link: 'http://pdfkit.org', underline: true }) .text(' and remaining text', { continued: false, link: null, underline: false }); doc.switchToPage(1); doc.text('Go To First Page', { link: 0 }); doc.text('Link to google', { link: 'https://www.google.com/' }); doc.end(); ================================================ FILE: examples/tiger.js ================================================ /* * From Raphael.js demos - http://raphaeljs.com/tiger.js */ module.exports = [ { type: 'path', path: 'M-122.304 84.285C-122.304 84.285 -122.203 86.179 -123.027 86.16C-123.851 86.141 -140.305 38.066 -160.833 40.309C-160.833 40.309 -143.05 32.956 -122.304 84.285z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-118.774 81.262C-118.774 81.262 -119.323 83.078 -120.092 82.779C-120.86 82.481 -119.977 31.675 -140.043 26.801C-140.043 26.801 -120.82 25.937 -118.774 81.262z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-91.284 123.59C-91.284 123.59 -89.648 124.55 -90.118 125.227C-90.589 125.904 -139.763 113.102 -149.218 131.459C-149.218 131.459 -145.539 112.572 -91.284 123.59z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-94.093 133.801C-94.093 133.801 -92.237 134.197 -92.471 134.988C-92.704 135.779 -143.407 139.121 -146.597 159.522C-146.597 159.522 -149.055 140.437 -94.093 133.801z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-98.304 128.276C-98.304 128.276 -96.526 128.939 -96.872 129.687C-97.218 130.435 -147.866 126.346 -153.998 146.064C-153.998 146.064 -153.646 126.825 -98.304 128.276z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-109.009 110.072C-109.009 110.072 -107.701 111.446 -108.34 111.967C-108.979 112.488 -152.722 86.634 -166.869 101.676C-166.869 101.676 -158.128 84.533 -109.009 110.072z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-116.554 114.263C-116.554 114.263 -115.098 115.48 -115.674 116.071C-116.25 116.661 -162.638 95.922 -174.992 112.469C-174.992 112.469 -168.247 94.447 -116.554 114.263z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-119.154 118.335C-119.154 118.335 -117.546 119.343 -118.036 120.006C-118.526 120.669 -167.308 106.446 -177.291 124.522C-177.291 124.522 -173.066 105.749 -119.154 118.335z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-108.42 118.949C-108.42 118.949 -107.298 120.48 -107.999 120.915C-108.7 121.35 -148.769 90.102 -164.727 103.207C-164.727 103.207 -153.862 87.326 -108.42 118.949z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-128.2 90C-128.2 90 -127.6 91.8 -128.4 92C-129.2 92.2 -157.8 50.2 -177.001 57.8C-177.001 57.8 -161.8 46 -128.2 90z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-127.505 96.979C-127.505 96.979 -126.53 98.608 -127.269 98.975C-128.007 99.343 -164.992 64.499 -182.101 76.061C-182.101 76.061 -169.804 61.261 -127.505 96.979z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-127.62 101.349C-127.62 101.349 -126.498 102.88 -127.199 103.315C-127.9 103.749 -167.969 72.502 -183.927 85.607C-183.927 85.607 -173.062 69.726 -127.62 101.349z', 'stroke-width': '0.172', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-129.83 103.065C-129.327 109.113 -128.339 115.682 -126.6 118.801C-126.6 118.801 -130.2 131.201 -121.4 144.401C-121.4 144.401 -121.8 151.601 -120.2 154.801C-120.2 154.801 -116.2 163.201 -111.4 164.001C-107.516 164.648 -98.793 167.717 -88.932 169.121C-88.932 169.121 -71.8 183.201 -75 196.001C-75 196.001 -75.4 212.401 -79 214.001C-79 214.001 -67.4 202.801 -77 219.601L-81.4 238.401C-81.4 238.401 -55.8 216.801 -71.4 235.201L-81.4 261.201C-81.4 261.201 -61.8 242.801 -69 251.201L-72.2 260.001C-72.2 260.001 -29 232.801 -59.8 262.401C-59.8 262.401 -51.8 258.801 -47.4 261.601C-47.4 261.601 -40.6 260.401 -41.4 262.001C-41.4 262.001 -62.2 272.401 -65.8 290.801C-65.8 290.801 -57.4 280.801 -60.6 291.601L-60.2 303.201C-60.2 303.201 -56.2 281.601 -56.6 319.201C-56.6 319.201 -37.4 301.201 -49 322.001L-49 338.801C-49 338.801 -33.8 322.401 -40.2 335.201C-40.2 335.201 -30.2 326.401 -34.2 341.601C-34.2 341.601 -35 352.001 -30.6 340.801C-30.6 340.801 -14.6 310.201 -20.6 336.401C-20.6 336.401 -21.4 355.601 -16.6 340.801C-16.6 340.801 -16.2 351.201 -7 358.401C-7 358.401 -8.2 307.601 4.6 343.601L8.6 360.001C8.6 360.001 11.4 350.801 11 345.601C11 345.601 25.8 329.201 19 353.601C19 353.601 34.2 330.801 31 344.001C31 344.001 23.4 360.001 25 364.801C25 364.801 41.8 330.001 43 328.401C43 328.401 41 370.802 51.8 334.801C51.8 334.801 57.4 346.801 54.6 351.201C54.6 351.201 62.6 343.201 61.8 340.001C61.8 340.001 66.4 331.801 69.2 345.401C69.2 345.401 71 354.801 72.6 351.601C72.6 351.601 76.6 375.602 77.8 352.801C77.8 352.801 79.4 339.201 72.2 327.601C72.2 327.601 73 324.401 70.2 320.401C70.2 320.401 83.8 342.001 76.6 313.201C76.6 313.201 87.801 321.201 89.001 321.201C89.001 321.201 75.4 298.001 84.2 302.801C84.2 302.801 79 292.401 97.001 304.401C97.001 304.401 81 288.401 98.601 298.001C98.601 298.001 106.601 304.401 99.001 294.401C99.001 294.401 84.6 278.401 106.601 296.401C106.601 296.401 118.201 312.801 119.001 315.601C119.001 315.601 109.001 286.401 104.601 283.601C104.601 283.601 113.001 247.201 154.201 262.801C154.201 262.801 161.001 280.001 165.401 261.601C165.401 261.601 178.201 255.201 189.401 282.801C189.401 282.801 193.401 269.201 192.601 266.401C192.601 266.401 199.401 267.601 198.601 266.401C198.601 266.401 211.801 270.801 213.001 270.001C213.001 270.001 219.801 276.801 220.201 273.201C220.201 273.201 229.401 276.001 227.401 272.401C227.401 272.401 236.201 288.001 236.601 291.601L239.001 277.601L241.001 280.401C241.001 280.401 242.601 272.801 241.801 271.601C241.001 270.401 261.801 278.401 266.601 299.201L268.601 307.601C268.601 307.601 274.601 292.801 273.001 288.801C273.001 288.801 278.201 289.601 278.601 294.001C278.601 294.001 282.601 270.801 277.801 264.801C277.801 264.801 282.201 264.001 283.401 267.601L283.401 260.401C283.401 260.401 290.601 261.201 290.601 258.801C290.601 258.801 295.001 254.801 297.001 259.601C297.001 259.601 284.601 224.401 303.001 243.601C303.001 243.601 310.201 254.401 306.601 235.601C303.001 216.801 299.001 215.201 303.801 214.801C303.801 214.801 304.601 211.201 302.601 209.601C300.601 208.001 303.801 209.601 303.801 209.601C303.801 209.601 308.601 213.601 303.401 191.601C303.401 191.601 309.801 193.201 297.801 164.001C297.801 164.001 300.601 161.601 296.601 153.201C296.601 153.201 304.601 157.601 307.401 156.001C307.401 156.001 307.001 154.401 303.801 150.401C303.801 150.401 282.201 95.6 302.601 117.601C302.601 117.601 314.451 131.151 308.051 108.351C308.051 108.351 298.94 84.341 299.717 80.045L-129.83 103.065z', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M299.717 80.245C300.345 80.426 302.551 81.55 303.801 83.2C303.801 83.2 310.601 94 305.401 75.6C305.401 75.6 296.201 46.8 305.001 58C305.001 58 311.001 65.2 307.801 51.6C303.936 35.173 301.401 28.8 301.401 28.8C301.401 28.8 313.001 33.6 286.201 -6L295.001 -2.4C295.001 -2.4 275.401 -42 253.801 -47.2L245.801 -53.2C245.801 -53.2 284.201 -91.2 271.401 -128C271.401 -128 264.601 -133.2 255.001 -124C255.001 -124 248.601 -119.2 242.601 -120.8C242.601 -120.8 211.801 -119.6 209.801 -119.6C207.801 -119.6 173.001 -156.8 107.401 -139.2C107.401 -139.2 102.201 -137.2 97.801 -138.4C97.801 -138.4 79.4 -154.4 30.6 -131.6C30.6 -131.6 20.6 -129.6 19 -129.6C17.4 -129.6 14.6 -129.6 6.6 -123.2C-1.4 -116.8 -1.8 -116 -3.8 -114.4C-3.8 -114.4 -20.2 -103.2 -25 -102.4C-25 -102.4 -36.6 -96 -41 -86L-44.6 -84.8C-44.6 -84.8 -46.2 -77.6 -46.6 -76.4C-46.6 -76.4 -51.4 -72.8 -52.2 -67.2C-52.2 -67.2 -61 -61.2 -60.6 -56.8C-60.6 -56.8 -62.2 -51.6 -63 -46.8C-63 -46.8 -70.2 -42 -69.4 -39.2C-69.4 -39.2 -77 -25.2 -75.8 -18.4C-75.8 -18.4 -82.2 -18.8 -85 -16.4C-85 -16.4 -85.8 -11.6 -87.4 -11.2C-87.4 -11.2 -90.2 -10 -87.8 -6C-87.8 -6 -89.4 -3.2 -89.8 -1.6C-89.8 -1.6 -89 1.2 -93.4 6.8C-93.4 6.8 -99.8 25.6 -97.8 30.8C-97.8 30.8 -97.4 35.6 -100.2 37.2C-100.2 37.2 -103.8 36.8 -95.4 48.8C-95.4 48.8 -94.6 50 -97.8 52.4C-97.8 52.4 -115 56 -117.4 72.4C-117.4 72.4 -131 87.2 -131 92.4C-131 94.705 -130.729 97.852 -130.03 102.465C-130.03 102.465 -130.6 110.801 -103 111.601C-75.4 112.401 299.717 80.245 299.717 80.245z', stroke: '#000', fill: '#cc7226' }, { type: 'path', path: 'M-115.6 102.6C-140.6 63.2 -126.2 119.601 -126.2 119.601C-117.4 154.001 12.2 116.401 12.2 116.401C12.2 116.401 181.001 86 192.201 82C203.401 78 298.601 84.4 298.601 84.4L293.001 67.6C228.201 21.2 209.001 44.4 195.401 40.4C181.801 36.4 184.201 46 181.001 46.8C177.801 47.6 138.601 22.8 132.201 23.6C125.801 24.4 100.459 0.649 115.401 32.4C131.401 66.4 57 71.6 40.2 60.4C23.4 49.2 47.4 78.8 47.4 78.8C65.8 98.8 31.4 82 31.4 82C-3 69.2 -27 94.8 -30.2 95.6C-33.4 96.4 -38.2 99.6 -39 93.2C-39.8 86.8 -47.31 70.099 -79 96.4C-99 113.001 -112.8 91 -112.8 91L-115.6 102.6z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M133.51 25.346C127.11 26.146 101.743 2.407 116.71 34.146C133.31 69.346 58.31 73.346 41.51 62.146C24.709 50.946 48.71 80.546 48.71 80.546C67.11 100.546 32.709 83.746 32.709 83.746C-1.691 70.946 -25.691 96.546 -28.891 97.346C-32.091 98.146 -36.891 101.346 -37.691 94.946C-38.491 88.546 -45.87 72.012 -77.691 98.146C-98.927 115.492 -112.418 94.037 -112.418 94.037L-115.618 104.146C-140.618 64.346 -125.546 122.655 -125.546 122.655C-116.745 157.056 13.509 118.146 13.509 118.146C13.509 118.146 182.31 87.746 193.51 83.746C204.71 79.746 299.038 86.073 299.038 86.073L293.51 68.764C228.71 22.364 210.31 46.146 196.71 42.146C183.11 38.146 185.51 47.746 182.31 48.546C179.11 49.346 139.91 24.546 133.51 25.346z', stroke: 'none', fill: '#e87f3a' }, { type: 'path', path: 'M134.819 27.091C128.419 27.891 103.685 3.862 118.019 35.891C134.219 72.092 59.619 75.092 42.819 63.892C26.019 52.692 50.019 82.292 50.019 82.292C68.419 102.292 34.019 85.492 34.019 85.492C-0.381 72.692 -24.382 98.292 -27.582 99.092C-30.782 99.892 -35.582 103.092 -36.382 96.692C-37.182 90.292 -44.43 73.925 -76.382 99.892C-98.855 117.983 -112.036 97.074 -112.036 97.074L-115.636 105.692C-139.436 66.692 -124.891 125.71 -124.891 125.71C-116.091 160.11 14.819 119.892 14.819 119.892C14.819 119.892 183.619 89.492 194.819 85.492C206.019 81.492 299.474 87.746 299.474 87.746L294.02 69.928C229.219 23.528 211.619 47.891 198.019 43.891C184.419 39.891 186.819 49.491 183.619 50.292C180.419 51.092 141.219 26.291 134.819 27.091z', stroke: 'none', fill: '#ea8c4d' }, { type: 'path', path: 'M136.128 28.837C129.728 29.637 104.999 5.605 119.328 37.637C136.128 75.193 60.394 76.482 44.128 65.637C27.328 54.437 51.328 84.037 51.328 84.037C69.728 104.037 35.328 87.237 35.328 87.237C0.928 74.437 -23.072 100.037 -26.272 100.837C-29.472 101.637 -34.272 104.837 -35.072 98.437C-35.872 92.037 -42.989 75.839 -75.073 101.637C-98.782 120.474 -111.655 100.11 -111.655 100.11L-115.655 107.237C-137.455 70.437 -124.236 128.765 -124.236 128.765C-115.436 163.165 16.128 121.637 16.128 121.637C16.128 121.637 184.928 91.237 196.129 87.237C207.329 83.237 299.911 89.419 299.911 89.419L294.529 71.092C229.729 24.691 212.929 49.637 199.329 45.637C185.728 41.637 188.128 51.237 184.928 52.037C181.728 52.837 142.528 28.037 136.128 28.837z', stroke: 'none', fill: '#ec9961' }, { type: 'path', path: 'M137.438 30.583C131.037 31.383 106.814 7.129 120.637 39.383C137.438 78.583 62.237 78.583 45.437 67.383C28.637 56.183 52.637 85.783 52.637 85.783C71.037 105.783 36.637 88.983 36.637 88.983C2.237 76.183 -21.763 101.783 -24.963 102.583C-28.163 103.383 -32.963 106.583 -33.763 100.183C-34.563 93.783 -41.548 77.752 -73.763 103.383C-98.709 122.965 -111.273 103.146 -111.273 103.146L-115.673 108.783C-135.473 73.982 -123.582 131.819 -123.582 131.819C-114.782 166.22 17.437 123.383 17.437 123.383C17.437 123.383 186.238 92.983 197.438 88.983C208.638 84.983 300.347 91.092 300.347 91.092L295.038 72.255C230.238 25.855 214.238 51.383 200.638 47.383C187.038 43.383 189.438 52.983 186.238 53.783C183.038 54.583 143.838 29.783 137.438 30.583z', stroke: 'none', fill: '#eea575' }, { type: 'path', path: 'M138.747 32.328C132.347 33.128 106.383 9.677 121.947 41.128C141.147 79.928 63.546 80.328 46.746 69.128C29.946 57.928 53.946 87.528 53.946 87.528C72.346 107.528 37.946 90.728 37.946 90.728C3.546 77.928 -20.454 103.528 -23.654 104.328C-26.854 105.128 -31.654 108.328 -32.454 101.928C-33.254 95.528 -40.108 79.665 -72.454 105.128C-98.636 125.456 -110.891 106.183 -110.891 106.183L-115.691 110.328C-133.691 77.128 -122.927 134.874 -122.927 134.874C-114.127 169.274 18.746 125.128 18.746 125.128C18.746 125.128 187.547 94.728 198.747 90.728C209.947 86.728 300.783 92.764 300.783 92.764L295.547 73.419C230.747 27.019 215.547 53.128 201.947 49.128C188.347 45.128 190.747 54.728 187.547 55.528C184.347 56.328 145.147 31.528 138.747 32.328z', stroke: 'none', fill: '#f1b288' }, { type: 'path', path: 'M140.056 34.073C133.655 34.873 107.313 11.613 123.255 42.873C143.656 82.874 64.855 82.074 48.055 70.874C31.255 59.674 55.255 89.274 55.255 89.274C73.655 109.274 39.255 92.474 39.255 92.474C4.855 79.674 -19.145 105.274 -22.345 106.074C-25.545 106.874 -30.345 110.074 -31.145 103.674C-31.945 97.274 -38.668 81.578 -71.145 106.874C-98.564 127.947 -110.509 109.219 -110.509 109.219L-115.709 111.874C-131.709 81.674 -122.273 137.929 -122.273 137.929C-113.473 172.329 20.055 126.874 20.055 126.874C20.055 126.874 188.856 96.474 200.056 92.474C211.256 88.474 301.22 94.437 301.22 94.437L296.056 74.583C231.256 28.183 216.856 54.874 203.256 50.874C189.656 46.873 192.056 56.474 188.856 57.274C185.656 58.074 146.456 33.273 140.056 34.073z', stroke: 'none', fill: '#f3bf9c' }, { type: 'path', path: 'M141.365 35.819C134.965 36.619 107.523 13.944 124.565 44.619C146.565 84.219 66.164 83.819 49.364 72.619C32.564 61.419 56.564 91.019 56.564 91.019C74.964 111.019 40.564 94.219 40.564 94.219C6.164 81.419 -17.836 107.019 -21.036 107.819C-24.236 108.619 -29.036 111.819 -29.836 105.419C-30.636 99.019 -37.227 83.492 -69.836 108.619C-98.491 130.438 -110.127 112.256 -110.127 112.256L-115.727 113.419C-130.128 85.019 -121.618 140.983 -121.618 140.983C-112.818 175.384 21.364 128.619 21.364 128.619C21.364 128.619 190.165 98.219 201.365 94.219C212.565 90.219 301.656 96.11 301.656 96.11L296.565 75.746C231.765 29.346 218.165 56.619 204.565 52.619C190.965 48.619 193.365 58.219 190.165 59.019C186.965 59.819 147.765 35.019 141.365 35.819z', stroke: 'none', fill: '#f5ccb0' }, { type: 'path', path: 'M142.674 37.565C136.274 38.365 108.832 15.689 125.874 46.365C147.874 85.965 67.474 85.565 50.674 74.365C33.874 63.165 57.874 92.765 57.874 92.765C76.274 112.765 41.874 95.965 41.874 95.965C7.473 83.165 -16.527 108.765 -19.727 109.565C-22.927 110.365 -27.727 113.565 -28.527 107.165C-29.327 100.765 -35.786 85.405 -68.527 110.365C-98.418 132.929 -109.745 115.293 -109.745 115.293L-115.745 114.965C-129.346 88.564 -120.963 144.038 -120.963 144.038C-112.163 178.438 22.673 130.365 22.673 130.365C22.673 130.365 191.474 99.965 202.674 95.965C213.874 91.965 302.093 97.783 302.093 97.783L297.075 76.91C232.274 30.51 219.474 58.365 205.874 54.365C192.274 50.365 194.674 59.965 191.474 60.765C188.274 61.565 149.074 36.765 142.674 37.565z', stroke: 'none', fill: '#f8d8c4' }, { type: 'path', path: 'M143.983 39.31C137.583 40.11 110.529 17.223 127.183 48.11C149.183 88.91 68.783 87.31 51.983 76.11C35.183 64.91 59.183 94.51 59.183 94.51C77.583 114.51 43.183 97.71 43.183 97.71C8.783 84.91 -15.217 110.51 -18.417 111.31C-21.618 112.11 -26.418 115.31 -27.218 108.91C-28.018 102.51 -34.346 87.318 -67.218 112.11C-98.345 135.42 -109.363 118.329 -109.363 118.329L-115.764 116.51C-128.764 92.51 -120.309 147.093 -120.309 147.093C-111.509 181.493 23.983 132.11 23.983 132.11C23.983 132.11 192.783 101.71 203.983 97.71C215.183 93.71 302.529 99.456 302.529 99.456L297.583 78.074C232.783 31.673 220.783 60.11 207.183 56.11C193.583 52.11 195.983 61.71 192.783 62.51C189.583 63.31 150.383 38.51 143.983 39.31z', stroke: 'none', fill: '#fae5d7' }, { type: 'path', path: 'M145.292 41.055C138.892 41.855 112.917 18.411 128.492 49.855C149.692 92.656 70.092 89.056 53.292 77.856C36.492 66.656 60.492 96.256 60.492 96.256C78.892 116.256 44.492 99.456 44.492 99.456C10.092 86.656 -13.908 112.256 -17.108 113.056C-20.308 113.856 -25.108 117.056 -25.908 110.656C-26.708 104.256 -32.905 89.232 -65.908 113.856C-98.273 137.911 -108.982 121.365 -108.982 121.365L-115.782 118.056C-128.582 94.856 -119.654 150.147 -119.654 150.147C-110.854 184.547 25.292 133.856 25.292 133.856C25.292 133.856 194.093 103.456 205.293 99.456C216.493 95.456 302.965 101.128 302.965 101.128L298.093 79.237C233.292 32.837 222.093 61.856 208.493 57.856C194.893 53.855 197.293 63.456 194.093 64.256C190.892 65.056 151.692 40.255 145.292 41.055z', stroke: 'none', fill: '#fcf2eb' }, { type: 'path', path: 'M-115.8 119.601C-128.6 97.6 -119 153.201 -119 153.201C-110.2 187.601 26.6 135.601 26.6 135.601C26.6 135.601 195.401 105.2 206.601 101.2C217.801 97.2 303.401 102.8 303.401 102.8L298.601 80.4C233.801 34 223.401 63.6 209.801 59.6C196.201 55.6 198.601 65.2 195.401 66C192.201 66.8 153.001 42 146.601 42.8C140.201 43.6 114.981 19.793 129.801 51.6C152.028 99.307 69.041 89.227 54.6 79.6C37.8 68.4 61.8 98 61.8 98C80.2 118.001 45.8 101.2 45.8 101.2C11.4 88.4 -12.6 114.001 -15.8 114.801C-19 115.601 -23.8 118.801 -24.6 112.401C-25.4 106 -31.465 91.144 -64.6 115.601C-98.2 140.401 -108.6 124.401 -108.6 124.401L-115.8 119.601z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M-74.2 149.601C-74.2 149.601 -81.4 161.201 -60.6 174.401C-60.6 174.401 -59.2 175.801 -77.2 171.601C-77.2 171.601 -83.4 169.601 -85 159.201C-85 159.201 -89.8 154.801 -94.6 149.201C-99.4 143.601 -74.2 149.601 -74.2 149.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M65.8 102C65.8 102 83.498 128.821 82.9 133.601C81.6 144.001 81.4 153.601 84.6 157.601C87.801 161.601 96.601 194.801 96.601 194.801C96.601 194.801 96.201 196.001 108.601 158.001C108.601 158.001 120.201 142.001 100.201 123.601C100.201 123.601 65 94.8 65.8 102z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-54.2 176.401C-54.2 176.401 -43 183.601 -57.4 214.801L-51 212.401C-51 212.401 -51.8 223.601 -55 226.001L-47.8 222.801C-47.8 222.801 -43 230.801 -47 235.601C-47 235.601 -30.2 243.601 -31 250.001C-31 250.001 -24.6 242.001 -28.6 235.601C-32.6 229.201 -39.8 233.201 -39 214.801L-47.8 218.001C-47.8 218.001 -42.2 209.201 -42.2 202.801L-50.2 205.201C-50.2 205.201 -34.731 178.623 -45.4 177.201C-51.4 176.401 -54.2 176.401 -54.2 176.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-21.8 193.201C-21.8 193.201 -19 188.801 -21.8 189.601C-24.6 190.401 -55.8 205.201 -61.8 214.801C-61.8 214.801 -27.4 190.401 -21.8 193.201z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-11.4 201.201C-11.4 201.201 -8.6 196.801 -11.4 197.601C-14.2 198.401 -45.4 213.201 -51.4 222.801C-51.4 222.801 -17 198.401 -11.4 201.201z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M1.8 186.001C1.8 186.001 4.6 181.601 1.8 182.401C-1 183.201 -32.2 198.001 -38.2 207.601C-38.2 207.601 -3.8 183.201 1.8 186.001z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-21.4 229.601C-21.4 229.601 -21.4 223.601 -24.2 224.401C-27 225.201 -63 242.801 -69 252.401C-69 252.401 -27 226.801 -21.4 229.601z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-20.2 218.801C-20.2 218.801 -19 214.001 -21.8 214.801C-23.8 214.801 -50.2 226.401 -56.2 236.001C-56.2 236.001 -26.6 214.401 -20.2 218.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-34.6 266.401L-44.6 274.001C-44.6 274.001 -34.2 266.401 -30.6 267.601C-30.6 267.601 -37.4 278.801 -38.2 284.001C-38.2 284.001 -27.8 271.201 -22.2 271.601C-22.2 271.601 -14.6 272.001 -14.6 282.801C-14.6 282.801 -9 272.401 -5.8 272.801C-5.8 272.801 -4.6 279.201 -5.8 286.001C-5.8 286.001 -1.8 278.401 2.2 280.001C2.2 280.001 8.6 278.001 7.8 289.601C7.8 289.601 7.8 300.001 7 302.801C7 302.801 12.6 276.401 15 276.001C15 276.001 23 274.801 27.8 283.601C27.8 283.601 23.8 276.001 28.6 278.001C28.6 278.001 39.4 279.601 42.6 286.401C42.6 286.401 35.8 274.401 41.4 277.601C41.4 277.601 48.2 277.601 49.4 284.001C49.4 284.001 57.8 305.201 59.8 306.801C59.8 306.801 52.2 285.201 53.8 285.201C53.8 285.201 51.8 273.201 57 288.001C57 288.001 53.8 274.001 59.4 274.801C65 275.601 69.4 285.601 77.8 283.201C77.8 283.201 87.401 288.801 89.401 219.601L-34.6 266.401z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-29.8 173.601C-29.8 173.601 -15 167.601 25 173.601C25 173.601 32.2 174.001 39 165.201C45.8 156.401 72.6 149.201 79 151.201L88.601 157.601L89.401 158.801C89.401 158.801 101.801 169.201 102.201 176.801C102.601 184.401 87.801 232.401 78.2 248.401C68.6 264.401 59 276.801 39.8 274.401C39.8 274.401 19 270.401 -6.6 274.401C-6.6 274.401 -35.8 272.801 -38.6 264.801C-41.4 256.801 -27.4 241.601 -27.4 241.601C-27.4 241.601 -23 233.201 -24.2 218.801C-25.4 204.401 -25 176.401 -29.8 173.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-7.8 175.601C0.6 194.001 -29 259.201 -29 259.201C-31 260.801 -16.34 266.846 -6.2 264.401C4.746 261.763 45 266.001 45 266.001C68.6 250.401 81.4 206.001 81.4 206.001C81.4 206.001 91.801 182.001 74.2 178.801C56.6 175.601 -7.8 175.601 -7.8 175.601z', stroke: 'none', fill: '#e5668c' }, { type: 'path', path: 'M-9.831 206.497C-6.505 193.707 -4.921 181.906 -7.8 175.601C-7.8 175.601 54.6 182.001 65.8 161.201C70.041 153.326 84.801 184.001 84.4 193.601C84.4 193.601 21.4 208.001 6.6 196.801L-9.831 206.497z', stroke: 'none', fill: '#b23259' }, { type: 'path', path: 'M-5.4 222.801C-5.4 222.801 -3.4 230.001 -5.8 234.001C-5.8 234.001 -7.4 234.801 -8.6 235.201C-8.6 235.201 -7.4 238.801 -1.4 240.401C-1.4 240.401 0.6 244.801 3 245.201C5.4 245.601 10.2 251.201 14.2 250.001C18.2 248.801 29.4 244.801 29.4 244.801C29.4 244.801 35 241.601 43.8 245.201C43.8 245.201 46.175 244.399 46.6 240.401C47.1 235.701 50.2 232.001 52.2 230.001C54.2 228.001 63.8 215.201 62.6 214.801C61.4 214.401 -5.4 222.801 -5.4 222.801z', stroke: 'none', fill: '#a5264c' }, { type: 'path', path: 'M-9.8 174.401C-9.8 174.401 -12.6 196.801 -9.4 205.201C-6.2 213.601 -7 215.601 -7.8 219.601C-8.6 223.601 -4.2 233.601 1.4 239.601L13.4 241.201C13.4 241.201 28.6 237.601 37.8 240.401C37.8 240.401 46.794 241.744 50.2 226.801C50.2 226.801 55 220.401 62.2 217.601C69.4 214.801 76.6 173.201 72.6 165.201C68.6 157.201 54.2 152.801 38.2 168.401C22.2 184.001 20.2 167.201 -9.8 174.401z', stroke: '#000', fill: '#ff727f' }, { type: 'path', path: 'M-8.2 249.201C-8.2 249.201 -9 247.201 -13.4 246.801C-13.4 246.801 -35.8 243.201 -44.2 230.801C-44.2 230.801 -51 225.201 -46.6 236.801C-46.6 236.801 -36.2 257.201 -29.4 260.001C-29.4 260.001 -13 264.001 -8.2 249.201z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M71.742 185.229C72.401 177.323 74.354 168.709 72.6 165.201C66.154 152.307 49.181 157.695 38.2 168.401C22.2 184.001 20.2 167.201 -9.8 174.401C-9.8 174.401 -11.545 188.364 -10.705 198.376C-10.705 198.376 26.6 186.801 27.4 192.401C27.4 192.401 29 189.201 38.2 189.201C47.4 189.201 70.142 188.029 71.742 185.229z', stroke: 'none', fill: '#cc3f4c' }, { type: 'path', path: 'M28.6 175.201C28.6 175.201 33.4 180.001 29.8 189.601C29.8 189.601 15.4 205.601 17.4 219.601', 'stroke-width': '2', stroke: '#a51926', fill: '#000' }, { type: 'path', path: 'M-19.4 260.001C-19.4 260.001 -23.8 247.201 -15 254.001C-15 254.001 -10.2 256.001 -11.4 257.601C-12.6 259.201 -18.2 263.201 -19.4 260.001z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-14.36 261.201C-14.36 261.201 -17.88 250.961 -10.84 256.401C-10.84 256.401 -6.419 258.849 -7.96 259.281C-12.52 260.561 -7.96 263.121 -14.36 261.201z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-9.56 261.201C-9.56 261.201 -13.08 250.961 -6.04 256.401C-6.04 256.401 -1.665 258.711 -3.16 259.281C-6.52 260.561 -3.16 263.121 -9.56 261.201z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-2.96 261.401C-2.96 261.401 -6.48 251.161 0.56 256.601C0.56 256.601 4.943 258.933 3.441 259.481C0.48 260.561 3.441 263.321 -2.96 261.401z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M3.52 261.321C3.52 261.321 0 251.081 7.041 256.521C7.041 256.521 10.881 258.121 9.921 259.401C8.961 260.681 9.921 263.241 3.52 261.321z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M10.2 262.001C10.2 262.001 5.4 249.601 14.6 256.001C14.6 256.001 19.4 258.001 18.2 259.601C17 261.201 18.2 264.401 10.2 262.001z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-18.2 244.801C-18.2 244.801 -5 242.001 1 245.201C1 245.201 7 246.401 8.2 246.001C9.4 245.601 12.6 245.201 12.6 245.201', 'stroke-width': '2', stroke: '#a5264c', fill: '#000' }, { type: 'path', path: 'M15.8 253.601C15.8 253.601 27.8 240.001 39.8 244.401C46.816 246.974 45.8 243.601 46.6 240.801C47.4 238.001 47.6 233.801 52.6 230.801', 'stroke-width': '2', stroke: '#a5264c', fill: '#000' }, { type: 'path', path: 'M33 237.601C33 237.601 29 226.801 26.2 239.601C23.4 252.401 20.2 256.001 18.6 258.801C18.6 258.801 18.6 264.001 27 263.601C27 263.601 37.8 263.201 38.2 260.401C38.6 257.601 37 246.001 33 237.601z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M47 244.801C47 244.801 50.6 242.401 53 243.601', 'stroke-width': '2', stroke: '#a5264c', fill: '#000' }, { type: 'path', path: 'M53.5 228.401C53.5 228.401 56.4 223.501 61.2 222.701', 'stroke-width': '2', stroke: '#a5264c', fill: '#000' }, { type: 'path', path: 'M-25.8 265.201C-25.8 265.201 -7.8 268.401 -3.4 266.801C-3.4 266.801 5.4 266.801 -3 268.801C-3 268.801 -15.8 268.801 -23.8 267.601C-23.8 267.601 -35.4 262.001 -25.8 265.201z', stroke: 'none', fill: '#b2b2b2' }, { type: 'path', path: 'M-11.8 172.001C-11.8 172.001 5.8 172.001 7.8 172.801C7.8 172.801 15 203.601 11.4 211.201C11.4 211.201 10.2 214.001 7.4 208.401C7.4 208.401 -11 175.601 -14.2 173.601C-17.4 171.601 -13 172.001 -11.8 172.001z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-88.9 169.301C-88.9 169.301 -80 171.001 -67.4 173.601C-67.4 173.601 -62.6 196.001 -59.4 200.801C-56.2 205.601 -59.8 205.601 -63.4 202.801C-67 200.001 -81.8 186.001 -83.8 181.601C-85.8 177.201 -88.9 169.301 -88.9 169.301z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-67.039 173.818C-67.039 173.818 -61.239 175.366 -60.23 177.581C-59.222 179.795 -61.432 183.092 -61.432 183.092C-61.432 183.092 -62.432 186.397 -63.634 184.235C-64.836 182.072 -67.708 174.412 -67.039 173.818z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-67 173.601C-67 173.601 -63.4 178.801 -59.8 178.801C-56.2 178.801 -55.818 178.388 -53 179.001C-48.4 180.001 -48.8 178.001 -42.2 179.201C-39.56 179.681 -37 178.801 -34.2 180.001C-31.4 181.201 -28.2 180.401 -27 178.401C-25.8 176.401 -21 172.201 -21 172.201C-21 172.201 -33.8 174.001 -36.6 174.801C-36.6 174.801 -59 176.001 -67 173.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-22.4 173.801C-22.4 173.801 -28.85 177.301 -29.25 179.701C-29.65 182.101 -24 185.801 -24 185.801C-24 185.801 -21.25 190.401 -20.65 188.001C-20.05 185.601 -21.6 174.201 -22.4 173.801z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-59.885 179.265C-59.885 179.265 -52.878 190.453 -52.661 179.242C-52.661 179.242 -52.104 177.984 -53.864 177.962C-59.939 177.886 -58.418 173.784 -59.885 179.265z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-52.707 179.514C-52.707 179.514 -44.786 190.701 -45.422 179.421C-45.422 179.421 -45.415 179.089 -47.168 178.936C-51.915 178.522 -51.57 174.004 -52.707 179.514z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-45.494 179.522C-45.494 179.522 -37.534 190.15 -38.203 180.484C-38.203 180.484 -38.084 179.251 -39.738 178.95C-43.63 178.244 -43.841 174.995 -45.494 179.522z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-38.618 179.602C-38.618 179.602 -30.718 191.163 -30.37 181.382C-30.37 181.382 -28.726 180.004 -30.472 179.782C-36.29 179.042 -35.492 174.588 -38.618 179.602z', 'stroke-width': '0.5', stroke: '#000', fill: '#ffffcc' }, { type: 'path', path: 'M-74.792 183.132L-82.45 181.601C-85.05 176.601 -87.15 170.451 -87.15 170.451C-87.15 170.451 -80.8 171.451 -68.3 174.251C-68.3 174.251 -67.424 177.569 -65.952 183.364L-74.792 183.132z', stroke: 'none', fill: '#e5e5b2' }, { type: 'path', path: 'M-9.724 178.47C-11.39 175.964 -12.707 174.206 -13.357 173.8C-16.37 171.917 -12.227 172.294 -11.098 172.294C-11.098 172.294 5.473 172.294 7.356 173.047C7.356 173.047 7.88 175.289 8.564 178.68C8.564 178.68 -1.524 176.67 -9.724 178.47z', stroke: 'none', fill: '#e5e5b2' }, { type: 'path', path: 'M43.88 40.321C71.601 44.281 97.121 8.641 98.881 -1.04C100.641 -10.72 90.521 -22.6 90.521 -22.6C91.841 -25.68 87.001 -39.76 81.721 -49C76.441 -58.24 60.54 -57.266 43 -58.24C27.16 -59.12 8.68 -35.8 7.36 -34.04C6.04 -32.28 12.2 6.001 13.52 11.721C14.84 17.441 12.2 43.841 12.2 43.841C46.44 34.741 16.16 36.361 43.88 40.321z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M8.088 -33.392C6.792 -31.664 12.84 5.921 14.136 11.537C15.432 17.153 12.84 43.073 12.84 43.073C45.512 34.193 16.728 35.729 43.944 39.617C71.161 43.505 96.217 8.513 97.945 -0.992C99.673 -10.496 89.737 -22.16 89.737 -22.16C91.033 -25.184 86.281 -39.008 81.097 -48.08C75.913 -57.152 60.302 -56.195 43.08 -57.152C27.528 -58.016 9.384 -35.12 8.088 -33.392z', stroke: 'none', fill: '#ea8e51' }, { type: 'path', path: 'M8.816 -32.744C7.544 -31.048 13.48 5.841 14.752 11.353C16.024 16.865 13.48 42.305 13.48 42.305C44.884 33.145 17.296 35.097 44.008 38.913C70.721 42.729 95.313 8.385 97.009 -0.944C98.705 -10.272 88.953 -21.72 88.953 -21.72C90.225 -24.688 85.561 -38.256 80.473 -47.16C75.385 -56.064 60.063 -55.125 43.16 -56.064C27.896 -56.912 10.088 -34.44 8.816 -32.744z', stroke: 'none', fill: '#efaa7c' }, { type: 'path', path: 'M9.544 -32.096C8.296 -30.432 14.12 5.761 15.368 11.169C16.616 16.577 14.12 41.537 14.12 41.537C43.556 32.497 17.864 34.465 44.072 38.209C70.281 41.953 94.409 8.257 96.073 -0.895C97.737 -10.048 88.169 -21.28 88.169 -21.28C89.417 -24.192 84.841 -37.504 79.849 -46.24C74.857 -54.976 59.824 -54.055 43.24 -54.976C28.264 -55.808 10.792 -33.76 9.544 -32.096z', stroke: 'none', fill: '#f4c6a8' }, { type: 'path', path: 'M10.272 -31.448C9.048 -29.816 14.76 5.681 15.984 10.985C17.208 16.289 14.76 40.769 14.76 40.769C42.628 31.849 18.432 33.833 44.136 37.505C69.841 41.177 93.505 8.129 95.137 -0.848C96.769 -9.824 87.385 -20.84 87.385 -20.84C88.609 -23.696 84.121 -36.752 79.225 -45.32C74.329 -53.888 59.585 -52.985 43.32 -53.888C28.632 -54.704 11.496 -33.08 10.272 -31.448z', stroke: 'none', fill: '#f9e2d3' }, { type: 'path', path: 'M44.2 36.8C69.4 40.4 92.601 8 94.201 -0.8C95.801 -9.6 86.601 -20.4 86.601 -20.4C87.801 -23.2 83.4 -36 78.6 -44.4C73.8 -52.8 59.346 -51.914 43.4 -52.8C29 -53.6 12.2 -32.4 11 -30.8C9.8 -29.2 15.4 5.6 16.6 10.8C17.8 16 15.4 40 15.4 40C40.9 31.4 19 33.2 44.2 36.8z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M90.601 2.8C90.601 2.8 62.8 10.4 51.2 8.8C51.2 8.8 35.4 2.2 26.6 24C26.6 24 23 31.2 21 33.2C19 35.2 90.601 2.8 90.601 2.8z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M94.401 0.6C94.401 0.6 65.4 12.8 55.4 12.4C55.4 12.4 39 7.8 30.6 22.4C30.6 22.4 22.2 31.6 19 33.2C19 33.2 18.6 34.8 25 30.8L35.4 36C35.4 36 50.2 45.6 59.8 29.6C59.8 29.6 63.8 18.4 63.8 16.4C63.8 14.4 85 8.8 86.601 8.4C88.201 8 94.801 3.8 94.401 0.6z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M47 36.514C40.128 36.514 31.755 32.649 31.755 26.4C31.755 20.152 40.128 13.887 47 13.887C53.874 13.887 59.446 18.952 59.446 25.2C59.446 31.449 53.874 36.514 47 36.514z', stroke: 'none', fill: '#99cc32' }, { type: 'path', path: 'M43.377 19.83C38.531 20.552 33.442 22.055 33.514 21.839C35.054 17.22 41.415 13.887 47 13.887C51.296 13.887 55.084 15.865 57.32 18.875C57.32 18.875 52.004 18.545 43.377 19.83z', stroke: 'none', fill: '#659900' }, { type: 'path', path: 'M55.4 19.6C55.4 19.6 51 16.4 51 18.6C51 18.6 54.6 23 55.4 19.6z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M45.4 27.726C42.901 27.726 40.875 25.7 40.875 23.2C40.875 20.701 42.901 18.675 45.4 18.675C47.9 18.675 49.926 20.701 49.926 23.2C49.926 25.7 47.9 27.726 45.4 27.726z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-58.6 14.4C-58.6 14.4 -61.8 -6.8 -59.4 -11.2C-59.4 -11.2 -48.6 -21.2 -49 -24.8C-49 -24.8 -49.4 -42.8 -50.6 -43.6C-51.8 -44.4 -59.4 -50.4 -65.4 -44C-65.4 -44 -75.8 -26 -75 -19.6L-75 -17.6C-75 -17.6 -82.6 -18 -84.2 -16C-84.2 -16 -85.4 -10.8 -86.6 -10.4C-86.6 -10.4 -89.4 -8 -87.4 -5.2C-87.4 -5.2 -89.4 -2.8 -89 1.2L-81.4 5.2C-81.4 5.2 -79.4 19.6 -68.6 24.8C-63.764 27.129 -60.6 20.4 -58.6 14.4z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M-59.6 12.56C-59.6 12.56 -62.48 -6.52 -60.32 -10.48C-60.32 -10.48 -50.6 -19.48 -50.96 -22.72C-50.96 -22.72 -51.32 -38.92 -52.4 -39.64C-53.48 -40.36 -60.32 -45.76 -65.72 -40C-65.72 -40 -75.08 -23.8 -74.36 -18.04L-74.36 -16.24C-74.36 -16.24 -81.2 -16.6 -82.64 -14.8C-82.64 -14.8 -83.72 -10.12 -84.8 -9.76C-84.8 -9.76 -87.32 -7.6 -85.52 -5.08C-85.52 -5.08 -87.32 -2.92 -86.96 0.68L-80.12 4.28C-80.12 4.28 -78.32 17.24 -68.6 21.92C-64.248 24.015 -61.4 17.96 -59.6 12.56z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M-51.05 -42.61C-52.14 -43.47 -59.63 -49.24 -65.48 -43C-65.48 -43 -75.62 -25.45 -74.84 -19.21L-74.84 -17.26C-74.84 -17.26 -82.25 -17.65 -83.81 -15.7C-83.81 -15.7 -84.98 -10.63 -86.15 -10.24C-86.15 -10.24 -88.88 -7.9 -86.93 -5.17C-86.93 -5.17 -88.88 -2.83 -88.49 1.07L-81.08 4.97C-81.08 4.97 -79.13 19.01 -68.6 24.08C-63.886 26.35 -60.8 19.79 -58.85 13.94C-58.85 13.94 -61.97 -6.73 -59.63 -11.02C-59.63 -11.02 -49.1 -20.77 -49.49 -24.28C-49.49 -24.28 -49.88 -41.83 -51.05 -42.61z', stroke: 'none', fill: '#eb955c' }, { type: 'path', path: 'M-51.5 -41.62C-52.48 -42.54 -59.86 -48.08 -65.56 -42C-65.56 -42 -75.44 -24.9 -74.68 -18.82L-74.68 -16.92C-74.68 -16.92 -81.9 -17.3 -83.42 -15.4C-83.42 -15.4 -84.56 -10.46 -85.7 -10.08C-85.7 -10.08 -88.36 -7.8 -86.46 -5.14C-86.46 -5.14 -88.36 -2.86 -87.98 0.94L-80.76 4.74C-80.76 4.74 -78.86 18.42 -68.6 23.36C-64.006 25.572 -61 19.18 -59.1 13.48C-59.1 13.48 -62.14 -6.66 -59.86 -10.84C-59.86 -10.84 -49.6 -20.34 -49.98 -23.76C-49.98 -23.76 -50.36 -40.86 -51.5 -41.62z', stroke: 'none', fill: '#f2b892' }, { type: 'path', path: 'M-51.95 -40.63C-52.82 -41.61 -60.09 -46.92 -65.64 -41C-65.64 -41 -75.26 -24.35 -74.52 -18.43L-74.52 -16.58C-74.52 -16.58 -81.55 -16.95 -83.03 -15.1C-83.03 -15.1 -84.14 -10.29 -85.25 -9.92C-85.25 -9.92 -87.84 -7.7 -85.99 -5.11C-85.99 -5.11 -87.84 -2.89 -87.47 0.81L-80.44 4.51C-80.44 4.51 -78.59 17.83 -68.6 22.64C-64.127 24.794 -61.2 18.57 -59.35 13.02C-59.35 13.02 -62.31 -6.59 -60.09 -10.66C-60.09 -10.66 -50.1 -19.91 -50.47 -23.24C-50.47 -23.24 -50.84 -39.89 -51.95 -40.63z', stroke: 'none', fill: '#f8dcc8' }, { type: 'path', path: 'M-59.6 12.46C-59.6 12.46 -62.48 -6.52 -60.32 -10.48C-60.32 -10.48 -50.6 -19.48 -50.96 -22.72C-50.96 -22.72 -51.32 -38.92 -52.4 -39.64C-53.16 -40.68 -60.32 -45.76 -65.72 -40C-65.72 -40 -75.08 -23.8 -74.36 -18.04L-74.36 -16.24C-74.36 -16.24 -81.2 -16.6 -82.64 -14.8C-82.64 -14.8 -83.72 -10.12 -84.8 -9.76C-84.8 -9.76 -87.32 -7.6 -85.52 -5.08C-85.52 -5.08 -87.32 -2.92 -86.96 0.68L-80.12 4.28C-80.12 4.28 -78.32 17.24 -68.6 21.92C-64.248 24.015 -61.4 17.86 -59.6 12.46z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M-62.7 6.2C-62.7 6.2 -84.3 -4 -85.2 -4.8C-85.2 -4.8 -76.1 3.4 -75.3 3.4C-74.5 3.4 -62.7 6.2 -62.7 6.2z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-79.8 0C-79.8 0 -61.4 3.6 -61.4 8C-61.4 10.912 -61.643 24.331 -67 22.8C-75.4 20.4 -71.8 6 -79.8 0z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-71.4 3.8C-71.4 3.8 -62.422 5.274 -61.4 8C-60.8 9.6 -60.137 17.908 -65.6 19C-70.152 19.911 -72.382 9.69 -71.4 3.8z', stroke: 'none', fill: '#99cc32' }, { type: 'path', path: 'M14.595 46.349C14.098 44.607 15.409 44.738 17.2 44.2C19.2 43.6 31.4 39.8 32.2 37.2C33 34.6 46.2 39 46.2 39C48 39.8 52.4 42.4 52.4 42.4C57.2 43.6 63.8 44 63.8 44C66.2 45 69.6 47.8 69.6 47.8C84.2 58 96.601 50.8 96.601 50.8C116.601 44.2 110.601 27 110.601 27C107.601 18 110.801 14.6 110.801 14.6C111.001 10.8 118.201 17.2 118.201 17.2C120.801 21.4 121.601 26.4 121.601 26.4C129.601 37.6 126.201 19.8 126.201 19.8C126.401 18.8 123.601 15.2 123.601 14C123.601 12.8 121.801 9.4 121.801 9.4C118.801 6 121.201 -1 121.201 -1C123.001 -14.8 120.801 -13 120.801 -13C119.601 -14.8 110.401 -4.8 110.401 -4.8C108.201 -1.4 102.201 0.2 102.201 0.2C99.401 2 96.001 0.6 96.001 0.6C93.401 0.2 87.801 7.2 87.801 7.2C90.601 7 93.001 11.4 95.401 11.6C97.801 11.8 99.601 9.2 101.201 8.6C102.801 8 105.601 13.8 105.601 13.8C106.001 16.4 100.401 21.2 100.401 21.2C100.001 25.8 98.401 24.2 98.401 24.2C95.401 23.6 94.201 27.4 93.201 32C92.201 36.6 88.001 37 88.001 37C86.401 44.4 85.2 41.4 85.2 41.4C85 35.8 79 41.6 79 41.6C77.8 43.6 73.2 41.4 73.2 41.4C66.4 39.4 68.8 37.4 68.8 37.4C70.6 35.2 81.8 37.4 81.8 37.4C84 35.8 76 31.8 76 31.8C75.4 30 76.4 25.6 76.4 25.6C77.6 22.4 84.4 16.8 84.4 16.8C93.801 15.6 91.001 14 91.001 14C84.801 8.8 79 16.4 79 16.4C76.8 22.6 59.4 37.6 59.4 37.6C54.6 41 57.2 34.2 53.2 37.6C49.2 41 28.6 32 28.6 32C17.038 30.807 14.306 46.549 10.777 43.429C10.777 43.429 16.195 51.949 14.595 46.349z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M209.401 -120C209.401 -120 183.801 -112 181.001 -93.2C181.001 -93.2 178.601 -70.4 199.001 -52.8C199.001 -52.8 199.401 -46.4 201.401 -43.2C201.401 -43.2 199.801 -38.4 218.601 -46L245.801 -54.4C245.801 -54.4 252.201 -56.8 257.401 -65.6C262.601 -74.4 277.801 -93.2 274.201 -118.4C274.201 -118.4 275.401 -129.6 269.401 -130C269.401 -130 261.001 -131.6 253.801 -124C253.801 -124 247.001 -120.8 244.601 -121.2L209.401 -120z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M264.022 -120.99C264.022 -120.99 266.122 -129.92 261.282 -125.08C261.282 -125.08 254.242 -119.36 246.761 -119.36C246.761 -119.36 232.241 -117.16 227.841 -103.96C227.841 -103.96 223.881 -77.12 231.801 -71.4C231.801 -71.4 236.641 -63.92 243.681 -70.52C250.722 -77.12 266.222 -107.35 264.022 -120.99z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M263.648 -120.632C263.648 -120.632 265.738 -129.376 260.986 -124.624C260.986 -124.624 254.074 -119.008 246.729 -119.008C246.729 -119.008 232.473 -116.848 228.153 -103.888C228.153 -103.888 224.265 -77.536 232.041 -71.92C232.041 -71.92 236.793 -64.576 243.705 -71.056C250.618 -77.536 265.808 -107.24 263.648 -120.632z', stroke: 'none', fill: '#323232' }, { type: 'path', path: 'M263.274 -120.274C263.274 -120.274 265.354 -128.832 260.69 -124.168C260.69 -124.168 253.906 -118.656 246.697 -118.656C246.697 -118.656 232.705 -116.536 228.465 -103.816C228.465 -103.816 224.649 -77.952 232.281 -72.44C232.281 -72.44 236.945 -65.232 243.729 -71.592C250.514 -77.952 265.394 -107.13 263.274 -120.274z', stroke: 'none', fill: '#666666' }, { type: 'path', path: 'M262.9 -119.916C262.9 -119.916 264.97 -128.288 260.394 -123.712C260.394 -123.712 253.738 -118.304 246.665 -118.304C246.665 -118.304 232.937 -116.224 228.777 -103.744C228.777 -103.744 225.033 -78.368 232.521 -72.96C232.521 -72.96 237.097 -65.888 243.753 -72.128C250.41 -78.368 264.98 -107.02 262.9 -119.916z', stroke: 'none', fill: '#999999' }, { type: 'path', path: 'M262.526 -119.558C262.526 -119.558 264.586 -127.744 260.098 -123.256C260.098 -123.256 253.569 -117.952 246.633 -117.952C246.633 -117.952 233.169 -115.912 229.089 -103.672C229.089 -103.672 225.417 -78.784 232.761 -73.48C232.761 -73.48 237.249 -66.544 243.777 -72.664C250.305 -78.784 264.566 -106.91 262.526 -119.558z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M262.151 -119.2C262.151 -119.2 264.201 -127.2 259.801 -122.8C259.801 -122.8 253.401 -117.6 246.601 -117.6C246.601 -117.6 233.401 -115.6 229.401 -103.6C229.401 -103.6 225.801 -79.2 233.001 -74C233.001 -74 237.401 -67.2 243.801 -73.2C250.201 -79.2 264.151 -106.8 262.151 -119.2z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M50.6 84C50.6 84 30.2 64.8 22.2 64C22.2 64 -12.2 60 -27 78C-27 78 -9.4 57.6 18.2 63.2C18.2 63.2 -3.4 58.8 -15.8 62C-15.8 62 -32.6 62 -42.2 76L-45 80.8C-45 80.8 -41 66 -22.6 60C-22.6 60 0.2 55.2 11 60C11 60 -10.6 53.2 -20.6 55.2C-20.6 55.2 -51 52.8 -63.8 79.2C-63.8 79.2 -59.8 64.8 -45 57.6C-45 57.6 -31.4 48.8 -11 51.6C-11 51.6 3.4 54.8 8.6 57.2C13.8 59.6 12.6 56.8 4.2 52C4.2 52 -1.4 42 -15.4 42.4C-15.4 42.4 -58.2 46 -68.6 58C-68.6 58 -55 46.8 -44.6 44C-44.6 44 -22.2 36 -13.8 36.8C-13.8 36.8 11 37.8 18.6 33.8C18.6 33.8 7.4 38.8 10.6 42C13.8 45.2 20.6 52.8 20.6 54C20.6 55.2 44.8 77.3 48.4 81.7L50.6 84z', stroke: 'none', fill: '#992600' }, { type: 'path', path: 'M189 278C189 278 173.5 241.5 161 232C161 232 187 248 190.5 266C190.5 266 190.5 276 189 278z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M236 285.5C236 285.5 209.5 230.5 191 206.5C191 206.5 234.5 244 239.5 270.5L240 276L237 273.5C237 273.5 236.5 282.5 236 285.5z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M292.5 237C292.5 237 230 177.5 228.5 175C228.5 175 289 241 292 248.5C292 248.5 290 239.5 292.5 237z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M104 280.5C104 280.5 123.5 228.5 142.5 251C142.5 251 157.5 261 157 264C157 264 153 257.5 135 258C135 258 116 255 104 280.5z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M294.5 153C294.5 153 249.5 124.5 242 123C230.193 120.639 291.5 152 296.5 162.5C296.5 162.5 298.5 160 294.5 153z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M143.801 259.601C143.801 259.601 164.201 257.601 171.001 250.801L175.401 254.401L193.001 216.001L196.601 221.201C196.601 221.201 211.001 206.401 210.201 198.401C209.401 190.401 223.001 204.401 223.001 204.401C223.001 204.401 222.201 192.801 229.401 199.601C229.401 199.601 227.001 184.001 235.401 192.001C235.401 192.001 224.864 161.844 247.401 187.601C253.001 194.001 248.601 187.201 248.601 187.201C248.601 187.201 222.601 139.201 244.201 153.601C244.201 153.601 246.201 130.801 245.001 126.401C243.801 122.001 241.801 99.6 237.001 94.4C232.201 89.2 237.401 87.6 243.001 92.8C243.001 92.8 231.801 68.8 245.001 80.8C245.001 80.8 241.401 65.6 237.001 62.8C237.001 62.8 231.401 45.6 246.601 56.4C246.601 56.4 242.201 44 239.001 40.8C239.001 40.8 227.401 13.2 234.601 18L239.001 21.6C239.001 21.6 232.201 7.6 238.601 12C245.001 16.4 245.001 16 245.001 16C245.001 16 223.801 -17.2 244.201 0.4C244.201 0.4 236.042 -13.518 232.601 -20.4C232.601 -20.4 213.801 -40.8 228.201 -34.4L233.001 -32.8C233.001 -32.8 224.201 -42.8 216.201 -44.4C208.201 -46 218.601 -52.4 225.001 -50.4C231.401 -48.4 247.001 -40.8 247.001 -40.8C247.001 -40.8 259.801 -22 263.801 -21.6C263.801 -21.6 243.801 -29.2 249.801 -21.2C249.801 -21.2 264.201 -7.2 257.001 -7.6C257.001 -7.6 251.001 -0.4 255.801 8.4C255.801 8.4 237.342 -9.991 252.201 15.6L259.001 32C259.001 32 234.601 7.2 245.801 29.2C245.801 29.2 263.001 52.8 265.001 53.2C267.001 53.6 271.401 62.4 271.401 62.4L267.001 60.4L272.201 69.2C272.201 69.2 261.001 57.2 267.001 70.4L272.601 84.8C272.601 84.8 252.201 62.8 265.801 92.4C265.801 92.4 249.401 87.2 258.201 104.4C258.201 104.4 256.601 120.401 257.001 125.601C257.401 130.801 258.601 159.201 254.201 167.201C249.801 175.201 260.201 194.401 262.201 198.401C264.201 202.401 267.801 213.201 259.001 204.001C250.201 194.801 254.601 200.401 256.601 209.201C258.601 218.001 264.601 233.601 263.801 239.201C263.801 239.201 262.601 240.401 259.401 236.801C259.401 236.801 244.601 214.001 246.201 228.401C246.201 228.401 245.001 236.401 241.801 245.201C241.801 245.201 238.601 256.001 238.601 247.201C238.601 247.201 235.401 230.401 232.601 238.001C229.801 245.601 226.201 251.601 223.401 254.001C220.601 256.401 215.401 233.601 214.201 244.001C214.201 244.001 202.201 231.601 197.401 248.001L185.801 264.401C185.801 264.401 185.401 252.001 184.201 258.001C184.201 258.001 154.201 264.001 143.801 259.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M109.401 -97.2C109.401 -97.2 97.801 -105.2 93.801 -104.8C89.801 -104.4 121.401 -113.6 162.601 -86C162.601 -86 167.401 -83.2 171.001 -83.6C171.001 -83.6 174.201 -81.2 171.401 -77.6C171.401 -77.6 162.601 -68 173.801 -56.8C173.801 -56.8 192.201 -50 186.601 -58.8C186.601 -58.8 197.401 -54.8 199.801 -50.8C202.201 -46.8 201.001 -50.8 201.001 -50.8C201.001 -50.8 194.601 -58 188.601 -63.2C188.601 -63.2 183.401 -65.2 180.601 -73.6C177.801 -82 175.401 -92 179.801 -95.2C179.801 -95.2 175.801 -90.8 176.601 -94.8C177.401 -98.8 181.001 -102.4 182.601 -102.8C184.201 -103.2 200.601 -119 207.401 -119.4C207.401 -119.4 198.201 -118 195.201 -119C192.201 -120 165.601 -131.4 159.601 -132.6C159.601 -132.6 142.801 -139.2 154.801 -137.2C154.801 -137.2 190.601 -133.4 208.801 -120.2C208.801 -120.2 201.601 -128.6 183.201 -135.6C183.201 -135.6 161.001 -148.2 125.801 -143.2C125.801 -143.2 108.001 -140 100.201 -138.2C100.201 -138.2 97.601 -138.8 97.001 -139.2C96.401 -139.6 84.6 -148.6 57 -141.6C57 -141.6 40 -137 31.4 -132.2C31.4 -132.2 16.2 -131 12.6 -127.8C12.6 -127.8 -6 -113.2 -8 -112.4C-10 -111.6 -21.4 -104 -22.2 -103.6C-22.2 -103.6 2.4 -110.2 4.8 -112.6C7.2 -115 24.6 -117.6 27 -116.2C29.4 -114.8 37.8 -115.4 28.2 -114.8C28.2 -114.8 103.801 -100 104.601 -98C105.401 -96 109.401 -97.2 109.401 -97.2z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M180.801 -106.4C180.801 -106.4 170.601 -113.8 168.601 -113.8C166.601 -113.8 154.201 -124 150.001 -123.6C145.801 -123.2 133.601 -133.2 106.201 -125C106.201 -125 105.601 -127 109.201 -127.8C109.201 -127.8 115.601 -130 116.001 -130.6C116.001 -130.6 136.201 -134.8 143.401 -131.2C143.401 -131.2 152.601 -128.6 158.801 -122.4C158.801 -122.4 170.001 -119.2 173.201 -120.2C173.201 -120.2 182.001 -118 182.401 -116.2C182.401 -116.2 188.201 -113.2 186.401 -110.6C186.401 -110.6 186.801 -109 180.801 -106.4z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M168.33 -108.509C169.137 -107.877 170.156 -107.779 170.761 -106.97C170.995 -106.656 170.706 -106.33 170.391 -106.233C169.348 -105.916 168.292 -106.486 167.15 -105.898C166.748 -105.691 166.106 -105.873 165.553 -106.022C163.921 -106.463 162.092 -106.488 160.401 -105.8C158.416 -106.929 156.056 -106.345 153.975 -107.346C153.917 -107.373 153.695 -107.027 153.621 -107.054C150.575 -108.199 146.832 -107.916 144.401 -110.2C141.973 -110.612 139.616 -111.074 137.188 -111.754C135.37 -112.263 133.961 -113.252 132.341 -114.084C130.964 -114.792 129.507 -115.314 127.973 -115.686C126.11 -116.138 124.279 -116.026 122.386 -116.546C122.293 -116.571 122.101 -116.227 122.019 -116.254C121.695 -116.362 121.405 -116.945 121.234 -116.892C119.553 -116.37 118.065 -117.342 116.401 -117C115.223 -118.224 113.495 -117.979 111.949 -118.421C108.985 -119.269 105.831 -117.999 102.801 -119C106.914 -120.842 111.601 -119.61 115.663 -121.679C117.991 -122.865 120.653 -121.763 123.223 -122.523C123.71 -122.667 124.401 -122.869 124.801 -122.2C124.935 -122.335 125.117 -122.574 125.175 -122.546C127.625 -121.389 129.94 -120.115 132.422 -119.049C132.763 -118.903 133.295 -119.135 133.547 -118.933C135.067 -117.717 137.01 -117.82 138.401 -116.6C140.099 -117.102 141.892 -116.722 143.621 -117.346C143.698 -117.373 143.932 -117.032 143.965 -117.054C145.095 -117.802 146.25 -117.531 147.142 -117.227C147.48 -117.112 148.143 -116.865 148.448 -116.791C149.574 -116.515 150.43 -116.035 151.609 -115.852C151.723 -115.834 151.908 -116.174 151.98 -116.146C153.103 -115.708 154.145 -115.764 154.801 -114.6C154.936 -114.735 155.101 -114.973 155.183 -114.946C156.21 -114.608 156.859 -113.853 157.96 -113.612C158.445 -113.506 159.057 -112.88 159.633 -112.704C162.025 -111.973 163.868 -110.444 166.062 -109.549C166.821 -109.239 167.697 -109.005 168.33 -108.509z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M91.696 -122.739C89.178 -124.464 86.81 -125.57 84.368 -127.356C84.187 -127.489 83.827 -127.319 83.625 -127.441C82.618 -128.05 81.73 -128.631 80.748 -129.327C80.209 -129.709 79.388 -129.698 78.88 -129.956C76.336 -131.248 73.707 -131.806 71.2 -133C71.882 -133.638 73.004 -133.394 73.6 -134.2C73.795 -133.92 74.033 -133.636 74.386 -133.827C76.064 -134.731 77.914 -134.884 79.59 -134.794C81.294 -134.702 83.014 -134.397 84.789 -134.125C85.096 -134.078 85.295 -133.555 85.618 -133.458C87.846 -132.795 90.235 -133.32 92.354 -132.482C93.945 -131.853 95.515 -131.03 96.754 -129.755C97.006 -129.495 96.681 -129.194 96.401 -129C96.789 -129.109 97.062 -128.903 97.173 -128.59C97.257 -128.351 97.257 -128.049 97.173 -127.81C97.061 -127.498 96.782 -127.397 96.408 -127.346C95.001 -127.156 96.773 -128.536 96.073 -128.088C94.8 -127.274 95.546 -125.868 94.801 -124.6C94.521 -124.794 94.291 -125.012 94.401 -125.4C94.635 -124.878 94.033 -124.588 93.865 -124.272C93.48 -123.547 92.581 -122.132 91.696 -122.739z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M59.198 -115.391C56.044 -116.185 52.994 -116.07 49.978 -117.346C49.911 -117.374 49.688 -117.027 49.624 -117.054C48.258 -117.648 47.34 -118.614 46.264 -119.66C45.351 -120.548 43.693 -120.161 42.419 -120.648C42.095 -120.772 41.892 -121.284 41.591 -121.323C40.372 -121.48 39.445 -122.429 38.4 -123C40.736 -123.795 43.147 -123.764 45.609 -124.148C45.722 -124.166 45.867 -123.845 46 -123.845C46.136 -123.845 46.266 -124.066 46.4 -124.2C46.595 -123.92 46.897 -123.594 47.154 -123.848C47.702 -124.388 48.258 -124.198 48.798 -124.158C48.942 -124.148 49.067 -123.845 49.2 -123.845C49.336 -123.845 49.467 -124.156 49.6 -124.156C49.736 -124.155 49.867 -123.845 50 -123.845C50.136 -123.845 50.266 -124.066 50.4 -124.2C51.092 -123.418 51.977 -123.972 52.799 -123.793C53.837 -123.566 54.104 -122.418 55.178 -122.12C59.893 -120.816 64.03 -118.671 68.393 -116.584C68.7 -116.437 68.91 -116.189 68.8 -115.8C69.067 -115.8 69.38 -115.888 69.57 -115.756C70.628 -115.024 71.669 -114.476 72.366 -113.378C72.582 -113.039 72.253 -112.632 72.02 -112.684C67.591 -113.679 63.585 -114.287 59.198 -115.391z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M45.338 -71.179C43.746 -72.398 43.162 -74.429 42.034 -76.221C41.82 -76.561 42.094 -76.875 42.411 -76.964C42.971 -77.123 43.514 -76.645 43.923 -76.443C45.668 -75.581 47.203 -74.339 49.2 -74.2C51.19 -71.966 55.45 -71.581 55.457 -68.2C55.458 -67.341 54.03 -68.259 53.6 -67.4C51.149 -68.403 48.76 -68.3 46.38 -69.767C45.763 -70.148 46.093 -70.601 45.338 -71.179z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M17.8 -123.756C17.935 -123.755 24.966 -123.522 24.949 -123.408C24.904 -123.099 17.174 -122.05 16.81 -122.22C16.646 -122.296 9.134 -119.866 9 -120C9.268 -120.135 17.534 -123.756 17.8 -123.756z', stroke: 'none', fill: '#cc7226' }, { type: 'path', path: 'M33.2 -114C33.2 -114 18.4 -112.2 14 -111C9.6 -109.8 -9 -102.2 -12 -100.2C-12 -100.2 -25.4 -94.8 -42.4 -74.8C-42.4 -74.8 -34.8 -78.2 -32.6 -81C-32.6 -81 -19 -93.6 -19.2 -91C-19.2 -91 -7 -99.6 -7.6 -97.4C-7.6 -97.4 16.8 -108.6 14.8 -105.4C14.8 -105.4 36.4 -110 35.4 -108C35.4 -108 54.2 -103.6 51.4 -103.4C51.4 -103.4 45.6 -102.2 52 -98.6C52 -98.6 48.6 -94.2 43.2 -98.2C37.8 -102.2 40.8 -100 35.8 -99C35.8 -99 33.2 -98.2 28.6 -102.2C28.6 -102.2 23 -106.8 14.2 -103.2C14.2 -103.2 -16.4 -90.6 -18.4 -90C-18.4 -90 -22 -87.2 -24.4 -83.6C-24.4 -83.6 -30.2 -79.2 -33.2 -77.8C-33.2 -77.8 -46 -66.2 -47.2 -64.8C-47.2 -64.8 -50.6 -59.6 -51.4 -59.2C-51.4 -59.2 -45 -63 -43 -65C-43 -65 -29 -75 -23.6 -75.8C-23.6 -75.8 -19.2 -78.8 -18.4 -80.2C-18.4 -80.2 -4 -89.4 0.2 -89.4C0.2 -89.4 9.4 -84.2 11.8 -91.2C11.8 -91.2 17.6 -93 23.2 -91.8C23.2 -91.8 26.4 -94.4 25.6 -96.6C25.6 -96.6 27.2 -98.4 28.2 -94.6C28.2 -94.6 31.6 -91 36.4 -93C36.4 -93 40.4 -93.2 38.4 -90.8C38.4 -90.8 34 -87 22.2 -86.8C22.2 -86.8 9.8 -86.2 -6.6 -78.6C-6.6 -78.6 -36.4 -68.2 -45.6 -57.8C-45.6 -57.8 -52 -49 -57.4 -47.8C-57.4 -47.8 -63.2 -47 -69.2 -39.6C-69.2 -39.6 -59.4 -45.4 -50.4 -45.4C-50.4 -45.4 -46.4 -47.8 -50.2 -44.2C-50.2 -44.2 -53.8 -36.6 -52.2 -31.2C-52.2 -31.2 -52.8 -26 -53.6 -24.4C-53.6 -24.4 -61.4 -11.6 -61.4 -9.2C-61.4 -6.8 -60.2 3 -59.8 3.6C-59.4 4.2 -60.8 2 -57 4.4C-53.2 6.8 -50.4 8.4 -49.6 11.2C-48.8 14 -51.6 5.8 -51.8 4C-52 2.2 -56.2 -5 -55.4 -7.4C-55.4 -7.4 -54.4 -6.4 -53.6 -5C-53.6 -5 -54.2 -5.6 -53.6 -9.2C-53.6 -9.2 -52.8 -14.4 -51.4 -17.6C-50 -20.8 -48 -24.6 -47.6 -25.4C-47.2 -26.2 -47.2 -32 -45.8 -29.4L-42.4 -26.8C-42.4 -26.8 -45.2 -29.4 -43 -31.6C-43 -31.6 -44 -37.2 -42.2 -39.8C-42.2 -39.8 -35.2 -48.2 -33.6 -49.2C-32 -50.2 -33.4 -49.8 -33.4 -49.8C-33.4 -49.8 -27.4 -54 -33.2 -52.4C-33.2 -52.4 -37.2 -50.8 -40.2 -50.8C-40.2 -50.8 -47.8 -48.8 -43.8 -53C-39.8 -57.2 -29.8 -62.6 -26 -62.4L-25.2 -60.8L-14 -63.2L-15.2 -62.4C-15.2 -62.4 -15.4 -62.6 -11.2 -63C-7 -63.4 -1.2 -62 0.2 -63.8C1.6 -65.6 5 -66.6 4.6 -65.2C4.2 -63.8 4 -61.8 4 -61.8C4 -61.8 9 -67.6 8.4 -65.4C7.8 -63.2 -0.4 -58 -1.8 -51.8L8.6 -60L12.2 -63C12.2 -63 15.8 -60.8 16 -62.4C16.2 -64 20.8 -69.8 22 -69.6C23.2 -69.4 25.2 -72.2 25 -69.6C24.8 -67 32.4 -61.6 32.4 -61.6C32.4 -61.6 35.6 -63.4 37 -62C38.4 -60.6 42.6 -81.8 42.6 -81.8L67.6 -92.4L111.201 -95.8L94.201 -102.6L33.2 -114z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M51.4 85C51.4 85 36.4 68.2 28 65.6C28 65.6 14.6 58.8 -10 66.6', 'stroke-width': '2', stroke: '#4c0000', fill: '#000' }, { type: 'path', path: 'M24.8 64.2C24.8 64.2 -0.4 56.2 -15.8 60.4C-15.8 60.4 -34.2 62.4 -42.6 76.2', 'stroke-width': '2', stroke: '#4c0000', fill: '#000' }, { type: 'path', path: 'M21.2 63C21.2 63 4.2 55.8 -10.6 53.6C-10.6 53.6 -27.2 51 -43.8 58.2C-43.8 58.2 -56 64.2 -61.4 74.4', 'stroke-width': '2', stroke: '#4c0000', fill: '#000' }, { type: 'path', path: 'M22.2 63.4C22.2 63.4 6.8 52.4 5.8 51C5.8 51 -1.2 40 -14.2 39.6C-14.2 39.6 -35.6 40.4 -52.8 48.4', 'stroke-width': '2', stroke: '#4c0000', fill: '#000' }, { type: 'path', path: 'M20.895 54.407C22.437 55.87 49.4 84.8 49.4 84.8C84.6 121.401 56.6 87.2 56.6 87.2C49 82.4 39.8 63.6 39.8 63.6C38.6 60.8 53.8 70.8 53.8 70.8C57.8 71.6 71.4 90.8 71.4 90.8C64.6 88.4 69.4 95.6 69.4 95.6C72.2 97.6 92.601 113.201 92.601 113.201C96.201 117.201 100.201 118.801 100.201 118.801C114.201 113.601 107.801 126.801 107.801 126.801C110.201 133.601 115.801 122.001 115.801 122.001C127.001 105.2 110.601 107.601 110.601 107.601C80.6 110.401 73.8 94.4 73.8 94.4C71.4 92 80.2 94.4 80.2 94.4C88.601 96.4 73 82 73 82C75.4 82 84.6 88.8 84.6 88.8C95.001 98 97.001 96 97.001 96C115.001 87.2 125.401 94.8 125.401 94.8C127.401 96.4 121.801 103.2 123.401 108.401C125.001 113.601 129.801 126.001 129.801 126.001C127.401 127.601 127.801 138.401 127.801 138.401C144.601 161.601 135.001 159.601 135.001 159.601C119.401 159.201 134.201 166.801 134.201 166.801C137.401 168.801 146.201 176.001 146.201 176.001C143.401 174.801 141.801 180.001 141.801 180.001C146.601 184.001 143.801 188.801 143.801 188.801C137.801 190.001 136.601 194.001 136.601 194.001C143.401 202.001 133.401 202.401 133.401 202.401C137.001 206.801 132.201 218.801 132.201 218.801C127.401 218.801 121.001 224.401 121.001 224.401C123.401 229.201 113.001 234.801 113.001 234.801C104.601 236.401 107.401 243.201 107.401 243.201C99.401 249.201 97.001 265.201 97.001 265.201C96.201 275.601 93.801 278.801 99.001 276.801C104.201 274.801 103.401 262.401 103.401 262.401C98.601 246.801 141.401 230.801 141.401 230.801C145.401 229.201 146.201 224.001 146.201 224.001C148.201 224.401 157.001 232.001 157.001 232.001C164.601 243.201 165.001 234.001 165.001 234.001C166.201 230.401 164.601 224.401 164.601 224.401C170.601 202.801 156.601 196.401 156.601 196.401C146.601 162.801 160.601 171.201 160.601 171.201C163.401 176.801 174.201 182.001 174.201 182.001L177.801 179.601C176.201 174.801 184.601 168.801 184.601 168.801C187.401 175.201 193.401 167.201 193.401 167.201C197.001 142.801 209.401 157.201 209.401 157.201C213.401 158.401 214.601 151.601 214.601 151.601C218.201 141.201 214.601 127.601 214.601 127.601C218.201 127.201 227.801 133.201 227.801 133.201C230.601 129.601 221.401 112.801 225.401 115.201C229.401 117.601 233.801 119.201 233.801 119.201C234.601 117.201 224.601 104.801 224.601 104.801C220.201 102 215.001 81.6 215.001 81.6C222.201 85.2 212.201 70 212.201 70C212.201 66.8 218.201 55.6 218.201 55.6C217.401 48.8 218.201 49.2 218.201 49.2C221.001 50.4 229.001 52 222.201 45.6C215.401 39.2 223.001 34.4 223.001 34.4C227.401 31.6 213.801 32 213.801 32C208.601 27.6 209.001 23.6 209.001 23.6C217.001 25.6 202.601 11.2 200.201 7.6C197.801 4 207.401 -1.2 207.401 -1.2C220.601 -4.8 209.001 -8 209.001 -8C189.401 -7.6 200.201 -18.4 200.201 -18.4C206.201 -18 204.601 -20.4 204.601 -20.4C199.401 -21.6 189.801 -28 189.801 -28C185.801 -31.6 189.401 -30.8 189.401 -30.8C206.201 -29.6 177.401 -40.8 177.401 -40.8C185.401 -40.8 167.401 -51.2 167.401 -51.2C165.401 -52.8 162.201 -60.4 162.201 -60.4C156.201 -65.6 151.401 -72.4 151.401 -72.4C151.001 -76.8 146.201 -81.6 146.201 -81.6C134.601 -95.2 129.001 -94.8 129.001 -94.8C114.201 -98.4 109.001 -97.6 109.001 -97.6L56.2 -93.2C29.8 -80.4 37.6 -59.4 37.6 -59.4C44 -51 53.2 -54.8 53.2 -54.8C57.8 -61 69.4 -58.8 69.4 -58.8C89.801 -55.6 87.201 -59.2 87.201 -59.2C84.801 -63.8 68.6 -70 68.4 -70.6C68.2 -71.2 59.4 -74.6 59.4 -74.6C56.4 -75.8 52 -85 52 -85C48.8 -88.4 64.6 -82.6 64.6 -82.6C63.4 -81.6 70.8 -77.6 70.8 -77.6C88.201 -78.6 98.801 -67.8 98.801 -67.8C109.601 -51.2 109.801 -59.4 109.801 -59.4C112.601 -68.8 100.801 -90 100.801 -90C101.201 -92 109.401 -85.4 109.401 -85.4C110.801 -87.4 111.601 -81.6 111.601 -81.6C111.801 -79.2 115.601 -71.2 115.601 -71.2C118.401 -58.2 122.001 -65.6 122.001 -65.6L126.601 -56.2C128.001 -53.6 122.001 -46 122.001 -46C121.801 -43.2 122.601 -43.4 117.001 -35.8C111.401 -28.2 114.801 -23.8 114.801 -23.8C113.401 -17.2 122.201 -17.6 122.201 -17.6C124.801 -15.4 128.201 -15.4 128.201 -15.4C130.001 -13.4 132.401 -14 132.401 -14C134.001 -17.8 140.201 -15.8 140.201 -15.8C141.601 -18.2 149.801 -18.6 149.801 -18.6C150.801 -21.2 151.201 -22.8 154.601 -23.4C158.001 -24 133.401 -67 133.401 -67C139.801 -67.8 131.601 -80.2 131.601 -80.2C129.401 -86.8 140.801 -72.2 143.001 -70.8C145.201 -69.4 146.201 -67.2 144.601 -67.4C143.001 -67.6 141.201 -65.4 142.601 -65.2C144.001 -65 157.001 -50 160.401 -39.8C163.801 -29.6 169.801 -25.6 176.001 -19.6C182.201 -13.6 181.401 10.6 181.401 10.6C181.001 19.4 187.001 30 187.001 30C189.001 33.8 184.801 52 184.801 52C182.801 54.2 184.201 55 184.201 55C185.201 56.2 192.001 69.4 192.001 69.4C190.201 69.2 193.801 72.8 193.801 72.8C199.001 78.8 192.601 75.8 192.601 75.8C186.601 74.2 193.601 84 193.601 84C194.801 85.8 185.801 81.2 185.801 81.2C176.601 80.6 188.201 87.8 188.201 87.8C196.801 95 185.401 90.6 185.401 90.6C180.801 88.8 184.001 95.6 184.001 95.6C187.201 97.2 204.401 104.2 204.401 104.2C204.801 108.001 201.801 113.001 201.801 113.001C202.201 117.001 200.001 120.401 200.001 120.401C198.801 128.601 198.201 129.401 198.201 129.401C194.001 129.601 186.601 143.401 186.601 143.401C184.801 146.001 174.601 158.001 174.601 158.001C172.601 165.001 154.601 157.801 154.601 157.801C148.001 161.201 150.001 157.801 150.001 157.801C149.601 155.601 154.401 149.601 154.401 149.601C161.401 147.001 158.801 136.201 158.801 136.201C162.801 134.801 151.601 132.001 151.801 130.801C152.001 129.601 157.801 128.201 157.801 128.201C165.801 126.201 161.401 123.801 161.401 123.801C160.801 119.801 163.801 114.201 163.801 114.201C175.401 113.401 163.801 97.2 163.801 97.2C153.001 89.6 152.001 83.8 152.001 83.8C164.601 75.6 156.401 63.2 156.601 59.6C156.801 56 158.001 34.4 158.001 34.4C156.001 28.2 153.001 14.6 153.001 14.6C155.201 9.4 162.601 -3.2 162.601 -3.2C165.401 -7.4 174.201 -12.2 172.001 -15.2C169.801 -18.2 162.001 -16.4 162.001 -16.4C154.201 -17.8 154.801 -12.6 154.801 -12.6C153.201 -11.6 152.401 -6.6 152.401 -6.6C151.68 1.333 142.801 7.6 142.801 7.6C131.601 13.8 140.801 17.8 140.801 17.8C146.801 24.4 137.001 24.6 137.001 24.6C126.001 22.8 134.201 33 134.201 33C145.001 45.8 142.001 48.6 142.001 48.6C131.801 49.6 144.401 58.8 144.401 58.8C144.401 58.8 143.601 56.8 143.801 58.6C144.001 60.4 147.001 64.6 147.801 66.6C148.601 68.6 144.601 68.8 144.601 68.8C145.201 78.4 129.801 74.2 129.801 74.2C129.801 74.2 129.801 74.2 128.201 74.4C126.601 74.6 115.401 73.8 109.601 71.6C103.801 69.4 97.001 69.4 97.001 69.4C97.001 69.4 93.001 71.2 85.4 71C77.8 70.8 69.8 73.6 69.8 73.6C65.4 73.2 74 68.8 74.2 69C74.4 69.2 80 63.6 72 64.2C50.203 65.835 39.4 55.6 39.4 55.6C37.4 54.2 34.8 51.4 34.8 51.4C24.8 49.4 36.2 63.8 36.2 63.8C37.4 65.2 36 66.2 36 66.2C35.2 64.6 27.4 59.2 27.4 59.2C24.589 58.227 23.226 56.893 20.895 54.407z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-3 42.8C-3 42.8 8.6 48.4 11.2 51.2C13.8 54 27.8 65.4 27.8 65.4C27.8 65.4 22.4 63.4 19.8 61.6C17.2 59.8 6.4 51.6 6.4 51.6C6.4 51.6 2.6 45.6 -3 42.8z', stroke: 'none', fill: '#4c0000' }, { type: 'path', path: 'M-61.009 11.603C-60.672 11.455 -61.196 8.743 -61.4 8.2C-62.422 5.474 -71.4 4 -71.4 4C-71.627 5.365 -71.682 6.961 -71.576 8.599C-71.576 8.599 -66.708 14.118 -61.009 11.603z', stroke: 'none', fill: '#99cc32' }, { type: 'path', path: 'M-61.009 11.403C-61.458 11.561 -61.024 8.669 -61.2 8.2C-62.222 5.474 -71.4 3.9 -71.4 3.9C-71.627 5.265 -71.682 6.861 -71.576 8.499C-71.576 8.499 -67.308 13.618 -61.009 11.403z', stroke: 'none', fill: '#659900' }, { type: 'path', path: 'M-65.4 11.546C-66.025 11.546 -66.531 10.406 -66.531 9C-66.531 7.595 -66.025 6.455 -65.4 6.455C-64.775 6.455 -64.268 7.595 -64.268 9C-64.268 10.406 -64.775 11.546 -65.4 11.546z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-65.4 9z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-111 109.601C-111 109.601 -116.6 119.601 -91.8 113.601C-91.8 113.601 -77.8 112.401 -75.4 110.001C-74.2 110.801 -65.834 113.734 -63 114.401C-56.2 116.001 -47.8 106 -47.8 106C-47.8 106 -43.2 95.5 -40.4 95.5C-37.6 95.5 -40.8 97.1 -40.8 97.1C-40.8 97.1 -47.4 107.201 -47 108.801C-47 108.801 -52.2 128.801 -68.2 129.601C-68.2 129.601 -84.35 130.551 -83 136.401C-83 136.401 -74.2 134.001 -71.8 136.401C-71.8 136.401 -61 136.001 -69 142.401L-75.8 154.001C-75.8 154.001 -75.66 157.919 -85.8 154.401C-95.6 151.001 -105.9 138.101 -105.9 138.101C-105.9 138.101 -121.85 123.551 -111 109.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-112.2 113.601C-112.2 113.601 -114.2 123.201 -77.4 112.801C-77.4 112.801 -73 112.801 -70.6 113.601C-68.2 114.401 -56.2 117.201 -54.2 116.001C-54.2 116.001 -61.4 129.601 -73 128.001C-73 128.001 -86.2 129.601 -85.8 134.401C-85.8 134.401 -81.8 141.601 -77 144.001C-77 144.001 -74.2 146.401 -74.6 149.601C-75 152.801 -77.8 154.401 -79.8 155.201C-81.8 156.001 -85 152.801 -86.6 152.801C-88.2 152.801 -96.6 146.401 -101 141.601C-105.4 136.801 -113.8 124.801 -113.4 122.001C-113 119.201 -112.2 113.601 -112.2 113.601z', stroke: 'none', fill: '#e59999' }, { type: 'path', path: 'M-109 131.051C-106.4 135.001 -103.2 139.201 -101 141.601C-96.6 146.401 -88.2 152.801 -86.6 152.801C-85 152.801 -81.8 156.001 -79.8 155.201C-77.8 154.401 -75 152.801 -74.6 149.601C-74.2 146.401 -77 144.001 -77 144.001C-80.066 142.468 -82.806 138.976 -84.385 136.653C-84.385 136.653 -84.2 139.201 -89.4 138.401C-94.6 137.601 -99.8 134.801 -101.4 131.601C-103 128.401 -105.4 126.001 -103.8 129.601C-102.2 133.201 -99.8 136.801 -98.2 137.201C-96.6 137.601 -97 138.801 -99.4 138.401C-101.8 138.001 -104.6 137.601 -109 132.401z', stroke: 'none', fill: '#b26565' }, { type: 'path', path: 'M-111.6 110.001C-111.6 110.001 -109.8 96.4 -108.6 92.4C-108.6 92.4 -109.4 85.6 -107 81.4C-104.6 77.2 -102.6 71 -99.6 65.6C-96.6 60.2 -96.4 56.2 -92.4 54.6C-88.4 53 -82.4 44.4 -79.6 43.4C-76.8 42.4 -77 43.2 -77 43.2C-77 43.2 -70.2 28.4 -56.6 32.4C-56.6 32.4 -72.8 29.6 -57 20.2C-57 20.2 -61.8 21.3 -58.5 14.3C-56.299 9.632 -56.8 16.4 -67.8 28.2C-67.8 28.2 -72.8 36.8 -78 39.8C-83.2 42.8 -95.2 49.8 -96.4 53.6C-97.6 57.4 -100.8 63.2 -102.8 64.8C-104.8 66.4 -107.6 70.6 -108 74C-108 74 -109.2 78 -110.6 79.2C-112 80.4 -112.2 83.6 -112.2 85.6C-112.2 87.6 -114.2 90.4 -114 92.8C-114 92.8 -113.2 111.801 -113.6 113.801L-111.6 110.001z', stroke: 'none', fill: '#992600' }, { type: 'path', path: 'M-120.2 114.601C-120.2 114.601 -122.2 113.201 -126.6 119.201C-126.6 119.201 -119.3 152.201 -119.3 153.601C-119.3 153.601 -118.2 151.501 -119.5 144.301C-120.8 137.101 -121.7 124.401 -121.7 124.401L-120.2 114.601z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M-98.6 54C-98.6 54 -116.2 57.2 -115.8 86.4L-116.6 111.201C-116.6 111.201 -117.8 85.6 -119 84C-120.2 82.4 -116.2 71.2 -119.4 77.2C-119.4 77.2 -133.4 91.2 -125.4 112.401C-125.4 112.401 -123.9 115.701 -126.9 111.101C-126.9 111.101 -131.5 98.5 -130.4 92.1C-130.4 92.1 -130.2 89.9 -128.3 87.1C-128.3 87.1 -119.7 75.4 -117 73.1C-117 73.1 -115.2 58.7 -99.8 53.5C-99.8 53.5 -94.1 51.2 -98.6 54z', stroke: 'none', fill: '#992600' }, { type: 'path', path: 'M40.8 -12.2C41.46 -12.554 41.451 -13.524 42.031 -13.697C43.18 -14.041 43.344 -15.108 43.862 -15.892C44.735 -17.211 44.928 -18.744 45.51 -20.235C45.782 -20.935 45.809 -21.89 45.496 -22.55C44.322 -25.031 43.62 -27.48 42.178 -29.906C41.91 -30.356 41.648 -31.15 41.447 -31.748C40.984 -33.132 39.727 -34.123 38.867 -35.443C38.579 -35.884 39.104 -36.809 38.388 -36.893C37.491 -36.998 36.042 -37.578 35.809 -36.552C35.221 -33.965 36.232 -31.442 37.2 -29C36.418 -28.308 36.752 -27.387 36.904 -26.62C37.614 -23.014 36.416 -19.662 35.655 -16.188C35.632 -16.084 35.974 -15.886 35.946 -15.824C34.724 -13.138 33.272 -10.693 31.453 -8.312C30.695 -7.32 29.823 -6.404 29.326 -5.341C28.958 -4.554 28.55 -3.588 28.8 -2.6C25.365 0.18 23.115 4.025 20.504 7.871C20.042 8.551 20.333 9.76 20.884 10.029C21.697 10.427 22.653 9.403 23.123 8.557C23.512 7.859 23.865 7.209 24.356 6.566C24.489 6.391 24.31 5.972 24.445 5.851C27.078 3.504 28.747 0.568 31.2 -1.8C33.15 -2.129 34.687 -3.127 36.435 -4.14C36.743 -4.319 37.267 -4.07 37.557 -4.265C39.31 -5.442 39.308 -7.478 39.414 -9.388C39.464 -10.272 39.66 -11.589 40.8 -12.2z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M31.959 -16.666C32.083 -16.743 31.928 -17.166 32.037 -17.382C32.199 -17.706 32.602 -17.894 32.764 -18.218C32.873 -18.434 32.71 -18.814 32.846 -18.956C35.179 -21.403 35.436 -24.427 34.4 -27.4C35.424 -28.02 35.485 -29.282 35.06 -30.129C34.207 -31.829 34.014 -33.755 33.039 -35.298C32.237 -36.567 30.659 -37.811 29.288 -36.508C28.867 -36.108 28.546 -35.321 28.824 -34.609C28.888 -34.446 29.173 -34.3 29.146 -34.218C29.039 -33.894 28.493 -33.67 28.487 -33.398C28.457 -31.902 27.503 -30.391 28.133 -29.062C28.905 -27.433 29.724 -25.576 30.4 -23.8C29.166 -21.684 30.199 -19.235 28.446 -17.358C28.31 -17.212 28.319 -16.826 28.441 -16.624C28.733 -16.138 29.139 -15.732 29.625 -15.44C29.827 -15.319 30.175 -15.317 30.375 -15.441C30.953 -15.803 31.351 -16.29 31.959 -16.666z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M94.771 -26.977C96.16 -25.185 96.45 -22.39 94.401 -21C94.951 -17.691 98.302 -19.67 100.401 -20.2C100.292 -20.588 100.519 -20.932 100.802 -20.937C101.859 -20.952 102.539 -21.984 103.601 -21.8C104.035 -23.357 105.673 -24.059 106.317 -25.439C108.043 -29.134 107.452 -33.407 104.868 -36.653C104.666 -36.907 104.883 -37.424 104.759 -37.786C104.003 -39.997 101.935 -40.312 100.001 -41C98.824 -44.875 98.163 -48.906 96.401 -52.6C94.787 -52.85 94.089 -54.589 92.752 -55.309C91.419 -56.028 90.851 -54.449 90.892 -53.403C90.899 -53.198 91.351 -52.974 91.181 -52.609C91.105 -52.445 90.845 -52.334 90.845 -52.2C90.846 -52.065 91.067 -51.934 91.201 -51.8C90.283 -50.98 88.86 -50.503 88.565 -49.358C87.611 -45.648 90.184 -42.523 91.852 -39.322C92.443 -38.187 91.707 -36.916 90.947 -35.708C90.509 -35.013 90.617 -33.886 90.893 -33.03C91.645 -30.699 93.236 -28.96 94.771 -26.977z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M57.611 -8.591C56.124 -6.74 52.712 -4.171 55.629 -2.243C55.823 -2.114 56.193 -2.11 56.366 -2.244C58.387 -3.809 60.39 -4.712 62.826 -5.294C62.95 -5.323 63.224 -4.856 63.593 -5.017C65.206 -5.72 67.216 -5.662 68.4 -7C72.167 -6.776 75.732 -7.892 79.123 -9.2C80.284 -9.648 81.554 -10.207 82.755 -10.709C84.131 -11.285 85.335 -12.213 86.447 -13.354C86.58 -13.49 86.934 -13.4 87.201 -13.4C87.161 -14.263 88.123 -14.39 88.37 -15.012C88.462 -15.244 88.312 -15.64 88.445 -15.742C90.583 -17.372 91.503 -19.39 90.334 -21.767C90.049 -22.345 89.8 -22.963 89.234 -23.439C88.149 -24.35 87.047 -23.496 86 -23.8C85.841 -23.172 85.112 -23.344 84.726 -23.146C83.867 -22.707 82.534 -23.292 81.675 -22.854C80.313 -22.159 79.072 -21.99 77.65 -21.613C77.338 -21.531 76.56 -21.627 76.4 -21C76.266 -21.134 76.118 -21.368 76.012 -21.346C74.104 -20.95 72.844 -20.736 71.543 -19.044C71.44 -18.911 70.998 -19.09 70.839 -18.955C69.882 -18.147 69.477 -16.913 68.376 -16.241C68.175 -16.118 67.823 -16.286 67.629 -16.157C66.983 -15.726 66.616 -15.085 65.974 -14.638C65.645 -14.409 65.245 -14.734 65.277 -14.99C65.522 -16.937 66.175 -18.724 65.6 -20.6C67.677 -23.12 70.194 -25.069 72 -27.8C72.015 -29.966 72.707 -32.112 72.594 -34.189C72.584 -34.382 72.296 -35.115 72.17 -35.462C71.858 -36.316 72.764 -37.382 71.92 -38.106C70.516 -39.309 69.224 -38.433 68.4 -37C66.562 -36.61 64.496 -35.917 62.918 -37.151C61.911 -37.938 61.333 -38.844 60.534 -39.9C59.549 -41.202 59.884 -42.638 59.954 -44.202C59.96 -44.33 59.645 -44.466 59.645 -44.6C59.646 -44.735 59.866 -44.866 60 -45C59.294 -45.626 59.019 -46.684 58 -47C58.305 -48.092 57.629 -48.976 56.758 -49.278C54.763 -49.969 53.086 -48.057 51.194 -47.984C50.68 -47.965 50.213 -49.003 49.564 -49.328C49.132 -49.544 48.428 -49.577 48.066 -49.311C47.378 -48.807 46.789 -48.693 46.031 -48.488C44.414 -48.052 43.136 -46.958 41.656 -46.103C40.171 -45.246 39.216 -43.809 38.136 -42.489C37.195 -41.337 37.059 -38.923 38.479 -38.423C40.322 -37.773 41.626 -40.476 43.592 -40.15C43.904 -40.099 44.11 -39.788 44 -39.4C44.389 -39.291 44.607 -39.52 44.8 -39.8C45.658 -38.781 46.822 -38.444 47.76 -37.571C48.73 -36.667 50.476 -37.085 51.491 -36.088C53.02 -34.586 52.461 -31.905 54.4 -30.6C53.814 -29.287 53.207 -28.01 52.872 -26.583C52.59 -25.377 53.584 -24.18 54.795 -24.271C56.053 -24.365 56.315 -25.124 56.8 -26.2C57.067 -25.933 57.536 -25.636 57.495 -25.42C57.038 -23.033 56.011 -21.04 55.553 -18.609C55.494 -18.292 55.189 -18.09 54.8 -18.2C54.332 -14.051 50.28 -11.657 47.735 -8.492C47.332 -7.99 47.328 -6.741 47.737 -6.338C49.14 -4.951 51.1 -6.497 52.8 -7C53.013 -8.206 53.872 -9.148 55.204 -9.092C55.46 -9.082 55.695 -9.624 56.019 -9.754C56.367 -9.892 56.869 -9.668 57.155 -9.866C58.884 -11.061 60.292 -12.167 62.03 -13.356C62.222 -13.487 62.566 -13.328 62.782 -13.436C63.107 -13.598 63.294 -13.985 63.617 -14.17C63.965 -14.37 64.207 -14.08 64.4 -13.8C63.754 -13.451 63.75 -12.494 63.168 -12.292C62.393 -12.024 61.832 -11.511 61.158 -11.064C60.866 -10.871 60.207 -11.119 60.103 -10.94C59.505 -9.912 58.321 -9.474 57.611 -8.591z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M2.2 -58C2.2 -58 -7.038 -60.872 -18.2 -35.2C-18.2 -35.2 -20.6 -30 -23 -28C-25.4 -26 -36.6 -22.4 -38.6 -18.4L-49 -2.4C-49 -2.4 -34.2 -18.4 -31 -20.8C-31 -20.8 -23 -29.2 -26.2 -22.4C-26.2 -22.4 -40.2 -11.6 -39 -2.4C-39 -2.4 -44.6 12 -45.4 14C-45.4 14 -29.4 -18 -27 -19.2C-24.6 -20.4 -23.4 -20.4 -24.6 -16.8C-25.8 -13.2 -26.2 3.2 -29 5.2C-29 5.2 -21 -15.2 -21.8 -18.4C-21.8 -18.4 -18.6 -22 -16.2 -16.8L-17.4 -0.8L-13 11.2C-13 11.2 -15.4 0 -13.8 -15.6C-13.8 -15.6 -15.8 -26 -11.8 -20.4C-7.8 -14.8 1.8 -8.8 1.8 -4C1.8 -4 -3.4 -21.6 -12.6 -26.4L-16.6 -20.4L-17.8 -22.4C-17.8 -22.4 -21.4 -23.2 -17 -30C-12.6 -36.8 -13 -37.6 -13 -37.6C-13 -37.6 -6.6 -30.4 -5 -30.4C-5 -30.4 8.2 -38 9.4 -13.6C9.4 -13.6 16.2 -28 7 -34.8C7 -34.8 -7.8 -36.8 -6.6 -42L0.6 -54.4C4.2 -59.6 2.6 -56.8 2.6 -56.8z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-17.8 -41.6C-17.8 -41.6 -30.6 -41.6 -33.8 -36.4L-41 -26.8C-41 -26.8 -23.8 -36.8 -19.8 -38C-15.8 -39.2 -17.8 -41.6 -17.8 -41.6z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-57.8 -35.2C-57.8 -35.2 -59.8 -34 -60.2 -31.2C-60.6 -28.4 -63 -28 -62.2 -25.2C-61.4 -22.4 -59.4 -20 -59.4 -24C-59.4 -28 -57.8 -30 -57 -31.2C-56.2 -32.4 -54.6 -36.8 -57.8 -35.2z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-66.6 26C-66.6 26 -75 22 -78.2 18.4C-81.4 14.8 -80.948 19.966 -85.8 19.6C-91.647 19.159 -90.6 3.2 -90.6 3.2L-94.6 10.8C-94.6 10.8 -95.8 25.2 -87.8 22.8C-83.893 21.628 -82.6 23.2 -84.2 24C-85.8 24.8 -78.6 25.2 -81.4 26.8C-84.2 28.4 -69.8 23.2 -72.2 33.6L-66.6 26z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-79.2 40.4C-79.2 40.4 -94.6 44.8 -98.2 35.2C-98.2 35.2 -103 37.6 -100.8 40.6C-98.6 43.6 -97.4 44 -97.4 44C-97.4 44 -92 45.2 -92.6 46C-93.2 46.8 -95.6 50.2 -95.6 50.2C-95.6 50.2 -85.4 44.2 -79.2 40.4z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M149.201 118.601C148.774 120.735 147.103 121.536 145.201 122.201C143.284 121.243 140.686 118.137 138.801 120.201C138.327 119.721 137.548 119.661 137.204 118.999C136.739 118.101 137.011 117.055 136.669 116.257C136.124 114.985 135.415 113.619 135.601 112.201C137.407 111.489 138.002 109.583 137.528 107.82C137.459 107.563 137.03 107.366 137.23 107.017C137.416 106.694 137.734 106.467 138.001 106.2C137.866 106.335 137.721 106.568 137.61 106.548C137 106.442 137.124 105.805 137.254 105.418C137.839 103.672 139.853 103.408 141.201 104.6C141.457 104.035 141.966 104.229 142.401 104.2C142.351 103.621 142.759 103.094 142.957 102.674C143.475 101.576 145.104 102.682 145.901 102.07C146.977 101.245 148.04 100.546 149.118 101.149C150.927 102.162 152.636 103.374 153.835 105.115C154.41 105.949 154.65 107.23 154.592 108.188C154.554 108.835 153.173 108.483 152.83 109.412C152.185 111.16 154.016 111.679 154.772 113.017C154.97 113.366 154.706 113.67 154.391 113.768C153.98 113.896 153.196 113.707 153.334 114.16C154.306 117.353 151.55 118.031 149.201 118.601z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M139.6 138.201C139.593 136.463 137.992 134.707 139.201 133.001C139.336 133.135 139.467 133.356 139.601 133.356C139.736 133.356 139.867 133.135 140.001 133.001C141.496 135.217 145.148 136.145 145.006 138.991C144.984 139.438 143.897 140.356 144.801 141.001C142.988 142.349 142.933 144.719 142.001 146.601C140.763 146.315 139.551 145.952 138.401 145.401C138.753 143.915 138.636 142.231 139.456 140.911C139.89 140.213 139.603 139.134 139.6 138.201z', stroke: 'none', fill: '#fff' }, { type: 'path', path: 'M-26.6 129.201C-26.6 129.201 -43.458 139.337 -29.4 124.001C-20.6 114.401 -10.6 108.801 -10.6 108.801C-10.6 108.801 -0.2 104.4 3.4 103.2C7 102 22.2 96.8 25.4 96.4C28.6 96 38.2 92 45 96C51.8 100 59.8 104.4 59.8 104.4C59.8 104.4 43.4 96 39.8 98.4C36.2 100.8 29 100.4 23 103.6C23 103.6 8.2 108.001 5 110.001C1.8 112.001 -8.6 123.601 -10.2 122.801C-11.8 122.001 -9.8 121.601 -8.6 118.801C-7.4 116.001 -9.4 114.401 -17.4 120.801C-25.4 127.201 -26.6 129.201 -26.6 129.201z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-19.195 123.234C-19.195 123.234 -17.785 110.194 -9.307 111.859C-9.307 111.859 -1.081 107.689 1.641 105.721C1.641 105.721 9.78 104.019 11.09 103.402C29.569 94.702 44.288 99.221 44.835 98.101C45.381 96.982 65.006 104.099 68.615 108.185C69.006 108.628 58.384 102.588 48.686 100.697C40.413 99.083 18.811 100.944 7.905 106.48C4.932 107.989 -4.013 113.773 -6.544 113.662C-9.075 113.55 -19.195 123.234 -19.195 123.234z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-23 148.801C-23 148.801 -38.2 146.401 -21.4 144.801C-21.4 144.801 -3.4 142.801 0.6 137.601C0.6 137.601 14.2 128.401 17 128.001C19.8 127.601 49.8 120.401 50.2 118.001C50.6 115.601 56.2 115.601 57.8 116.401C59.4 117.201 58.6 118.401 55.8 119.201C53 120.001 21.8 136.401 15.4 137.601C9 138.801 -2.6 146.401 -7.4 147.601C-12.2 148.801 -23 148.801 -23 148.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-3.48 141.403C-3.48 141.403 -12.062 140.574 -3.461 139.755C-3.461 139.755 5.355 136.331 7.403 133.668C7.403 133.668 14.367 128.957 15.8 128.753C17.234 128.548 31.194 124.861 31.399 123.633C31.604 122.404 65.67 109.823 70.09 113.013C73.001 115.114 63.1 113.437 53.466 117.847C52.111 118.467 18.258 133.054 14.981 133.668C11.704 134.283 5.765 138.174 3.307 138.788C0.85 139.403 -3.48 141.403 -3.48 141.403z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-11.4 143.601C-11.4 143.601 -6.2 143.201 -7.4 144.801C-8.6 146.401 -11 145.601 -11 145.601L-11.4 143.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-18.6 145.201C-18.6 145.201 -13.4 144.801 -14.6 146.401C-15.8 148.001 -18.2 147.201 -18.2 147.201L-18.6 145.201z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-29 146.801C-29 146.801 -23.8 146.401 -25 148.001C-26.2 149.601 -28.6 148.801 -28.6 148.801L-29 146.801z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-36.6 147.601C-36.6 147.601 -31.4 147.201 -32.6 148.801C-33.8 150.401 -36.2 149.601 -36.2 149.601L-36.6 147.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M1.8 108.001C1.8 108.001 6.2 108.001 5 109.601C3.8 111.201 0.6 110.801 0.6 110.801L1.8 108.001z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-8.2 113.601C-8.2 113.601 -1.694 111.46 -4.2 114.801C-5.4 116.401 -7.8 115.601 -7.8 115.601L-8.2 113.601z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-19.4 118.401C-19.4 118.401 -14.2 118.001 -15.4 119.601C-16.6 121.201 -19 120.401 -19 120.401L-19.4 118.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-27 124.401C-27 124.401 -21.8 124.001 -23 125.601C-24.2 127.201 -26.6 126.401 -26.6 126.401L-27 124.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-33.8 129.201C-33.8 129.201 -28.6 128.801 -29.8 130.401C-31 132.001 -33.4 131.201 -33.4 131.201L-33.8 129.201z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M5.282 135.598C5.282 135.598 12.203 135.066 10.606 137.195C9.009 139.325 5.814 138.26 5.814 138.26L5.282 135.598z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M15.682 130.798C15.682 130.798 22.603 130.266 21.006 132.395C19.409 134.525 16.214 133.46 16.214 133.46L15.682 130.798z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M26.482 126.398C26.482 126.398 33.403 125.866 31.806 127.995C30.209 130.125 27.014 129.06 27.014 129.06L26.482 126.398z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M36.882 121.598C36.882 121.598 43.803 121.066 42.206 123.195C40.609 125.325 37.414 124.26 37.414 124.26L36.882 121.598z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M9.282 103.598C9.282 103.598 16.203 103.066 14.606 105.195C13.009 107.325 9.014 107.06 9.014 107.06L9.282 103.598z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M19.282 100.398C19.282 100.398 26.203 99.866 24.606 101.995C23.009 104.125 18.614 103.86 18.614 103.86L19.282 100.398z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-3.4 140.401C-3.4 140.401 1.8 140.001 0.6 141.601C-0.6 143.201 -3 142.401 -3 142.401L-3.4 140.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-76.6 41.2C-76.6 41.2 -81 50 -81.4 53.2C-81.4 53.2 -80.6 44.4 -79.4 42.4C-78.2 40.4 -76.6 41.2 -76.6 41.2z', stroke: 'none', fill: '#992600' }, { type: 'path', path: 'M-95 55.2C-95 55.2 -98.2 69.6 -97.8 72.4C-97.8 72.4 -99 60.8 -98.6 59.6C-98.2 58.4 -95 55.2 -95 55.2z', stroke: 'none', fill: '#992600' }, { type: 'path', path: 'M-74.2 -19.4L-74.4 -16.2L-76.6 -16C-76.6 -16 -62.4 -3.4 -61.8 4.2C-61.8 4.2 -61 -4 -74.2 -19.4z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-70.216 -18.135C-70.647 -18.551 -70.428 -19.296 -70.836 -19.556C-71.645 -20.072 -69.538 -20.129 -69.766 -20.845C-70.149 -22.051 -69.962 -22.072 -70.084 -23.348C-70.141 -23.946 -69.553 -25.486 -69.168 -25.926C-67.722 -27.578 -69.046 -30.51 -67.406 -32.061C-67.102 -32.35 -66.726 -32.902 -66.441 -33.32C-65.782 -34.283 -64.598 -34.771 -63.648 -35.599C-63.33 -35.875 -63.531 -36.702 -62.962 -36.61C-62.248 -36.495 -61.007 -36.625 -61.052 -35.784C-61.165 -33.664 -62.494 -31.944 -63.774 -30.276C-63.323 -29.572 -63.781 -28.937 -64.065 -28.38C-65.4 -25.76 -65.211 -22.919 -65.385 -20.079C-65.39 -19.994 -65.697 -19.916 -65.689 -19.863C-65.336 -17.528 -64.752 -15.329 -63.873 -13.1C-63.507 -12.17 -63.036 -11.275 -62.886 -10.348C-62.775 -9.662 -62.672 -8.829 -63.08 -8.124C-61.045 -5.234 -62.354 -2.583 -61.185 0.948C-60.978 1.573 -59.286 3.487 -59.749 3.326C-62.262 2.455 -62.374 2.057 -62.551 1.304C-62.697 0.681 -63.027 -0.696 -63.264 -1.298C-63.328 -1.462 -63.499 -3.346 -63.577 -3.468C-65.09 -5.85 -63.732 -5.674 -65.102 -8.032C-66.53 -8.712 -67.496 -9.816 -68.619 -10.978C-68.817 -11.182 -67.674 -11.906 -67.855 -12.119C-68.947 -13.408 -70.1 -14.175 -69.764 -15.668C-69.609 -16.358 -69.472 -17.415 -70.216 -18.135z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-73.8 -16.4C-73.8 -16.4 -73.4 -9.6 -71 -8C-68.6 -6.4 -69.8 -7.2 -73 -8.4C-76.2 -9.6 -75 -10.4 -75 -10.4C-75 -10.4 -77.8 -10 -75.4 -8C-73 -6 -69.4 -3.6 -71 -3.6C-72.6 -3.6 -80.2 -7.6 -80.2 -10.4C-80.2 -13.2 -81.2 -17.3 -81.2 -17.3C-81.2 -17.3 -80.1 -18.1 -75.3 -18C-75.3 -18 -73.9 -17.3 -73.8 -16.4z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-74.6 2.2C-74.6 2.2 -83.12 -0.591 -101.6 2.8C-101.6 2.8 -92.569 0.722 -73.8 3C-63.5 4.25 -74.6 2.2 -74.6 2.2z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-72.502 2.129C-72.502 2.129 -80.748 -1.389 -99.453 0.392C-99.453 0.392 -90.275 -0.897 -71.774 2.995C-61.62 5.131 -72.502 2.129 -72.502 2.129z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-70.714 2.222C-70.714 2.222 -78.676 -1.899 -97.461 -1.514C-97.461 -1.514 -88.213 -2.118 -70.052 3.14C-60.086 6.025 -70.714 2.222 -70.714 2.222z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-69.444 2.445C-69.444 2.445 -76.268 -1.862 -93.142 -2.96C-93.142 -2.96 -84.803 -2.79 -68.922 3.319C-60.206 6.672 -69.444 2.445 -69.444 2.445z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M45.84 12.961C45.84 12.961 44.91 13.605 45.124 12.424C45.339 11.243 73.547 -1.927 77.161 -1.677C77.161 -1.677 46.913 11.529 45.84 12.961z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M42.446 13.6C42.446 13.6 41.57 14.315 41.691 13.121C41.812 11.927 68.899 -3.418 72.521 -3.452C72.521 -3.452 43.404 12.089 42.446 13.6z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M39.16 14.975C39.16 14.975 38.332 15.747 38.374 14.547C38.416 13.348 58.233 -2.149 68.045 -4.023C68.045 -4.023 50.015 4.104 39.16 14.975z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M36.284 16.838C36.284 16.838 35.539 17.532 35.577 16.453C35.615 15.373 53.449 1.426 62.28 -0.26C62.28 -0.26 46.054 7.054 36.284 16.838z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M4.6 164.801C4.6 164.801 -10.6 162.401 6.2 160.801C6.2 160.801 24.2 158.801 28.2 153.601C28.2 153.601 41.8 144.401 44.6 144.001C47.4 143.601 63.8 140.001 64.2 137.601C64.6 135.201 70.6 132.801 72.2 133.601C73.8 134.401 73.8 143.601 71 144.401C68.2 145.201 49.4 152.401 43 153.601C36.6 154.801 25 162.401 20.2 163.601C15.4 164.801 4.6 164.801 4.6 164.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M77.6 127.401C77.6 127.401 74.6 129.001 73.4 131.601C73.4 131.601 67 142.201 52.8 145.401C52.8 145.401 29.8 154.401 22 156.401C22 156.401 8.6 161.401 1.2 160.601C1.2 160.601 -5.8 160.801 0.4 162.401C0.4 162.401 20.6 160.401 24 158.601C24 158.601 39.6 153.401 42.6 150.801C45.6 148.201 63.8 143.201 66 141.201C68.2 139.201 78 130.801 77.6 127.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M18.882 158.911C18.882 158.911 24.111 158.685 22.958 160.234C21.805 161.784 19.357 160.91 19.357 160.91L18.882 158.911z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M11.68 160.263C11.68 160.263 16.908 160.037 15.756 161.586C14.603 163.136 12.155 162.263 12.155 162.263L11.68 160.263z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M1.251 161.511C1.251 161.511 6.48 161.284 5.327 162.834C4.174 164.383 1.726 163.51 1.726 163.51L1.251 161.511z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-6.383 162.055C-6.383 162.055 -1.154 161.829 -2.307 163.378C-3.46 164.928 -5.908 164.054 -5.908 164.054L-6.383 162.055z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M35.415 151.513C35.415 151.513 42.375 151.212 40.84 153.274C39.306 155.336 36.047 154.174 36.047 154.174L35.415 151.513z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M45.73 147.088C45.73 147.088 51.689 143.787 51.155 148.849C50.885 151.405 46.362 149.749 46.362 149.749L45.73 147.088z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M54.862 144.274C54.862 144.274 62.021 140.573 60.287 146.035C59.509 148.485 55.493 146.935 55.493 146.935L54.862 144.274z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M64.376 139.449C64.376 139.449 68.735 134.548 69.801 141.21C70.207 143.748 65.008 142.11 65.008 142.11L64.376 139.449z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M26.834 155.997C26.834 155.997 32.062 155.77 30.91 157.32C29.757 158.869 27.308 157.996 27.308 157.996L26.834 155.997z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M62.434 34.603C62.434 34.603 61.708 35.268 61.707 34.197C61.707 33.127 79.191 19.863 88.034 18.479C88.034 18.479 71.935 25.208 62.434 34.603z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M65.4 98.4C65.4 98.4 87.401 120.801 96.601 124.401C96.601 124.401 105.801 135.601 101.801 161.601C101.801 161.601 98.601 169.201 95.401 148.401C95.401 148.401 98.601 123.201 87.401 139.201C87.401 139.201 79 129.301 85.4 129.601C85.4 129.601 88.601 131.601 89.001 130.001C89.401 128.401 81.4 114.801 64.2 100.4C47 86 65.4 98.4 65.4 98.4z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M7 137.201C7 137.201 6.8 135.401 8.6 136.201C10.4 137.001 104.601 143.201 136.201 167.201C136.201 167.201 91.001 144.001 7 137.201z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M17.4 132.801C17.4 132.801 17.2 131.001 19 131.801C20.8 132.601 157.401 131.601 181.001 164.001C181.001 164.001 159.001 138.801 17.4 132.801z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M29 128.801C29 128.801 28.8 127.001 30.6 127.801C32.4 128.601 205.801 115.601 229.401 148.001C229.401 148.001 219.801 122.401 29 128.801z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M39 124.001C39 124.001 38.8 122.201 40.6 123.001C42.4 123.801 164.601 85.2 188.201 117.601C188.201 117.601 174.801 93 39 124.001z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-19 146.801C-19 146.801 -19.2 145.001 -17.4 145.801C-15.6 146.601 2.2 148.801 4.2 187.601C4.2 187.601 -3 145.601 -19 146.801z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-27.8 148.401C-27.8 148.401 -28 146.601 -26.2 147.401C-24.4 148.201 -10.2 143.601 -13 182.401C-13 182.401 -11.8 147.201 -27.8 148.401z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-35.8 148.801C-35.8 148.801 -36 147.001 -34.2 147.801C-32.4 148.601 -17 149.201 -29.4 171.601C-29.4 171.601 -19.8 147.601 -35.8 148.801z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M11.526 104.465C11.526 104.465 11.082 106.464 12.631 105.247C28.699 92.622 61.141 33.72 116.826 28.086C116.826 28.086 78.518 15.976 11.526 104.465z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M22.726 102.665C22.726 102.665 21.363 101.472 23.231 100.847C25.099 100.222 137.541 27.72 176.826 35.686C176.826 35.686 149.719 28.176 22.726 102.665z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M1.885 108.767C1.885 108.767 1.376 110.366 3.087 109.39C12.062 104.27 15.677 47.059 59.254 45.804C59.254 45.804 26.843 31.09 1.885 108.767z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-18.038 119.793C-18.038 119.793 -19.115 121.079 -17.162 120.825C-6.916 119.493 14.489 78.222 58.928 83.301C58.928 83.301 26.962 68.955 -18.038 119.793z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-6.8 113.667C-6.8 113.667 -7.611 115.136 -5.742 114.511C4.057 111.237 17.141 66.625 61.729 63.078C61.729 63.078 27.603 55.135 -6.8 113.667z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-25.078 124.912C-25.078 124.912 -25.951 125.954 -24.369 125.748C-16.07 124.669 1.268 91.24 37.264 95.354C37.264 95.354 11.371 83.734 -25.078 124.912z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-32.677 130.821C-32.677 130.821 -33.682 131.866 -32.091 131.748C-27.923 131.439 2.715 98.36 21.183 113.862C21.183 113.862 9.168 95.139 -32.677 130.821z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M36.855 98.898C36.855 98.898 35.654 97.543 37.586 97.158C39.518 96.774 160.221 39.061 198.184 51.927C198.184 51.927 172.243 41.053 36.855 98.898z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M3.4 163.201C3.4 163.201 3.2 161.401 5 162.201C6.8 163.001 22.2 163.601 9.8 186.001C9.8 186.001 19.4 162.001 3.4 163.201z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M13.8 161.601C13.8 161.601 13.6 159.801 15.4 160.601C17.2 161.401 35 163.601 37 202.401C37 202.401 29.8 160.401 13.8 161.601z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M20.6 160.001C20.6 160.001 20.4 158.201 22.2 159.001C24 159.801 48.6 163.201 72.2 195.601C72.2 195.601 36.6 158.801 20.6 160.001z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M28.225 157.972C28.225 157.972 27.788 156.214 29.678 156.768C31.568 157.322 52.002 155.423 90.099 189.599C90.099 189.599 43.924 154.656 28.225 157.972z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M38.625 153.572C38.625 153.572 38.188 151.814 40.078 152.368C41.968 152.922 76.802 157.423 128.499 192.399C128.499 192.399 54.324 150.256 38.625 153.572z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-1.8 142.001C-1.8 142.001 -2 140.201 -0.2 141.001C1.6 141.801 55 144.401 85.4 171.201C85.4 171.201 50.499 146.426 -1.8 142.001z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-11.8 146.001C-11.8 146.001 -12 144.201 -10.2 145.001C-8.4 145.801 16.2 149.201 39.8 181.601C39.8 181.601 4.2 144.801 -11.8 146.001z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M49.503 148.962C49.503 148.962 48.938 147.241 50.864 147.655C52.79 148.068 87.86 150.004 141.981 181.098C141.981 181.098 64.317 146.704 49.503 148.962z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M57.903 146.562C57.903 146.562 57.338 144.841 59.264 145.255C61.19 145.668 96.26 147.604 150.381 178.698C150.381 178.698 73.317 143.904 57.903 146.562z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M67.503 141.562C67.503 141.562 66.938 139.841 68.864 140.255C70.79 140.668 113.86 145.004 203.582 179.298C203.582 179.298 82.917 138.904 67.503 141.562z', 'stroke-width': '0.1', stroke: '#000', fill: '#fff' }, { type: 'path', path: 'M-43.8 148.401C-43.8 148.401 -38.6 148.001 -39.8 149.601C-41 151.201 -43.4 150.401 -43.4 150.401L-43.8 148.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-13 162.401C-13 162.401 -7.8 162.001 -9 163.601C-10.2 165.201 -12.6 164.401 -12.6 164.401L-13 162.401z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-21.8 162.001C-21.8 162.001 -16.6 161.601 -17.8 163.201C-19 164.801 -21.4 164.001 -21.4 164.001L-21.8 162.001z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-117.169 150.182C-117.169 150.182 -112.124 151.505 -113.782 152.624C-115.439 153.744 -117.446 152.202 -117.446 152.202L-117.169 150.182z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-115.169 140.582C-115.169 140.582 -110.124 141.905 -111.782 143.024C-113.439 144.144 -115.446 142.602 -115.446 142.602L-115.169 140.582z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-122.369 136.182C-122.369 136.182 -117.324 137.505 -118.982 138.624C-120.639 139.744 -122.646 138.202 -122.646 138.202L-122.369 136.182z', stroke: 'none', fill: '#000' }, { type: 'path', path: 'M-42.6 211.201C-42.6 211.201 -44.2 211.201 -48.2 213.201C-50.2 213.201 -61.4 216.801 -67 226.801C-67 226.801 -54.6 217.201 -42.6 211.201z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M45.116 303.847C45.257 304.105 45.312 304.525 45.604 304.542C46.262 304.582 47.495 304.883 47.37 304.247C46.522 299.941 45.648 295.004 41.515 293.197C40.876 292.918 39.434 293.331 39.36 294.215C39.233 295.739 39.116 297.088 39.425 298.554C39.725 299.975 41.883 299.985 42.8 298.601C43.736 300.273 44.168 302.116 45.116 303.847z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M34.038 308.581C34.786 309.994 34.659 311.853 36.074 312.416C36.814 312.71 38.664 311.735 38.246 310.661C37.444 308.6 37.056 306.361 35.667 304.55C35.467 304.288 35.707 303.755 35.547 303.427C34.953 302.207 33.808 301.472 32.4 301.801C31.285 304.004 32.433 306.133 33.955 307.842C34.091 307.994 33.925 308.37 34.038 308.581z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-5.564 303.391C-5.672 303.014 -5.71 302.551 -5.545 302.23C-5.014 301.197 -4.221 300.075 -4.558 299.053C-4.906 297.997 -6.022 298.179 -6.672 298.748C-7.807 299.742 -7.856 301.568 -8.547 302.927C-8.743 303.313 -8.692 303.886 -9.133 304.277C-9.607 304.698 -10.047 306.222 -9.951 306.793C-9.898 307.106 -10.081 317.014 -9.859 316.751C-9.24 316.018 -6.19 306.284 -6.121 305.392C-6.064 304.661 -5.332 304.196 -5.564 303.391z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-31.202 296.599C-28.568 294.1 -25.778 291.139 -26.22 287.427C-26.336 286.451 -28.111 286.978 -28.298 287.824C-29.1 291.449 -31.139 294.11 -33.707 296.502C-35.903 298.549 -37.765 304.893 -38 305.401C-34.303 300.145 -32.046 297.399 -31.202 296.599z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-44.776 290.635C-44.253 290.265 -44.555 289.774 -44.338 289.442C-43.385 287.984 -42.084 286.738 -42.066 285C-42.063 284.723 -42.441 284.414 -42.776 284.638C-43.053 284.822 -43.395 284.952 -43.503 285.082C-45.533 287.531 -46.933 290.202 -48.376 293.014C-48.559 293.371 -49.703 297.862 -49.39 297.973C-49.151 298.058 -47.431 293.877 -47.221 293.763C-45.958 293.077 -45.946 291.462 -44.776 290.635z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-28.043 310.179C-27.599 309.31 -26.023 308.108 -26.136 307.219C-26.254 306.291 -25.786 304.848 -26.698 305.536C-27.955 306.484 -31.404 307.833 -31.674 313.641C-31.7 314.212 -28.726 311.519 -28.043 310.179z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-13.6 293.001C-13.2 292.333 -12.492 292.806 -12.033 292.543C-11.385 292.171 -10.774 291.613 -10.482 290.964C-9.512 288.815 -7.743 286.995 -7.6 284.601C-9.091 283.196 -9.77 285.236 -10.4 286.201C-11.723 284.554 -12.722 286.428 -14.022 286.947C-14.092 286.975 -14.305 286.628 -14.38 286.655C-15.557 287.095 -16.237 288.176 -17.235 288.957C-17.406 289.091 -17.811 288.911 -17.958 289.047C-18.61 289.65 -19.583 289.975 -19.863 290.657C-20.973 293.364 -24.113 295.459 -26 303.001C-25.619 303.91 -21.488 296.359 -21.001 295.661C-20.165 294.465 -20.047 297.322 -18.771 296.656C-18.72 296.629 -18.534 296.867 -18.4 297.001C-18.206 296.721 -17.988 296.492 -17.6 296.601C-17.6 296.201 -17.734 295.645 -17.533 295.486C-16.296 294.509 -16.38 293.441 -15.6 292.201C-15.142 292.99 -14.081 292.271 -13.6 293.001z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M46.2 347.401C46.2 347.401 53.6 327.001 49.2 315.801C49.2 315.801 60.6 337.401 56 348.601C56 348.601 55.6 338.201 51.6 333.201C51.6 333.201 47.6 346.001 46.2 347.401z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M31.4 344.801C31.4 344.801 36.8 336.001 28.8 317.601C28.8 317.601 28 338.001 21.2 349.001C21.2 349.001 35.4 328.801 31.4 344.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M21.4 342.801C21.4 342.801 21.2 322.801 21.6 319.801C21.6 319.801 17.8 336.401 7.6 346.001C7.6 346.001 22 334.001 21.4 342.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M11.8 310.801C11.8 310.801 17.8 324.401 7.8 342.801C7.8 342.801 14.2 330.601 9.4 323.601C9.4 323.601 12 320.201 11.8 310.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-7.4 342.401C-7.4 342.401 -8.4 326.801 -6.6 324.601C-6.6 324.601 -6.4 318.201 -6.8 317.201C-6.8 317.201 -2.8 311.001 -2.6 318.401C-2.6 318.401 -1.2 326.201 1.6 330.801C1.6 330.801 5.2 336.201 5 342.601C5 342.601 -5 312.401 -7.4 342.401z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-11 314.801C-11 314.801 -17.6 325.601 -19.4 344.601C-19.4 344.601 -20.8 338.401 -17 324.001C-17 324.001 -12.8 308.601 -11 314.801z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-32.8 334.601C-32.8 334.601 -27.8 329.201 -26.4 324.201C-26.4 324.201 -22.8 308.401 -29.2 317.001C-29.2 317.001 -29 325.001 -37.2 332.401C-37.2 332.401 -32.4 330.001 -32.8 334.601z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-38.6 329.601C-38.6 329.601 -35.2 312.201 -34.4 311.401C-34.4 311.401 -32.6 308.001 -35.4 311.201C-35.4 311.201 -44.2 330.401 -48.2 337.001C-48.2 337.001 -40.2 327.801 -38.6 329.601z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-44.4 313.001C-44.4 313.001 -32.8 290.601 -54.6 316.401C-54.6 316.401 -43.6 306.601 -44.4 313.001z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-59.8 298.401C-59.8 298.401 -55 279.601 -52.4 279.801C-52.4 279.801 -44.2 270.801 -50.8 281.401C-50.8 281.401 -56.8 291.001 -56.2 300.801C-56.2 300.801 -56.8 291.201 -59.8 298.401z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M270.5 287C270.5 287 258.5 277 256 273.5C256 273.5 269.5 292 269.5 299C269.5 299 272 291.5 270.5 287z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M276 265C276 265 255 250 251.5 242.5C251.5 242.5 278 272 278 276.5C278 276.5 278.5 267.5 276 265z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M293 111C293 111 281 103 279.5 105C279.5 105 290 111.5 292.5 120C292.5 120 291 111 293 111z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M301.5 191.5L284 179.5C284 179.5 303 196.5 303.5 200.5L301.5 191.5z', stroke: 'none', fill: '#ccc' }, { type: 'path', path: 'M-89.25 169L-67.25 173.75', stroke: '#000', fill: '#000' }, { type: 'path', path: 'M-39 331C-39 331 -39.5 327.5 -48.5 338', stroke: '#000', fill: '#000' }, { type: 'path', path: 'M-33.5 336C-33.5 336 -31.5 329.5 -38 334', stroke: '#000', fill: '#000' }, { type: 'path', path: 'M20.5 344.5C20.5 344.5 22 333.5 10.5 346.5', stroke: '#000', fill: '#000' } ]; ================================================ FILE: examples/webpack/.gitignore ================================================ # Include your project-specific ignores in this file # Read about how to use .gitignore: https://help.github.com/articles/ignoring-files dist node_modules npm-debug.log /yarn-error.log ================================================ FILE: examples/webpack/README.md ================================================ # pdfkit-webpack-example Simple example of using PdfKit with webpack ### Features - Minimal webpack 5 setup - Automatically register binary files added to static-assets folder - Register AFM fonts provided by pdfkit - Shows how to load and register files lazily ### Technical details [`webpack.config.js`](webpack.config.js) - add alias to map `fs` calls to pdfkit virtual file system [implementation](../../lib/virtual-fs.js) - ignore crypto package to save bundle file size - add aliases to native node packages (buffer, stream, zlib, util, assert) - configure `*.afm` files to be imported as text - configure all files in `src/static-assets` folder to be imported encoded as base64 - configure all files in `src/lazy-assets` folder to be imported as URLs - convert binary files used by linebreak and fontkit to base64 ### Caveats The strategy to register binary files and AFM fonts inlines them in source code, increasing the bundle size significantly ================================================ FILE: examples/webpack/package.json ================================================ { "license": "MIT", "dependencies": { "assert": "^2.1.0", "brace": "^0.11.1", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", "pdfkit": "^0.15.0", "process": "^0.11.10", "readable-stream": "^4.5.2", "util": "^0.12.5" }, "devDependencies": { "html-webpack-plugin": "^5.6.0", "transform-loader": "^0.2.4", "webpack": "^5.91.0", "webpack-cli": "^5.1.4" }, "scripts": { "dev": "webpack --mode development", "prod": "webpack --mode production" } } ================================================ FILE: examples/webpack/src/httpHelpers.js ================================================ function createFetchError(fileURL, error) { const result = new Error(`Fetching "${fileURL}" failed: ${error}`); result.name = 'FetchError'; return result; } export function fetchFile(fileURL, { type = 'arraybuffer' } = {}) { return new Promise((resolve, reject) => { const request = new XMLHttpRequest(); request.open('GET', fileURL, true); request.responseType = type; request.onload = function(e) { if (request.status === 200) { resolve(request.response); } else { reject(createFetchError(fileURL, request.statusText)); } }; request.onerror = error => reject(createFetchError(fileURL, error)); request.send(); }); } ================================================ FILE: examples/webpack/src/index.js ================================================ import fs from 'fs'; import PDFDocument from 'pdfkit'; import ace from 'brace'; import 'brace/mode/javascript'; import 'brace/theme/monokai'; import { waitForData } from './pdfkitHelpers.js'; import { fetchFile } from './httpHelpers.js'; // testImage is an URL import testImageURL from './lazy-assets/test.jpeg'; // bundle font and image files and register them in the virtual fs import './registerStaticFiles.js'; var lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus nec hendrerit felis. Morbi aliquam facilisis risus eu lacinia. Sed eu leo in turpis fringilla hendrerit. Ut nec accumsan nisl. Suspendisse rhoncus nisl posuere tortor tempus et dapibus elit porta. Cras leo neque, elementum a rhoncus ut, vestibulum non nibh. Phasellus pretium justo turpis. Etiam vulputate, odio vitae tincidunt ultricies, eros odio dapibus nisi, ut tincidunt lacus arcu eu elit. Aenean velit erat, vehicula eget lacinia ut, dignissim non tellus. Aliquam nec lacus mi, sed vestibulum nunc. Suspendisse potenti. Curabitur vitae sem turpis. Vestibulum sed neque eget dolor dapibus porttitor at sit amet sem. Fusce a turpis lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;\nMauris at ante tellus. Vestibulum a metus lectus. Praesent tempor purus a lacus blandit eget gravida ante hendrerit. Cras et eros metus. Sed commodo malesuada eros, vitae interdum augue semper quis. Fusce id magna nunc. Curabitur sollicitudin placerat semper. Cras et mi neque, a dignissim risus. Nulla venenatis porta lacus, vel rhoncus lectus tempor vitae. Duis sagittis venenatis rutrum. Curabitur tempor massa tortor.'; fetchFile(testImageURL) .then(testImageData => { fs.writeFileSync('images/test.jpg', testImageData); }) .catch(error => { console.error(error); }); var initialFnCode = `// create a document var doc = new PDFDocument(); doc.registerFont('Roboto', 'fonts/Roboto-Regular.ttf'); // draw some text doc.fontSize(25).text('Here is some vector graphics...', 100, 80); // some vector graphics doc .save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill('#FF3300'); doc.circle(280, 200, 50).fill('#6600FF'); // an SVG path doc .scale(0.6) .translate(470, 130) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('red', 'even-odd') .restore(); // and some justified text wrapped into columns doc .font('Roboto') .text('And here is some wrapped text...', 100, 300) .fontSize(13) .moveDown() .text(lorem, { width: 412, align: 'justify', indent: 30, columns: 2, height: 300, ellipsis: true }); doc.addPage(); doc .fontSize(25) .font('Courier') .text('And an image...') .image('images/bee.png'); doc.font('Courier-Bold').text('Finish...'); doc.addPage(); doc .font('Roboto') .fontSize(18) .text('Not yet. Lets try to show an image lazy loaded'); try { doc.image('images/test.jpg'); } catch (error) { doc.moveDown().text(\`\${error}\`); doc.text('Image not loaded. Try again later.'); } // waitForData must be called before call to doc.end() waitForData(doc) .then(dataUrl => { // display the document in the iframe to the right iframe.src = dataUrl; }) .catch(error => { console.log(error); }); doc.end();`; function executeFn(code, PDFDocument, lorem, waitForData, iframe) { var fn = new Function('PDFDocument', 'lorem', 'waitForData', 'iframe', code); fn(PDFDocument, lorem, waitForData, iframe); } var editor = ace.edit('editor'); editor.setTheme('ace/theme/monokai'); editor.getSession().setMode('ace/mode/javascript'); editor.setValue(initialFnCode); editor .getSession() .getSelection() .clearSelection(); var iframe = document.querySelector('iframe'); executeFn(initialFnCode, PDFDocument, lorem, waitForData, iframe); editor.getSession().on('change', function() { try { executeFn(editor.getValue(), PDFDocument, lorem, waitForData, iframe); } catch (e) { console.error(e); } }); ================================================ FILE: examples/webpack/src/pdfkitHelpers.js ================================================ export const waitForData = async doc => { return new Promise((resolve, reject) => { const buffers = []; doc.on('data', buffers.push.bind(buffers)); doc.on('end', async () => { const pdfBuffer = Buffer.concat(buffers); const pdfBase64 = pdfBuffer.toString('base64'); resolve(`data:application/pdf;base64,${pdfBase64}`); }); doc.on('error', reject); }); }; ================================================ FILE: examples/webpack/src/registerStaticFiles.js ================================================ // the fs here is not node fs but the provided virtual one import fs from 'fs'; // the content file is returned as is (webpack is configured to load *.afm files as asset/source) import Courier from 'pdfkit/js/data/Courier.afm'; import CourierBold from 'pdfkit/js/data/Courier-Bold.afm'; function registerBinaryFiles(ctx) { ctx.keys().forEach(key => { // extracts "./" from beginning of the key fs.writeFileSync(key.substring(2), ctx(key)); }); } function registerAFMFonts(ctx) { ctx.keys().forEach(key => { const match = key.match(/([^/]*\.afm$)/); if (match) { // afm files must be stored on data path fs.writeFileSync(`data/${match[0]}`, ctx(key)); } }); } // register all files found in assets folder (relative to src) registerBinaryFiles(require.context('./static-assets', true)); // register AFM fonts distributed with pdfkit // is good practice to register only required fonts to avoid the bundle size increase too much registerAFMFonts(require.context('pdfkit/js/data', false, /Helvetica.*\.afm$/)); // register files imported directly fs.writeFileSync('data/Courier.afm', Courier); fs.writeFileSync('data/Courier-Bold.afm', CourierBold); ================================================ FILE: examples/webpack/webpack.config.js ================================================ const path = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { plugins: [ new HtmlWebpackPlugin({ template: path.resolve(__dirname, 'src/index.html') }), new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser' }) ], resolve: { symlinks: false, alias: { // maps fs to a virtual one allowing to register file content dynamically fs: __dirname + '/../../js/virtual-fs.js' }, fallback: { // crypto module is not necessary at browser crypto: false, // fallbacks for native node libraries buffer: require.resolve('buffer/'), stream: require.resolve('readable-stream'), zlib: require.resolve('browserify-zlib'), util: require.resolve('util/'), assert: require.resolve('assert/') } }, module: { rules: [ // bundle and load afm files verbatim { test: /\.afm$/, type: 'asset/source' }, // bundle and load binary files inside static-assets folder as base64 { test: /src[/\\]static-assets/, type: 'asset/inline', generator: { dataUrl: content => { return content.toString('base64'); } } }, // load binary files inside lazy-assets folder as an URL { test: /src[/\\]lazy-assets/, type: 'asset/resource' } ] } }; ================================================ FILE: jsconfig.json ================================================ { "compilerOptions": { "target": "ES2020", "module": "CommonJS", "allowJs": true, // Don't force external @types; our ambient file is included below "baseUrl": "." }, "include": [ "tests/**/*.js", "types/**/*.d.ts" ] } ================================================ FILE: lib/abstract_reference.js ================================================ /* PDFAbstractReference - abstract class for PDF reference */ class PDFAbstractReference { toString() { throw new Error('Must be implemented by subclasses'); } } export default PDFAbstractReference; ================================================ FILE: lib/crypto/aes.js ================================================ import { cbc, ecb } from '@noble/ciphers/aes'; export function aesCbcEncrypt(data, key, iv, padding = true) { return cbc(key, iv, { disablePadding: !padding }).encrypt(data); } export function aesEcbEncrypt(data, key) { return ecb(key, { disablePadding: true }).encrypt(data); } ================================================ FILE: lib/crypto/md5.js ================================================ import md5 from 'js-md5'; export function md5Hash(data) { return new Uint8Array(md5.arrayBuffer(data)); } export function md5Hex(data) { return md5(data); } ================================================ FILE: lib/crypto/random.js ================================================ export default function randomBytes(length) { const bytes = new Uint8Array(length); globalThis.crypto.getRandomValues(bytes); return bytes; } ================================================ FILE: lib/crypto/rc4.js ================================================ // RC4 (for legacy PDF 1.3-1.5) export default function rc4(data, key) { const s = new Uint8Array(256); for (let i = 0; i < 256; i++) { s[i] = i; } let j = 0; for (let i = 0; i < 256; i++) { j = (j + s[i] + key[i % key.length]) & 0xff; [s[i], s[j]] = [s[j], s[i]]; } const output = new Uint8Array(data.length); for (let i = 0, j = 0, k = 0; k < data.length; k++) { i = (i + 1) & 0xff; j = (j + s[i]) & 0xff; [s[i], s[j]] = [s[j], s[i]]; output[k] = data[k] ^ s[(s[i] + s[j]) & 0xff]; } return output; } ================================================ FILE: lib/crypto/sha256.js ================================================ import { sha256 } from '@noble/hashes/sha2'; export default function sha256Hash(data) { return sha256(data); } ================================================ FILE: lib/data.js ================================================ class Data { constructor(data = []) { this.data = data; this.pos = 0; this.length = this.data.length; } readByte() { return this.data[this.pos++]; } writeByte(byte) { return (this.data[this.pos++] = byte); } byteAt(index) { return this.data[index]; } readBool() { return !!this.readByte(); } writeBool(val) { return this.writeByte(val ? 1 : 0); } readUInt32() { const b1 = this.readByte() * 0x1000000; const b2 = this.readByte() << 16; const b3 = this.readByte() << 8; const b4 = this.readByte(); return b1 + b2 + b3 + b4; } writeUInt32(val) { this.writeByte((val >>> 24) & 0xff); this.writeByte((val >> 16) & 0xff); this.writeByte((val >> 8) & 0xff); return this.writeByte(val & 0xff); } readInt32() { const int = this.readUInt32(); if (int >= 0x80000000) { return int - 0x100000000; } else { return int; } } writeInt32(val) { if (val < 0) { val += 0x100000000; } return this.writeUInt32(val); } readUInt16() { const b1 = this.readByte() << 8; const b2 = this.readByte(); return b1 | b2; } writeUInt16(val) { this.writeByte((val >> 8) & 0xff); return this.writeByte(val & 0xff); } readInt16() { const int = this.readUInt16(); if (int >= 0x8000) { return int - 0x10000; } else { return int; } } writeInt16(val) { if (val < 0) { val += 0x10000; } return this.writeUInt16(val); } readString(length) { const ret = []; for (let i = 0; i < length; i++) { ret[i] = String.fromCharCode(this.readByte()); } return ret.join(''); } writeString(val) { // todo: remove returning data. Seems not used const result = []; for (let i = 0; i <= val.length; i++) { result.push(this.writeByte(val.charCodeAt(i))); } return result; } stringAt(pos, length) { this.pos = pos; return this.readString(length); } readShort() { return this.readInt16(); } writeShort(val) { return this.writeInt16(val); } readLongLong() { const b1 = this.readByte(); const b2 = this.readByte(); const b3 = this.readByte(); const b4 = this.readByte(); const b5 = this.readByte(); const b6 = this.readByte(); const b7 = this.readByte(); const b8 = this.readByte(); if (b1 & 0x80) { // sign -> avoid overflow return ( ((b1 ^ 0xff) * 0x100000000000000 + (b2 ^ 0xff) * 0x1000000000000 + (b3 ^ 0xff) * 0x10000000000 + (b4 ^ 0xff) * 0x100000000 + (b5 ^ 0xff) * 0x1000000 + (b6 ^ 0xff) * 0x10000 + (b7 ^ 0xff) * 0x100 + (b8 ^ 0xff) + 1) * -1 ); } return ( b1 * 0x100000000000000 + b2 * 0x1000000000000 + b3 * 0x10000000000 + b4 * 0x100000000 + b5 * 0x1000000 + b6 * 0x10000 + b7 * 0x100 + b8 ); } writeLongLong(val) { const high = Math.floor(val / 0x100000000); const low = val & 0xffffffff; this.writeByte((high >> 24) & 0xff); this.writeByte((high >> 16) & 0xff); this.writeByte((high >> 8) & 0xff); this.writeByte(high & 0xff); this.writeByte((low >> 24) & 0xff); this.writeByte((low >> 16) & 0xff); this.writeByte((low >> 8) & 0xff); return this.writeByte(low & 0xff); } readInt() { return this.readInt32(); } writeInt(val) { return this.writeInt32(val); } slice(start, end) { return this.data.slice(start, end); } read(bytes) { const buf = []; for (let i = 0; i < bytes; i++) { buf.push(this.readByte()); } return buf; } write(bytes) { return bytes.map((byte) => this.writeByte(byte)); } } export default Data; ================================================ FILE: lib/document.js ================================================ /* PDFDocument - represents an entire PDF document By Devon Govett */ import stream from 'stream'; import PDFObject from './object'; import PDFReference from './reference'; import PDFPage from './page'; import PDFNameTree from './name_tree'; import PDFSecurity from './security'; import ColorMixin from './mixins/color'; import VectorMixin from './mixins/vector'; import FontsMixin from './mixins/fonts'; import TextMixin from './mixins/text'; import ImagesMixin from './mixins/images'; import AnnotationsMixin from './mixins/annotations'; import OutlineMixin from './mixins/outline'; import MarkingsMixin from './mixins/markings'; import AcroFormMixin from './mixins/acroform'; import AttachmentsMixin from './mixins/attachments'; import LineWrapper from './line_wrapper'; import SubsetMixin from './mixins/subsets'; import TableMixin from './mixins/table'; import MetadataMixin from './mixins/metadata'; class PDFDocument extends stream.Readable { constructor(options = {}) { super(options); this.options = options; // PDF version switch (options.pdfVersion) { case '1.4': this.version = 1.4; break; case '1.5': this.version = 1.5; break; case '1.6': this.version = 1.6; break; case '1.7': case '1.7ext3': this.version = 1.7; break; default: this.version = 1.3; break; } // Whether streams should be compressed this.compress = this.options.compress != null ? this.options.compress : true; this._pageBuffer = []; this._pageBufferStart = 0; // The PDF object store this._offsets = []; this._waiting = 0; this._ended = false; this._offset = 0; const Pages = this.ref({ Type: 'Pages', Count: 0, Kids: [], }); const Names = this.ref({ Dests: new PDFNameTree(), }); this._root = this.ref({ Type: 'Catalog', Pages, Names, }); if (this.options.lang) { this._root.data.Lang = new String(this.options.lang); } if (this.options.pageLayout) { const layout = this.options.pageLayout; this._root.data.PageLayout = layout.charAt(0).toUpperCase() + layout.slice(1); } // The current page this.page = null; // Initialize mixins this.initMetadata(); this.initColor(); this.initVector(); this.initFonts(options.font); this.initText(); this.initImages(); this.initOutline(); this.initMarkings(options); this.initTables(); this.initSubset(options); // Initialize the metadata this.info = { Producer: 'PDFKit', Creator: 'PDFKit', CreationDate: new Date(), }; if (this.options.info) { for (let key in this.options.info) { const val = this.options.info[key]; this.info[key] = val; } } if (this.options.displayTitle) { this._root.data.ViewerPreferences = this.ref({ DisplayDocTitle: true, }); } // Generate file ID this._id = PDFSecurity.generateFileID(this.info); // Initialize security settings this._security = PDFSecurity.create(this, options); // Write the header // PDF version this._write(`%PDF-${this.version}`); // 4 binary chars, as recommended by the spec this._write('%\xFF\xFF\xFF\xFF'); // Add the first page if (this.options.autoFirstPage !== false) { this.addPage(); } } addPage(options) { if (options == null) { ({ options } = this); } // end the current page if needed if (!this.options.bufferPages) { this.flushPages(); } // create a page object this.page = new PDFPage(this, options); this._pageBuffer.push(this.page); // add the page to the object store const pages = this._root.data.Pages.data; pages.Kids.push(this.page.dictionary); pages.Count++; // reset x and y coordinates this.x = this.page.margins.left; this.y = this.page.margins.top; // flip PDF coordinate system so that the origin is in // the top left rather than the bottom left this._ctm = [1, 0, 0, 1, 0, 0]; this.transform(1, 0, 0, -1, 0, this.page.height); this.emit('pageAdded'); return this; } continueOnNewPage(options) { const pageMarkings = this.endPageMarkings(this.page); this.addPage(options ?? this.page._options); this.initPageMarkings(pageMarkings); return this; } bufferedPageRange() { return { start: this._pageBufferStart, count: this._pageBuffer.length }; } switchToPage(n) { let page; if (!(page = this._pageBuffer[n - this._pageBufferStart])) { throw new Error( `switchToPage(${n}) out of bounds, current buffer covers pages ${ this._pageBufferStart } to ${this._pageBufferStart + this._pageBuffer.length - 1}`, ); } return (this.page = page); } flushPages() { // this local variable exists so we're future-proof against // reentrant calls to flushPages. const pages = this._pageBuffer; this._pageBuffer = []; this._pageBufferStart += pages.length; for (let page of pages) { this.endPageMarkings(page); page.end(); } } addNamedDestination(name, ...args) { if (args.length === 0) { args = ['XYZ', null, null, null]; } if (args[0] === 'XYZ' && args[2] !== null) { args[2] = this.page.height - args[2]; } args.unshift(this.page.dictionary); this._root.data.Names.data.Dests.add(name, args); } addNamedEmbeddedFile(name, ref) { if (!this._root.data.Names.data.EmbeddedFiles) { // disabling /Limits for this tree fixes attachments not showing in Adobe Reader this._root.data.Names.data.EmbeddedFiles = new PDFNameTree({ limits: false, }); } // add filespec to EmbeddedFiles this._root.data.Names.data.EmbeddedFiles.add(name, ref); } addNamedJavaScript(name, js) { if (!this._root.data.Names.data.JavaScript) { this._root.data.Names.data.JavaScript = new PDFNameTree(); } let data = { JS: new String(js), S: 'JavaScript', }; this._root.data.Names.data.JavaScript.add(name, data); } ref(data) { const ref = new PDFReference(this, this._offsets.length + 1, data); this._offsets.push(null); // placeholder for this object's offset once it is finalized this._waiting++; return ref; } _read() {} // do nothing, but this method is required by node _write(data) { if (!Buffer.isBuffer(data)) { data = Buffer.from(data + '\n', 'binary'); } this.push(data); this._offset += data.length; } addContent(data) { this.page.write(data); return this; } _refEnd(ref) { this._offsets[ref.id - 1] = ref.offset; if (--this._waiting === 0 && this._ended) { this._finalize(); this._ended = false; } } end() { this.flushPages(); this._info = this.ref(); for (let key in this.info) { let val = this.info[key]; if (typeof val === 'string') { val = new String(val); } let entry = this.ref(val); entry.end(); this._info.data[key] = entry; } this._info.end(); for (let name in this._fontFamilies) { const font = this._fontFamilies[name]; font.finalize(); } this.endOutline(); this.endMarkings(); if (this.subset) { this.endSubset(); } this.endMetadata(); this._root.end(); this._root.data.Pages.end(); this._root.data.Names.end(); this.endAcroForm(); if (this._root.data.ViewerPreferences) { this._root.data.ViewerPreferences.end(); } if (this._security) { this._security.end(); } if (this._waiting === 0) { this._finalize(); } else { this._ended = true; } } _finalize() { // generate xref const xRefOffset = this._offset; this._write('xref'); this._write(`0 ${this._offsets.length + 1}`); this._write('0000000000 65535 f '); for (let offset of this._offsets) { offset = `0000000000${offset}`.slice(-10); this._write(offset + ' 00000 n '); } // trailer const trailer = { Size: this._offsets.length + 1, Root: this._root, Info: this._info, ID: [this._id, this._id], }; if (this._security) { trailer.Encrypt = this._security.dictionary; } this._write('trailer'); this._write(PDFObject.convert(trailer)); this._write('startxref'); this._write(`${xRefOffset}`); this._write('%%EOF'); // end the stream this.push(null); } toString() { return '[object PDFDocument]'; } } const mixin = (methods) => { Object.assign(PDFDocument.prototype, methods); }; mixin(MetadataMixin); mixin(ColorMixin); mixin(VectorMixin); mixin(FontsMixin); mixin(TextMixin); mixin(ImagesMixin); mixin(AnnotationsMixin); mixin(OutlineMixin); mixin(MarkingsMixin); mixin(AcroFormMixin); mixin(AttachmentsMixin); mixin(SubsetMixin); mixin(TableMixin); PDFDocument.LineWrapper = LineWrapper; export default PDFDocument; ================================================ FILE: lib/font/afm.js ================================================ const WIN_ANSI_MAP = { 402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240: 137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158, }; const characters = `\ .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef Euro .notdef quotesinglbase florin quotedblbase ellipsis dagger daggerdbl circumflex perthousand Scaron guilsinglleft OE .notdef Zcaron .notdef .notdef quoteleft quoteright quotedblleft quotedblright bullet endash emdash tilde trademark scaron guilsinglright oe .notdef zcaron ydieresis space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph periodcentered cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis\ `.split(/\s+/); class AFMFont { /** * @param {string} contents */ constructor(contents) { this.attributes = {}; this.glyphWidths = {}; this.boundingBoxes = {}; this.kernPairs = {}; this.parse(contents); this.bbox = this.attributes['FontBBox'].split(/\s+/).map((e) => +e); this.ascender = +(this.attributes['Ascender'] || 0); this.descender = +(this.attributes['Descender'] || 0); this.xHeight = +(this.attributes['XHeight'] || 0); this.capHeight = +(this.attributes['CapHeight'] || 0); this.lineGap = this.bbox[3] - this.bbox[1] - (this.ascender - this.descender); } /** * @param {string} contents */ parse(contents) { let section = ''; for (let line of contents.split('\n')) { var match; var a; if ((match = line.match(/^Start(\w+)/))) { section = match[1]; continue; } else if ((match = line.match(/^End(\w+)/))) { section = ''; continue; } switch (section) { case 'FontMetrics': match = line.match(/(^\w+)\s+(.*)/); var key = match[1]; var value = match[2]; if ((a = this.attributes[key])) { if (!Array.isArray(a)) { a = this.attributes[key] = [a]; } a.push(value); } else { this.attributes[key] = value; } break; case 'CharMetrics': if (!/^CH?\s/.test(line)) { continue; } var name = line.match(/\bN\s+(\.?\w+)\s*;/)[1]; this.glyphWidths[name] = +line.match(/\bWX\s+(\d+)\s*;/)[1]; break; case 'KernPairs': match = line.match(/^KPX\s+(\.?\w+)\s+(\.?\w+)\s+(-?\d+)/); if (match) { this.kernPairs[match[1] + '\0' + match[2]] = parseInt(match[3]); } break; } } } /** * @param {string} text * @returns */ encodeText(text) { const res = []; for (let i = 0, len = text.length; i < len; i++) { let char = text.charCodeAt(i); char = WIN_ANSI_MAP[char] || char; res.push(char.toString(16)); } return res; } glyphsForString(string) { const glyphs = []; for (let i = 0, len = string.length; i < len; i++) { const charCode = string.charCodeAt(i); glyphs.push(this.characterToGlyph(charCode)); } return glyphs; } characterToGlyph(character) { return characters[WIN_ANSI_MAP[character] || character] || '.notdef'; } widthOfGlyph(glyph) { return this.glyphWidths[glyph] || 0; } getKernPair(left, right) { return this.kernPairs[left + '\0' + right] || 0; } advancesForGlyphs(glyphs) { const advances = []; for (let index = 0; index < glyphs.length; index++) { const left = glyphs[index]; const right = glyphs[index + 1]; advances.push(this.widthOfGlyph(left) + this.getKernPair(left, right)); } return advances; } } export default AFMFont; ================================================ FILE: lib/font/data/Courier-Bold.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:28:00 1997 Comment UniqueID 43048 Comment VMusage 41139 52164 FontName Courier-Bold FullName Courier Bold FamilyName Courier Weight Bold ItalicAngle 0 IsFixedPitch true CharacterSet ExtendedRoman FontBBox -113 -250 749 801 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 439 Ascender 629 Descender -157 StdHW 84 StdVW 106 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ; C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ; C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ; C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ; C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ; C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ; C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ; C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ; C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ; C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ; C 43 ; WX 600 ; N plus ; B 71 39 529 478 ; C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ; C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ; C 46 ; WX 600 ; N period ; B 192 -15 408 171 ; C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ; C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ; C 49 ; WX 600 ; N one ; B 81 0 539 616 ; C 50 ; WX 600 ; N two ; B 61 0 499 616 ; C 51 ; WX 600 ; N three ; B 63 -15 501 616 ; C 52 ; WX 600 ; N four ; B 53 0 507 616 ; C 53 ; WX 600 ; N five ; B 70 -15 521 601 ; C 54 ; WX 600 ; N six ; B 90 -15 521 616 ; C 55 ; WX 600 ; N seven ; B 55 0 494 601 ; C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ; C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ; C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ; C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ; C 60 ; WX 600 ; N less ; B 66 15 523 501 ; C 61 ; WX 600 ; N equal ; B 71 118 529 398 ; C 62 ; WX 600 ; N greater ; B 77 15 534 501 ; C 63 ; WX 600 ; N question ; B 98 -14 501 580 ; C 64 ; WX 600 ; N at ; B 16 -15 584 616 ; C 65 ; WX 600 ; N A ; B -9 0 609 562 ; C 66 ; WX 600 ; N B ; B 30 0 573 562 ; C 67 ; WX 600 ; N C ; B 22 -18 560 580 ; C 68 ; WX 600 ; N D ; B 30 0 594 562 ; C 69 ; WX 600 ; N E ; B 25 0 560 562 ; C 70 ; WX 600 ; N F ; B 39 0 570 562 ; C 71 ; WX 600 ; N G ; B 22 -18 594 580 ; C 72 ; WX 600 ; N H ; B 20 0 580 562 ; C 73 ; WX 600 ; N I ; B 77 0 523 562 ; C 74 ; WX 600 ; N J ; B 37 -18 601 562 ; C 75 ; WX 600 ; N K ; B 21 0 599 562 ; C 76 ; WX 600 ; N L ; B 39 0 578 562 ; C 77 ; WX 600 ; N M ; B -2 0 602 562 ; C 78 ; WX 600 ; N N ; B 8 -12 610 562 ; C 79 ; WX 600 ; N O ; B 22 -18 578 580 ; C 80 ; WX 600 ; N P ; B 48 0 559 562 ; C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ; C 82 ; WX 600 ; N R ; B 24 0 599 562 ; C 83 ; WX 600 ; N S ; B 47 -22 553 582 ; C 84 ; WX 600 ; N T ; B 21 0 579 562 ; C 85 ; WX 600 ; N U ; B 4 -18 596 562 ; C 86 ; WX 600 ; N V ; B -13 0 613 562 ; C 87 ; WX 600 ; N W ; B -18 0 618 562 ; C 88 ; WX 600 ; N X ; B 12 0 588 562 ; C 89 ; WX 600 ; N Y ; B 12 0 589 562 ; C 90 ; WX 600 ; N Z ; B 62 0 539 562 ; C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ; C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ; C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ; C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ; C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ; C 97 ; WX 600 ; N a ; B 35 -15 570 454 ; C 98 ; WX 600 ; N b ; B 0 -15 584 626 ; C 99 ; WX 600 ; N c ; B 40 -15 545 459 ; C 100 ; WX 600 ; N d ; B 20 -15 591 626 ; C 101 ; WX 600 ; N e ; B 40 -15 563 454 ; C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 30 -146 580 454 ; C 104 ; WX 600 ; N h ; B 5 0 592 626 ; C 105 ; WX 600 ; N i ; B 77 0 523 658 ; C 106 ; WX 600 ; N j ; B 63 -146 440 658 ; C 107 ; WX 600 ; N k ; B 20 0 585 626 ; C 108 ; WX 600 ; N l ; B 77 0 523 626 ; C 109 ; WX 600 ; N m ; B -22 0 626 454 ; C 110 ; WX 600 ; N n ; B 18 0 592 454 ; C 111 ; WX 600 ; N o ; B 30 -15 570 454 ; C 112 ; WX 600 ; N p ; B -1 -142 570 454 ; C 113 ; WX 600 ; N q ; B 20 -142 591 454 ; C 114 ; WX 600 ; N r ; B 47 0 580 454 ; C 115 ; WX 600 ; N s ; B 68 -17 535 459 ; C 116 ; WX 600 ; N t ; B 47 -15 532 562 ; C 117 ; WX 600 ; N u ; B -1 -15 569 439 ; C 118 ; WX 600 ; N v ; B -1 0 601 439 ; C 119 ; WX 600 ; N w ; B -18 0 618 439 ; C 120 ; WX 600 ; N x ; B 6 0 594 439 ; C 121 ; WX 600 ; N y ; B -4 -142 601 439 ; C 122 ; WX 600 ; N z ; B 81 0 520 439 ; C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ; C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ; C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ; C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ; C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ; C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ; C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ; C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ; C 165 ; WX 600 ; N yen ; B 10 0 590 562 ; C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ; C 167 ; WX 600 ; N section ; B 83 -70 517 580 ; C 168 ; WX 600 ; N currency ; B 54 49 546 517 ; C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ; C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ; C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ; C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ; C 174 ; WX 600 ; N fi ; B 12 0 593 626 ; C 175 ; WX 600 ; N fl ; B 12 0 593 626 ; C 177 ; WX 600 ; N endash ; B 65 203 535 313 ; C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ; C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ; C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ; C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ; C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ; C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ; C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ; C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ; C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ; C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ; C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ; C 193 ; WX 600 ; N grave ; B 132 508 395 661 ; C 194 ; WX 600 ; N acute ; B 205 508 468 661 ; C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ; C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ; C 197 ; WX 600 ; N macron ; B 88 505 512 585 ; C 198 ; WX 600 ; N breve ; B 83 468 517 631 ; C 199 ; WX 600 ; N dotaccent ; B 230 498 370 638 ; C 200 ; WX 600 ; N dieresis ; B 128 498 472 638 ; C 202 ; WX 600 ; N ring ; B 198 481 402 678 ; C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ; C 206 ; WX 600 ; N ogonek ; B 169 -199 400 0 ; C 207 ; WX 600 ; N caron ; B 103 493 497 667 ; C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ; C 225 ; WX 600 ; N AE ; B -29 0 602 562 ; C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ; C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ; C 234 ; WX 600 ; N OE ; B -25 0 595 562 ; C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ; C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ; C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ; C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 523 761 ; C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ; C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ; C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ; C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ; C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ; C -1 ; WX 600 ; N divide ; B 71 16 529 500 ; C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ; C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ; C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ; C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ; C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ; C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ; C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ; C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ; C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ; C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ; C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 560 761 ; C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ; C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ; C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ; C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ; C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ; C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ; C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ; C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ; C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ; C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ; C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ; C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ; C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ; C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ; C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ; C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ; C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ; C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ; C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ; C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ; C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ; C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ; C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ; C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ; C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ; C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ; C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ; C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ; C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ; C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ; C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ; C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ; C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ; C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ; C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ; C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ; C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ; C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ; C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ; C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ; C -1 ; WX 600 ; N icircumflex ; B 73 0 523 657 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ; C -1 ; WX 600 ; N adieresis ; B 35 -15 570 638 ; C -1 ; WX 600 ; N edieresis ; B 40 -15 563 638 ; C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ; C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ; C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ; C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ; C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ; C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ; C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ; C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ; C -1 ; WX 600 ; N racute ; B 47 0 580 661 ; C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ; C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ; C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ; C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ; C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ; C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ; C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ; C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ; C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 609 761 ; C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ; C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ; C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ; C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ; C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ; C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ; C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ; C -1 ; WX 600 ; N idieresis ; B 77 0 523 618 ; C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ; C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ; C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ; C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ; C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ; C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ; C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ; C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ; C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ; C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ; C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ; C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ; C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ; C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ; C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ; C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ; C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ; C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ; C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ; C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ; C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ; C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ; C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ; C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ; C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ; C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ; C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ; C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ; C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ; C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ; C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ; C -1 ; WX 600 ; N degree ; B 86 243 474 616 ; C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ; C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ; C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ; C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ; C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ; C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ; C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ; C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ; C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ; C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ; C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ; C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ; C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ; C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ; C -1 ; WX 600 ; N minus ; B 71 203 529 313 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ; C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ; C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ; C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ; C -1 ; WX 600 ; N odieresis ; B 30 -15 570 638 ; C -1 ; WX 600 ; N udieresis ; B -1 -15 569 638 ; C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ; C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ; C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ; C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ; C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ; C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ; C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ; C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics ================================================ FILE: lib/font/data/Courier-BoldOblique.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:28:46 1997 Comment UniqueID 43049 Comment VMusage 17529 79244 FontName Courier-BoldOblique FullName Courier Bold Oblique FamilyName Courier Weight Bold ItalicAngle -12 IsFixedPitch true CharacterSet ExtendedRoman FontBBox -57 -250 869 801 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 439 Ascender 629 Descender -157 StdHW 84 StdVW 106 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ; C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ; C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ; C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ; C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ; C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ; C 39 ; WX 600 ; N quoteright ; B 229 277 543 562 ; C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ; C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ; C 42 ; WX 600 ; N asterisk ; B 179 219 598 601 ; C 43 ; WX 600 ; N plus ; B 114 39 596 478 ; C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ; C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ; C 46 ; WX 600 ; N period ; B 206 -15 427 171 ; C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ; C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ; C 49 ; WX 600 ; N one ; B 93 0 562 616 ; C 50 ; WX 600 ; N two ; B 61 0 594 616 ; C 51 ; WX 600 ; N three ; B 71 -15 571 616 ; C 52 ; WX 600 ; N four ; B 81 0 559 616 ; C 53 ; WX 600 ; N five ; B 77 -15 621 601 ; C 54 ; WX 600 ; N six ; B 135 -15 652 616 ; C 55 ; WX 600 ; N seven ; B 147 0 622 601 ; C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ; C 57 ; WX 600 ; N nine ; B 75 -15 592 616 ; C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ; C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ; C 60 ; WX 600 ; N less ; B 120 15 613 501 ; C 61 ; WX 600 ; N equal ; B 96 118 614 398 ; C 62 ; WX 600 ; N greater ; B 97 15 589 501 ; C 63 ; WX 600 ; N question ; B 183 -14 592 580 ; C 64 ; WX 600 ; N at ; B 65 -15 642 616 ; C 65 ; WX 600 ; N A ; B -9 0 632 562 ; C 66 ; WX 600 ; N B ; B 30 0 630 562 ; C 67 ; WX 600 ; N C ; B 74 -18 675 580 ; C 68 ; WX 600 ; N D ; B 30 0 664 562 ; C 69 ; WX 600 ; N E ; B 25 0 670 562 ; C 70 ; WX 600 ; N F ; B 39 0 684 562 ; C 71 ; WX 600 ; N G ; B 74 -18 675 580 ; C 72 ; WX 600 ; N H ; B 20 0 700 562 ; C 73 ; WX 600 ; N I ; B 77 0 643 562 ; C 74 ; WX 600 ; N J ; B 58 -18 721 562 ; C 75 ; WX 600 ; N K ; B 21 0 692 562 ; C 76 ; WX 600 ; N L ; B 39 0 636 562 ; C 77 ; WX 600 ; N M ; B -2 0 722 562 ; C 78 ; WX 600 ; N N ; B 8 -12 730 562 ; C 79 ; WX 600 ; N O ; B 74 -18 645 580 ; C 80 ; WX 600 ; N P ; B 48 0 643 562 ; C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ; C 82 ; WX 600 ; N R ; B 24 0 617 562 ; C 83 ; WX 600 ; N S ; B 54 -22 673 582 ; C 84 ; WX 600 ; N T ; B 86 0 679 562 ; C 85 ; WX 600 ; N U ; B 101 -18 716 562 ; C 86 ; WX 600 ; N V ; B 84 0 733 562 ; C 87 ; WX 600 ; N W ; B 79 0 738 562 ; C 88 ; WX 600 ; N X ; B 12 0 690 562 ; C 89 ; WX 600 ; N Y ; B 109 0 709 562 ; C 90 ; WX 600 ; N Z ; B 62 0 637 562 ; C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ; C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ; C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ; C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ; C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ; C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ; C 97 ; WX 600 ; N a ; B 61 -15 593 454 ; C 98 ; WX 600 ; N b ; B 13 -15 636 626 ; C 99 ; WX 600 ; N c ; B 81 -15 631 459 ; C 100 ; WX 600 ; N d ; B 60 -15 645 626 ; C 101 ; WX 600 ; N e ; B 81 -15 605 454 ; C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 40 -146 674 454 ; C 104 ; WX 600 ; N h ; B 18 0 615 626 ; C 105 ; WX 600 ; N i ; B 77 0 546 658 ; C 106 ; WX 600 ; N j ; B 36 -146 580 658 ; C 107 ; WX 600 ; N k ; B 33 0 643 626 ; C 108 ; WX 600 ; N l ; B 77 0 546 626 ; C 109 ; WX 600 ; N m ; B -22 0 649 454 ; C 110 ; WX 600 ; N n ; B 18 0 615 454 ; C 111 ; WX 600 ; N o ; B 71 -15 622 454 ; C 112 ; WX 600 ; N p ; B -32 -142 622 454 ; C 113 ; WX 600 ; N q ; B 60 -142 685 454 ; C 114 ; WX 600 ; N r ; B 47 0 655 454 ; C 115 ; WX 600 ; N s ; B 66 -17 608 459 ; C 116 ; WX 600 ; N t ; B 118 -15 567 562 ; C 117 ; WX 600 ; N u ; B 70 -15 592 439 ; C 118 ; WX 600 ; N v ; B 70 0 695 439 ; C 119 ; WX 600 ; N w ; B 53 0 712 439 ; C 120 ; WX 600 ; N x ; B 6 0 671 439 ; C 121 ; WX 600 ; N y ; B -21 -142 695 439 ; C 122 ; WX 600 ; N z ; B 81 0 614 439 ; C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ; C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ; C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ; C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ; C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ; C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ; C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ; C 164 ; WX 600 ; N fraction ; B 22 -60 708 661 ; C 165 ; WX 600 ; N yen ; B 98 0 710 562 ; C 166 ; WX 600 ; N florin ; B -57 -131 702 616 ; C 167 ; WX 600 ; N section ; B 74 -70 620 580 ; C 168 ; WX 600 ; N currency ; B 77 49 644 517 ; C 169 ; WX 600 ; N quotesingle ; B 303 277 493 562 ; C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ; C 171 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ; C 173 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ; C 174 ; WX 600 ; N fi ; B 12 0 644 626 ; C 175 ; WX 600 ; N fl ; B 12 0 644 626 ; C 177 ; WX 600 ; N endash ; B 108 203 602 313 ; C 178 ; WX 600 ; N dagger ; B 175 -70 586 580 ; C 179 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ; C 180 ; WX 600 ; N periodcentered ; B 248 165 461 351 ; C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ; C 183 ; WX 600 ; N bullet ; B 196 132 523 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ; C 185 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ; C 186 ; WX 600 ; N quotedblright ; B 119 277 645 562 ; C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ; C 188 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ; C 189 ; WX 600 ; N perthousand ; B -45 -15 743 616 ; C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ; C 193 ; WX 600 ; N grave ; B 272 508 503 661 ; C 194 ; WX 600 ; N acute ; B 312 508 609 661 ; C 195 ; WX 600 ; N circumflex ; B 212 483 607 657 ; C 196 ; WX 600 ; N tilde ; B 199 493 643 636 ; C 197 ; WX 600 ; N macron ; B 195 505 637 585 ; C 198 ; WX 600 ; N breve ; B 217 468 652 631 ; C 199 ; WX 600 ; N dotaccent ; B 348 498 493 638 ; C 200 ; WX 600 ; N dieresis ; B 246 498 595 638 ; C 202 ; WX 600 ; N ring ; B 319 481 528 678 ; C 203 ; WX 600 ; N cedilla ; B 168 -206 368 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ; C 206 ; WX 600 ; N ogonek ; B 143 -199 367 0 ; C 207 ; WX 600 ; N caron ; B 238 493 633 667 ; C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ; C 225 ; WX 600 ; N AE ; B -29 0 708 562 ; C 227 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 636 562 ; C 233 ; WX 600 ; N Oslash ; B 48 -22 673 584 ; C 234 ; WX 600 ; N OE ; B 26 0 701 562 ; C 235 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ; C 241 ; WX 600 ; N ae ; B 21 -15 652 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 546 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 587 626 ; C 249 ; WX 600 ; N oslash ; B 54 -24 638 463 ; C 250 ; WX 600 ; N oe ; B 18 -15 662 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 629 626 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 643 761 ; C -1 ; WX 600 ; N eacute ; B 81 -15 609 661 ; C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ; C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ; C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ; C -1 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ; C -1 ; WX 600 ; N divide ; B 114 16 596 500 ; C -1 ; WX 600 ; N Yacute ; B 109 0 709 784 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ; C -1 ; WX 600 ; N aacute ; B 61 -15 609 661 ; C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ; C -1 ; WX 600 ; N yacute ; B -21 -142 695 661 ; C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ; C -1 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ; C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ; C -1 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ; C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ; C -1 ; WX 600 ; N Uacute ; B 101 -18 716 784 ; C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 670 761 ; C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ; C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ; C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ; C -1 ; WX 600 ; N aring ; B 61 -15 593 678 ; C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ; C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ; C -1 ; WX 600 ; N agrave ; B 61 -15 593 661 ; C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ; C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ; C -1 ; WX 600 ; N atilde ; B 61 -15 643 636 ; C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ; C -1 ; WX 600 ; N scaron ; B 66 -17 633 667 ; C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ; C -1 ; WX 600 ; N iacute ; B 77 0 609 661 ; C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ; C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ; C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ; C -1 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ; C -1 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ; C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ; C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ; C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ; C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ; C -1 ; WX 600 ; N Thorn ; B 48 0 620 562 ; C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ; C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ; C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ; C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ; C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ; C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ; C -1 ; WX 600 ; N threesuperior ; B 193 222 526 616 ; C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ; C -1 ; WX 600 ; N Agrave ; B -9 0 632 784 ; C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ; C -1 ; WX 600 ; N multiply ; B 104 39 606 478 ; C -1 ; WX 600 ; N uacute ; B 70 -15 599 661 ; C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ; C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ; C -1 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ; C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ; C -1 ; WX 600 ; N icircumflex ; B 77 0 577 657 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ; C -1 ; WX 600 ; N adieresis ; B 61 -15 595 638 ; C -1 ; WX 600 ; N edieresis ; B 81 -15 605 638 ; C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ; C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ; C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ; C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ; C -1 ; WX 600 ; N Iacute ; B 77 0 643 784 ; C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ; C -1 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ; C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ; C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ; C -1 ; WX 600 ; N Egrave ; B 25 0 670 784 ; C -1 ; WX 600 ; N racute ; B 47 0 655 661 ; C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ; C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ; C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ; C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ; C -1 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ; C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ; C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ; C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ; C -1 ; WX 600 ; N Aacute ; B -9 0 655 784 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 632 761 ; C -1 ; WX 600 ; N egrave ; B 81 -15 605 661 ; C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ; C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ; C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ; C -1 ; WX 600 ; N oacute ; B 71 -15 649 661 ; C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ; C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ; C -1 ; WX 600 ; N idieresis ; B 77 0 561 618 ; C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ; C -1 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ; C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ; C -1 ; WX 600 ; N thorn ; B -32 -142 622 626 ; C -1 ; WX 600 ; N twosuperior ; B 191 230 542 616 ; C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ; C -1 ; WX 600 ; N mu ; B 49 -142 592 439 ; C -1 ; WX 600 ; N igrave ; B 77 0 546 661 ; C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ; C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ; C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ; C -1 ; WX 600 ; N threequarters ; B 8 -60 699 661 ; C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ; C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ; C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ; C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ; C -1 ; WX 600 ; N trademark ; B 86 230 869 562 ; C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ; C -1 ; WX 600 ; N Igrave ; B 77 0 643 784 ; C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ; C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ; C -1 ; WX 600 ; N onehalf ; B 22 -60 716 661 ; C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ; C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ; C -1 ; WX 600 ; N ntilde ; B 18 0 643 636 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ; C -1 ; WX 600 ; N Eacute ; B 25 0 670 784 ; C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ; C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ; C -1 ; WX 600 ; N onequarter ; B 13 -60 707 661 ; C -1 ; WX 600 ; N Scaron ; B 54 -22 689 790 ; C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ; C -1 ; WX 600 ; N degree ; B 173 243 570 616 ; C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ; C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ; C -1 ; WX 600 ; N ugrave ; B 70 -15 592 661 ; C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ; C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ; C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ; C -1 ; WX 600 ; N otilde ; B 71 -15 643 636 ; C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ; C -1 ; WX 600 ; N Atilde ; B -9 0 669 759 ; C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ; C -1 ; WX 600 ; N Aring ; B -9 0 632 801 ; C -1 ; WX 600 ; N Otilde ; B 74 -18 669 759 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ; C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ; C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ; C -1 ; WX 600 ; N minus ; B 114 203 596 313 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ; C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ; C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ; C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ; C -1 ; WX 600 ; N odieresis ; B 71 -15 622 638 ; C -1 ; WX 600 ; N udieresis ; B 70 -15 595 638 ; C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ; C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ; C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ; C -1 ; WX 600 ; N zcaron ; B 81 0 643 667 ; C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ; C -1 ; WX 600 ; N onesuperior ; B 212 230 514 616 ; C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ; C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics ================================================ FILE: lib/font/data/Courier-Oblique.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 17:37:52 1997 Comment UniqueID 43051 Comment VMusage 16248 75829 FontName Courier-Oblique FullName Courier Oblique FamilyName Courier Weight Medium ItalicAngle -12 IsFixedPitch true CharacterSet ExtendedRoman FontBBox -27 -250 849 805 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 426 Ascender 629 Descender -157 StdHW 51 StdVW 51 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ; C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ; C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ; C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ; C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ; C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ; C 39 ; WX 600 ; N quoteright ; B 283 328 495 562 ; C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ; C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ; C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ; C 43 ; WX 600 ; N plus ; B 129 44 580 470 ; C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ; C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ; C 46 ; WX 600 ; N period ; B 238 -15 382 109 ; C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ; C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ; C 49 ; WX 600 ; N one ; B 98 0 515 622 ; C 50 ; WX 600 ; N two ; B 70 0 568 622 ; C 51 ; WX 600 ; N three ; B 82 -15 538 622 ; C 52 ; WX 600 ; N four ; B 108 0 541 622 ; C 53 ; WX 600 ; N five ; B 99 -15 589 607 ; C 54 ; WX 600 ; N six ; B 155 -15 629 622 ; C 55 ; WX 600 ; N seven ; B 182 0 612 607 ; C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ; C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ; C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ; C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ; C 60 ; WX 600 ; N less ; B 96 42 610 472 ; C 61 ; WX 600 ; N equal ; B 109 138 600 376 ; C 62 ; WX 600 ; N greater ; B 85 42 599 472 ; C 63 ; WX 600 ; N question ; B 222 -15 583 572 ; C 64 ; WX 600 ; N at ; B 127 -15 582 622 ; C 65 ; WX 600 ; N A ; B 3 0 607 562 ; C 66 ; WX 600 ; N B ; B 43 0 616 562 ; C 67 ; WX 600 ; N C ; B 93 -18 655 580 ; C 68 ; WX 600 ; N D ; B 43 0 645 562 ; C 69 ; WX 600 ; N E ; B 53 0 660 562 ; C 70 ; WX 600 ; N F ; B 53 0 660 562 ; C 71 ; WX 600 ; N G ; B 83 -18 645 580 ; C 72 ; WX 600 ; N H ; B 32 0 687 562 ; C 73 ; WX 600 ; N I ; B 96 0 623 562 ; C 74 ; WX 600 ; N J ; B 52 -18 685 562 ; C 75 ; WX 600 ; N K ; B 38 0 671 562 ; C 76 ; WX 600 ; N L ; B 47 0 607 562 ; C 77 ; WX 600 ; N M ; B 4 0 715 562 ; C 78 ; WX 600 ; N N ; B 7 -13 712 562 ; C 79 ; WX 600 ; N O ; B 94 -18 625 580 ; C 80 ; WX 600 ; N P ; B 79 0 644 562 ; C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ; C 82 ; WX 600 ; N R ; B 38 0 598 562 ; C 83 ; WX 600 ; N S ; B 76 -20 650 580 ; C 84 ; WX 600 ; N T ; B 108 0 665 562 ; C 85 ; WX 600 ; N U ; B 125 -18 702 562 ; C 86 ; WX 600 ; N V ; B 105 -13 723 562 ; C 87 ; WX 600 ; N W ; B 106 -13 722 562 ; C 88 ; WX 600 ; N X ; B 23 0 675 562 ; C 89 ; WX 600 ; N Y ; B 133 0 695 562 ; C 90 ; WX 600 ; N Z ; B 86 0 610 562 ; C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ; C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ; C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ; C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ; C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; C 96 ; WX 600 ; N quoteleft ; B 343 328 457 562 ; C 97 ; WX 600 ; N a ; B 76 -15 569 441 ; C 98 ; WX 600 ; N b ; B 29 -15 625 629 ; C 99 ; WX 600 ; N c ; B 106 -15 608 441 ; C 100 ; WX 600 ; N d ; B 85 -15 640 629 ; C 101 ; WX 600 ; N e ; B 106 -15 598 441 ; C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 61 -157 657 441 ; C 104 ; WX 600 ; N h ; B 33 0 592 629 ; C 105 ; WX 600 ; N i ; B 95 0 515 657 ; C 106 ; WX 600 ; N j ; B 52 -157 550 657 ; C 107 ; WX 600 ; N k ; B 58 0 633 629 ; C 108 ; WX 600 ; N l ; B 95 0 515 629 ; C 109 ; WX 600 ; N m ; B -5 0 615 441 ; C 110 ; WX 600 ; N n ; B 26 0 585 441 ; C 111 ; WX 600 ; N o ; B 102 -15 588 441 ; C 112 ; WX 600 ; N p ; B -24 -157 605 441 ; C 113 ; WX 600 ; N q ; B 85 -157 682 441 ; C 114 ; WX 600 ; N r ; B 60 0 636 441 ; C 115 ; WX 600 ; N s ; B 78 -15 584 441 ; C 116 ; WX 600 ; N t ; B 167 -15 561 561 ; C 117 ; WX 600 ; N u ; B 101 -15 572 426 ; C 118 ; WX 600 ; N v ; B 90 -10 681 426 ; C 119 ; WX 600 ; N w ; B 76 -10 695 426 ; C 120 ; WX 600 ; N x ; B 20 0 655 426 ; C 121 ; WX 600 ; N y ; B -4 -157 683 426 ; C 122 ; WX 600 ; N z ; B 99 0 593 426 ; C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ; C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ; C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ; C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ; C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ; C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ; C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ; C 164 ; WX 600 ; N fraction ; B 84 -57 646 665 ; C 165 ; WX 600 ; N yen ; B 120 0 693 562 ; C 166 ; WX 600 ; N florin ; B -26 -143 671 622 ; C 167 ; WX 600 ; N section ; B 104 -78 590 580 ; C 168 ; WX 600 ; N currency ; B 94 58 628 506 ; C 169 ; WX 600 ; N quotesingle ; B 345 328 460 562 ; C 170 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ; C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ; C 173 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ; C 174 ; WX 600 ; N fi ; B 3 0 619 629 ; C 175 ; WX 600 ; N fl ; B 3 0 619 629 ; C 177 ; WX 600 ; N endash ; B 124 231 586 285 ; C 178 ; WX 600 ; N dagger ; B 217 -78 546 580 ; C 179 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ; C 180 ; WX 600 ; N periodcentered ; B 275 189 434 327 ; C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ; C 183 ; WX 600 ; N bullet ; B 224 130 485 383 ; C 184 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ; C 185 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ; C 186 ; WX 600 ; N quotedblright ; B 213 328 576 562 ; C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ; C 188 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ; C 189 ; WX 600 ; N perthousand ; B 59 -15 627 622 ; C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ; C 193 ; WX 600 ; N grave ; B 294 497 484 672 ; C 194 ; WX 600 ; N acute ; B 348 497 612 672 ; C 195 ; WX 600 ; N circumflex ; B 229 477 581 654 ; C 196 ; WX 600 ; N tilde ; B 212 489 629 606 ; C 197 ; WX 600 ; N macron ; B 232 525 600 565 ; C 198 ; WX 600 ; N breve ; B 279 501 576 609 ; C 199 ; WX 600 ; N dotaccent ; B 373 537 478 640 ; C 200 ; WX 600 ; N dieresis ; B 272 537 579 640 ; C 202 ; WX 600 ; N ring ; B 332 463 500 627 ; C 203 ; WX 600 ; N cedilla ; B 197 -151 344 10 ; C 205 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ; C 206 ; WX 600 ; N ogonek ; B 189 -172 377 4 ; C 207 ; WX 600 ; N caron ; B 262 492 614 669 ; C 208 ; WX 600 ; N emdash ; B 49 231 661 285 ; C 225 ; WX 600 ; N AE ; B 3 0 655 562 ; C 227 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ; C 232 ; WX 600 ; N Lslash ; B 47 0 607 562 ; C 233 ; WX 600 ; N Oslash ; B 94 -80 625 629 ; C 234 ; WX 600 ; N OE ; B 59 0 672 562 ; C 235 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ; C 241 ; WX 600 ; N ae ; B 41 -15 626 441 ; C 245 ; WX 600 ; N dotlessi ; B 95 0 515 426 ; C 248 ; WX 600 ; N lslash ; B 95 0 587 629 ; C 249 ; WX 600 ; N oslash ; B 102 -80 588 506 ; C 250 ; WX 600 ; N oe ; B 54 -15 615 441 ; C 251 ; WX 600 ; N germandbls ; B 48 -15 617 629 ; C -1 ; WX 600 ; N Idieresis ; B 96 0 623 753 ; C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ; C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ; C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ; C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ; C -1 ; WX 600 ; N divide ; B 136 48 573 467 ; C -1 ; WX 600 ; N Yacute ; B 133 0 695 805 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ; C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ; C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ; C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ; C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ; C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ; C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ; C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ; C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ; C -1 ; WX 600 ; N Uacute ; B 125 -18 702 805 ; C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 660 753 ; C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ; C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ; C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ; C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ; C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ; C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ; C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ; C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ; C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ; C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ; C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ; C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ; C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ; C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ; C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ; C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ; C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ; C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ; C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ; C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ; C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ; C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ; C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ; C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ; C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ; C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ; C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ; C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ; C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ; C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ; C -1 ; WX 600 ; N Ograve ; B 94 -18 625 805 ; C -1 ; WX 600 ; N Agrave ; B 3 0 607 805 ; C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ; C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ; C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ; C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ; C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ; C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ; C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ; C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ; C -1 ; WX 600 ; N adieresis ; B 76 -15 575 620 ; C -1 ; WX 600 ; N edieresis ; B 106 -15 598 620 ; C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ; C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ; C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ; C -1 ; WX 600 ; N Iacute ; B 96 0 640 805 ; C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ; C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ; C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ; C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ; C -1 ; WX 600 ; N Egrave ; B 53 0 660 805 ; C -1 ; WX 600 ; N racute ; B 60 0 636 672 ; C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ; C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 642 802 ; C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ; C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ; C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ; C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ; C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ; C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ; C -1 ; WX 600 ; N Aacute ; B 3 0 660 805 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 607 753 ; C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ; C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ; C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ; C -1 ; WX 600 ; N Oacute ; B 94 -18 640 805 ; C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ; C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ; C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ; C -1 ; WX 600 ; N idieresis ; B 95 0 545 620 ; C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ; C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ; C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ; C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ; C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ; C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ; C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ; C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ; C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ; C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ; C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ; C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ; C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ; C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ; C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ; C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ; C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ; C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ; C -1 ; WX 600 ; N Igrave ; B 96 0 623 805 ; C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ; C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ; C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ; C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ; C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ; C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ; C -1 ; WX 600 ; N Eacute ; B 53 0 670 805 ; C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ; C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ; C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ; C -1 ; WX 600 ; N Scaron ; B 76 -20 672 802 ; C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ; C -1 ; WX 600 ; N degree ; B 214 269 576 622 ; C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ; C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ; C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ; C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ; C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ; C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ; C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ; C -1 ; WX 600 ; N Atilde ; B 3 0 655 729 ; C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ; C -1 ; WX 600 ; N Aring ; B 3 0 607 750 ; C -1 ; WX 600 ; N Otilde ; B 94 -18 655 729 ; C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ; C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ; C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ; C -1 ; WX 600 ; N minus ; B 129 232 580 283 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ; C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ; C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ; C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ; C -1 ; WX 600 ; N odieresis ; B 102 -15 588 620 ; C -1 ; WX 600 ; N udieresis ; B 101 -15 575 620 ; C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ; C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ; C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ; C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ; C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ; C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ; C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ; C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics ================================================ FILE: lib/font/data/Courier.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 17:27:09 1997 Comment UniqueID 43050 Comment VMusage 39754 50779 FontName Courier FullName Courier FamilyName Courier Weight Medium ItalicAngle 0 IsFixedPitch true CharacterSet ExtendedRoman FontBBox -23 -250 715 805 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 426 Ascender 629 Descender -157 StdHW 51 StdVW 51 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ; C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ; C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ; C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ; C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ; C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ; C 39 ; WX 600 ; N quoteright ; B 213 328 376 562 ; C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ; C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ; C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ; C 43 ; WX 600 ; N plus ; B 80 44 520 470 ; C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ; C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ; C 46 ; WX 600 ; N period ; B 229 -15 371 109 ; C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ; C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ; C 49 ; WX 600 ; N one ; B 96 0 505 622 ; C 50 ; WX 600 ; N two ; B 70 0 471 622 ; C 51 ; WX 600 ; N three ; B 75 -15 466 622 ; C 52 ; WX 600 ; N four ; B 78 0 500 622 ; C 53 ; WX 600 ; N five ; B 92 -15 497 607 ; C 54 ; WX 600 ; N six ; B 111 -15 497 622 ; C 55 ; WX 600 ; N seven ; B 82 0 483 607 ; C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ; C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ; C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ; C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ; C 60 ; WX 600 ; N less ; B 41 42 519 472 ; C 61 ; WX 600 ; N equal ; B 80 138 520 376 ; C 62 ; WX 600 ; N greater ; B 66 42 544 472 ; C 63 ; WX 600 ; N question ; B 129 -15 492 572 ; C 64 ; WX 600 ; N at ; B 77 -15 533 622 ; C 65 ; WX 600 ; N A ; B 3 0 597 562 ; C 66 ; WX 600 ; N B ; B 43 0 559 562 ; C 67 ; WX 600 ; N C ; B 41 -18 540 580 ; C 68 ; WX 600 ; N D ; B 43 0 574 562 ; C 69 ; WX 600 ; N E ; B 53 0 550 562 ; C 70 ; WX 600 ; N F ; B 53 0 545 562 ; C 71 ; WX 600 ; N G ; B 31 -18 575 580 ; C 72 ; WX 600 ; N H ; B 32 0 568 562 ; C 73 ; WX 600 ; N I ; B 96 0 504 562 ; C 74 ; WX 600 ; N J ; B 34 -18 566 562 ; C 75 ; WX 600 ; N K ; B 38 0 582 562 ; C 76 ; WX 600 ; N L ; B 47 0 554 562 ; C 77 ; WX 600 ; N M ; B 4 0 596 562 ; C 78 ; WX 600 ; N N ; B 7 -13 593 562 ; C 79 ; WX 600 ; N O ; B 43 -18 557 580 ; C 80 ; WX 600 ; N P ; B 79 0 558 562 ; C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ; C 82 ; WX 600 ; N R ; B 38 0 588 562 ; C 83 ; WX 600 ; N S ; B 72 -20 529 580 ; C 84 ; WX 600 ; N T ; B 38 0 563 562 ; C 85 ; WX 600 ; N U ; B 17 -18 583 562 ; C 86 ; WX 600 ; N V ; B -4 -13 604 562 ; C 87 ; WX 600 ; N W ; B -3 -13 603 562 ; C 88 ; WX 600 ; N X ; B 23 0 577 562 ; C 89 ; WX 600 ; N Y ; B 24 0 576 562 ; C 90 ; WX 600 ; N Z ; B 86 0 514 562 ; C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ; C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ; C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ; C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ; C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; C 96 ; WX 600 ; N quoteleft ; B 224 328 387 562 ; C 97 ; WX 600 ; N a ; B 53 -15 559 441 ; C 98 ; WX 600 ; N b ; B 14 -15 575 629 ; C 99 ; WX 600 ; N c ; B 66 -15 529 441 ; C 100 ; WX 600 ; N d ; B 45 -15 591 629 ; C 101 ; WX 600 ; N e ; B 66 -15 548 441 ; C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 45 -157 566 441 ; C 104 ; WX 600 ; N h ; B 18 0 582 629 ; C 105 ; WX 600 ; N i ; B 95 0 505 657 ; C 106 ; WX 600 ; N j ; B 82 -157 410 657 ; C 107 ; WX 600 ; N k ; B 43 0 580 629 ; C 108 ; WX 600 ; N l ; B 95 0 505 629 ; C 109 ; WX 600 ; N m ; B -5 0 605 441 ; C 110 ; WX 600 ; N n ; B 26 0 575 441 ; C 111 ; WX 600 ; N o ; B 62 -15 538 441 ; C 112 ; WX 600 ; N p ; B 9 -157 555 441 ; C 113 ; WX 600 ; N q ; B 45 -157 591 441 ; C 114 ; WX 600 ; N r ; B 60 0 559 441 ; C 115 ; WX 600 ; N s ; B 80 -15 513 441 ; C 116 ; WX 600 ; N t ; B 87 -15 530 561 ; C 117 ; WX 600 ; N u ; B 21 -15 562 426 ; C 118 ; WX 600 ; N v ; B 10 -10 590 426 ; C 119 ; WX 600 ; N w ; B -4 -10 604 426 ; C 120 ; WX 600 ; N x ; B 20 0 580 426 ; C 121 ; WX 600 ; N y ; B 7 -157 592 426 ; C 122 ; WX 600 ; N z ; B 99 0 502 426 ; C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ; C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ; C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ; C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ; C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ; C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ; C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ; C 164 ; WX 600 ; N fraction ; B 92 -57 509 665 ; C 165 ; WX 600 ; N yen ; B 26 0 574 562 ; C 166 ; WX 600 ; N florin ; B 4 -143 539 622 ; C 167 ; WX 600 ; N section ; B 113 -78 488 580 ; C 168 ; WX 600 ; N currency ; B 73 58 527 506 ; C 169 ; WX 600 ; N quotesingle ; B 259 328 341 562 ; C 170 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ; C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ; C 173 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ; C 174 ; WX 600 ; N fi ; B 3 0 597 629 ; C 175 ; WX 600 ; N fl ; B 3 0 597 629 ; C 177 ; WX 600 ; N endash ; B 75 231 525 285 ; C 178 ; WX 600 ; N dagger ; B 141 -78 459 580 ; C 179 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ; C 180 ; WX 600 ; N periodcentered ; B 222 189 378 327 ; C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ; C 183 ; WX 600 ; N bullet ; B 172 130 428 383 ; C 184 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ; C 185 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ; C 186 ; WX 600 ; N quotedblright ; B 143 328 457 562 ; C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ; C 188 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ; C 189 ; WX 600 ; N perthousand ; B 3 -15 600 622 ; C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ; C 193 ; WX 600 ; N grave ; B 151 497 378 672 ; C 194 ; WX 600 ; N acute ; B 242 497 469 672 ; C 195 ; WX 600 ; N circumflex ; B 124 477 476 654 ; C 196 ; WX 600 ; N tilde ; B 105 489 503 606 ; C 197 ; WX 600 ; N macron ; B 120 525 480 565 ; C 198 ; WX 600 ; N breve ; B 153 501 447 609 ; C 199 ; WX 600 ; N dotaccent ; B 249 537 352 640 ; C 200 ; WX 600 ; N dieresis ; B 148 537 453 640 ; C 202 ; WX 600 ; N ring ; B 218 463 382 627 ; C 203 ; WX 600 ; N cedilla ; B 224 -151 362 10 ; C 205 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ; C 206 ; WX 600 ; N ogonek ; B 211 -172 407 4 ; C 207 ; WX 600 ; N caron ; B 124 492 476 669 ; C 208 ; WX 600 ; N emdash ; B 0 231 600 285 ; C 225 ; WX 600 ; N AE ; B 3 0 550 562 ; C 227 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ; C 232 ; WX 600 ; N Lslash ; B 47 0 554 562 ; C 233 ; WX 600 ; N Oslash ; B 43 -80 557 629 ; C 234 ; WX 600 ; N OE ; B 7 0 567 562 ; C 235 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ; C 241 ; WX 600 ; N ae ; B 19 -15 570 441 ; C 245 ; WX 600 ; N dotlessi ; B 95 0 505 426 ; C 248 ; WX 600 ; N lslash ; B 95 0 505 629 ; C 249 ; WX 600 ; N oslash ; B 62 -80 538 506 ; C 250 ; WX 600 ; N oe ; B 19 -15 559 441 ; C 251 ; WX 600 ; N germandbls ; B 48 -15 588 629 ; C -1 ; WX 600 ; N Idieresis ; B 96 0 504 753 ; C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ; C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ; C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ; C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ; C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ; C -1 ; WX 600 ; N divide ; B 87 48 513 467 ; C -1 ; WX 600 ; N Yacute ; B 24 0 576 805 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ; C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ; C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ; C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ; C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ; C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ; C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ; C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ; C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ; C -1 ; WX 600 ; N Uacute ; B 17 -18 583 805 ; C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 550 753 ; C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ; C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ; C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ; C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ; C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ; C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ; C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ; C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ; C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ; C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ; C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ; C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ; C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ; C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ; C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ; C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ; C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ; C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ; C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ; C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ; C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ; C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ; C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ; C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ; C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ; C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ; C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ; C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ; C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ; C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ; C -1 ; WX 600 ; N Ograve ; B 43 -18 557 805 ; C -1 ; WX 600 ; N Agrave ; B 3 0 597 805 ; C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ; C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ; C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ; C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ; C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ; C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ; C -1 ; WX 600 ; N adieresis ; B 53 -15 559 620 ; C -1 ; WX 600 ; N edieresis ; B 66 -15 548 620 ; C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ; C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ; C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ; C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ; C -1 ; WX 600 ; N Iacute ; B 96 0 504 805 ; C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ; C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ; C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ; C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 600 ; N Egrave ; B 53 0 550 805 ; C -1 ; WX 600 ; N racute ; B 60 0 559 672 ; C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ; C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 514 802 ; C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ; C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ; C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ; C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ; C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ; C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ; C -1 ; WX 600 ; N Aacute ; B 3 0 597 805 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 597 753 ; C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ; C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ; C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ; C -1 ; WX 600 ; N Oacute ; B 43 -18 557 805 ; C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ; C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ; C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ; C -1 ; WX 600 ; N idieresis ; B 95 0 505 620 ; C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ; C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ; C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ; C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ; C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ; C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ; C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ; C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ; C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ; C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ; C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ; C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ; C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ; C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ; C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ; C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ; C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ; C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ; C -1 ; WX 600 ; N Igrave ; B 96 0 504 805 ; C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ; C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ; C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ; C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ; C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ; C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ; C -1 ; WX 600 ; N Eacute ; B 53 0 550 805 ; C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ; C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ; C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ; C -1 ; WX 600 ; N Scaron ; B 72 -20 529 802 ; C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ; C -1 ; WX 600 ; N degree ; B 123 269 477 622 ; C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ; C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ; C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ; C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ; C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ; C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ; C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ; C -1 ; WX 600 ; N Atilde ; B 3 0 597 729 ; C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ; C -1 ; WX 600 ; N Aring ; B 3 0 597 750 ; C -1 ; WX 600 ; N Otilde ; B 43 -18 557 729 ; C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ; C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ; C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ; C -1 ; WX 600 ; N minus ; B 80 232 520 283 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ; C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ; C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ; C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ; C -1 ; WX 600 ; N odieresis ; B 62 -15 538 620 ; C -1 ; WX 600 ; N udieresis ; B 21 -15 562 620 ; C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ; C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ; C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ; C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ; C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ; C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ; C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ; C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics ================================================ FILE: lib/font/data/Helvetica-Bold.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:43:52 1997 Comment UniqueID 43052 Comment VMusage 37169 48194 FontName Helvetica-Bold FullName Helvetica Bold FamilyName Helvetica Weight Bold ItalicAngle 0 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -170 -228 1003 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 315 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ; C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ; C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ; C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ; C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ; C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ; C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ; C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ; C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ; C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ; C 43 ; WX 584 ; N plus ; B 40 0 544 506 ; C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ; C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ; C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ; C 49 ; WX 556 ; N one ; B 69 0 378 710 ; C 50 ; WX 556 ; N two ; B 26 0 511 710 ; C 51 ; WX 556 ; N three ; B 27 -19 516 710 ; C 52 ; WX 556 ; N four ; B 27 0 526 710 ; C 53 ; WX 556 ; N five ; B 27 -19 516 698 ; C 54 ; WX 556 ; N six ; B 31 -19 520 710 ; C 55 ; WX 556 ; N seven ; B 25 0 528 698 ; C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ; C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ; C 58 ; WX 333 ; N colon ; B 92 0 242 512 ; C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ; C 60 ; WX 584 ; N less ; B 38 -8 546 514 ; C 61 ; WX 584 ; N equal ; B 40 87 544 419 ; C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ; C 63 ; WX 611 ; N question ; B 60 0 556 727 ; C 64 ; WX 975 ; N at ; B 118 -19 856 737 ; C 65 ; WX 722 ; N A ; B 20 0 702 718 ; C 66 ; WX 722 ; N B ; B 76 0 669 718 ; C 67 ; WX 722 ; N C ; B 44 -19 684 737 ; C 68 ; WX 722 ; N D ; B 76 0 685 718 ; C 69 ; WX 667 ; N E ; B 76 0 621 718 ; C 70 ; WX 611 ; N F ; B 76 0 587 718 ; C 71 ; WX 778 ; N G ; B 44 -19 713 737 ; C 72 ; WX 722 ; N H ; B 71 0 651 718 ; C 73 ; WX 278 ; N I ; B 64 0 214 718 ; C 74 ; WX 556 ; N J ; B 22 -18 484 718 ; C 75 ; WX 722 ; N K ; B 87 0 722 718 ; C 76 ; WX 611 ; N L ; B 76 0 583 718 ; C 77 ; WX 833 ; N M ; B 69 0 765 718 ; C 78 ; WX 722 ; N N ; B 69 0 654 718 ; C 79 ; WX 778 ; N O ; B 44 -19 734 737 ; C 80 ; WX 667 ; N P ; B 76 0 627 718 ; C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ; C 82 ; WX 722 ; N R ; B 76 0 677 718 ; C 83 ; WX 667 ; N S ; B 39 -19 629 737 ; C 84 ; WX 611 ; N T ; B 14 0 598 718 ; C 85 ; WX 722 ; N U ; B 72 -19 651 718 ; C 86 ; WX 667 ; N V ; B 19 0 648 718 ; C 87 ; WX 944 ; N W ; B 16 0 929 718 ; C 88 ; WX 667 ; N X ; B 14 0 653 718 ; C 89 ; WX 667 ; N Y ; B 15 0 653 718 ; C 90 ; WX 611 ; N Z ; B 25 0 586 718 ; C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ; C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ; C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ; C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ; C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ; C 97 ; WX 556 ; N a ; B 29 -14 527 546 ; C 98 ; WX 611 ; N b ; B 61 -14 578 718 ; C 99 ; WX 556 ; N c ; B 34 -14 524 546 ; C 100 ; WX 611 ; N d ; B 34 -14 551 718 ; C 101 ; WX 556 ; N e ; B 23 -14 528 546 ; C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 40 -217 553 546 ; C 104 ; WX 611 ; N h ; B 65 0 546 718 ; C 105 ; WX 278 ; N i ; B 69 0 209 725 ; C 106 ; WX 278 ; N j ; B 3 -214 209 725 ; C 107 ; WX 556 ; N k ; B 69 0 562 718 ; C 108 ; WX 278 ; N l ; B 69 0 209 718 ; C 109 ; WX 889 ; N m ; B 64 0 826 546 ; C 110 ; WX 611 ; N n ; B 65 0 546 546 ; C 111 ; WX 611 ; N o ; B 34 -14 578 546 ; C 112 ; WX 611 ; N p ; B 62 -207 578 546 ; C 113 ; WX 611 ; N q ; B 34 -207 552 546 ; C 114 ; WX 389 ; N r ; B 64 0 373 546 ; C 115 ; WX 556 ; N s ; B 30 -14 519 546 ; C 116 ; WX 333 ; N t ; B 10 -6 309 676 ; C 117 ; WX 611 ; N u ; B 66 -14 545 532 ; C 118 ; WX 556 ; N v ; B 13 0 543 532 ; C 119 ; WX 778 ; N w ; B 10 0 769 532 ; C 120 ; WX 556 ; N x ; B 15 0 541 532 ; C 121 ; WX 556 ; N y ; B 10 -214 539 532 ; C 122 ; WX 500 ; N z ; B 20 0 480 532 ; C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ; C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ; C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ; C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ; C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ; C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ; C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ; C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ; C 165 ; WX 556 ; N yen ; B -9 0 565 698 ; C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ; C 167 ; WX 556 ; N section ; B 34 -184 522 727 ; C 168 ; WX 556 ; N currency ; B -3 76 559 636 ; C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ; C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ; C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ; C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ; C 174 ; WX 611 ; N fi ; B 10 0 542 727 ; C 175 ; WX 611 ; N fl ; B 10 0 542 727 ; C 177 ; WX 556 ; N endash ; B 0 227 556 333 ; C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ; C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ; C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ; C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ; C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ; C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ; C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ; C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ; C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ; C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ; C 193 ; WX 333 ; N grave ; B -23 604 225 750 ; C 194 ; WX 333 ; N acute ; B 108 604 356 750 ; C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ; C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ; C 197 ; WX 333 ; N macron ; B -6 604 339 678 ; C 198 ; WX 333 ; N breve ; B -2 604 335 750 ; C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ; C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ; C 202 ; WX 333 ; N ring ; B 59 568 275 776 ; C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ; C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ; C 207 ; WX 333 ; N caron ; B -10 604 343 750 ; C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ; C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ; C 227 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ; C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ; C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ; C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ; C 235 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ; C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ; C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ; C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ; C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ; C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ; C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ; C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ; C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ; C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ; C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ; C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ; C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ; C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ; C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ; C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ; C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ; C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ; C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ; C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ; C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ; C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ; C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ; C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ; C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ; C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ; C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ; C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ; C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ; C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ; C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ; C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ; C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ; C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ; C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ; C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ; C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ; C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ; C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ; C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ; C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ; C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ; C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ; C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ; C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ; C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ; C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ; C -1 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ; C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ; C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ; C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ; C -1 ; WX 389 ; N racute ; B 64 0 384 750 ; C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ; C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ; C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ; C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ; C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ; C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ; C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ; C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ; C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ; C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ; C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ; C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ; C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ; C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ; C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ; C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ; C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ; C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ; C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ; C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ; C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ; C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ; C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ; C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ; C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ; C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ; C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ; C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ; C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ; C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ; C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ; C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ; C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ; C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ; C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ; C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ; C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ; C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ; C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ; C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ; C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ; C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ; C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ; C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ; C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ; C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ; C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ; C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ; C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ; C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ; C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/Helvetica-BoldOblique.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:45:12 1997 Comment UniqueID 43053 Comment VMusage 14482 68586 FontName Helvetica-BoldOblique FullName Helvetica Bold Oblique FamilyName Helvetica Weight Bold ItalicAngle -12 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -174 -228 1114 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 315 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ; C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ; C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ; C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ; C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ; C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ; C 39 ; WX 278 ; N quoteright ; B 167 445 362 718 ; C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ; C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ; C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ; C 43 ; WX 584 ; N plus ; B 82 0 610 506 ; C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ; C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ; C 46 ; WX 278 ; N period ; B 64 0 245 146 ; C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ; C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ; C 49 ; WX 556 ; N one ; B 173 0 529 710 ; C 50 ; WX 556 ; N two ; B 26 0 619 710 ; C 51 ; WX 556 ; N three ; B 65 -19 608 710 ; C 52 ; WX 556 ; N four ; B 60 0 598 710 ; C 53 ; WX 556 ; N five ; B 64 -19 636 698 ; C 54 ; WX 556 ; N six ; B 85 -19 619 710 ; C 55 ; WX 556 ; N seven ; B 125 0 676 698 ; C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ; C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ; C 58 ; WX 333 ; N colon ; B 92 0 351 512 ; C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ; C 60 ; WX 584 ; N less ; B 82 -8 655 514 ; C 61 ; WX 584 ; N equal ; B 58 87 633 419 ; C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ; C 63 ; WX 611 ; N question ; B 165 0 671 727 ; C 64 ; WX 975 ; N at ; B 186 -19 954 737 ; C 65 ; WX 722 ; N A ; B 20 0 702 718 ; C 66 ; WX 722 ; N B ; B 76 0 764 718 ; C 67 ; WX 722 ; N C ; B 107 -19 789 737 ; C 68 ; WX 722 ; N D ; B 76 0 777 718 ; C 69 ; WX 667 ; N E ; B 76 0 757 718 ; C 70 ; WX 611 ; N F ; B 76 0 740 718 ; C 71 ; WX 778 ; N G ; B 108 -19 817 737 ; C 72 ; WX 722 ; N H ; B 71 0 804 718 ; C 73 ; WX 278 ; N I ; B 64 0 367 718 ; C 74 ; WX 556 ; N J ; B 60 -18 637 718 ; C 75 ; WX 722 ; N K ; B 87 0 858 718 ; C 76 ; WX 611 ; N L ; B 76 0 611 718 ; C 77 ; WX 833 ; N M ; B 69 0 918 718 ; C 78 ; WX 722 ; N N ; B 69 0 807 718 ; C 79 ; WX 778 ; N O ; B 107 -19 823 737 ; C 80 ; WX 667 ; N P ; B 76 0 738 718 ; C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ; C 82 ; WX 722 ; N R ; B 76 0 778 718 ; C 83 ; WX 667 ; N S ; B 81 -19 718 737 ; C 84 ; WX 611 ; N T ; B 140 0 751 718 ; C 85 ; WX 722 ; N U ; B 116 -19 804 718 ; C 86 ; WX 667 ; N V ; B 172 0 801 718 ; C 87 ; WX 944 ; N W ; B 169 0 1082 718 ; C 88 ; WX 667 ; N X ; B 14 0 791 718 ; C 89 ; WX 667 ; N Y ; B 168 0 806 718 ; C 90 ; WX 611 ; N Z ; B 25 0 737 718 ; C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ; C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ; C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ; C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ; C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; C 96 ; WX 278 ; N quoteleft ; B 165 454 361 727 ; C 97 ; WX 556 ; N a ; B 55 -14 583 546 ; C 98 ; WX 611 ; N b ; B 61 -14 645 718 ; C 99 ; WX 556 ; N c ; B 79 -14 599 546 ; C 100 ; WX 611 ; N d ; B 82 -14 704 718 ; C 101 ; WX 556 ; N e ; B 70 -14 593 546 ; C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 38 -217 666 546 ; C 104 ; WX 611 ; N h ; B 65 0 629 718 ; C 105 ; WX 278 ; N i ; B 69 0 363 725 ; C 106 ; WX 278 ; N j ; B -42 -214 363 725 ; C 107 ; WX 556 ; N k ; B 69 0 670 718 ; C 108 ; WX 278 ; N l ; B 69 0 362 718 ; C 109 ; WX 889 ; N m ; B 64 0 909 546 ; C 110 ; WX 611 ; N n ; B 65 0 629 546 ; C 111 ; WX 611 ; N o ; B 82 -14 643 546 ; C 112 ; WX 611 ; N p ; B 18 -207 645 546 ; C 113 ; WX 611 ; N q ; B 80 -207 665 546 ; C 114 ; WX 389 ; N r ; B 64 0 489 546 ; C 115 ; WX 556 ; N s ; B 63 -14 584 546 ; C 116 ; WX 333 ; N t ; B 100 -6 422 676 ; C 117 ; WX 611 ; N u ; B 98 -14 658 532 ; C 118 ; WX 556 ; N v ; B 126 0 656 532 ; C 119 ; WX 778 ; N w ; B 123 0 882 532 ; C 120 ; WX 556 ; N x ; B 15 0 648 532 ; C 121 ; WX 556 ; N y ; B 42 -214 652 532 ; C 122 ; WX 500 ; N z ; B 20 0 583 532 ; C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ; C 124 ; WX 280 ; N bar ; B 36 -225 361 775 ; C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ; C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ; C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ; C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ; C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ; C 164 ; WX 167 ; N fraction ; B -174 -19 487 710 ; C 165 ; WX 556 ; N yen ; B 60 0 713 698 ; C 166 ; WX 556 ; N florin ; B -50 -210 669 737 ; C 167 ; WX 556 ; N section ; B 61 -184 598 727 ; C 168 ; WX 556 ; N currency ; B 27 76 680 636 ; C 169 ; WX 238 ; N quotesingle ; B 165 447 321 718 ; C 170 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ; C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ; C 173 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ; C 174 ; WX 611 ; N fi ; B 87 0 696 727 ; C 175 ; WX 611 ; N fl ; B 87 0 695 727 ; C 177 ; WX 556 ; N endash ; B 48 227 627 333 ; C 178 ; WX 556 ; N dagger ; B 118 -171 626 718 ; C 179 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ; C 180 ; WX 278 ; N periodcentered ; B 110 172 276 334 ; C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ; C 183 ; WX 350 ; N bullet ; B 83 194 420 524 ; C 184 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ; C 185 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ; C 186 ; WX 500 ; N quotedblright ; B 162 445 589 718 ; C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; C 189 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ; C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ; C 193 ; WX 333 ; N grave ; B 136 604 353 750 ; C 194 ; WX 333 ; N acute ; B 236 604 515 750 ; C 195 ; WX 333 ; N circumflex ; B 118 604 471 750 ; C 196 ; WX 333 ; N tilde ; B 113 610 507 737 ; C 197 ; WX 333 ; N macron ; B 122 604 483 678 ; C 198 ; WX 333 ; N breve ; B 156 604 494 750 ; C 199 ; WX 333 ; N dotaccent ; B 235 614 385 729 ; C 200 ; WX 333 ; N dieresis ; B 137 614 482 729 ; C 202 ; WX 333 ; N ring ; B 200 568 420 776 ; C 203 ; WX 333 ; N cedilla ; B -37 -228 220 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ; C 206 ; WX 333 ; N ogonek ; B 41 -228 264 0 ; C 207 ; WX 333 ; N caron ; B 149 604 502 750 ; C 208 ; WX 1000 ; N emdash ; B 48 227 1071 333 ; C 225 ; WX 1000 ; N AE ; B 5 0 1100 718 ; C 227 ; WX 370 ; N ordfeminine ; B 125 401 465 737 ; C 232 ; WX 611 ; N Lslash ; B 34 0 611 718 ; C 233 ; WX 778 ; N Oslash ; B 35 -27 894 745 ; C 234 ; WX 1000 ; N OE ; B 99 -19 1114 737 ; C 235 ; WX 365 ; N ordmasculine ; B 123 401 485 737 ; C 241 ; WX 889 ; N ae ; B 56 -14 923 546 ; C 245 ; WX 278 ; N dotlessi ; B 69 0 322 532 ; C 248 ; WX 278 ; N lslash ; B 40 0 407 718 ; C 249 ; WX 611 ; N oslash ; B 22 -29 701 560 ; C 250 ; WX 944 ; N oe ; B 82 -14 977 546 ; C 251 ; WX 611 ; N germandbls ; B 69 -14 657 731 ; C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ; C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ; C -1 ; WX 556 ; N abreve ; B 55 -14 606 750 ; C -1 ; WX 611 ; N uhungarumlaut ; B 98 -14 784 750 ; C -1 ; WX 556 ; N ecaron ; B 70 -14 614 750 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ; C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ; C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ; C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ; C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ; C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ; C -1 ; WX 556 ; N scommaaccent ; B 63 -228 584 546 ; C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ; C -1 ; WX 722 ; N Uring ; B 116 -19 804 962 ; C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ; C -1 ; WX 556 ; N aogonek ; B 55 -224 583 546 ; C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ; C -1 ; WX 611 ; N uogonek ; B 98 -228 658 532 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ; C -1 ; WX 722 ; N Dcroat ; B 62 0 777 718 ; C -1 ; WX 250 ; N commaaccent ; B 16 -228 188 -50 ; C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ; C -1 ; WX 667 ; N Emacron ; B 76 0 757 864 ; C -1 ; WX 556 ; N ccaron ; B 79 -14 614 750 ; C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ; C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 807 718 ; C -1 ; WX 278 ; N lacute ; B 69 0 528 936 ; C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ; C -1 ; WX 611 ; N Tcommaaccent ; B 140 -228 751 718 ; C -1 ; WX 722 ; N Cacute ; B 107 -19 789 936 ; C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ; C -1 ; WX 667 ; N Edotaccent ; B 76 0 757 915 ; C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ; C -1 ; WX 556 ; N scedilla ; B 63 -228 584 546 ; C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ; C -1 ; WX 494 ; N lozenge ; B 90 0 564 745 ; C -1 ; WX 722 ; N Rcaron ; B 76 0 778 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 108 -228 817 737 ; C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ; C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ; C -1 ; WX 722 ; N Amacron ; B 20 0 718 864 ; C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ; C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ; C -1 ; WX 611 ; N Zdotaccent ; B 25 0 737 915 ; C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ; C -1 ; WX 778 ; N Omacron ; B 107 -19 823 864 ; C -1 ; WX 722 ; N Racute ; B 76 0 778 936 ; C -1 ; WX 667 ; N Sacute ; B 81 -19 722 936 ; C -1 ; WX 743 ; N dcaron ; B 82 -14 903 718 ; C -1 ; WX 722 ; N Umacron ; B 116 -19 804 864 ; C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ; C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ; C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 722 ; N Abreve ; B 20 0 729 936 ; C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ; C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ; C -1 ; WX 611 ; N Tcaron ; B 140 0 751 936 ; C -1 ; WX 494 ; N partialdiff ; B 43 -21 585 750 ; C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ; C -1 ; WX 722 ; N Nacute ; B 69 0 807 936 ; C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ; C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ; C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ; C -1 ; WX 556 ; N cacute ; B 79 -14 627 750 ; C -1 ; WX 611 ; N nacute ; B 65 0 654 750 ; C -1 ; WX 611 ; N umacron ; B 98 -14 658 678 ; C -1 ; WX 722 ; N Ncaron ; B 69 0 807 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ; C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ; C -1 ; WX 280 ; N brokenbar ; B 52 -150 345 700 ; C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ; C -1 ; WX 778 ; N Gbreve ; B 108 -19 817 936 ; C -1 ; WX 278 ; N Idotaccent ; B 64 0 397 915 ; C -1 ; WX 600 ; N summation ; B 14 -10 670 706 ; C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ; C -1 ; WX 389 ; N racute ; B 64 0 543 750 ; C -1 ; WX 611 ; N omacron ; B 82 -14 643 678 ; C -1 ; WX 611 ; N Zacute ; B 25 0 737 936 ; C -1 ; WX 611 ; N Zcaron ; B 25 0 737 936 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 629 704 ; C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ; C -1 ; WX 278 ; N lcommaaccent ; B 30 -228 362 718 ; C -1 ; WX 389 ; N tcaron ; B 100 -6 608 878 ; C -1 ; WX 556 ; N eogonek ; B 70 -228 593 546 ; C -1 ; WX 722 ; N Uogonek ; B 116 -228 804 718 ; C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ; C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ; C -1 ; WX 500 ; N zacute ; B 20 0 599 750 ; C -1 ; WX 278 ; N iogonek ; B -14 -224 363 725 ; C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ; C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ; C -1 ; WX 556 ; N amacron ; B 55 -14 595 678 ; C -1 ; WX 556 ; N sacute ; B 63 -14 627 750 ; C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ; C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ; C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ; C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ; C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ; C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ; C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ; C -1 ; WX 611 ; N ohungarumlaut ; B 82 -14 784 750 ; C -1 ; WX 667 ; N Eogonek ; B 76 -224 757 718 ; C -1 ; WX 611 ; N dcroat ; B 82 -14 789 718 ; C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ; C -1 ; WX 667 ; N Scedilla ; B 81 -228 718 737 ; C -1 ; WX 400 ; N lcaron ; B 69 0 561 718 ; C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 858 718 ; C -1 ; WX 611 ; N Lacute ; B 76 0 611 936 ; C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ; C -1 ; WX 556 ; N edotaccent ; B 70 -14 593 729 ; C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ; C -1 ; WX 278 ; N Imacron ; B 64 0 496 864 ; C -1 ; WX 611 ; N Lcaron ; B 76 0 643 718 ; C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ; C -1 ; WX 549 ; N lessequal ; B 29 0 676 704 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 116 -19 880 936 ; C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ; C -1 ; WX 556 ; N emacron ; B 70 -14 595 678 ; C -1 ; WX 611 ; N gbreve ; B 38 -217 666 750 ; C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ; C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 81 -228 718 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 107 -19 908 936 ; C -1 ; WX 400 ; N degree ; B 175 426 467 712 ; C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ; C -1 ; WX 722 ; N Ccaron ; B 107 -19 789 936 ; C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ; C -1 ; WX 549 ; N radical ; B 112 -46 689 850 ; C -1 ; WX 722 ; N Dcaron ; B 76 0 777 936 ; C -1 ; WX 389 ; N rcommaaccent ; B 26 -228 489 546 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ; C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ; C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 778 718 ; C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 611 718 ; C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ; C -1 ; WX 722 ; N Aogonek ; B 20 -224 702 718 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ; C -1 ; WX 500 ; N zdotaccent ; B 20 0 583 729 ; C -1 ; WX 667 ; N Ecaron ; B 76 0 757 936 ; C -1 ; WX 278 ; N Iogonek ; B -41 -228 367 718 ; C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 670 718 ; C -1 ; WX 584 ; N minus ; B 82 197 610 309 ; C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ; C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ; C -1 ; WX 333 ; N tcommaaccent ; B 58 -228 422 676 ; C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ; C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ; C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ; C -1 ; WX 549 ; N notequal ; B 32 -49 630 570 ; C -1 ; WX 611 ; N gcommaaccent ; B 38 -217 666 850 ; C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ; C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ; C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 629 546 ; C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ; C -1 ; WX 278 ; N imacron ; B 69 0 429 678 ; C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/Helvetica-Oblique.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:44:31 1997 Comment UniqueID 43055 Comment VMusage 14960 69346 FontName Helvetica-Oblique FullName Helvetica Oblique FamilyName Helvetica Weight Medium ItalicAngle -12 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -170 -225 1116 931 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StdHW 76 StdVW 88 StartCharMetrics 315 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ; C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ; C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ; C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ; C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ; C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ; C 39 ; WX 222 ; N quoteright ; B 151 463 310 718 ; C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ; C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ; C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ; C 43 ; WX 584 ; N plus ; B 85 0 606 505 ; C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ; C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ; C 46 ; WX 278 ; N period ; B 87 0 214 106 ; C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ; C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ; C 49 ; WX 556 ; N one ; B 207 0 508 703 ; C 50 ; WX 556 ; N two ; B 26 0 617 703 ; C 51 ; WX 556 ; N three ; B 75 -19 610 703 ; C 52 ; WX 556 ; N four ; B 61 0 576 703 ; C 53 ; WX 556 ; N five ; B 68 -19 621 688 ; C 54 ; WX 556 ; N six ; B 91 -19 615 703 ; C 55 ; WX 556 ; N seven ; B 137 0 669 688 ; C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ; C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ; C 58 ; WX 278 ; N colon ; B 87 0 301 516 ; C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ; C 60 ; WX 584 ; N less ; B 94 11 641 495 ; C 61 ; WX 584 ; N equal ; B 63 115 628 390 ; C 62 ; WX 584 ; N greater ; B 50 11 597 495 ; C 63 ; WX 556 ; N question ; B 161 0 610 727 ; C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ; C 65 ; WX 667 ; N A ; B 14 0 654 718 ; C 66 ; WX 667 ; N B ; B 74 0 712 718 ; C 67 ; WX 722 ; N C ; B 108 -19 782 737 ; C 68 ; WX 722 ; N D ; B 81 0 764 718 ; C 69 ; WX 667 ; N E ; B 86 0 762 718 ; C 70 ; WX 611 ; N F ; B 86 0 736 718 ; C 71 ; WX 778 ; N G ; B 111 -19 799 737 ; C 72 ; WX 722 ; N H ; B 77 0 799 718 ; C 73 ; WX 278 ; N I ; B 91 0 341 718 ; C 74 ; WX 500 ; N J ; B 47 -19 581 718 ; C 75 ; WX 667 ; N K ; B 76 0 808 718 ; C 76 ; WX 556 ; N L ; B 76 0 555 718 ; C 77 ; WX 833 ; N M ; B 73 0 914 718 ; C 78 ; WX 722 ; N N ; B 76 0 799 718 ; C 79 ; WX 778 ; N O ; B 105 -19 826 737 ; C 80 ; WX 667 ; N P ; B 86 0 737 718 ; C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ; C 82 ; WX 722 ; N R ; B 88 0 773 718 ; C 83 ; WX 667 ; N S ; B 90 -19 713 737 ; C 84 ; WX 611 ; N T ; B 148 0 750 718 ; C 85 ; WX 722 ; N U ; B 123 -19 797 718 ; C 86 ; WX 667 ; N V ; B 173 0 800 718 ; C 87 ; WX 944 ; N W ; B 169 0 1081 718 ; C 88 ; WX 667 ; N X ; B 19 0 790 718 ; C 89 ; WX 667 ; N Y ; B 167 0 806 718 ; C 90 ; WX 611 ; N Z ; B 23 0 741 718 ; C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ; C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ; C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ; C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ; C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; C 96 ; WX 222 ; N quoteleft ; B 165 470 323 725 ; C 97 ; WX 556 ; N a ; B 61 -15 559 538 ; C 98 ; WX 556 ; N b ; B 58 -15 584 718 ; C 99 ; WX 500 ; N c ; B 74 -15 553 538 ; C 100 ; WX 556 ; N d ; B 84 -15 652 718 ; C 101 ; WX 556 ; N e ; B 84 -15 578 538 ; C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 42 -220 610 538 ; C 104 ; WX 556 ; N h ; B 65 0 573 718 ; C 105 ; WX 222 ; N i ; B 67 0 308 718 ; C 106 ; WX 222 ; N j ; B -60 -210 308 718 ; C 107 ; WX 500 ; N k ; B 67 0 600 718 ; C 108 ; WX 222 ; N l ; B 67 0 308 718 ; C 109 ; WX 833 ; N m ; B 65 0 852 538 ; C 110 ; WX 556 ; N n ; B 65 0 573 538 ; C 111 ; WX 556 ; N o ; B 83 -14 585 538 ; C 112 ; WX 556 ; N p ; B 14 -207 584 538 ; C 113 ; WX 556 ; N q ; B 84 -207 605 538 ; C 114 ; WX 333 ; N r ; B 77 0 446 538 ; C 115 ; WX 500 ; N s ; B 63 -15 529 538 ; C 116 ; WX 278 ; N t ; B 102 -7 368 669 ; C 117 ; WX 556 ; N u ; B 94 -15 600 523 ; C 118 ; WX 500 ; N v ; B 119 0 603 523 ; C 119 ; WX 722 ; N w ; B 125 0 820 523 ; C 120 ; WX 500 ; N x ; B 11 0 594 523 ; C 121 ; WX 500 ; N y ; B 15 -214 600 523 ; C 122 ; WX 500 ; N z ; B 31 0 571 523 ; C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ; C 124 ; WX 260 ; N bar ; B 46 -225 332 775 ; C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ; C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ; C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ; C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ; C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ; C 164 ; WX 167 ; N fraction ; B -170 -19 482 703 ; C 165 ; WX 556 ; N yen ; B 81 0 699 688 ; C 166 ; WX 556 ; N florin ; B -52 -207 654 737 ; C 167 ; WX 556 ; N section ; B 76 -191 584 737 ; C 168 ; WX 556 ; N currency ; B 60 99 646 603 ; C 169 ; WX 191 ; N quotesingle ; B 157 463 285 718 ; C 170 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ; C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ; C 172 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ; C 173 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ; C 174 ; WX 500 ; N fi ; B 86 0 587 728 ; C 175 ; WX 500 ; N fl ; B 86 0 585 728 ; C 177 ; WX 556 ; N endash ; B 51 240 623 313 ; C 178 ; WX 556 ; N dagger ; B 135 -159 622 718 ; C 179 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ; C 180 ; WX 278 ; N periodcentered ; B 129 190 257 315 ; C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ; C 183 ; WX 350 ; N bullet ; B 91 202 413 517 ; C 184 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ; C 185 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ; C 186 ; WX 333 ; N quotedblright ; B 124 463 448 718 ; C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ; C 189 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ; C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ; C 193 ; WX 333 ; N grave ; B 170 593 337 734 ; C 194 ; WX 333 ; N acute ; B 248 593 475 734 ; C 195 ; WX 333 ; N circumflex ; B 147 593 438 734 ; C 196 ; WX 333 ; N tilde ; B 125 606 490 722 ; C 197 ; WX 333 ; N macron ; B 143 627 468 684 ; C 198 ; WX 333 ; N breve ; B 167 595 476 731 ; C 199 ; WX 333 ; N dotaccent ; B 249 604 362 706 ; C 200 ; WX 333 ; N dieresis ; B 168 604 443 706 ; C 202 ; WX 333 ; N ring ; B 214 572 402 756 ; C 203 ; WX 333 ; N cedilla ; B 2 -225 232 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ; C 206 ; WX 333 ; N ogonek ; B 43 -225 249 0 ; C 207 ; WX 333 ; N caron ; B 177 593 468 734 ; C 208 ; WX 1000 ; N emdash ; B 51 240 1067 313 ; C 225 ; WX 1000 ; N AE ; B 8 0 1097 718 ; C 227 ; WX 370 ; N ordfeminine ; B 127 405 449 737 ; C 232 ; WX 556 ; N Lslash ; B 41 0 555 718 ; C 233 ; WX 778 ; N Oslash ; B 43 -19 890 737 ; C 234 ; WX 1000 ; N OE ; B 98 -19 1116 737 ; C 235 ; WX 365 ; N ordmasculine ; B 141 405 468 737 ; C 241 ; WX 889 ; N ae ; B 61 -15 909 538 ; C 245 ; WX 278 ; N dotlessi ; B 95 0 294 523 ; C 248 ; WX 222 ; N lslash ; B 41 0 347 718 ; C 249 ; WX 611 ; N oslash ; B 29 -22 647 545 ; C 250 ; WX 944 ; N oe ; B 83 -15 964 538 ; C 251 ; WX 611 ; N germandbls ; B 67 -15 658 728 ; C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ; C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ; C -1 ; WX 556 ; N abreve ; B 61 -15 578 731 ; C -1 ; WX 556 ; N uhungarumlaut ; B 94 -15 677 734 ; C -1 ; WX 556 ; N ecaron ; B 84 -15 580 734 ; C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ; C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ; C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ; C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ; C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ; C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ; C -1 ; WX 500 ; N scommaaccent ; B 63 -225 529 538 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ; C -1 ; WX 722 ; N Uring ; B 123 -19 797 931 ; C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ; C -1 ; WX 556 ; N aogonek ; B 61 -220 559 538 ; C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ; C -1 ; WX 556 ; N uogonek ; B 94 -225 600 523 ; C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ; C -1 ; WX 722 ; N Dcroat ; B 69 0 764 718 ; C -1 ; WX 250 ; N commaaccent ; B 39 -225 172 -40 ; C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ; C -1 ; WX 667 ; N Emacron ; B 86 0 762 879 ; C -1 ; WX 500 ; N ccaron ; B 74 -15 553 734 ; C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 799 718 ; C -1 ; WX 222 ; N lacute ; B 67 0 461 929 ; C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ; C -1 ; WX 611 ; N Tcommaaccent ; B 148 -225 750 718 ; C -1 ; WX 722 ; N Cacute ; B 108 -19 782 929 ; C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ; C -1 ; WX 667 ; N Edotaccent ; B 86 0 762 901 ; C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ; C -1 ; WX 500 ; N scedilla ; B 63 -225 529 538 ; C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ; C -1 ; WX 471 ; N lozenge ; B 88 0 540 728 ; C -1 ; WX 722 ; N Rcaron ; B 88 0 773 929 ; C -1 ; WX 778 ; N Gcommaaccent ; B 111 -225 799 737 ; C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ; C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ; C -1 ; WX 667 ; N Amacron ; B 14 0 677 879 ; C -1 ; WX 333 ; N rcaron ; B 77 0 508 734 ; C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ; C -1 ; WX 611 ; N Zdotaccent ; B 23 0 741 901 ; C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ; C -1 ; WX 778 ; N Omacron ; B 105 -19 826 879 ; C -1 ; WX 722 ; N Racute ; B 88 0 773 929 ; C -1 ; WX 667 ; N Sacute ; B 90 -19 713 929 ; C -1 ; WX 643 ; N dcaron ; B 84 -15 808 718 ; C -1 ; WX 722 ; N Umacron ; B 123 -19 797 879 ; C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ; C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ; C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ; C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; C -1 ; WX 667 ; N Abreve ; B 14 0 685 926 ; C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ; C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ; C -1 ; WX 611 ; N Tcaron ; B 148 0 750 929 ; C -1 ; WX 476 ; N partialdiff ; B 41 -38 550 714 ; C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ; C -1 ; WX 722 ; N Nacute ; B 76 0 799 929 ; C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ; C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ; C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ; C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ; C -1 ; WX 500 ; N cacute ; B 74 -15 559 734 ; C -1 ; WX 556 ; N nacute ; B 65 0 587 734 ; C -1 ; WX 556 ; N umacron ; B 94 -15 600 684 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 799 929 ; C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ; C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ; C -1 ; WX 260 ; N brokenbar ; B 62 -150 316 700 ; C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ; C -1 ; WX 778 ; N Gbreve ; B 111 -19 799 926 ; C -1 ; WX 278 ; N Idotaccent ; B 91 0 377 901 ; C -1 ; WX 600 ; N summation ; B 15 -10 671 706 ; C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ; C -1 ; WX 333 ; N racute ; B 77 0 475 734 ; C -1 ; WX 556 ; N omacron ; B 83 -14 585 684 ; C -1 ; WX 611 ; N Zacute ; B 23 0 741 929 ; C -1 ; WX 611 ; N Zcaron ; B 23 0 741 929 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 620 674 ; C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ; C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ; C -1 ; WX 222 ; N lcommaaccent ; B 25 -225 308 718 ; C -1 ; WX 317 ; N tcaron ; B 102 -7 501 808 ; C -1 ; WX 556 ; N eogonek ; B 84 -225 578 538 ; C -1 ; WX 722 ; N Uogonek ; B 123 -225 797 718 ; C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ; C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ; C -1 ; WX 500 ; N zacute ; B 31 0 571 734 ; C -1 ; WX 222 ; N iogonek ; B -61 -225 308 718 ; C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ; C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ; C -1 ; WX 556 ; N amacron ; B 61 -15 580 684 ; C -1 ; WX 500 ; N sacute ; B 63 -15 559 734 ; C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ; C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ; C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ; C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ; C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ; C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ; C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ; C -1 ; WX 556 ; N ohungarumlaut ; B 83 -14 677 734 ; C -1 ; WX 667 ; N Eogonek ; B 86 -220 762 718 ; C -1 ; WX 556 ; N dcroat ; B 84 -15 689 718 ; C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ; C -1 ; WX 667 ; N Scedilla ; B 90 -225 713 737 ; C -1 ; WX 299 ; N lcaron ; B 67 0 464 718 ; C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 808 718 ; C -1 ; WX 556 ; N Lacute ; B 76 0 555 929 ; C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ; C -1 ; WX 556 ; N edotaccent ; B 84 -15 578 706 ; C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ; C -1 ; WX 278 ; N Imacron ; B 91 0 483 879 ; C -1 ; WX 556 ; N Lcaron ; B 76 0 570 718 ; C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ; C -1 ; WX 549 ; N lessequal ; B 26 0 666 674 ; C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ; C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 123 -19 801 929 ; C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ; C -1 ; WX 556 ; N emacron ; B 84 -15 580 684 ; C -1 ; WX 556 ; N gbreve ; B 42 -220 610 731 ; C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ; C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ; C -1 ; WX 667 ; N Scommaaccent ; B 90 -225 713 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 105 -19 829 929 ; C -1 ; WX 400 ; N degree ; B 169 411 468 703 ; C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ; C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 929 ; C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ; C -1 ; WX 453 ; N radical ; B 79 -80 617 762 ; C -1 ; WX 722 ; N Dcaron ; B 81 0 764 929 ; C -1 ; WX 333 ; N rcommaaccent ; B 30 -225 446 538 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ; C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ; C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 773 718 ; C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 555 718 ; C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ; C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 571 706 ; C -1 ; WX 667 ; N Ecaron ; B 86 0 762 929 ; C -1 ; WX 278 ; N Iogonek ; B -33 -225 341 718 ; C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 600 718 ; C -1 ; WX 584 ; N minus ; B 85 216 606 289 ; C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ; C -1 ; WX 556 ; N ncaron ; B 65 0 580 734 ; C -1 ; WX 278 ; N tcommaaccent ; B 63 -225 368 669 ; C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ; C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ; C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ; C -1 ; WX 549 ; N notequal ; B 34 -35 623 551 ; C -1 ; WX 556 ; N gcommaaccent ; B 42 -220 610 822 ; C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ; C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ; C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 573 538 ; C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ; C -1 ; WX 278 ; N imacron ; B 95 0 417 684 ; C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2705 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O -30 KPX A Oacute -30 KPX A Ocircumflex -30 KPX A Odieresis -30 KPX A Ograve -30 KPX A Ohungarumlaut -30 KPX A Omacron -30 KPX A Oslash -30 KPX A Otilde -30 KPX A Q -30 KPX A T -120 KPX A Tcaron -120 KPX A Tcommaaccent -120 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -70 KPX A W -50 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -40 KPX A y -40 KPX A yacute -40 KPX A ydieresis -40 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O -30 KPX Aacute Oacute -30 KPX Aacute Ocircumflex -30 KPX Aacute Odieresis -30 KPX Aacute Ograve -30 KPX Aacute Ohungarumlaut -30 KPX Aacute Omacron -30 KPX Aacute Oslash -30 KPX Aacute Otilde -30 KPX Aacute Q -30 KPX Aacute T -120 KPX Aacute Tcaron -120 KPX Aacute Tcommaaccent -120 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -70 KPX Aacute W -50 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -40 KPX Aacute y -40 KPX Aacute yacute -40 KPX Aacute ydieresis -40 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O -30 KPX Abreve Oacute -30 KPX Abreve Ocircumflex -30 KPX Abreve Odieresis -30 KPX Abreve Ograve -30 KPX Abreve Ohungarumlaut -30 KPX Abreve Omacron -30 KPX Abreve Oslash -30 KPX Abreve Otilde -30 KPX Abreve Q -30 KPX Abreve T -120 KPX Abreve Tcaron -120 KPX Abreve Tcommaaccent -120 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -70 KPX Abreve W -50 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -40 KPX Abreve y -40 KPX Abreve yacute -40 KPX Abreve ydieresis -40 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O -30 KPX Acircumflex Oacute -30 KPX Acircumflex Ocircumflex -30 KPX Acircumflex Odieresis -30 KPX Acircumflex Ograve -30 KPX Acircumflex Ohungarumlaut -30 KPX Acircumflex Omacron -30 KPX Acircumflex Oslash -30 KPX Acircumflex Otilde -30 KPX Acircumflex Q -30 KPX Acircumflex T -120 KPX Acircumflex Tcaron -120 KPX Acircumflex Tcommaaccent -120 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -70 KPX Acircumflex W -50 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -40 KPX Acircumflex y -40 KPX Acircumflex yacute -40 KPX Acircumflex ydieresis -40 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O -30 KPX Adieresis Oacute -30 KPX Adieresis Ocircumflex -30 KPX Adieresis Odieresis -30 KPX Adieresis Ograve -30 KPX Adieresis Ohungarumlaut -30 KPX Adieresis Omacron -30 KPX Adieresis Oslash -30 KPX Adieresis Otilde -30 KPX Adieresis Q -30 KPX Adieresis T -120 KPX Adieresis Tcaron -120 KPX Adieresis Tcommaaccent -120 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -70 KPX Adieresis W -50 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -40 KPX Adieresis y -40 KPX Adieresis yacute -40 KPX Adieresis ydieresis -40 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O -30 KPX Agrave Oacute -30 KPX Agrave Ocircumflex -30 KPX Agrave Odieresis -30 KPX Agrave Ograve -30 KPX Agrave Ohungarumlaut -30 KPX Agrave Omacron -30 KPX Agrave Oslash -30 KPX Agrave Otilde -30 KPX Agrave Q -30 KPX Agrave T -120 KPX Agrave Tcaron -120 KPX Agrave Tcommaaccent -120 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -70 KPX Agrave W -50 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -40 KPX Agrave y -40 KPX Agrave yacute -40 KPX Agrave ydieresis -40 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O -30 KPX Amacron Oacute -30 KPX Amacron Ocircumflex -30 KPX Amacron Odieresis -30 KPX Amacron Ograve -30 KPX Amacron Ohungarumlaut -30 KPX Amacron Omacron -30 KPX Amacron Oslash -30 KPX Amacron Otilde -30 KPX Amacron Q -30 KPX Amacron T -120 KPX Amacron Tcaron -120 KPX Amacron Tcommaaccent -120 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -70 KPX Amacron W -50 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -40 KPX Amacron y -40 KPX Amacron yacute -40 KPX Amacron ydieresis -40 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O -30 KPX Aogonek Oacute -30 KPX Aogonek Ocircumflex -30 KPX Aogonek Odieresis -30 KPX Aogonek Ograve -30 KPX Aogonek Ohungarumlaut -30 KPX Aogonek Omacron -30 KPX Aogonek Oslash -30 KPX Aogonek Otilde -30 KPX Aogonek Q -30 KPX Aogonek T -120 KPX Aogonek Tcaron -120 KPX Aogonek Tcommaaccent -120 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -70 KPX Aogonek W -50 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -40 KPX Aogonek y -40 KPX Aogonek yacute -40 KPX Aogonek ydieresis -40 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O -30 KPX Aring Oacute -30 KPX Aring Ocircumflex -30 KPX Aring Odieresis -30 KPX Aring Ograve -30 KPX Aring Ohungarumlaut -30 KPX Aring Omacron -30 KPX Aring Oslash -30 KPX Aring Otilde -30 KPX Aring Q -30 KPX Aring T -120 KPX Aring Tcaron -120 KPX Aring Tcommaaccent -120 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -70 KPX Aring W -50 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -40 KPX Aring y -40 KPX Aring yacute -40 KPX Aring ydieresis -40 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O -30 KPX Atilde Oacute -30 KPX Atilde Ocircumflex -30 KPX Atilde Odieresis -30 KPX Atilde Ograve -30 KPX Atilde Ohungarumlaut -30 KPX Atilde Omacron -30 KPX Atilde Oslash -30 KPX Atilde Otilde -30 KPX Atilde Q -30 KPX Atilde T -120 KPX Atilde Tcaron -120 KPX Atilde Tcommaaccent -120 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -70 KPX Atilde W -50 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -40 KPX Atilde y -40 KPX Atilde yacute -40 KPX Atilde ydieresis -40 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX B comma -20 KPX B period -20 KPX C comma -30 KPX C period -30 KPX Cacute comma -30 KPX Cacute period -30 KPX Ccaron comma -30 KPX Ccaron period -30 KPX Ccedilla comma -30 KPX Ccedilla period -30 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -70 KPX D W -40 KPX D Y -90 KPX D Yacute -90 KPX D Ydieresis -90 KPX D comma -70 KPX D period -70 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -70 KPX Dcaron W -40 KPX Dcaron Y -90 KPX Dcaron Yacute -90 KPX Dcaron Ydieresis -90 KPX Dcaron comma -70 KPX Dcaron period -70 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -70 KPX Dcroat W -40 KPX Dcroat Y -90 KPX Dcroat Yacute -90 KPX Dcroat Ydieresis -90 KPX Dcroat comma -70 KPX Dcroat period -70 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -50 KPX F aacute -50 KPX F abreve -50 KPX F acircumflex -50 KPX F adieresis -50 KPX F agrave -50 KPX F amacron -50 KPX F aogonek -50 KPX F aring -50 KPX F atilde -50 KPX F comma -150 KPX F e -30 KPX F eacute -30 KPX F ecaron -30 KPX F ecircumflex -30 KPX F edieresis -30 KPX F edotaccent -30 KPX F egrave -30 KPX F emacron -30 KPX F eogonek -30 KPX F o -30 KPX F oacute -30 KPX F ocircumflex -30 KPX F odieresis -30 KPX F ograve -30 KPX F ohungarumlaut -30 KPX F omacron -30 KPX F oslash -30 KPX F otilde -30 KPX F period -150 KPX F r -45 KPX F racute -45 KPX F rcaron -45 KPX F rcommaaccent -45 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J a -20 KPX J aacute -20 KPX J abreve -20 KPX J acircumflex -20 KPX J adieresis -20 KPX J agrave -20 KPX J amacron -20 KPX J aogonek -20 KPX J aring -20 KPX J atilde -20 KPX J comma -30 KPX J period -30 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -40 KPX K eacute -40 KPX K ecaron -40 KPX K ecircumflex -40 KPX K edieresis -40 KPX K edotaccent -40 KPX K egrave -40 KPX K emacron -40 KPX K eogonek -40 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -50 KPX K yacute -50 KPX K ydieresis -50 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -40 KPX Kcommaaccent eacute -40 KPX Kcommaaccent ecaron -40 KPX Kcommaaccent ecircumflex -40 KPX Kcommaaccent edieresis -40 KPX Kcommaaccent edotaccent -40 KPX Kcommaaccent egrave -40 KPX Kcommaaccent emacron -40 KPX Kcommaaccent eogonek -40 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -50 KPX Kcommaaccent yacute -50 KPX Kcommaaccent ydieresis -50 KPX L T -110 KPX L Tcaron -110 KPX L Tcommaaccent -110 KPX L V -110 KPX L W -70 KPX L Y -140 KPX L Yacute -140 KPX L Ydieresis -140 KPX L quotedblright -140 KPX L quoteright -160 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -110 KPX Lacute Tcaron -110 KPX Lacute Tcommaaccent -110 KPX Lacute V -110 KPX Lacute W -70 KPX Lacute Y -140 KPX Lacute Yacute -140 KPX Lacute Ydieresis -140 KPX Lacute quotedblright -140 KPX Lacute quoteright -160 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcaron T -110 KPX Lcaron Tcaron -110 KPX Lcaron Tcommaaccent -110 KPX Lcaron V -110 KPX Lcaron W -70 KPX Lcaron Y -140 KPX Lcaron Yacute -140 KPX Lcaron Ydieresis -140 KPX Lcaron quotedblright -140 KPX Lcaron quoteright -160 KPX Lcaron y -30 KPX Lcaron yacute -30 KPX Lcaron ydieresis -30 KPX Lcommaaccent T -110 KPX Lcommaaccent Tcaron -110 KPX Lcommaaccent Tcommaaccent -110 KPX Lcommaaccent V -110 KPX Lcommaaccent W -70 KPX Lcommaaccent Y -140 KPX Lcommaaccent Yacute -140 KPX Lcommaaccent Ydieresis -140 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -160 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -110 KPX Lslash Tcaron -110 KPX Lslash Tcommaaccent -110 KPX Lslash V -110 KPX Lslash W -70 KPX Lslash Y -140 KPX Lslash Yacute -140 KPX Lslash Ydieresis -140 KPX Lslash quotedblright -140 KPX Lslash quoteright -160 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -30 KPX O X -60 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -30 KPX Oacute X -60 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -30 KPX Ocircumflex X -60 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -30 KPX Odieresis X -60 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -30 KPX Ograve X -60 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -30 KPX Ohungarumlaut X -60 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -30 KPX Omacron X -60 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -30 KPX Oslash X -60 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -30 KPX Otilde X -60 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -120 KPX P Aacute -120 KPX P Abreve -120 KPX P Acircumflex -120 KPX P Adieresis -120 KPX P Agrave -120 KPX P Amacron -120 KPX P Aogonek -120 KPX P Aring -120 KPX P Atilde -120 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -180 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -50 KPX P oacute -50 KPX P ocircumflex -50 KPX P odieresis -50 KPX P ograve -50 KPX P ohungarumlaut -50 KPX P omacron -50 KPX P oslash -50 KPX P otilde -50 KPX P period -180 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -50 KPX R W -30 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -50 KPX Racute W -30 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -50 KPX Rcaron W -30 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -50 KPX Rcommaaccent W -30 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX S comma -20 KPX S period -20 KPX Sacute comma -20 KPX Sacute period -20 KPX Scaron comma -20 KPX Scaron period -20 KPX Scedilla comma -20 KPX Scedilla period -20 KPX Scommaaccent comma -20 KPX Scommaaccent period -20 KPX T A -120 KPX T Aacute -120 KPX T Abreve -120 KPX T Acircumflex -120 KPX T Adieresis -120 KPX T Agrave -120 KPX T Amacron -120 KPX T Aogonek -120 KPX T Aring -120 KPX T Atilde -120 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -120 KPX T aacute -120 KPX T abreve -60 KPX T acircumflex -120 KPX T adieresis -120 KPX T agrave -120 KPX T amacron -60 KPX T aogonek -120 KPX T aring -120 KPX T atilde -60 KPX T colon -20 KPX T comma -120 KPX T e -120 KPX T eacute -120 KPX T ecaron -120 KPX T ecircumflex -120 KPX T edieresis -120 KPX T edotaccent -120 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -120 KPX T hyphen -140 KPX T o -120 KPX T oacute -120 KPX T ocircumflex -120 KPX T odieresis -120 KPX T ograve -120 KPX T ohungarumlaut -120 KPX T omacron -60 KPX T oslash -120 KPX T otilde -60 KPX T period -120 KPX T r -120 KPX T racute -120 KPX T rcaron -120 KPX T rcommaaccent -120 KPX T semicolon -20 KPX T u -120 KPX T uacute -120 KPX T ucircumflex -120 KPX T udieresis -120 KPX T ugrave -120 KPX T uhungarumlaut -120 KPX T umacron -60 KPX T uogonek -120 KPX T uring -120 KPX T w -120 KPX T y -120 KPX T yacute -120 KPX T ydieresis -60 KPX Tcaron A -120 KPX Tcaron Aacute -120 KPX Tcaron Abreve -120 KPX Tcaron Acircumflex -120 KPX Tcaron Adieresis -120 KPX Tcaron Agrave -120 KPX Tcaron Amacron -120 KPX Tcaron Aogonek -120 KPX Tcaron Aring -120 KPX Tcaron Atilde -120 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -120 KPX Tcaron aacute -120 KPX Tcaron abreve -60 KPX Tcaron acircumflex -120 KPX Tcaron adieresis -120 KPX Tcaron agrave -120 KPX Tcaron amacron -60 KPX Tcaron aogonek -120 KPX Tcaron aring -120 KPX Tcaron atilde -60 KPX Tcaron colon -20 KPX Tcaron comma -120 KPX Tcaron e -120 KPX Tcaron eacute -120 KPX Tcaron ecaron -120 KPX Tcaron ecircumflex -120 KPX Tcaron edieresis -120 KPX Tcaron edotaccent -120 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -120 KPX Tcaron hyphen -140 KPX Tcaron o -120 KPX Tcaron oacute -120 KPX Tcaron ocircumflex -120 KPX Tcaron odieresis -120 KPX Tcaron ograve -120 KPX Tcaron ohungarumlaut -120 KPX Tcaron omacron -60 KPX Tcaron oslash -120 KPX Tcaron otilde -60 KPX Tcaron period -120 KPX Tcaron r -120 KPX Tcaron racute -120 KPX Tcaron rcaron -120 KPX Tcaron rcommaaccent -120 KPX Tcaron semicolon -20 KPX Tcaron u -120 KPX Tcaron uacute -120 KPX Tcaron ucircumflex -120 KPX Tcaron udieresis -120 KPX Tcaron ugrave -120 KPX Tcaron uhungarumlaut -120 KPX Tcaron umacron -60 KPX Tcaron uogonek -120 KPX Tcaron uring -120 KPX Tcaron w -120 KPX Tcaron y -120 KPX Tcaron yacute -120 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -120 KPX Tcommaaccent Aacute -120 KPX Tcommaaccent Abreve -120 KPX Tcommaaccent Acircumflex -120 KPX Tcommaaccent Adieresis -120 KPX Tcommaaccent Agrave -120 KPX Tcommaaccent Amacron -120 KPX Tcommaaccent Aogonek -120 KPX Tcommaaccent Aring -120 KPX Tcommaaccent Atilde -120 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -120 KPX Tcommaaccent aacute -120 KPX Tcommaaccent abreve -60 KPX Tcommaaccent acircumflex -120 KPX Tcommaaccent adieresis -120 KPX Tcommaaccent agrave -120 KPX Tcommaaccent amacron -60 KPX Tcommaaccent aogonek -120 KPX Tcommaaccent aring -120 KPX Tcommaaccent atilde -60 KPX Tcommaaccent colon -20 KPX Tcommaaccent comma -120 KPX Tcommaaccent e -120 KPX Tcommaaccent eacute -120 KPX Tcommaaccent ecaron -120 KPX Tcommaaccent ecircumflex -120 KPX Tcommaaccent edieresis -120 KPX Tcommaaccent edotaccent -120 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -120 KPX Tcommaaccent hyphen -140 KPX Tcommaaccent o -120 KPX Tcommaaccent oacute -120 KPX Tcommaaccent ocircumflex -120 KPX Tcommaaccent odieresis -120 KPX Tcommaaccent ograve -120 KPX Tcommaaccent ohungarumlaut -120 KPX Tcommaaccent omacron -60 KPX Tcommaaccent oslash -120 KPX Tcommaaccent otilde -60 KPX Tcommaaccent period -120 KPX Tcommaaccent r -120 KPX Tcommaaccent racute -120 KPX Tcommaaccent rcaron -120 KPX Tcommaaccent rcommaaccent -120 KPX Tcommaaccent semicolon -20 KPX Tcommaaccent u -120 KPX Tcommaaccent uacute -120 KPX Tcommaaccent ucircumflex -120 KPX Tcommaaccent udieresis -120 KPX Tcommaaccent ugrave -120 KPX Tcommaaccent uhungarumlaut -120 KPX Tcommaaccent umacron -60 KPX Tcommaaccent uogonek -120 KPX Tcommaaccent uring -120 KPX Tcommaaccent w -120 KPX Tcommaaccent y -120 KPX Tcommaaccent yacute -120 KPX Tcommaaccent ydieresis -60 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -40 KPX U period -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -40 KPX Uacute period -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -40 KPX Ucircumflex period -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -40 KPX Udieresis period -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -40 KPX Ugrave period -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -40 KPX Uhungarumlaut period -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -40 KPX Umacron period -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -40 KPX Uogonek period -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -40 KPX Uring period -40 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -40 KPX V Gbreve -40 KPX V Gcommaaccent -40 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -40 KPX V comma -125 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -80 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -125 KPX V semicolon -40 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W comma -80 KPX W e -30 KPX W eacute -30 KPX W ecaron -30 KPX W ecircumflex -30 KPX W edieresis -30 KPX W edotaccent -30 KPX W egrave -30 KPX W emacron -30 KPX W eogonek -30 KPX W hyphen -40 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W ograve -30 KPX W ohungarumlaut -30 KPX W omacron -30 KPX W oslash -30 KPX W otilde -30 KPX W period -80 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -85 KPX Y Oacute -85 KPX Y Ocircumflex -85 KPX Y Odieresis -85 KPX Y Ograve -85 KPX Y Ohungarumlaut -85 KPX Y Omacron -85 KPX Y Oslash -85 KPX Y Otilde -85 KPX Y a -140 KPX Y aacute -140 KPX Y abreve -70 KPX Y acircumflex -140 KPX Y adieresis -140 KPX Y agrave -140 KPX Y amacron -70 KPX Y aogonek -140 KPX Y aring -140 KPX Y atilde -140 KPX Y colon -60 KPX Y comma -140 KPX Y e -140 KPX Y eacute -140 KPX Y ecaron -140 KPX Y ecircumflex -140 KPX Y edieresis -140 KPX Y edotaccent -140 KPX Y egrave -140 KPX Y emacron -70 KPX Y eogonek -140 KPX Y hyphen -140 KPX Y i -20 KPX Y iacute -20 KPX Y iogonek -20 KPX Y o -140 KPX Y oacute -140 KPX Y ocircumflex -140 KPX Y odieresis -140 KPX Y ograve -140 KPX Y ohungarumlaut -140 KPX Y omacron -140 KPX Y oslash -140 KPX Y otilde -140 KPX Y period -140 KPX Y semicolon -60 KPX Y u -110 KPX Y uacute -110 KPX Y ucircumflex -110 KPX Y udieresis -110 KPX Y ugrave -110 KPX Y uhungarumlaut -110 KPX Y umacron -110 KPX Y uogonek -110 KPX Y uring -110 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -85 KPX Yacute Oacute -85 KPX Yacute Ocircumflex -85 KPX Yacute Odieresis -85 KPX Yacute Ograve -85 KPX Yacute Ohungarumlaut -85 KPX Yacute Omacron -85 KPX Yacute Oslash -85 KPX Yacute Otilde -85 KPX Yacute a -140 KPX Yacute aacute -140 KPX Yacute abreve -70 KPX Yacute acircumflex -140 KPX Yacute adieresis -140 KPX Yacute agrave -140 KPX Yacute amacron -70 KPX Yacute aogonek -140 KPX Yacute aring -140 KPX Yacute atilde -70 KPX Yacute colon -60 KPX Yacute comma -140 KPX Yacute e -140 KPX Yacute eacute -140 KPX Yacute ecaron -140 KPX Yacute ecircumflex -140 KPX Yacute edieresis -140 KPX Yacute edotaccent -140 KPX Yacute egrave -140 KPX Yacute emacron -70 KPX Yacute eogonek -140 KPX Yacute hyphen -140 KPX Yacute i -20 KPX Yacute iacute -20 KPX Yacute iogonek -20 KPX Yacute o -140 KPX Yacute oacute -140 KPX Yacute ocircumflex -140 KPX Yacute odieresis -140 KPX Yacute ograve -140 KPX Yacute ohungarumlaut -140 KPX Yacute omacron -70 KPX Yacute oslash -140 KPX Yacute otilde -140 KPX Yacute period -140 KPX Yacute semicolon -60 KPX Yacute u -110 KPX Yacute uacute -110 KPX Yacute ucircumflex -110 KPX Yacute udieresis -110 KPX Yacute ugrave -110 KPX Yacute uhungarumlaut -110 KPX Yacute umacron -110 KPX Yacute uogonek -110 KPX Yacute uring -110 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -85 KPX Ydieresis Oacute -85 KPX Ydieresis Ocircumflex -85 KPX Ydieresis Odieresis -85 KPX Ydieresis Ograve -85 KPX Ydieresis Ohungarumlaut -85 KPX Ydieresis Omacron -85 KPX Ydieresis Oslash -85 KPX Ydieresis Otilde -85 KPX Ydieresis a -140 KPX Ydieresis aacute -140 KPX Ydieresis abreve -70 KPX Ydieresis acircumflex -140 KPX Ydieresis adieresis -140 KPX Ydieresis agrave -140 KPX Ydieresis amacron -70 KPX Ydieresis aogonek -140 KPX Ydieresis aring -140 KPX Ydieresis atilde -70 KPX Ydieresis colon -60 KPX Ydieresis comma -140 KPX Ydieresis e -140 KPX Ydieresis eacute -140 KPX Ydieresis ecaron -140 KPX Ydieresis ecircumflex -140 KPX Ydieresis edieresis -140 KPX Ydieresis edotaccent -140 KPX Ydieresis egrave -140 KPX Ydieresis emacron -70 KPX Ydieresis eogonek -140 KPX Ydieresis hyphen -140 KPX Ydieresis i -20 KPX Ydieresis iacute -20 KPX Ydieresis iogonek -20 KPX Ydieresis o -140 KPX Ydieresis oacute -140 KPX Ydieresis ocircumflex -140 KPX Ydieresis odieresis -140 KPX Ydieresis ograve -140 KPX Ydieresis ohungarumlaut -140 KPX Ydieresis omacron -140 KPX Ydieresis oslash -140 KPX Ydieresis otilde -140 KPX Ydieresis period -140 KPX Ydieresis semicolon -60 KPX Ydieresis u -110 KPX Ydieresis uacute -110 KPX Ydieresis ucircumflex -110 KPX Ydieresis udieresis -110 KPX Ydieresis ugrave -110 KPX Ydieresis uhungarumlaut -110 KPX Ydieresis umacron -110 KPX Ydieresis uogonek -110 KPX Ydieresis uring -110 KPX a v -20 KPX a w -20 KPX a y -30 KPX a yacute -30 KPX a ydieresis -30 KPX aacute v -20 KPX aacute w -20 KPX aacute y -30 KPX aacute yacute -30 KPX aacute ydieresis -30 KPX abreve v -20 KPX abreve w -20 KPX abreve y -30 KPX abreve yacute -30 KPX abreve ydieresis -30 KPX acircumflex v -20 KPX acircumflex w -20 KPX acircumflex y -30 KPX acircumflex yacute -30 KPX acircumflex ydieresis -30 KPX adieresis v -20 KPX adieresis w -20 KPX adieresis y -30 KPX adieresis yacute -30 KPX adieresis ydieresis -30 KPX agrave v -20 KPX agrave w -20 KPX agrave y -30 KPX agrave yacute -30 KPX agrave ydieresis -30 KPX amacron v -20 KPX amacron w -20 KPX amacron y -30 KPX amacron yacute -30 KPX amacron ydieresis -30 KPX aogonek v -20 KPX aogonek w -20 KPX aogonek y -30 KPX aogonek yacute -30 KPX aogonek ydieresis -30 KPX aring v -20 KPX aring w -20 KPX aring y -30 KPX aring yacute -30 KPX aring ydieresis -30 KPX atilde v -20 KPX atilde w -20 KPX atilde y -30 KPX atilde yacute -30 KPX atilde ydieresis -30 KPX b b -10 KPX b comma -40 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b lslash -20 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c comma -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute comma -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron comma -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla comma -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX colon space -50 KPX comma quotedblright -100 KPX comma quoteright -100 KPX e comma -15 KPX e period -15 KPX e v -30 KPX e w -20 KPX e x -30 KPX e y -20 KPX e yacute -20 KPX e ydieresis -20 KPX eacute comma -15 KPX eacute period -15 KPX eacute v -30 KPX eacute w -20 KPX eacute x -30 KPX eacute y -20 KPX eacute yacute -20 KPX eacute ydieresis -20 KPX ecaron comma -15 KPX ecaron period -15 KPX ecaron v -30 KPX ecaron w -20 KPX ecaron x -30 KPX ecaron y -20 KPX ecaron yacute -20 KPX ecaron ydieresis -20 KPX ecircumflex comma -15 KPX ecircumflex period -15 KPX ecircumflex v -30 KPX ecircumflex w -20 KPX ecircumflex x -30 KPX ecircumflex y -20 KPX ecircumflex yacute -20 KPX ecircumflex ydieresis -20 KPX edieresis comma -15 KPX edieresis period -15 KPX edieresis v -30 KPX edieresis w -20 KPX edieresis x -30 KPX edieresis y -20 KPX edieresis yacute -20 KPX edieresis ydieresis -20 KPX edotaccent comma -15 KPX edotaccent period -15 KPX edotaccent v -30 KPX edotaccent w -20 KPX edotaccent x -30 KPX edotaccent y -20 KPX edotaccent yacute -20 KPX edotaccent ydieresis -20 KPX egrave comma -15 KPX egrave period -15 KPX egrave v -30 KPX egrave w -20 KPX egrave x -30 KPX egrave y -20 KPX egrave yacute -20 KPX egrave ydieresis -20 KPX emacron comma -15 KPX emacron period -15 KPX emacron v -30 KPX emacron w -20 KPX emacron x -30 KPX emacron y -20 KPX emacron yacute -20 KPX emacron ydieresis -20 KPX eogonek comma -15 KPX eogonek period -15 KPX eogonek v -30 KPX eogonek w -20 KPX eogonek x -30 KPX eogonek y -20 KPX eogonek yacute -20 KPX eogonek ydieresis -20 KPX f a -30 KPX f aacute -30 KPX f abreve -30 KPX f acircumflex -30 KPX f adieresis -30 KPX f agrave -30 KPX f amacron -30 KPX f aogonek -30 KPX f aring -30 KPX f atilde -30 KPX f comma -30 KPX f dotlessi -28 KPX f e -30 KPX f eacute -30 KPX f ecaron -30 KPX f ecircumflex -30 KPX f edieresis -30 KPX f edotaccent -30 KPX f egrave -30 KPX f emacron -30 KPX f eogonek -30 KPX f o -30 KPX f oacute -30 KPX f ocircumflex -30 KPX f odieresis -30 KPX f ograve -30 KPX f ohungarumlaut -30 KPX f omacron -30 KPX f oslash -30 KPX f otilde -30 KPX f period -30 KPX f quotedblright 60 KPX f quoteright 50 KPX g r -10 KPX g racute -10 KPX g rcaron -10 KPX g rcommaaccent -10 KPX gbreve r -10 KPX gbreve racute -10 KPX gbreve rcaron -10 KPX gbreve rcommaaccent -10 KPX gcommaaccent r -10 KPX gcommaaccent racute -10 KPX gcommaaccent rcaron -10 KPX gcommaaccent rcommaaccent -10 KPX h y -30 KPX h yacute -30 KPX h ydieresis -30 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -20 KPX k oacute -20 KPX k ocircumflex -20 KPX k odieresis -20 KPX k ograve -20 KPX k ohungarumlaut -20 KPX k omacron -20 KPX k oslash -20 KPX k otilde -20 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -20 KPX kcommaaccent oacute -20 KPX kcommaaccent ocircumflex -20 KPX kcommaaccent odieresis -20 KPX kcommaaccent ograve -20 KPX kcommaaccent ohungarumlaut -20 KPX kcommaaccent omacron -20 KPX kcommaaccent oslash -20 KPX kcommaaccent otilde -20 KPX m u -10 KPX m uacute -10 KPX m ucircumflex -10 KPX m udieresis -10 KPX m ugrave -10 KPX m uhungarumlaut -10 KPX m umacron -10 KPX m uogonek -10 KPX m uring -10 KPX m y -15 KPX m yacute -15 KPX m ydieresis -15 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -20 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -20 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -20 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -20 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -20 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o comma -40 KPX o period -40 KPX o v -15 KPX o w -15 KPX o x -30 KPX o y -30 KPX o yacute -30 KPX o ydieresis -30 KPX oacute comma -40 KPX oacute period -40 KPX oacute v -15 KPX oacute w -15 KPX oacute x -30 KPX oacute y -30 KPX oacute yacute -30 KPX oacute ydieresis -30 KPX ocircumflex comma -40 KPX ocircumflex period -40 KPX ocircumflex v -15 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -30 KPX ocircumflex yacute -30 KPX ocircumflex ydieresis -30 KPX odieresis comma -40 KPX odieresis period -40 KPX odieresis v -15 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -30 KPX odieresis yacute -30 KPX odieresis ydieresis -30 KPX ograve comma -40 KPX ograve period -40 KPX ograve v -15 KPX ograve w -15 KPX ograve x -30 KPX ograve y -30 KPX ograve yacute -30 KPX ograve ydieresis -30 KPX ohungarumlaut comma -40 KPX ohungarumlaut period -40 KPX ohungarumlaut v -15 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -30 KPX ohungarumlaut yacute -30 KPX ohungarumlaut ydieresis -30 KPX omacron comma -40 KPX omacron period -40 KPX omacron v -15 KPX omacron w -15 KPX omacron x -30 KPX omacron y -30 KPX omacron yacute -30 KPX omacron ydieresis -30 KPX oslash a -55 KPX oslash aacute -55 KPX oslash abreve -55 KPX oslash acircumflex -55 KPX oslash adieresis -55 KPX oslash agrave -55 KPX oslash amacron -55 KPX oslash aogonek -55 KPX oslash aring -55 KPX oslash atilde -55 KPX oslash b -55 KPX oslash c -55 KPX oslash cacute -55 KPX oslash ccaron -55 KPX oslash ccedilla -55 KPX oslash comma -95 KPX oslash d -55 KPX oslash dcroat -55 KPX oslash e -55 KPX oslash eacute -55 KPX oslash ecaron -55 KPX oslash ecircumflex -55 KPX oslash edieresis -55 KPX oslash edotaccent -55 KPX oslash egrave -55 KPX oslash emacron -55 KPX oslash eogonek -55 KPX oslash f -55 KPX oslash g -55 KPX oslash gbreve -55 KPX oslash gcommaaccent -55 KPX oslash h -55 KPX oslash i -55 KPX oslash iacute -55 KPX oslash icircumflex -55 KPX oslash idieresis -55 KPX oslash igrave -55 KPX oslash imacron -55 KPX oslash iogonek -55 KPX oslash j -55 KPX oslash k -55 KPX oslash kcommaaccent -55 KPX oslash l -55 KPX oslash lacute -55 KPX oslash lcommaaccent -55 KPX oslash lslash -55 KPX oslash m -55 KPX oslash n -55 KPX oslash nacute -55 KPX oslash ncaron -55 KPX oslash ncommaaccent -55 KPX oslash ntilde -55 KPX oslash o -55 KPX oslash oacute -55 KPX oslash ocircumflex -55 KPX oslash odieresis -55 KPX oslash ograve -55 KPX oslash ohungarumlaut -55 KPX oslash omacron -55 KPX oslash oslash -55 KPX oslash otilde -55 KPX oslash p -55 KPX oslash period -95 KPX oslash q -55 KPX oslash r -55 KPX oslash racute -55 KPX oslash rcaron -55 KPX oslash rcommaaccent -55 KPX oslash s -55 KPX oslash sacute -55 KPX oslash scaron -55 KPX oslash scedilla -55 KPX oslash scommaaccent -55 KPX oslash t -55 KPX oslash tcommaaccent -55 KPX oslash u -55 KPX oslash uacute -55 KPX oslash ucircumflex -55 KPX oslash udieresis -55 KPX oslash ugrave -55 KPX oslash uhungarumlaut -55 KPX oslash umacron -55 KPX oslash uogonek -55 KPX oslash uring -55 KPX oslash v -70 KPX oslash w -70 KPX oslash x -85 KPX oslash y -70 KPX oslash yacute -70 KPX oslash ydieresis -70 KPX oslash z -55 KPX oslash zacute -55 KPX oslash zcaron -55 KPX oslash zdotaccent -55 KPX otilde comma -40 KPX otilde period -40 KPX otilde v -15 KPX otilde w -15 KPX otilde x -30 KPX otilde y -30 KPX otilde yacute -30 KPX otilde ydieresis -30 KPX p comma -35 KPX p period -35 KPX p y -30 KPX p yacute -30 KPX p ydieresis -30 KPX period quotedblright -100 KPX period quoteright -100 KPX period space -60 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright quoteright -57 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -50 KPX quoteright sacute -50 KPX quoteright scaron -50 KPX quoteright scedilla -50 KPX quoteright scommaaccent -50 KPX quoteright space -70 KPX r a -10 KPX r aacute -10 KPX r abreve -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r agrave -10 KPX r amacron -10 KPX r aogonek -10 KPX r aring -10 KPX r atilde -10 KPX r colon 30 KPX r comma -50 KPX r i 15 KPX r iacute 15 KPX r icircumflex 15 KPX r idieresis 15 KPX r igrave 15 KPX r imacron 15 KPX r iogonek 15 KPX r k 15 KPX r kcommaaccent 15 KPX r l 15 KPX r lacute 15 KPX r lcommaaccent 15 KPX r lslash 15 KPX r m 25 KPX r n 25 KPX r nacute 25 KPX r ncaron 25 KPX r ncommaaccent 25 KPX r ntilde 25 KPX r p 30 KPX r period -50 KPX r semicolon 30 KPX r t 40 KPX r tcommaaccent 40 KPX r u 15 KPX r uacute 15 KPX r ucircumflex 15 KPX r udieresis 15 KPX r ugrave 15 KPX r uhungarumlaut 15 KPX r umacron 15 KPX r uogonek 15 KPX r uring 15 KPX r v 30 KPX r y 30 KPX r yacute 30 KPX r ydieresis 30 KPX racute a -10 KPX racute aacute -10 KPX racute abreve -10 KPX racute acircumflex -10 KPX racute adieresis -10 KPX racute agrave -10 KPX racute amacron -10 KPX racute aogonek -10 KPX racute aring -10 KPX racute atilde -10 KPX racute colon 30 KPX racute comma -50 KPX racute i 15 KPX racute iacute 15 KPX racute icircumflex 15 KPX racute idieresis 15 KPX racute igrave 15 KPX racute imacron 15 KPX racute iogonek 15 KPX racute k 15 KPX racute kcommaaccent 15 KPX racute l 15 KPX racute lacute 15 KPX racute lcommaaccent 15 KPX racute lslash 15 KPX racute m 25 KPX racute n 25 KPX racute nacute 25 KPX racute ncaron 25 KPX racute ncommaaccent 25 KPX racute ntilde 25 KPX racute p 30 KPX racute period -50 KPX racute semicolon 30 KPX racute t 40 KPX racute tcommaaccent 40 KPX racute u 15 KPX racute uacute 15 KPX racute ucircumflex 15 KPX racute udieresis 15 KPX racute ugrave 15 KPX racute uhungarumlaut 15 KPX racute umacron 15 KPX racute uogonek 15 KPX racute uring 15 KPX racute v 30 KPX racute y 30 KPX racute yacute 30 KPX racute ydieresis 30 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron abreve -10 KPX rcaron acircumflex -10 KPX rcaron adieresis -10 KPX rcaron agrave -10 KPX rcaron amacron -10 KPX rcaron aogonek -10 KPX rcaron aring -10 KPX rcaron atilde -10 KPX rcaron colon 30 KPX rcaron comma -50 KPX rcaron i 15 KPX rcaron iacute 15 KPX rcaron icircumflex 15 KPX rcaron idieresis 15 KPX rcaron igrave 15 KPX rcaron imacron 15 KPX rcaron iogonek 15 KPX rcaron k 15 KPX rcaron kcommaaccent 15 KPX rcaron l 15 KPX rcaron lacute 15 KPX rcaron lcommaaccent 15 KPX rcaron lslash 15 KPX rcaron m 25 KPX rcaron n 25 KPX rcaron nacute 25 KPX rcaron ncaron 25 KPX rcaron ncommaaccent 25 KPX rcaron ntilde 25 KPX rcaron p 30 KPX rcaron period -50 KPX rcaron semicolon 30 KPX rcaron t 40 KPX rcaron tcommaaccent 40 KPX rcaron u 15 KPX rcaron uacute 15 KPX rcaron ucircumflex 15 KPX rcaron udieresis 15 KPX rcaron ugrave 15 KPX rcaron uhungarumlaut 15 KPX rcaron umacron 15 KPX rcaron uogonek 15 KPX rcaron uring 15 KPX rcaron v 30 KPX rcaron y 30 KPX rcaron yacute 30 KPX rcaron ydieresis 30 KPX rcommaaccent a -10 KPX rcommaaccent aacute -10 KPX rcommaaccent abreve -10 KPX rcommaaccent acircumflex -10 KPX rcommaaccent adieresis -10 KPX rcommaaccent agrave -10 KPX rcommaaccent amacron -10 KPX rcommaaccent aogonek -10 KPX rcommaaccent aring -10 KPX rcommaaccent atilde -10 KPX rcommaaccent colon 30 KPX rcommaaccent comma -50 KPX rcommaaccent i 15 KPX rcommaaccent iacute 15 KPX rcommaaccent icircumflex 15 KPX rcommaaccent idieresis 15 KPX rcommaaccent igrave 15 KPX rcommaaccent imacron 15 KPX rcommaaccent iogonek 15 KPX rcommaaccent k 15 KPX rcommaaccent kcommaaccent 15 KPX rcommaaccent l 15 KPX rcommaaccent lacute 15 KPX rcommaaccent lcommaaccent 15 KPX rcommaaccent lslash 15 KPX rcommaaccent m 25 KPX rcommaaccent n 25 KPX rcommaaccent nacute 25 KPX rcommaaccent ncaron 25 KPX rcommaaccent ncommaaccent 25 KPX rcommaaccent ntilde 25 KPX rcommaaccent p 30 KPX rcommaaccent period -50 KPX rcommaaccent semicolon 30 KPX rcommaaccent t 40 KPX rcommaaccent tcommaaccent 40 KPX rcommaaccent u 15 KPX rcommaaccent uacute 15 KPX rcommaaccent ucircumflex 15 KPX rcommaaccent udieresis 15 KPX rcommaaccent ugrave 15 KPX rcommaaccent uhungarumlaut 15 KPX rcommaaccent umacron 15 KPX rcommaaccent uogonek 15 KPX rcommaaccent uring 15 KPX rcommaaccent v 30 KPX rcommaaccent y 30 KPX rcommaaccent yacute 30 KPX rcommaaccent ydieresis 30 KPX s comma -15 KPX s period -15 KPX s w -30 KPX sacute comma -15 KPX sacute period -15 KPX sacute w -30 KPX scaron comma -15 KPX scaron period -15 KPX scaron w -30 KPX scedilla comma -15 KPX scedilla period -15 KPX scedilla w -30 KPX scommaaccent comma -15 KPX scommaaccent period -15 KPX scommaaccent w -30 KPX semicolon space -50 KPX space T -50 KPX space Tcaron -50 KPX space Tcommaaccent -50 KPX space V -50 KPX space W -40 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX space quotedblleft -30 KPX space quoteleft -60 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -80 KPX v e -25 KPX v eacute -25 KPX v ecaron -25 KPX v ecircumflex -25 KPX v edieresis -25 KPX v edotaccent -25 KPX v egrave -25 KPX v emacron -25 KPX v eogonek -25 KPX v o -25 KPX v oacute -25 KPX v ocircumflex -25 KPX v odieresis -25 KPX v ograve -25 KPX v ohungarumlaut -25 KPX v omacron -25 KPX v oslash -25 KPX v otilde -25 KPX v period -80 KPX w a -15 KPX w aacute -15 KPX w abreve -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w agrave -15 KPX w amacron -15 KPX w aogonek -15 KPX w aring -15 KPX w atilde -15 KPX w comma -60 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -60 KPX x e -30 KPX x eacute -30 KPX x ecaron -30 KPX x ecircumflex -30 KPX x edieresis -30 KPX x edotaccent -30 KPX x egrave -30 KPX x emacron -30 KPX x eogonek -30 KPX y a -20 KPX y aacute -20 KPX y abreve -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y agrave -20 KPX y amacron -20 KPX y aogonek -20 KPX y aring -20 KPX y atilde -20 KPX y comma -100 KPX y e -20 KPX y eacute -20 KPX y ecaron -20 KPX y ecircumflex -20 KPX y edieresis -20 KPX y edotaccent -20 KPX y egrave -20 KPX y emacron -20 KPX y eogonek -20 KPX y o -20 KPX y oacute -20 KPX y ocircumflex -20 KPX y odieresis -20 KPX y ograve -20 KPX y ohungarumlaut -20 KPX y omacron -20 KPX y oslash -20 KPX y otilde -20 KPX y period -100 KPX yacute a -20 KPX yacute aacute -20 KPX yacute abreve -20 KPX yacute acircumflex -20 KPX yacute adieresis -20 KPX yacute agrave -20 KPX yacute amacron -20 KPX yacute aogonek -20 KPX yacute aring -20 KPX yacute atilde -20 KPX yacute comma -100 KPX yacute e -20 KPX yacute eacute -20 KPX yacute ecaron -20 KPX yacute ecircumflex -20 KPX yacute edieresis -20 KPX yacute edotaccent -20 KPX yacute egrave -20 KPX yacute emacron -20 KPX yacute eogonek -20 KPX yacute o -20 KPX yacute oacute -20 KPX yacute ocircumflex -20 KPX yacute odieresis -20 KPX yacute ograve -20 KPX yacute ohungarumlaut -20 KPX yacute omacron -20 KPX yacute oslash -20 KPX yacute otilde -20 KPX yacute period -100 KPX ydieresis a -20 KPX ydieresis aacute -20 KPX ydieresis abreve -20 KPX ydieresis acircumflex -20 KPX ydieresis adieresis -20 KPX ydieresis agrave -20 KPX ydieresis amacron -20 KPX ydieresis aogonek -20 KPX ydieresis aring -20 KPX ydieresis atilde -20 KPX ydieresis comma -100 KPX ydieresis e -20 KPX ydieresis eacute -20 KPX ydieresis ecaron -20 KPX ydieresis ecircumflex -20 KPX ydieresis edieresis -20 KPX ydieresis edotaccent -20 KPX ydieresis egrave -20 KPX ydieresis emacron -20 KPX ydieresis eogonek -20 KPX ydieresis o -20 KPX ydieresis oacute -20 KPX ydieresis ocircumflex -20 KPX ydieresis odieresis -20 KPX ydieresis ograve -20 KPX ydieresis ohungarumlaut -20 KPX ydieresis omacron -20 KPX ydieresis oslash -20 KPX ydieresis otilde -20 KPX ydieresis period -100 KPX z e -15 KPX z eacute -15 KPX z ecaron -15 KPX z ecircumflex -15 KPX z edieresis -15 KPX z edotaccent -15 KPX z egrave -15 KPX z emacron -15 KPX z eogonek -15 KPX z o -15 KPX z oacute -15 KPX z ocircumflex -15 KPX z odieresis -15 KPX z ograve -15 KPX z ohungarumlaut -15 KPX z omacron -15 KPX z oslash -15 KPX z otilde -15 KPX zacute e -15 KPX zacute eacute -15 KPX zacute ecaron -15 KPX zacute ecircumflex -15 KPX zacute edieresis -15 KPX zacute edotaccent -15 KPX zacute egrave -15 KPX zacute emacron -15 KPX zacute eogonek -15 KPX zacute o -15 KPX zacute oacute -15 KPX zacute ocircumflex -15 KPX zacute odieresis -15 KPX zacute ograve -15 KPX zacute ohungarumlaut -15 KPX zacute omacron -15 KPX zacute oslash -15 KPX zacute otilde -15 KPX zcaron e -15 KPX zcaron eacute -15 KPX zcaron ecaron -15 KPX zcaron ecircumflex -15 KPX zcaron edieresis -15 KPX zcaron edotaccent -15 KPX zcaron egrave -15 KPX zcaron emacron -15 KPX zcaron eogonek -15 KPX zcaron o -15 KPX zcaron oacute -15 KPX zcaron ocircumflex -15 KPX zcaron odieresis -15 KPX zcaron ograve -15 KPX zcaron ohungarumlaut -15 KPX zcaron omacron -15 KPX zcaron oslash -15 KPX zcaron otilde -15 KPX zdotaccent e -15 KPX zdotaccent eacute -15 KPX zdotaccent ecaron -15 KPX zdotaccent ecircumflex -15 KPX zdotaccent edieresis -15 KPX zdotaccent edotaccent -15 KPX zdotaccent egrave -15 KPX zdotaccent emacron -15 KPX zdotaccent eogonek -15 KPX zdotaccent o -15 KPX zdotaccent oacute -15 KPX zdotaccent ocircumflex -15 KPX zdotaccent odieresis -15 KPX zdotaccent ograve -15 KPX zdotaccent ohungarumlaut -15 KPX zdotaccent omacron -15 KPX zdotaccent oslash -15 KPX zdotaccent otilde -15 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/Helvetica.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:38:23 1997 Comment UniqueID 43054 Comment VMusage 37069 48094 FontName Helvetica FullName Helvetica FamilyName Helvetica Weight Medium ItalicAngle 0 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -166 -225 1000 931 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StdHW 76 StdVW 88 StartCharMetrics 315 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ; C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ; C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ; C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ; C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ; C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ; C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ; C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ; C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ; C 43 ; WX 584 ; N plus ; B 39 0 545 505 ; C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ; C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ; C 46 ; WX 278 ; N period ; B 87 0 191 106 ; C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ; C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ; C 49 ; WX 556 ; N one ; B 101 0 359 703 ; C 50 ; WX 556 ; N two ; B 26 0 507 703 ; C 51 ; WX 556 ; N three ; B 34 -19 522 703 ; C 52 ; WX 556 ; N four ; B 25 0 523 703 ; C 53 ; WX 556 ; N five ; B 32 -19 514 688 ; C 54 ; WX 556 ; N six ; B 38 -19 518 703 ; C 55 ; WX 556 ; N seven ; B 37 0 523 688 ; C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ; C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ; C 58 ; WX 278 ; N colon ; B 87 0 191 516 ; C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ; C 60 ; WX 584 ; N less ; B 48 11 536 495 ; C 61 ; WX 584 ; N equal ; B 39 115 545 390 ; C 62 ; WX 584 ; N greater ; B 48 11 536 495 ; C 63 ; WX 556 ; N question ; B 56 0 492 727 ; C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ; C 65 ; WX 667 ; N A ; B 14 0 654 718 ; C 66 ; WX 667 ; N B ; B 74 0 627 718 ; C 67 ; WX 722 ; N C ; B 44 -19 681 737 ; C 68 ; WX 722 ; N D ; B 81 0 674 718 ; C 69 ; WX 667 ; N E ; B 86 0 616 718 ; C 70 ; WX 611 ; N F ; B 86 0 583 718 ; C 71 ; WX 778 ; N G ; B 48 -19 704 737 ; C 72 ; WX 722 ; N H ; B 77 0 646 718 ; C 73 ; WX 278 ; N I ; B 91 0 188 718 ; C 74 ; WX 500 ; N J ; B 17 -19 428 718 ; C 75 ; WX 667 ; N K ; B 76 0 663 718 ; C 76 ; WX 556 ; N L ; B 76 0 537 718 ; C 77 ; WX 833 ; N M ; B 73 0 761 718 ; C 78 ; WX 722 ; N N ; B 76 0 646 718 ; C 79 ; WX 778 ; N O ; B 39 -19 739 737 ; C 80 ; WX 667 ; N P ; B 86 0 622 718 ; C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ; C 82 ; WX 722 ; N R ; B 88 0 684 718 ; C 83 ; WX 667 ; N S ; B 49 -19 620 737 ; C 84 ; WX 611 ; N T ; B 14 0 597 718 ; C 85 ; WX 722 ; N U ; B 79 -19 644 718 ; C 86 ; WX 667 ; N V ; B 20 0 647 718 ; C 87 ; WX 944 ; N W ; B 16 0 928 718 ; C 88 ; WX 667 ; N X ; B 19 0 648 718 ; C 89 ; WX 667 ; N Y ; B 14 0 653 718 ; C 90 ; WX 611 ; N Z ; B 23 0 588 718 ; C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ; C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ; C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ; C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ; C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ; C 97 ; WX 556 ; N a ; B 36 -15 530 538 ; C 98 ; WX 556 ; N b ; B 58 -15 517 718 ; C 99 ; WX 500 ; N c ; B 30 -15 477 538 ; C 100 ; WX 556 ; N d ; B 35 -15 499 718 ; C 101 ; WX 556 ; N e ; B 40 -15 516 538 ; C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 40 -220 499 538 ; C 104 ; WX 556 ; N h ; B 65 0 491 718 ; C 105 ; WX 222 ; N i ; B 67 0 155 718 ; C 106 ; WX 222 ; N j ; B -16 -210 155 718 ; C 107 ; WX 500 ; N k ; B 67 0 501 718 ; C 108 ; WX 222 ; N l ; B 67 0 155 718 ; C 109 ; WX 833 ; N m ; B 65 0 769 538 ; C 110 ; WX 556 ; N n ; B 65 0 491 538 ; C 111 ; WX 556 ; N o ; B 35 -14 521 538 ; C 112 ; WX 556 ; N p ; B 58 -207 517 538 ; C 113 ; WX 556 ; N q ; B 35 -207 494 538 ; C 114 ; WX 333 ; N r ; B 77 0 332 538 ; C 115 ; WX 500 ; N s ; B 32 -15 464 538 ; C 116 ; WX 278 ; N t ; B 14 -7 257 669 ; C 117 ; WX 556 ; N u ; B 68 -15 489 523 ; C 118 ; WX 500 ; N v ; B 8 0 492 523 ; C 119 ; WX 722 ; N w ; B 14 0 709 523 ; C 120 ; WX 500 ; N x ; B 11 0 490 523 ; C 121 ; WX 500 ; N y ; B 11 -214 489 523 ; C 122 ; WX 500 ; N z ; B 31 0 469 523 ; C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ; C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ; C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ; C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ; C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ; C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ; C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ; C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ; C 165 ; WX 556 ; N yen ; B 3 0 553 688 ; C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ; C 167 ; WX 556 ; N section ; B 43 -191 512 737 ; C 168 ; WX 556 ; N currency ; B 28 99 528 603 ; C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ; C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ; C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ; C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ; C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ; C 174 ; WX 500 ; N fi ; B 14 0 434 728 ; C 175 ; WX 500 ; N fl ; B 14 0 432 728 ; C 177 ; WX 556 ; N endash ; B 0 240 556 313 ; C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ; C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ; C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ; C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ; C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ; C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ; C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ; C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ; C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ; C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ; C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ; C 193 ; WX 333 ; N grave ; B 14 593 211 734 ; C 194 ; WX 333 ; N acute ; B 122 593 319 734 ; C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ; C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ; C 197 ; WX 333 ; N macron ; B 10 627 323 684 ; C 198 ; WX 333 ; N breve ; B 13 595 321 731 ; C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ; C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ; C 202 ; WX 333 ; N ring ; B 75 572 259 756 ; C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ; C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ; C 207 ; WX 333 ; N caron ; B 21 593 312 734 ; C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ; C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ; C 227 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ; C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ; C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ; C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ; C 235 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ; C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ; C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ; C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ; C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ; C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ; C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ; C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ; C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ; C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ; C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ; C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ; C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ; C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ; C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ; C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ; C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ; C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ; C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ; C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ; C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ; C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ; C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ; C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ; C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ; C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ; C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ; C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ; C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ; C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ; C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ; C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ; C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ; C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ; C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ; C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ; C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ; C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ; C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ; C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ; C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ; C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ; C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ; C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ; C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ; C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ; C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ; C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ; C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ; C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ; C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ; C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ; C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ; C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ; C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ; C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ; C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ; C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ; C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ; C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ; C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ; C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ; C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ; C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ; C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ; C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ; C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ; C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ; C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ; C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ; C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ; C -1 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ; C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ; C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ; C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ; C -1 ; WX 333 ; N racute ; B 77 0 332 734 ; C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ; C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ; C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ; C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ; C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ; C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ; C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ; C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ; C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ; C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ; C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ; C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ; C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ; C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ; C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ; C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ; C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ; C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ; C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ; C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ; C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ; C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ; C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ; C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ; C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ; C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ; C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ; C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ; C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ; C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ; C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ; C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ; C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ; C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ; C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ; C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ; C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ; C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ; C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ; C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ; C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ; C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ; C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ; C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ; C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ; C -1 ; WX 400 ; N degree ; B 54 411 346 703 ; C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ; C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ; C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ; C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ; C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ; C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ; C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ; C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ; C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ; C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ; C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ; C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ; C -1 ; WX 584 ; N minus ; B 39 216 545 289 ; C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ; C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ; C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ; C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ; C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ; C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ; C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ; C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ; C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ; C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ; C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ; C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ; C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ; C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2705 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O -30 KPX A Oacute -30 KPX A Ocircumflex -30 KPX A Odieresis -30 KPX A Ograve -30 KPX A Ohungarumlaut -30 KPX A Omacron -30 KPX A Oslash -30 KPX A Otilde -30 KPX A Q -30 KPX A T -120 KPX A Tcaron -120 KPX A Tcommaaccent -120 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -70 KPX A W -50 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -40 KPX A y -40 KPX A yacute -40 KPX A ydieresis -40 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O -30 KPX Aacute Oacute -30 KPX Aacute Ocircumflex -30 KPX Aacute Odieresis -30 KPX Aacute Ograve -30 KPX Aacute Ohungarumlaut -30 KPX Aacute Omacron -30 KPX Aacute Oslash -30 KPX Aacute Otilde -30 KPX Aacute Q -30 KPX Aacute T -120 KPX Aacute Tcaron -120 KPX Aacute Tcommaaccent -120 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -70 KPX Aacute W -50 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -40 KPX Aacute y -40 KPX Aacute yacute -40 KPX Aacute ydieresis -40 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O -30 KPX Abreve Oacute -30 KPX Abreve Ocircumflex -30 KPX Abreve Odieresis -30 KPX Abreve Ograve -30 KPX Abreve Ohungarumlaut -30 KPX Abreve Omacron -30 KPX Abreve Oslash -30 KPX Abreve Otilde -30 KPX Abreve Q -30 KPX Abreve T -120 KPX Abreve Tcaron -120 KPX Abreve Tcommaaccent -120 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -70 KPX Abreve W -50 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -40 KPX Abreve y -40 KPX Abreve yacute -40 KPX Abreve ydieresis -40 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O -30 KPX Acircumflex Oacute -30 KPX Acircumflex Ocircumflex -30 KPX Acircumflex Odieresis -30 KPX Acircumflex Ograve -30 KPX Acircumflex Ohungarumlaut -30 KPX Acircumflex Omacron -30 KPX Acircumflex Oslash -30 KPX Acircumflex Otilde -30 KPX Acircumflex Q -30 KPX Acircumflex T -120 KPX Acircumflex Tcaron -120 KPX Acircumflex Tcommaaccent -120 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -70 KPX Acircumflex W -50 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -40 KPX Acircumflex y -40 KPX Acircumflex yacute -40 KPX Acircumflex ydieresis -40 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O -30 KPX Adieresis Oacute -30 KPX Adieresis Ocircumflex -30 KPX Adieresis Odieresis -30 KPX Adieresis Ograve -30 KPX Adieresis Ohungarumlaut -30 KPX Adieresis Omacron -30 KPX Adieresis Oslash -30 KPX Adieresis Otilde -30 KPX Adieresis Q -30 KPX Adieresis T -120 KPX Adieresis Tcaron -120 KPX Adieresis Tcommaaccent -120 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -70 KPX Adieresis W -50 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -40 KPX Adieresis y -40 KPX Adieresis yacute -40 KPX Adieresis ydieresis -40 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O -30 KPX Agrave Oacute -30 KPX Agrave Ocircumflex -30 KPX Agrave Odieresis -30 KPX Agrave Ograve -30 KPX Agrave Ohungarumlaut -30 KPX Agrave Omacron -30 KPX Agrave Oslash -30 KPX Agrave Otilde -30 KPX Agrave Q -30 KPX Agrave T -120 KPX Agrave Tcaron -120 KPX Agrave Tcommaaccent -120 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -70 KPX Agrave W -50 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -40 KPX Agrave y -40 KPX Agrave yacute -40 KPX Agrave ydieresis -40 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O -30 KPX Amacron Oacute -30 KPX Amacron Ocircumflex -30 KPX Amacron Odieresis -30 KPX Amacron Ograve -30 KPX Amacron Ohungarumlaut -30 KPX Amacron Omacron -30 KPX Amacron Oslash -30 KPX Amacron Otilde -30 KPX Amacron Q -30 KPX Amacron T -120 KPX Amacron Tcaron -120 KPX Amacron Tcommaaccent -120 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -70 KPX Amacron W -50 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -40 KPX Amacron y -40 KPX Amacron yacute -40 KPX Amacron ydieresis -40 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O -30 KPX Aogonek Oacute -30 KPX Aogonek Ocircumflex -30 KPX Aogonek Odieresis -30 KPX Aogonek Ograve -30 KPX Aogonek Ohungarumlaut -30 KPX Aogonek Omacron -30 KPX Aogonek Oslash -30 KPX Aogonek Otilde -30 KPX Aogonek Q -30 KPX Aogonek T -120 KPX Aogonek Tcaron -120 KPX Aogonek Tcommaaccent -120 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -70 KPX Aogonek W -50 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -40 KPX Aogonek y -40 KPX Aogonek yacute -40 KPX Aogonek ydieresis -40 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O -30 KPX Aring Oacute -30 KPX Aring Ocircumflex -30 KPX Aring Odieresis -30 KPX Aring Ograve -30 KPX Aring Ohungarumlaut -30 KPX Aring Omacron -30 KPX Aring Oslash -30 KPX Aring Otilde -30 KPX Aring Q -30 KPX Aring T -120 KPX Aring Tcaron -120 KPX Aring Tcommaaccent -120 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -70 KPX Aring W -50 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -40 KPX Aring y -40 KPX Aring yacute -40 KPX Aring ydieresis -40 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O -30 KPX Atilde Oacute -30 KPX Atilde Ocircumflex -30 KPX Atilde Odieresis -30 KPX Atilde Ograve -30 KPX Atilde Ohungarumlaut -30 KPX Atilde Omacron -30 KPX Atilde Oslash -30 KPX Atilde Otilde -30 KPX Atilde Q -30 KPX Atilde T -120 KPX Atilde Tcaron -120 KPX Atilde Tcommaaccent -120 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -70 KPX Atilde W -50 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -40 KPX Atilde y -40 KPX Atilde yacute -40 KPX Atilde ydieresis -40 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX B comma -20 KPX B period -20 KPX C comma -30 KPX C period -30 KPX Cacute comma -30 KPX Cacute period -30 KPX Ccaron comma -30 KPX Ccaron period -30 KPX Ccedilla comma -30 KPX Ccedilla period -30 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -70 KPX D W -40 KPX D Y -90 KPX D Yacute -90 KPX D Ydieresis -90 KPX D comma -70 KPX D period -70 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -70 KPX Dcaron W -40 KPX Dcaron Y -90 KPX Dcaron Yacute -90 KPX Dcaron Ydieresis -90 KPX Dcaron comma -70 KPX Dcaron period -70 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -70 KPX Dcroat W -40 KPX Dcroat Y -90 KPX Dcroat Yacute -90 KPX Dcroat Ydieresis -90 KPX Dcroat comma -70 KPX Dcroat period -70 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -50 KPX F aacute -50 KPX F abreve -50 KPX F acircumflex -50 KPX F adieresis -50 KPX F agrave -50 KPX F amacron -50 KPX F aogonek -50 KPX F aring -50 KPX F atilde -50 KPX F comma -150 KPX F e -30 KPX F eacute -30 KPX F ecaron -30 KPX F ecircumflex -30 KPX F edieresis -30 KPX F edotaccent -30 KPX F egrave -30 KPX F emacron -30 KPX F eogonek -30 KPX F o -30 KPX F oacute -30 KPX F ocircumflex -30 KPX F odieresis -30 KPX F ograve -30 KPX F ohungarumlaut -30 KPX F omacron -30 KPX F oslash -30 KPX F otilde -30 KPX F period -150 KPX F r -45 KPX F racute -45 KPX F rcaron -45 KPX F rcommaaccent -45 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J a -20 KPX J aacute -20 KPX J abreve -20 KPX J acircumflex -20 KPX J adieresis -20 KPX J agrave -20 KPX J amacron -20 KPX J aogonek -20 KPX J aring -20 KPX J atilde -20 KPX J comma -30 KPX J period -30 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -40 KPX K eacute -40 KPX K ecaron -40 KPX K ecircumflex -40 KPX K edieresis -40 KPX K edotaccent -40 KPX K egrave -40 KPX K emacron -40 KPX K eogonek -40 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -50 KPX K yacute -50 KPX K ydieresis -50 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -40 KPX Kcommaaccent eacute -40 KPX Kcommaaccent ecaron -40 KPX Kcommaaccent ecircumflex -40 KPX Kcommaaccent edieresis -40 KPX Kcommaaccent edotaccent -40 KPX Kcommaaccent egrave -40 KPX Kcommaaccent emacron -40 KPX Kcommaaccent eogonek -40 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -50 KPX Kcommaaccent yacute -50 KPX Kcommaaccent ydieresis -50 KPX L T -110 KPX L Tcaron -110 KPX L Tcommaaccent -110 KPX L V -110 KPX L W -70 KPX L Y -140 KPX L Yacute -140 KPX L Ydieresis -140 KPX L quotedblright -140 KPX L quoteright -160 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -110 KPX Lacute Tcaron -110 KPX Lacute Tcommaaccent -110 KPX Lacute V -110 KPX Lacute W -70 KPX Lacute Y -140 KPX Lacute Yacute -140 KPX Lacute Ydieresis -140 KPX Lacute quotedblright -140 KPX Lacute quoteright -160 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcaron T -110 KPX Lcaron Tcaron -110 KPX Lcaron Tcommaaccent -110 KPX Lcaron V -110 KPX Lcaron W -70 KPX Lcaron Y -140 KPX Lcaron Yacute -140 KPX Lcaron Ydieresis -140 KPX Lcaron quotedblright -140 KPX Lcaron quoteright -160 KPX Lcaron y -30 KPX Lcaron yacute -30 KPX Lcaron ydieresis -30 KPX Lcommaaccent T -110 KPX Lcommaaccent Tcaron -110 KPX Lcommaaccent Tcommaaccent -110 KPX Lcommaaccent V -110 KPX Lcommaaccent W -70 KPX Lcommaaccent Y -140 KPX Lcommaaccent Yacute -140 KPX Lcommaaccent Ydieresis -140 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -160 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -110 KPX Lslash Tcaron -110 KPX Lslash Tcommaaccent -110 KPX Lslash V -110 KPX Lslash W -70 KPX Lslash Y -140 KPX Lslash Yacute -140 KPX Lslash Ydieresis -140 KPX Lslash quotedblright -140 KPX Lslash quoteright -160 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -30 KPX O X -60 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -30 KPX Oacute X -60 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -30 KPX Ocircumflex X -60 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -30 KPX Odieresis X -60 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -30 KPX Ograve X -60 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -30 KPX Ohungarumlaut X -60 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -30 KPX Omacron X -60 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -30 KPX Oslash X -60 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -30 KPX Otilde X -60 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -120 KPX P Aacute -120 KPX P Abreve -120 KPX P Acircumflex -120 KPX P Adieresis -120 KPX P Agrave -120 KPX P Amacron -120 KPX P Aogonek -120 KPX P Aring -120 KPX P Atilde -120 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -180 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -50 KPX P oacute -50 KPX P ocircumflex -50 KPX P odieresis -50 KPX P ograve -50 KPX P ohungarumlaut -50 KPX P omacron -50 KPX P oslash -50 KPX P otilde -50 KPX P period -180 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -50 KPX R W -30 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -50 KPX Racute W -30 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -50 KPX Rcaron W -30 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -50 KPX Rcommaaccent W -30 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX S comma -20 KPX S period -20 KPX Sacute comma -20 KPX Sacute period -20 KPX Scaron comma -20 KPX Scaron period -20 KPX Scedilla comma -20 KPX Scedilla period -20 KPX Scommaaccent comma -20 KPX Scommaaccent period -20 KPX T A -120 KPX T Aacute -120 KPX T Abreve -120 KPX T Acircumflex -120 KPX T Adieresis -120 KPX T Agrave -120 KPX T Amacron -120 KPX T Aogonek -120 KPX T Aring -120 KPX T Atilde -120 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -120 KPX T aacute -120 KPX T abreve -60 KPX T acircumflex -120 KPX T adieresis -120 KPX T agrave -120 KPX T amacron -60 KPX T aogonek -120 KPX T aring -120 KPX T atilde -60 KPX T colon -20 KPX T comma -120 KPX T e -120 KPX T eacute -120 KPX T ecaron -120 KPX T ecircumflex -120 KPX T edieresis -120 KPX T edotaccent -120 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -120 KPX T hyphen -140 KPX T o -120 KPX T oacute -120 KPX T ocircumflex -120 KPX T odieresis -120 KPX T ograve -120 KPX T ohungarumlaut -120 KPX T omacron -60 KPX T oslash -120 KPX T otilde -60 KPX T period -120 KPX T r -120 KPX T racute -120 KPX T rcaron -120 KPX T rcommaaccent -120 KPX T semicolon -20 KPX T u -120 KPX T uacute -120 KPX T ucircumflex -120 KPX T udieresis -120 KPX T ugrave -120 KPX T uhungarumlaut -120 KPX T umacron -60 KPX T uogonek -120 KPX T uring -120 KPX T w -120 KPX T y -120 KPX T yacute -120 KPX T ydieresis -60 KPX Tcaron A -120 KPX Tcaron Aacute -120 KPX Tcaron Abreve -120 KPX Tcaron Acircumflex -120 KPX Tcaron Adieresis -120 KPX Tcaron Agrave -120 KPX Tcaron Amacron -120 KPX Tcaron Aogonek -120 KPX Tcaron Aring -120 KPX Tcaron Atilde -120 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -120 KPX Tcaron aacute -120 KPX Tcaron abreve -60 KPX Tcaron acircumflex -120 KPX Tcaron adieresis -120 KPX Tcaron agrave -120 KPX Tcaron amacron -60 KPX Tcaron aogonek -120 KPX Tcaron aring -120 KPX Tcaron atilde -60 KPX Tcaron colon -20 KPX Tcaron comma -120 KPX Tcaron e -120 KPX Tcaron eacute -120 KPX Tcaron ecaron -120 KPX Tcaron ecircumflex -120 KPX Tcaron edieresis -120 KPX Tcaron edotaccent -120 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -120 KPX Tcaron hyphen -140 KPX Tcaron o -120 KPX Tcaron oacute -120 KPX Tcaron ocircumflex -120 KPX Tcaron odieresis -120 KPX Tcaron ograve -120 KPX Tcaron ohungarumlaut -120 KPX Tcaron omacron -60 KPX Tcaron oslash -120 KPX Tcaron otilde -60 KPX Tcaron period -120 KPX Tcaron r -120 KPX Tcaron racute -120 KPX Tcaron rcaron -120 KPX Tcaron rcommaaccent -120 KPX Tcaron semicolon -20 KPX Tcaron u -120 KPX Tcaron uacute -120 KPX Tcaron ucircumflex -120 KPX Tcaron udieresis -120 KPX Tcaron ugrave -120 KPX Tcaron uhungarumlaut -120 KPX Tcaron umacron -60 KPX Tcaron uogonek -120 KPX Tcaron uring -120 KPX Tcaron w -120 KPX Tcaron y -120 KPX Tcaron yacute -120 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -120 KPX Tcommaaccent Aacute -120 KPX Tcommaaccent Abreve -120 KPX Tcommaaccent Acircumflex -120 KPX Tcommaaccent Adieresis -120 KPX Tcommaaccent Agrave -120 KPX Tcommaaccent Amacron -120 KPX Tcommaaccent Aogonek -120 KPX Tcommaaccent Aring -120 KPX Tcommaaccent Atilde -120 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -120 KPX Tcommaaccent aacute -120 KPX Tcommaaccent abreve -60 KPX Tcommaaccent acircumflex -120 KPX Tcommaaccent adieresis -120 KPX Tcommaaccent agrave -120 KPX Tcommaaccent amacron -60 KPX Tcommaaccent aogonek -120 KPX Tcommaaccent aring -120 KPX Tcommaaccent atilde -60 KPX Tcommaaccent colon -20 KPX Tcommaaccent comma -120 KPX Tcommaaccent e -120 KPX Tcommaaccent eacute -120 KPX Tcommaaccent ecaron -120 KPX Tcommaaccent ecircumflex -120 KPX Tcommaaccent edieresis -120 KPX Tcommaaccent edotaccent -120 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -120 KPX Tcommaaccent hyphen -140 KPX Tcommaaccent o -120 KPX Tcommaaccent oacute -120 KPX Tcommaaccent ocircumflex -120 KPX Tcommaaccent odieresis -120 KPX Tcommaaccent ograve -120 KPX Tcommaaccent ohungarumlaut -120 KPX Tcommaaccent omacron -60 KPX Tcommaaccent oslash -120 KPX Tcommaaccent otilde -60 KPX Tcommaaccent period -120 KPX Tcommaaccent r -120 KPX Tcommaaccent racute -120 KPX Tcommaaccent rcaron -120 KPX Tcommaaccent rcommaaccent -120 KPX Tcommaaccent semicolon -20 KPX Tcommaaccent u -120 KPX Tcommaaccent uacute -120 KPX Tcommaaccent ucircumflex -120 KPX Tcommaaccent udieresis -120 KPX Tcommaaccent ugrave -120 KPX Tcommaaccent uhungarumlaut -120 KPX Tcommaaccent umacron -60 KPX Tcommaaccent uogonek -120 KPX Tcommaaccent uring -120 KPX Tcommaaccent w -120 KPX Tcommaaccent y -120 KPX Tcommaaccent yacute -120 KPX Tcommaaccent ydieresis -60 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -40 KPX U period -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -40 KPX Uacute period -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -40 KPX Ucircumflex period -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -40 KPX Udieresis period -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -40 KPX Ugrave period -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -40 KPX Uhungarumlaut period -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -40 KPX Umacron period -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -40 KPX Uogonek period -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -40 KPX Uring period -40 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -40 KPX V Gbreve -40 KPX V Gcommaaccent -40 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -40 KPX V comma -125 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -80 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -125 KPX V semicolon -40 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W comma -80 KPX W e -30 KPX W eacute -30 KPX W ecaron -30 KPX W ecircumflex -30 KPX W edieresis -30 KPX W edotaccent -30 KPX W egrave -30 KPX W emacron -30 KPX W eogonek -30 KPX W hyphen -40 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W ograve -30 KPX W ohungarumlaut -30 KPX W omacron -30 KPX W oslash -30 KPX W otilde -30 KPX W period -80 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -85 KPX Y Oacute -85 KPX Y Ocircumflex -85 KPX Y Odieresis -85 KPX Y Ograve -85 KPX Y Ohungarumlaut -85 KPX Y Omacron -85 KPX Y Oslash -85 KPX Y Otilde -85 KPX Y a -140 KPX Y aacute -140 KPX Y abreve -70 KPX Y acircumflex -140 KPX Y adieresis -140 KPX Y agrave -140 KPX Y amacron -70 KPX Y aogonek -140 KPX Y aring -140 KPX Y atilde -140 KPX Y colon -60 KPX Y comma -140 KPX Y e -140 KPX Y eacute -140 KPX Y ecaron -140 KPX Y ecircumflex -140 KPX Y edieresis -140 KPX Y edotaccent -140 KPX Y egrave -140 KPX Y emacron -70 KPX Y eogonek -140 KPX Y hyphen -140 KPX Y i -20 KPX Y iacute -20 KPX Y iogonek -20 KPX Y o -140 KPX Y oacute -140 KPX Y ocircumflex -140 KPX Y odieresis -140 KPX Y ograve -140 KPX Y ohungarumlaut -140 KPX Y omacron -140 KPX Y oslash -140 KPX Y otilde -140 KPX Y period -140 KPX Y semicolon -60 KPX Y u -110 KPX Y uacute -110 KPX Y ucircumflex -110 KPX Y udieresis -110 KPX Y ugrave -110 KPX Y uhungarumlaut -110 KPX Y umacron -110 KPX Y uogonek -110 KPX Y uring -110 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -85 KPX Yacute Oacute -85 KPX Yacute Ocircumflex -85 KPX Yacute Odieresis -85 KPX Yacute Ograve -85 KPX Yacute Ohungarumlaut -85 KPX Yacute Omacron -85 KPX Yacute Oslash -85 KPX Yacute Otilde -85 KPX Yacute a -140 KPX Yacute aacute -140 KPX Yacute abreve -70 KPX Yacute acircumflex -140 KPX Yacute adieresis -140 KPX Yacute agrave -140 KPX Yacute amacron -70 KPX Yacute aogonek -140 KPX Yacute aring -140 KPX Yacute atilde -70 KPX Yacute colon -60 KPX Yacute comma -140 KPX Yacute e -140 KPX Yacute eacute -140 KPX Yacute ecaron -140 KPX Yacute ecircumflex -140 KPX Yacute edieresis -140 KPX Yacute edotaccent -140 KPX Yacute egrave -140 KPX Yacute emacron -70 KPX Yacute eogonek -140 KPX Yacute hyphen -140 KPX Yacute i -20 KPX Yacute iacute -20 KPX Yacute iogonek -20 KPX Yacute o -140 KPX Yacute oacute -140 KPX Yacute ocircumflex -140 KPX Yacute odieresis -140 KPX Yacute ograve -140 KPX Yacute ohungarumlaut -140 KPX Yacute omacron -70 KPX Yacute oslash -140 KPX Yacute otilde -140 KPX Yacute period -140 KPX Yacute semicolon -60 KPX Yacute u -110 KPX Yacute uacute -110 KPX Yacute ucircumflex -110 KPX Yacute udieresis -110 KPX Yacute ugrave -110 KPX Yacute uhungarumlaut -110 KPX Yacute umacron -110 KPX Yacute uogonek -110 KPX Yacute uring -110 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -85 KPX Ydieresis Oacute -85 KPX Ydieresis Ocircumflex -85 KPX Ydieresis Odieresis -85 KPX Ydieresis Ograve -85 KPX Ydieresis Ohungarumlaut -85 KPX Ydieresis Omacron -85 KPX Ydieresis Oslash -85 KPX Ydieresis Otilde -85 KPX Ydieresis a -140 KPX Ydieresis aacute -140 KPX Ydieresis abreve -70 KPX Ydieresis acircumflex -140 KPX Ydieresis adieresis -140 KPX Ydieresis agrave -140 KPX Ydieresis amacron -70 KPX Ydieresis aogonek -140 KPX Ydieresis aring -140 KPX Ydieresis atilde -70 KPX Ydieresis colon -60 KPX Ydieresis comma -140 KPX Ydieresis e -140 KPX Ydieresis eacute -140 KPX Ydieresis ecaron -140 KPX Ydieresis ecircumflex -140 KPX Ydieresis edieresis -140 KPX Ydieresis edotaccent -140 KPX Ydieresis egrave -140 KPX Ydieresis emacron -70 KPX Ydieresis eogonek -140 KPX Ydieresis hyphen -140 KPX Ydieresis i -20 KPX Ydieresis iacute -20 KPX Ydieresis iogonek -20 KPX Ydieresis o -140 KPX Ydieresis oacute -140 KPX Ydieresis ocircumflex -140 KPX Ydieresis odieresis -140 KPX Ydieresis ograve -140 KPX Ydieresis ohungarumlaut -140 KPX Ydieresis omacron -140 KPX Ydieresis oslash -140 KPX Ydieresis otilde -140 KPX Ydieresis period -140 KPX Ydieresis semicolon -60 KPX Ydieresis u -110 KPX Ydieresis uacute -110 KPX Ydieresis ucircumflex -110 KPX Ydieresis udieresis -110 KPX Ydieresis ugrave -110 KPX Ydieresis uhungarumlaut -110 KPX Ydieresis umacron -110 KPX Ydieresis uogonek -110 KPX Ydieresis uring -110 KPX a v -20 KPX a w -20 KPX a y -30 KPX a yacute -30 KPX a ydieresis -30 KPX aacute v -20 KPX aacute w -20 KPX aacute y -30 KPX aacute yacute -30 KPX aacute ydieresis -30 KPX abreve v -20 KPX abreve w -20 KPX abreve y -30 KPX abreve yacute -30 KPX abreve ydieresis -30 KPX acircumflex v -20 KPX acircumflex w -20 KPX acircumflex y -30 KPX acircumflex yacute -30 KPX acircumflex ydieresis -30 KPX adieresis v -20 KPX adieresis w -20 KPX adieresis y -30 KPX adieresis yacute -30 KPX adieresis ydieresis -30 KPX agrave v -20 KPX agrave w -20 KPX agrave y -30 KPX agrave yacute -30 KPX agrave ydieresis -30 KPX amacron v -20 KPX amacron w -20 KPX amacron y -30 KPX amacron yacute -30 KPX amacron ydieresis -30 KPX aogonek v -20 KPX aogonek w -20 KPX aogonek y -30 KPX aogonek yacute -30 KPX aogonek ydieresis -30 KPX aring v -20 KPX aring w -20 KPX aring y -30 KPX aring yacute -30 KPX aring ydieresis -30 KPX atilde v -20 KPX atilde w -20 KPX atilde y -30 KPX atilde yacute -30 KPX atilde ydieresis -30 KPX b b -10 KPX b comma -40 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b lslash -20 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c comma -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute comma -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron comma -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla comma -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX colon space -50 KPX comma quotedblright -100 KPX comma quoteright -100 KPX e comma -15 KPX e period -15 KPX e v -30 KPX e w -20 KPX e x -30 KPX e y -20 KPX e yacute -20 KPX e ydieresis -20 KPX eacute comma -15 KPX eacute period -15 KPX eacute v -30 KPX eacute w -20 KPX eacute x -30 KPX eacute y -20 KPX eacute yacute -20 KPX eacute ydieresis -20 KPX ecaron comma -15 KPX ecaron period -15 KPX ecaron v -30 KPX ecaron w -20 KPX ecaron x -30 KPX ecaron y -20 KPX ecaron yacute -20 KPX ecaron ydieresis -20 KPX ecircumflex comma -15 KPX ecircumflex period -15 KPX ecircumflex v -30 KPX ecircumflex w -20 KPX ecircumflex x -30 KPX ecircumflex y -20 KPX ecircumflex yacute -20 KPX ecircumflex ydieresis -20 KPX edieresis comma -15 KPX edieresis period -15 KPX edieresis v -30 KPX edieresis w -20 KPX edieresis x -30 KPX edieresis y -20 KPX edieresis yacute -20 KPX edieresis ydieresis -20 KPX edotaccent comma -15 KPX edotaccent period -15 KPX edotaccent v -30 KPX edotaccent w -20 KPX edotaccent x -30 KPX edotaccent y -20 KPX edotaccent yacute -20 KPX edotaccent ydieresis -20 KPX egrave comma -15 KPX egrave period -15 KPX egrave v -30 KPX egrave w -20 KPX egrave x -30 KPX egrave y -20 KPX egrave yacute -20 KPX egrave ydieresis -20 KPX emacron comma -15 KPX emacron period -15 KPX emacron v -30 KPX emacron w -20 KPX emacron x -30 KPX emacron y -20 KPX emacron yacute -20 KPX emacron ydieresis -20 KPX eogonek comma -15 KPX eogonek period -15 KPX eogonek v -30 KPX eogonek w -20 KPX eogonek x -30 KPX eogonek y -20 KPX eogonek yacute -20 KPX eogonek ydieresis -20 KPX f a -30 KPX f aacute -30 KPX f abreve -30 KPX f acircumflex -30 KPX f adieresis -30 KPX f agrave -30 KPX f amacron -30 KPX f aogonek -30 KPX f aring -30 KPX f atilde -30 KPX f comma -30 KPX f dotlessi -28 KPX f e -30 KPX f eacute -30 KPX f ecaron -30 KPX f ecircumflex -30 KPX f edieresis -30 KPX f edotaccent -30 KPX f egrave -30 KPX f emacron -30 KPX f eogonek -30 KPX f o -30 KPX f oacute -30 KPX f ocircumflex -30 KPX f odieresis -30 KPX f ograve -30 KPX f ohungarumlaut -30 KPX f omacron -30 KPX f oslash -30 KPX f otilde -30 KPX f period -30 KPX f quotedblright 60 KPX f quoteright 50 KPX g r -10 KPX g racute -10 KPX g rcaron -10 KPX g rcommaaccent -10 KPX gbreve r -10 KPX gbreve racute -10 KPX gbreve rcaron -10 KPX gbreve rcommaaccent -10 KPX gcommaaccent r -10 KPX gcommaaccent racute -10 KPX gcommaaccent rcaron -10 KPX gcommaaccent rcommaaccent -10 KPX h y -30 KPX h yacute -30 KPX h ydieresis -30 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -20 KPX k oacute -20 KPX k ocircumflex -20 KPX k odieresis -20 KPX k ograve -20 KPX k ohungarumlaut -20 KPX k omacron -20 KPX k oslash -20 KPX k otilde -20 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -20 KPX kcommaaccent oacute -20 KPX kcommaaccent ocircumflex -20 KPX kcommaaccent odieresis -20 KPX kcommaaccent ograve -20 KPX kcommaaccent ohungarumlaut -20 KPX kcommaaccent omacron -20 KPX kcommaaccent oslash -20 KPX kcommaaccent otilde -20 KPX m u -10 KPX m uacute -10 KPX m ucircumflex -10 KPX m udieresis -10 KPX m ugrave -10 KPX m uhungarumlaut -10 KPX m umacron -10 KPX m uogonek -10 KPX m uring -10 KPX m y -15 KPX m yacute -15 KPX m ydieresis -15 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -20 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -20 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -20 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -20 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -20 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o comma -40 KPX o period -40 KPX o v -15 KPX o w -15 KPX o x -30 KPX o y -30 KPX o yacute -30 KPX o ydieresis -30 KPX oacute comma -40 KPX oacute period -40 KPX oacute v -15 KPX oacute w -15 KPX oacute x -30 KPX oacute y -30 KPX oacute yacute -30 KPX oacute ydieresis -30 KPX ocircumflex comma -40 KPX ocircumflex period -40 KPX ocircumflex v -15 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -30 KPX ocircumflex yacute -30 KPX ocircumflex ydieresis -30 KPX odieresis comma -40 KPX odieresis period -40 KPX odieresis v -15 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -30 KPX odieresis yacute -30 KPX odieresis ydieresis -30 KPX ograve comma -40 KPX ograve period -40 KPX ograve v -15 KPX ograve w -15 KPX ograve x -30 KPX ograve y -30 KPX ograve yacute -30 KPX ograve ydieresis -30 KPX ohungarumlaut comma -40 KPX ohungarumlaut period -40 KPX ohungarumlaut v -15 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -30 KPX ohungarumlaut yacute -30 KPX ohungarumlaut ydieresis -30 KPX omacron comma -40 KPX omacron period -40 KPX omacron v -15 KPX omacron w -15 KPX omacron x -30 KPX omacron y -30 KPX omacron yacute -30 KPX omacron ydieresis -30 KPX oslash a -55 KPX oslash aacute -55 KPX oslash abreve -55 KPX oslash acircumflex -55 KPX oslash adieresis -55 KPX oslash agrave -55 KPX oslash amacron -55 KPX oslash aogonek -55 KPX oslash aring -55 KPX oslash atilde -55 KPX oslash b -55 KPX oslash c -55 KPX oslash cacute -55 KPX oslash ccaron -55 KPX oslash ccedilla -55 KPX oslash comma -95 KPX oslash d -55 KPX oslash dcroat -55 KPX oslash e -55 KPX oslash eacute -55 KPX oslash ecaron -55 KPX oslash ecircumflex -55 KPX oslash edieresis -55 KPX oslash edotaccent -55 KPX oslash egrave -55 KPX oslash emacron -55 KPX oslash eogonek -55 KPX oslash f -55 KPX oslash g -55 KPX oslash gbreve -55 KPX oslash gcommaaccent -55 KPX oslash h -55 KPX oslash i -55 KPX oslash iacute -55 KPX oslash icircumflex -55 KPX oslash idieresis -55 KPX oslash igrave -55 KPX oslash imacron -55 KPX oslash iogonek -55 KPX oslash j -55 KPX oslash k -55 KPX oslash kcommaaccent -55 KPX oslash l -55 KPX oslash lacute -55 KPX oslash lcommaaccent -55 KPX oslash lslash -55 KPX oslash m -55 KPX oslash n -55 KPX oslash nacute -55 KPX oslash ncaron -55 KPX oslash ncommaaccent -55 KPX oslash ntilde -55 KPX oslash o -55 KPX oslash oacute -55 KPX oslash ocircumflex -55 KPX oslash odieresis -55 KPX oslash ograve -55 KPX oslash ohungarumlaut -55 KPX oslash omacron -55 KPX oslash oslash -55 KPX oslash otilde -55 KPX oslash p -55 KPX oslash period -95 KPX oslash q -55 KPX oslash r -55 KPX oslash racute -55 KPX oslash rcaron -55 KPX oslash rcommaaccent -55 KPX oslash s -55 KPX oslash sacute -55 KPX oslash scaron -55 KPX oslash scedilla -55 KPX oslash scommaaccent -55 KPX oslash t -55 KPX oslash tcommaaccent -55 KPX oslash u -55 KPX oslash uacute -55 KPX oslash ucircumflex -55 KPX oslash udieresis -55 KPX oslash ugrave -55 KPX oslash uhungarumlaut -55 KPX oslash umacron -55 KPX oslash uogonek -55 KPX oslash uring -55 KPX oslash v -70 KPX oslash w -70 KPX oslash x -85 KPX oslash y -70 KPX oslash yacute -70 KPX oslash ydieresis -70 KPX oslash z -55 KPX oslash zacute -55 KPX oslash zcaron -55 KPX oslash zdotaccent -55 KPX otilde comma -40 KPX otilde period -40 KPX otilde v -15 KPX otilde w -15 KPX otilde x -30 KPX otilde y -30 KPX otilde yacute -30 KPX otilde ydieresis -30 KPX p comma -35 KPX p period -35 KPX p y -30 KPX p yacute -30 KPX p ydieresis -30 KPX period quotedblright -100 KPX period quoteright -100 KPX period space -60 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright quoteright -57 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -50 KPX quoteright sacute -50 KPX quoteright scaron -50 KPX quoteright scedilla -50 KPX quoteright scommaaccent -50 KPX quoteright space -70 KPX r a -10 KPX r aacute -10 KPX r abreve -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r agrave -10 KPX r amacron -10 KPX r aogonek -10 KPX r aring -10 KPX r atilde -10 KPX r colon 30 KPX r comma -50 KPX r i 15 KPX r iacute 15 KPX r icircumflex 15 KPX r idieresis 15 KPX r igrave 15 KPX r imacron 15 KPX r iogonek 15 KPX r k 15 KPX r kcommaaccent 15 KPX r l 15 KPX r lacute 15 KPX r lcommaaccent 15 KPX r lslash 15 KPX r m 25 KPX r n 25 KPX r nacute 25 KPX r ncaron 25 KPX r ncommaaccent 25 KPX r ntilde 25 KPX r p 30 KPX r period -50 KPX r semicolon 30 KPX r t 40 KPX r tcommaaccent 40 KPX r u 15 KPX r uacute 15 KPX r ucircumflex 15 KPX r udieresis 15 KPX r ugrave 15 KPX r uhungarumlaut 15 KPX r umacron 15 KPX r uogonek 15 KPX r uring 15 KPX r v 30 KPX r y 30 KPX r yacute 30 KPX r ydieresis 30 KPX racute a -10 KPX racute aacute -10 KPX racute abreve -10 KPX racute acircumflex -10 KPX racute adieresis -10 KPX racute agrave -10 KPX racute amacron -10 KPX racute aogonek -10 KPX racute aring -10 KPX racute atilde -10 KPX racute colon 30 KPX racute comma -50 KPX racute i 15 KPX racute iacute 15 KPX racute icircumflex 15 KPX racute idieresis 15 KPX racute igrave 15 KPX racute imacron 15 KPX racute iogonek 15 KPX racute k 15 KPX racute kcommaaccent 15 KPX racute l 15 KPX racute lacute 15 KPX racute lcommaaccent 15 KPX racute lslash 15 KPX racute m 25 KPX racute n 25 KPX racute nacute 25 KPX racute ncaron 25 KPX racute ncommaaccent 25 KPX racute ntilde 25 KPX racute p 30 KPX racute period -50 KPX racute semicolon 30 KPX racute t 40 KPX racute tcommaaccent 40 KPX racute u 15 KPX racute uacute 15 KPX racute ucircumflex 15 KPX racute udieresis 15 KPX racute ugrave 15 KPX racute uhungarumlaut 15 KPX racute umacron 15 KPX racute uogonek 15 KPX racute uring 15 KPX racute v 30 KPX racute y 30 KPX racute yacute 30 KPX racute ydieresis 30 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron abreve -10 KPX rcaron acircumflex -10 KPX rcaron adieresis -10 KPX rcaron agrave -10 KPX rcaron amacron -10 KPX rcaron aogonek -10 KPX rcaron aring -10 KPX rcaron atilde -10 KPX rcaron colon 30 KPX rcaron comma -50 KPX rcaron i 15 KPX rcaron iacute 15 KPX rcaron icircumflex 15 KPX rcaron idieresis 15 KPX rcaron igrave 15 KPX rcaron imacron 15 KPX rcaron iogonek 15 KPX rcaron k 15 KPX rcaron kcommaaccent 15 KPX rcaron l 15 KPX rcaron lacute 15 KPX rcaron lcommaaccent 15 KPX rcaron lslash 15 KPX rcaron m 25 KPX rcaron n 25 KPX rcaron nacute 25 KPX rcaron ncaron 25 KPX rcaron ncommaaccent 25 KPX rcaron ntilde 25 KPX rcaron p 30 KPX rcaron period -50 KPX rcaron semicolon 30 KPX rcaron t 40 KPX rcaron tcommaaccent 40 KPX rcaron u 15 KPX rcaron uacute 15 KPX rcaron ucircumflex 15 KPX rcaron udieresis 15 KPX rcaron ugrave 15 KPX rcaron uhungarumlaut 15 KPX rcaron umacron 15 KPX rcaron uogonek 15 KPX rcaron uring 15 KPX rcaron v 30 KPX rcaron y 30 KPX rcaron yacute 30 KPX rcaron ydieresis 30 KPX rcommaaccent a -10 KPX rcommaaccent aacute -10 KPX rcommaaccent abreve -10 KPX rcommaaccent acircumflex -10 KPX rcommaaccent adieresis -10 KPX rcommaaccent agrave -10 KPX rcommaaccent amacron -10 KPX rcommaaccent aogonek -10 KPX rcommaaccent aring -10 KPX rcommaaccent atilde -10 KPX rcommaaccent colon 30 KPX rcommaaccent comma -50 KPX rcommaaccent i 15 KPX rcommaaccent iacute 15 KPX rcommaaccent icircumflex 15 KPX rcommaaccent idieresis 15 KPX rcommaaccent igrave 15 KPX rcommaaccent imacron 15 KPX rcommaaccent iogonek 15 KPX rcommaaccent k 15 KPX rcommaaccent kcommaaccent 15 KPX rcommaaccent l 15 KPX rcommaaccent lacute 15 KPX rcommaaccent lcommaaccent 15 KPX rcommaaccent lslash 15 KPX rcommaaccent m 25 KPX rcommaaccent n 25 KPX rcommaaccent nacute 25 KPX rcommaaccent ncaron 25 KPX rcommaaccent ncommaaccent 25 KPX rcommaaccent ntilde 25 KPX rcommaaccent p 30 KPX rcommaaccent period -50 KPX rcommaaccent semicolon 30 KPX rcommaaccent t 40 KPX rcommaaccent tcommaaccent 40 KPX rcommaaccent u 15 KPX rcommaaccent uacute 15 KPX rcommaaccent ucircumflex 15 KPX rcommaaccent udieresis 15 KPX rcommaaccent ugrave 15 KPX rcommaaccent uhungarumlaut 15 KPX rcommaaccent umacron 15 KPX rcommaaccent uogonek 15 KPX rcommaaccent uring 15 KPX rcommaaccent v 30 KPX rcommaaccent y 30 KPX rcommaaccent yacute 30 KPX rcommaaccent ydieresis 30 KPX s comma -15 KPX s period -15 KPX s w -30 KPX sacute comma -15 KPX sacute period -15 KPX sacute w -30 KPX scaron comma -15 KPX scaron period -15 KPX scaron w -30 KPX scedilla comma -15 KPX scedilla period -15 KPX scedilla w -30 KPX scommaaccent comma -15 KPX scommaaccent period -15 KPX scommaaccent w -30 KPX semicolon space -50 KPX space T -50 KPX space Tcaron -50 KPX space Tcommaaccent -50 KPX space V -50 KPX space W -40 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX space quotedblleft -30 KPX space quoteleft -60 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -80 KPX v e -25 KPX v eacute -25 KPX v ecaron -25 KPX v ecircumflex -25 KPX v edieresis -25 KPX v edotaccent -25 KPX v egrave -25 KPX v emacron -25 KPX v eogonek -25 KPX v o -25 KPX v oacute -25 KPX v ocircumflex -25 KPX v odieresis -25 KPX v ograve -25 KPX v ohungarumlaut -25 KPX v omacron -25 KPX v oslash -25 KPX v otilde -25 KPX v period -80 KPX w a -15 KPX w aacute -15 KPX w abreve -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w agrave -15 KPX w amacron -15 KPX w aogonek -15 KPX w aring -15 KPX w atilde -15 KPX w comma -60 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -60 KPX x e -30 KPX x eacute -30 KPX x ecaron -30 KPX x ecircumflex -30 KPX x edieresis -30 KPX x edotaccent -30 KPX x egrave -30 KPX x emacron -30 KPX x eogonek -30 KPX y a -20 KPX y aacute -20 KPX y abreve -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y agrave -20 KPX y amacron -20 KPX y aogonek -20 KPX y aring -20 KPX y atilde -20 KPX y comma -100 KPX y e -20 KPX y eacute -20 KPX y ecaron -20 KPX y ecircumflex -20 KPX y edieresis -20 KPX y edotaccent -20 KPX y egrave -20 KPX y emacron -20 KPX y eogonek -20 KPX y o -20 KPX y oacute -20 KPX y ocircumflex -20 KPX y odieresis -20 KPX y ograve -20 KPX y ohungarumlaut -20 KPX y omacron -20 KPX y oslash -20 KPX y otilde -20 KPX y period -100 KPX yacute a -20 KPX yacute aacute -20 KPX yacute abreve -20 KPX yacute acircumflex -20 KPX yacute adieresis -20 KPX yacute agrave -20 KPX yacute amacron -20 KPX yacute aogonek -20 KPX yacute aring -20 KPX yacute atilde -20 KPX yacute comma -100 KPX yacute e -20 KPX yacute eacute -20 KPX yacute ecaron -20 KPX yacute ecircumflex -20 KPX yacute edieresis -20 KPX yacute edotaccent -20 KPX yacute egrave -20 KPX yacute emacron -20 KPX yacute eogonek -20 KPX yacute o -20 KPX yacute oacute -20 KPX yacute ocircumflex -20 KPX yacute odieresis -20 KPX yacute ograve -20 KPX yacute ohungarumlaut -20 KPX yacute omacron -20 KPX yacute oslash -20 KPX yacute otilde -20 KPX yacute period -100 KPX ydieresis a -20 KPX ydieresis aacute -20 KPX ydieresis abreve -20 KPX ydieresis acircumflex -20 KPX ydieresis adieresis -20 KPX ydieresis agrave -20 KPX ydieresis amacron -20 KPX ydieresis aogonek -20 KPX ydieresis aring -20 KPX ydieresis atilde -20 KPX ydieresis comma -100 KPX ydieresis e -20 KPX ydieresis eacute -20 KPX ydieresis ecaron -20 KPX ydieresis ecircumflex -20 KPX ydieresis edieresis -20 KPX ydieresis edotaccent -20 KPX ydieresis egrave -20 KPX ydieresis emacron -20 KPX ydieresis eogonek -20 KPX ydieresis o -20 KPX ydieresis oacute -20 KPX ydieresis ocircumflex -20 KPX ydieresis odieresis -20 KPX ydieresis ograve -20 KPX ydieresis ohungarumlaut -20 KPX ydieresis omacron -20 KPX ydieresis oslash -20 KPX ydieresis otilde -20 KPX ydieresis period -100 KPX z e -15 KPX z eacute -15 KPX z ecaron -15 KPX z ecircumflex -15 KPX z edieresis -15 KPX z edotaccent -15 KPX z egrave -15 KPX z emacron -15 KPX z eogonek -15 KPX z o -15 KPX z oacute -15 KPX z ocircumflex -15 KPX z odieresis -15 KPX z ograve -15 KPX z ohungarumlaut -15 KPX z omacron -15 KPX z oslash -15 KPX z otilde -15 KPX zacute e -15 KPX zacute eacute -15 KPX zacute ecaron -15 KPX zacute ecircumflex -15 KPX zacute edieresis -15 KPX zacute edotaccent -15 KPX zacute egrave -15 KPX zacute emacron -15 KPX zacute eogonek -15 KPX zacute o -15 KPX zacute oacute -15 KPX zacute ocircumflex -15 KPX zacute odieresis -15 KPX zacute ograve -15 KPX zacute ohungarumlaut -15 KPX zacute omacron -15 KPX zacute oslash -15 KPX zacute otilde -15 KPX zcaron e -15 KPX zcaron eacute -15 KPX zcaron ecaron -15 KPX zcaron ecircumflex -15 KPX zcaron edieresis -15 KPX zcaron edotaccent -15 KPX zcaron egrave -15 KPX zcaron emacron -15 KPX zcaron eogonek -15 KPX zcaron o -15 KPX zcaron oacute -15 KPX zcaron ocircumflex -15 KPX zcaron odieresis -15 KPX zcaron ograve -15 KPX zcaron ohungarumlaut -15 KPX zcaron omacron -15 KPX zcaron oslash -15 KPX zcaron otilde -15 KPX zdotaccent e -15 KPX zdotaccent eacute -15 KPX zdotaccent ecaron -15 KPX zdotaccent ecircumflex -15 KPX zdotaccent edieresis -15 KPX zdotaccent edotaccent -15 KPX zdotaccent egrave -15 KPX zdotaccent emacron -15 KPX zdotaccent eogonek -15 KPX zdotaccent o -15 KPX zdotaccent oacute -15 KPX zdotaccent ocircumflex -15 KPX zdotaccent odieresis -15 KPX zdotaccent ograve -15 KPX zdotaccent ohungarumlaut -15 KPX zdotaccent omacron -15 KPX zdotaccent oslash -15 KPX zdotaccent otilde -15 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/MustRead.html ================================================ Core 14 AFM Files - ReadMe or
This file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files. Col
================================================ FILE: lib/font/data/Symbol.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu May 1 15:12:25 1997 Comment UniqueID 43064 Comment VMusage 30820 39997 FontName Symbol FullName Symbol FamilyName Symbol Weight Medium ItalicAngle 0 IsFixedPitch false CharacterSet Special FontBBox -180 -293 1090 1010 UnderlinePosition -100 UnderlineThickness 50 Version 001.008 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. EncodingScheme FontSpecific StdHW 92 StdVW 85 StartCharMetrics 190 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ; C 34 ; WX 713 ; N universal ; B 31 0 681 705 ; C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ; C 36 ; WX 549 ; N existential ; B 25 0 478 707 ; C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ; C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ; C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ; C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ; C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ; C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ; C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ; C 45 ; WX 549 ; N minus ; B 11 233 535 288 ; C 46 ; WX 250 ; N period ; B 69 -17 181 95 ; C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ; C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ; C 49 ; WX 500 ; N one ; B 117 0 390 673 ; C 50 ; WX 500 ; N two ; B 25 0 475 685 ; C 51 ; WX 500 ; N three ; B 43 -14 435 685 ; C 52 ; WX 500 ; N four ; B 15 0 469 685 ; C 53 ; WX 500 ; N five ; B 32 -14 445 690 ; C 54 ; WX 500 ; N six ; B 34 -14 468 685 ; C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ; C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ; C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ; C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ; C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ; C 60 ; WX 549 ; N less ; B 26 0 523 522 ; C 61 ; WX 549 ; N equal ; B 11 141 537 390 ; C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; C 63 ; WX 444 ; N question ; B 70 -17 412 686 ; C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ; C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ; C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ; C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ; C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ; C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ; C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ; C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ; C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ; C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ; C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ; C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ; C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ; C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ; C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ; C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ; C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ; C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ; C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ; C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ; C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ; C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ; C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ; C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ; C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ; C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ; C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ; C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ; C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ; C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ; C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ; C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ; C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ; C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ; C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ; C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ; C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ; C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ; C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ; C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ; C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ; C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ; C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ; C 126 ; WX 549 ; N similar ; B 17 203 529 307 ; C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ; C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ; C 162 ; WX 247 ; N minute ; B 27 459 228 735 ; C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ; C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ; C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ; C 167 ; WX 753 ; N club ; B 86 -26 660 533 ; C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ; C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ; C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ; C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; C 176 ; WX 400 ; N degree ; B 50 385 350 685 ; C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ; C 178 ; WX 411 ; N second ; B 20 459 413 737 ; C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ; C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ; C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ; C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ; C 184 ; WX 549 ; N divide ; B 10 71 536 456 ; C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ; C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ; C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ; C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ; C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ; C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ; C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ; C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ; C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ; C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ; C 200 ; WX 768 ; N union ; B 40 -17 732 492 ; C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; C 206 ; WX 713 ; N element ; B 45 0 505 468 ; C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; C 208 ; WX 768 ; N angle ; B 26 0 738 673 ; C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ; C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ; C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ; C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ; C 213 ; WX 823 ; N product ; B 25 -101 803 751 ; C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ; C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ; C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ; C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ; C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ; C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ; C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ; C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ; C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ; C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ; C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ; C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ; C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ; C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ; C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ; C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ; C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ; C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ; C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ; C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ; C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ; C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ; C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ; C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ; C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ; C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ; C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ; C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ; C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ; C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ; C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ; C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ; C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ; C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ; C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ; C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ; C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ; C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ; C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ; C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ; EndCharMetrics EndFontMetrics ================================================ FILE: lib/font/data/Times-Bold.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:52:56 1997 Comment UniqueID 43065 Comment VMusage 41636 52661 FontName Times-Bold FullName Times Bold FamilyName Times Weight Bold ItalicAngle 0 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -168 -218 1000 935 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 676 XHeight 461 Ascender 683 Descender -217 StdHW 44 StdVW 139 StartCharMetrics 315 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; C 49 ; WX 500 ; N one ; B 65 0 442 688 ; C 50 ; WX 500 ; N two ; B 17 0 478 688 ; C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; C 52 ; WX 500 ; N four ; B 19 0 475 688 ; C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; C 65 ; WX 722 ; N A ; B 9 0 689 690 ; C 66 ; WX 667 ; N B ; B 16 0 619 676 ; C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; C 68 ; WX 722 ; N D ; B 14 0 690 676 ; C 69 ; WX 667 ; N E ; B 16 0 641 676 ; C 70 ; WX 611 ; N F ; B 16 0 583 676 ; C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; C 72 ; WX 778 ; N H ; B 21 0 759 676 ; C 73 ; WX 389 ; N I ; B 20 0 370 676 ; C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; C 75 ; WX 778 ; N K ; B 30 0 769 676 ; C 76 ; WX 667 ; N L ; B 19 0 638 676 ; C 77 ; WX 944 ; N M ; B 14 0 921 676 ; C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; C 80 ; WX 611 ; N P ; B 16 0 600 676 ; C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; C 82 ; WX 722 ; N R ; B 26 0 715 676 ; C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; C 84 ; WX 667 ; N T ; B 31 0 636 676 ; C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; C 88 ; WX 722 ; N X ; B 16 0 699 676 ; C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; C 104 ; WX 556 ; N h ; B 16 0 534 676 ; C 105 ; WX 278 ; N i ; B 16 0 255 691 ; C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; C 107 ; WX 556 ; N k ; B 22 0 543 676 ; C 108 ; WX 278 ; N l ; B 16 0 255 676 ; C 109 ; WX 833 ; N m ; B 16 0 814 473 ; C 110 ; WX 556 ; N n ; B 21 0 539 473 ; C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; C 114 ; WX 444 ; N r ; B 29 0 434 473 ; C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; C 120 ; WX 500 ; N x ; B 12 0 484 461 ; C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; C 122 ; WX 444 ; N z ; B 21 0 420 461 ; C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ; C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; C 199 ; WX 333 ; N dotaccent ; B 103 536 258 691 ; C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ; C 202 ; WX 333 ; N ring ; B 60 527 273 740 ; C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; C 206 ; WX 333 ; N ogonek ; B 90 -193 319 24 ; C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ; C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 557 713 ; C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ; C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; C -1 ; WX 389 ; N scommaaccent ; B 25 -218 361 473 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Uring ; B 16 -19 701 935 ; C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; C -1 ; WX 500 ; N aogonek ; B 25 -193 504 473 ; C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; C -1 ; WX 556 ; N uogonek ; B 16 -193 539 461 ; C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ; C -1 ; WX 250 ; N commaaccent ; B 47 -218 203 -50 ; C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ; C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ; C -1 ; WX 722 ; N Ncommaaccent ; B 16 -188 701 676 ; C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ; C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ; C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ; C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 901 ; C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ; C -1 ; WX 278 ; N iacute ; B 16 0 289 713 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; C -1 ; WX 778 ; N Gcommaaccent ; B 37 -218 755 691 ; C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ; C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 901 ; C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ; C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ; C -1 ; WX 672 ; N dcaron ; B 25 -14 681 682 ; C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ; C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ; C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 300 704 ; C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ; C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ; C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ; C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ; C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 901 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ; C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; C -1 ; WX 278 ; N lcommaaccent ; B 16 -218 255 676 ; C -1 ; WX 416 ; N tcaron ; B 20 -12 425 815 ; C -1 ; WX 444 ; N eogonek ; B 25 -193 426 473 ; C -1 ; WX 722 ; N Uogonek ; B 16 -193 701 676 ; C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ; C -1 ; WX 278 ; N iogonek ; B 16 -193 274 691 ; C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ; C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ; C -1 ; WX 278 ; N idieresis ; B -37 0 300 667 ; C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; C -1 ; WX 278 ; N igrave ; B -27 0 255 713 ; C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 529 713 ; C -1 ; WX 667 ; N Eogonek ; B 16 -193 644 676 ; C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ; C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ; C -1 ; WX 394 ; N lcaron ; B 16 0 412 682 ; C -1 ; WX 778 ; N Kcommaaccent ; B 30 -218 769 676 ; C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 691 ; C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ; C -1 ; WX 667 ; N Lcaron ; B 19 0 652 682 ; C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ; C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ; C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ; C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; C -1 ; WX 556 ; N Scommaaccent ; B 35 -218 513 692 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ; C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; C -1 ; WX 444 ; N rcommaaccent ; B 29 -218 434 473 ; C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; C -1 ; WX 722 ; N Rcommaaccent ; B 26 -218 715 676 ; C -1 ; WX 667 ; N Lcommaaccent ; B 19 -218 638 676 ; C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; C -1 ; WX 722 ; N Aogonek ; B 9 -193 699 690 ; C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ; C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 691 ; C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; C -1 ; WX 389 ; N Iogonek ; B 20 -193 370 676 ; C -1 ; WX 556 ; N kcommaaccent ; B 22 -218 543 676 ; C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ; C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 829 ; C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; C -1 ; WX 556 ; N ncommaaccent ; B 21 -218 539 473 ; C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; C -1 ; WX 278 ; N imacron ; B -8 0 272 637 ; C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2242 KPX A C -55 KPX A Cacute -55 KPX A Ccaron -55 KPX A Ccedilla -55 KPX A G -55 KPX A Gbreve -55 KPX A Gcommaaccent -55 KPX A O -45 KPX A Oacute -45 KPX A Ocircumflex -45 KPX A Odieresis -45 KPX A Ograve -45 KPX A Ohungarumlaut -45 KPX A Omacron -45 KPX A Oslash -45 KPX A Otilde -45 KPX A Q -45 KPX A T -95 KPX A Tcaron -95 KPX A Tcommaaccent -95 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -145 KPX A W -130 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A p -25 KPX A quoteright -74 KPX A u -50 KPX A uacute -50 KPX A ucircumflex -50 KPX A udieresis -50 KPX A ugrave -50 KPX A uhungarumlaut -50 KPX A umacron -50 KPX A uogonek -50 KPX A uring -50 KPX A v -100 KPX A w -90 KPX A y -74 KPX A yacute -74 KPX A ydieresis -74 KPX Aacute C -55 KPX Aacute Cacute -55 KPX Aacute Ccaron -55 KPX Aacute Ccedilla -55 KPX Aacute G -55 KPX Aacute Gbreve -55 KPX Aacute Gcommaaccent -55 KPX Aacute O -45 KPX Aacute Oacute -45 KPX Aacute Ocircumflex -45 KPX Aacute Odieresis -45 KPX Aacute Ograve -45 KPX Aacute Ohungarumlaut -45 KPX Aacute Omacron -45 KPX Aacute Oslash -45 KPX Aacute Otilde -45 KPX Aacute Q -45 KPX Aacute T -95 KPX Aacute Tcaron -95 KPX Aacute Tcommaaccent -95 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -145 KPX Aacute W -130 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute p -25 KPX Aacute quoteright -74 KPX Aacute u -50 KPX Aacute uacute -50 KPX Aacute ucircumflex -50 KPX Aacute udieresis -50 KPX Aacute ugrave -50 KPX Aacute uhungarumlaut -50 KPX Aacute umacron -50 KPX Aacute uogonek -50 KPX Aacute uring -50 KPX Aacute v -100 KPX Aacute w -90 KPX Aacute y -74 KPX Aacute yacute -74 KPX Aacute ydieresis -74 KPX Abreve C -55 KPX Abreve Cacute -55 KPX Abreve Ccaron -55 KPX Abreve Ccedilla -55 KPX Abreve G -55 KPX Abreve Gbreve -55 KPX Abreve Gcommaaccent -55 KPX Abreve O -45 KPX Abreve Oacute -45 KPX Abreve Ocircumflex -45 KPX Abreve Odieresis -45 KPX Abreve Ograve -45 KPX Abreve Ohungarumlaut -45 KPX Abreve Omacron -45 KPX Abreve Oslash -45 KPX Abreve Otilde -45 KPX Abreve Q -45 KPX Abreve T -95 KPX Abreve Tcaron -95 KPX Abreve Tcommaaccent -95 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -145 KPX Abreve W -130 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve p -25 KPX Abreve quoteright -74 KPX Abreve u -50 KPX Abreve uacute -50 KPX Abreve ucircumflex -50 KPX Abreve udieresis -50 KPX Abreve ugrave -50 KPX Abreve uhungarumlaut -50 KPX Abreve umacron -50 KPX Abreve uogonek -50 KPX Abreve uring -50 KPX Abreve v -100 KPX Abreve w -90 KPX Abreve y -74 KPX Abreve yacute -74 KPX Abreve ydieresis -74 KPX Acircumflex C -55 KPX Acircumflex Cacute -55 KPX Acircumflex Ccaron -55 KPX Acircumflex Ccedilla -55 KPX Acircumflex G -55 KPX Acircumflex Gbreve -55 KPX Acircumflex Gcommaaccent -55 KPX Acircumflex O -45 KPX Acircumflex Oacute -45 KPX Acircumflex Ocircumflex -45 KPX Acircumflex Odieresis -45 KPX Acircumflex Ograve -45 KPX Acircumflex Ohungarumlaut -45 KPX Acircumflex Omacron -45 KPX Acircumflex Oslash -45 KPX Acircumflex Otilde -45 KPX Acircumflex Q -45 KPX Acircumflex T -95 KPX Acircumflex Tcaron -95 KPX Acircumflex Tcommaaccent -95 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -145 KPX Acircumflex W -130 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex p -25 KPX Acircumflex quoteright -74 KPX Acircumflex u -50 KPX Acircumflex uacute -50 KPX Acircumflex ucircumflex -50 KPX Acircumflex udieresis -50 KPX Acircumflex ugrave -50 KPX Acircumflex uhungarumlaut -50 KPX Acircumflex umacron -50 KPX Acircumflex uogonek -50 KPX Acircumflex uring -50 KPX Acircumflex v -100 KPX Acircumflex w -90 KPX Acircumflex y -74 KPX Acircumflex yacute -74 KPX Acircumflex ydieresis -74 KPX Adieresis C -55 KPX Adieresis Cacute -55 KPX Adieresis Ccaron -55 KPX Adieresis Ccedilla -55 KPX Adieresis G -55 KPX Adieresis Gbreve -55 KPX Adieresis Gcommaaccent -55 KPX Adieresis O -45 KPX Adieresis Oacute -45 KPX Adieresis Ocircumflex -45 KPX Adieresis Odieresis -45 KPX Adieresis Ograve -45 KPX Adieresis Ohungarumlaut -45 KPX Adieresis Omacron -45 KPX Adieresis Oslash -45 KPX Adieresis Otilde -45 KPX Adieresis Q -45 KPX Adieresis T -95 KPX Adieresis Tcaron -95 KPX Adieresis Tcommaaccent -95 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -145 KPX Adieresis W -130 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis p -25 KPX Adieresis quoteright -74 KPX Adieresis u -50 KPX Adieresis uacute -50 KPX Adieresis ucircumflex -50 KPX Adieresis udieresis -50 KPX Adieresis ugrave -50 KPX Adieresis uhungarumlaut -50 KPX Adieresis umacron -50 KPX Adieresis uogonek -50 KPX Adieresis uring -50 KPX Adieresis v -100 KPX Adieresis w -90 KPX Adieresis y -74 KPX Adieresis yacute -74 KPX Adieresis ydieresis -74 KPX Agrave C -55 KPX Agrave Cacute -55 KPX Agrave Ccaron -55 KPX Agrave Ccedilla -55 KPX Agrave G -55 KPX Agrave Gbreve -55 KPX Agrave Gcommaaccent -55 KPX Agrave O -45 KPX Agrave Oacute -45 KPX Agrave Ocircumflex -45 KPX Agrave Odieresis -45 KPX Agrave Ograve -45 KPX Agrave Ohungarumlaut -45 KPX Agrave Omacron -45 KPX Agrave Oslash -45 KPX Agrave Otilde -45 KPX Agrave Q -45 KPX Agrave T -95 KPX Agrave Tcaron -95 KPX Agrave Tcommaaccent -95 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -145 KPX Agrave W -130 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave p -25 KPX Agrave quoteright -74 KPX Agrave u -50 KPX Agrave uacute -50 KPX Agrave ucircumflex -50 KPX Agrave udieresis -50 KPX Agrave ugrave -50 KPX Agrave uhungarumlaut -50 KPX Agrave umacron -50 KPX Agrave uogonek -50 KPX Agrave uring -50 KPX Agrave v -100 KPX Agrave w -90 KPX Agrave y -74 KPX Agrave yacute -74 KPX Agrave ydieresis -74 KPX Amacron C -55 KPX Amacron Cacute -55 KPX Amacron Ccaron -55 KPX Amacron Ccedilla -55 KPX Amacron G -55 KPX Amacron Gbreve -55 KPX Amacron Gcommaaccent -55 KPX Amacron O -45 KPX Amacron Oacute -45 KPX Amacron Ocircumflex -45 KPX Amacron Odieresis -45 KPX Amacron Ograve -45 KPX Amacron Ohungarumlaut -45 KPX Amacron Omacron -45 KPX Amacron Oslash -45 KPX Amacron Otilde -45 KPX Amacron Q -45 KPX Amacron T -95 KPX Amacron Tcaron -95 KPX Amacron Tcommaaccent -95 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -145 KPX Amacron W -130 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron p -25 KPX Amacron quoteright -74 KPX Amacron u -50 KPX Amacron uacute -50 KPX Amacron ucircumflex -50 KPX Amacron udieresis -50 KPX Amacron ugrave -50 KPX Amacron uhungarumlaut -50 KPX Amacron umacron -50 KPX Amacron uogonek -50 KPX Amacron uring -50 KPX Amacron v -100 KPX Amacron w -90 KPX Amacron y -74 KPX Amacron yacute -74 KPX Amacron ydieresis -74 KPX Aogonek C -55 KPX Aogonek Cacute -55 KPX Aogonek Ccaron -55 KPX Aogonek Ccedilla -55 KPX Aogonek G -55 KPX Aogonek Gbreve -55 KPX Aogonek Gcommaaccent -55 KPX Aogonek O -45 KPX Aogonek Oacute -45 KPX Aogonek Ocircumflex -45 KPX Aogonek Odieresis -45 KPX Aogonek Ograve -45 KPX Aogonek Ohungarumlaut -45 KPX Aogonek Omacron -45 KPX Aogonek Oslash -45 KPX Aogonek Otilde -45 KPX Aogonek Q -45 KPX Aogonek T -95 KPX Aogonek Tcaron -95 KPX Aogonek Tcommaaccent -95 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -145 KPX Aogonek W -130 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek p -25 KPX Aogonek quoteright -74 KPX Aogonek u -50 KPX Aogonek uacute -50 KPX Aogonek ucircumflex -50 KPX Aogonek udieresis -50 KPX Aogonek ugrave -50 KPX Aogonek uhungarumlaut -50 KPX Aogonek umacron -50 KPX Aogonek uogonek -50 KPX Aogonek uring -50 KPX Aogonek v -100 KPX Aogonek w -90 KPX Aogonek y -34 KPX Aogonek yacute -34 KPX Aogonek ydieresis -34 KPX Aring C -55 KPX Aring Cacute -55 KPX Aring Ccaron -55 KPX Aring Ccedilla -55 KPX Aring G -55 KPX Aring Gbreve -55 KPX Aring Gcommaaccent -55 KPX Aring O -45 KPX Aring Oacute -45 KPX Aring Ocircumflex -45 KPX Aring Odieresis -45 KPX Aring Ograve -45 KPX Aring Ohungarumlaut -45 KPX Aring Omacron -45 KPX Aring Oslash -45 KPX Aring Otilde -45 KPX Aring Q -45 KPX Aring T -95 KPX Aring Tcaron -95 KPX Aring Tcommaaccent -95 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -145 KPX Aring W -130 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring p -25 KPX Aring quoteright -74 KPX Aring u -50 KPX Aring uacute -50 KPX Aring ucircumflex -50 KPX Aring udieresis -50 KPX Aring ugrave -50 KPX Aring uhungarumlaut -50 KPX Aring umacron -50 KPX Aring uogonek -50 KPX Aring uring -50 KPX Aring v -100 KPX Aring w -90 KPX Aring y -74 KPX Aring yacute -74 KPX Aring ydieresis -74 KPX Atilde C -55 KPX Atilde Cacute -55 KPX Atilde Ccaron -55 KPX Atilde Ccedilla -55 KPX Atilde G -55 KPX Atilde Gbreve -55 KPX Atilde Gcommaaccent -55 KPX Atilde O -45 KPX Atilde Oacute -45 KPX Atilde Ocircumflex -45 KPX Atilde Odieresis -45 KPX Atilde Ograve -45 KPX Atilde Ohungarumlaut -45 KPX Atilde Omacron -45 KPX Atilde Oslash -45 KPX Atilde Otilde -45 KPX Atilde Q -45 KPX Atilde T -95 KPX Atilde Tcaron -95 KPX Atilde Tcommaaccent -95 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -145 KPX Atilde W -130 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde p -25 KPX Atilde quoteright -74 KPX Atilde u -50 KPX Atilde uacute -50 KPX Atilde ucircumflex -50 KPX Atilde udieresis -50 KPX Atilde ugrave -50 KPX Atilde uhungarumlaut -50 KPX Atilde umacron -50 KPX Atilde uogonek -50 KPX Atilde uring -50 KPX Atilde v -100 KPX Atilde w -90 KPX Atilde y -74 KPX Atilde yacute -74 KPX Atilde ydieresis -74 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -35 KPX D Aacute -35 KPX D Abreve -35 KPX D Acircumflex -35 KPX D Adieresis -35 KPX D Agrave -35 KPX D Amacron -35 KPX D Aogonek -35 KPX D Aring -35 KPX D Atilde -35 KPX D V -40 KPX D W -40 KPX D Y -40 KPX D Yacute -40 KPX D Ydieresis -40 KPX D period -20 KPX Dcaron A -35 KPX Dcaron Aacute -35 KPX Dcaron Abreve -35 KPX Dcaron Acircumflex -35 KPX Dcaron Adieresis -35 KPX Dcaron Agrave -35 KPX Dcaron Amacron -35 KPX Dcaron Aogonek -35 KPX Dcaron Aring -35 KPX Dcaron Atilde -35 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -40 KPX Dcaron Yacute -40 KPX Dcaron Ydieresis -40 KPX Dcaron period -20 KPX Dcroat A -35 KPX Dcroat Aacute -35 KPX Dcroat Abreve -35 KPX Dcroat Acircumflex -35 KPX Dcroat Adieresis -35 KPX Dcroat Agrave -35 KPX Dcroat Amacron -35 KPX Dcroat Aogonek -35 KPX Dcroat Aring -35 KPX Dcroat Atilde -35 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -40 KPX Dcroat Yacute -40 KPX Dcroat Ydieresis -40 KPX Dcroat period -20 KPX F A -90 KPX F Aacute -90 KPX F Abreve -90 KPX F Acircumflex -90 KPX F Adieresis -90 KPX F Agrave -90 KPX F Amacron -90 KPX F Aogonek -90 KPX F Aring -90 KPX F Atilde -90 KPX F a -25 KPX F aacute -25 KPX F abreve -25 KPX F acircumflex -25 KPX F adieresis -25 KPX F agrave -25 KPX F amacron -25 KPX F aogonek -25 KPX F aring -25 KPX F atilde -25 KPX F comma -92 KPX F e -25 KPX F eacute -25 KPX F ecaron -25 KPX F ecircumflex -25 KPX F edieresis -25 KPX F edotaccent -25 KPX F egrave -25 KPX F emacron -25 KPX F eogonek -25 KPX F o -25 KPX F oacute -25 KPX F ocircumflex -25 KPX F odieresis -25 KPX F ograve -25 KPX F ohungarumlaut -25 KPX F omacron -25 KPX F oslash -25 KPX F otilde -25 KPX F period -110 KPX J A -30 KPX J Aacute -30 KPX J Abreve -30 KPX J Acircumflex -30 KPX J Adieresis -30 KPX J Agrave -30 KPX J Amacron -30 KPX J Aogonek -30 KPX J Aring -30 KPX J Atilde -30 KPX J a -15 KPX J aacute -15 KPX J abreve -15 KPX J acircumflex -15 KPX J adieresis -15 KPX J agrave -15 KPX J amacron -15 KPX J aogonek -15 KPX J aring -15 KPX J atilde -15 KPX J e -15 KPX J eacute -15 KPX J ecaron -15 KPX J ecircumflex -15 KPX J edieresis -15 KPX J edotaccent -15 KPX J egrave -15 KPX J emacron -15 KPX J eogonek -15 KPX J o -15 KPX J oacute -15 KPX J ocircumflex -15 KPX J odieresis -15 KPX J ograve -15 KPX J ohungarumlaut -15 KPX J omacron -15 KPX J oslash -15 KPX J otilde -15 KPX J period -20 KPX J u -15 KPX J uacute -15 KPX J ucircumflex -15 KPX J udieresis -15 KPX J ugrave -15 KPX J uhungarumlaut -15 KPX J umacron -15 KPX J uogonek -15 KPX J uring -15 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -25 KPX K oacute -25 KPX K ocircumflex -25 KPX K odieresis -25 KPX K ograve -25 KPX K ohungarumlaut -25 KPX K omacron -25 KPX K oslash -25 KPX K otilde -25 KPX K u -15 KPX K uacute -15 KPX K ucircumflex -15 KPX K udieresis -15 KPX K ugrave -15 KPX K uhungarumlaut -15 KPX K umacron -15 KPX K uogonek -15 KPX K uring -15 KPX K y -45 KPX K yacute -45 KPX K ydieresis -45 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -25 KPX Kcommaaccent oacute -25 KPX Kcommaaccent ocircumflex -25 KPX Kcommaaccent odieresis -25 KPX Kcommaaccent ograve -25 KPX Kcommaaccent ohungarumlaut -25 KPX Kcommaaccent omacron -25 KPX Kcommaaccent oslash -25 KPX Kcommaaccent otilde -25 KPX Kcommaaccent u -15 KPX Kcommaaccent uacute -15 KPX Kcommaaccent ucircumflex -15 KPX Kcommaaccent udieresis -15 KPX Kcommaaccent ugrave -15 KPX Kcommaaccent uhungarumlaut -15 KPX Kcommaaccent umacron -15 KPX Kcommaaccent uogonek -15 KPX Kcommaaccent uring -15 KPX Kcommaaccent y -45 KPX Kcommaaccent yacute -45 KPX Kcommaaccent ydieresis -45 KPX L T -92 KPX L Tcaron -92 KPX L Tcommaaccent -92 KPX L V -92 KPX L W -92 KPX L Y -92 KPX L Yacute -92 KPX L Ydieresis -92 KPX L quotedblright -20 KPX L quoteright -110 KPX L y -55 KPX L yacute -55 KPX L ydieresis -55 KPX Lacute T -92 KPX Lacute Tcaron -92 KPX Lacute Tcommaaccent -92 KPX Lacute V -92 KPX Lacute W -92 KPX Lacute Y -92 KPX Lacute Yacute -92 KPX Lacute Ydieresis -92 KPX Lacute quotedblright -20 KPX Lacute quoteright -110 KPX Lacute y -55 KPX Lacute yacute -55 KPX Lacute ydieresis -55 KPX Lcommaaccent T -92 KPX Lcommaaccent Tcaron -92 KPX Lcommaaccent Tcommaaccent -92 KPX Lcommaaccent V -92 KPX Lcommaaccent W -92 KPX Lcommaaccent Y -92 KPX Lcommaaccent Yacute -92 KPX Lcommaaccent Ydieresis -92 KPX Lcommaaccent quotedblright -20 KPX Lcommaaccent quoteright -110 KPX Lcommaaccent y -55 KPX Lcommaaccent yacute -55 KPX Lcommaaccent ydieresis -55 KPX Lslash T -92 KPX Lslash Tcaron -92 KPX Lslash Tcommaaccent -92 KPX Lslash V -92 KPX Lslash W -92 KPX Lslash Y -92 KPX Lslash Yacute -92 KPX Lslash Ydieresis -92 KPX Lslash quotedblright -20 KPX Lslash quoteright -110 KPX Lslash y -55 KPX Lslash yacute -55 KPX Lslash ydieresis -55 KPX N A -20 KPX N Aacute -20 KPX N Abreve -20 KPX N Acircumflex -20 KPX N Adieresis -20 KPX N Agrave -20 KPX N Amacron -20 KPX N Aogonek -20 KPX N Aring -20 KPX N Atilde -20 KPX Nacute A -20 KPX Nacute Aacute -20 KPX Nacute Abreve -20 KPX Nacute Acircumflex -20 KPX Nacute Adieresis -20 KPX Nacute Agrave -20 KPX Nacute Amacron -20 KPX Nacute Aogonek -20 KPX Nacute Aring -20 KPX Nacute Atilde -20 KPX Ncaron A -20 KPX Ncaron Aacute -20 KPX Ncaron Abreve -20 KPX Ncaron Acircumflex -20 KPX Ncaron Adieresis -20 KPX Ncaron Agrave -20 KPX Ncaron Amacron -20 KPX Ncaron Aogonek -20 KPX Ncaron Aring -20 KPX Ncaron Atilde -20 KPX Ncommaaccent A -20 KPX Ncommaaccent Aacute -20 KPX Ncommaaccent Abreve -20 KPX Ncommaaccent Acircumflex -20 KPX Ncommaaccent Adieresis -20 KPX Ncommaaccent Agrave -20 KPX Ncommaaccent Amacron -20 KPX Ncommaaccent Aogonek -20 KPX Ncommaaccent Aring -20 KPX Ncommaaccent Atilde -20 KPX Ntilde A -20 KPX Ntilde Aacute -20 KPX Ntilde Abreve -20 KPX Ntilde Acircumflex -20 KPX Ntilde Adieresis -20 KPX Ntilde Agrave -20 KPX Ntilde Amacron -20 KPX Ntilde Aogonek -20 KPX Ntilde Aring -20 KPX Ntilde Atilde -20 KPX O A -40 KPX O Aacute -40 KPX O Abreve -40 KPX O Acircumflex -40 KPX O Adieresis -40 KPX O Agrave -40 KPX O Amacron -40 KPX O Aogonek -40 KPX O Aring -40 KPX O Atilde -40 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -40 KPX Oacute Aacute -40 KPX Oacute Abreve -40 KPX Oacute Acircumflex -40 KPX Oacute Adieresis -40 KPX Oacute Agrave -40 KPX Oacute Amacron -40 KPX Oacute Aogonek -40 KPX Oacute Aring -40 KPX Oacute Atilde -40 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -40 KPX Ocircumflex Aacute -40 KPX Ocircumflex Abreve -40 KPX Ocircumflex Acircumflex -40 KPX Ocircumflex Adieresis -40 KPX Ocircumflex Agrave -40 KPX Ocircumflex Amacron -40 KPX Ocircumflex Aogonek -40 KPX Ocircumflex Aring -40 KPX Ocircumflex Atilde -40 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -40 KPX Odieresis Aacute -40 KPX Odieresis Abreve -40 KPX Odieresis Acircumflex -40 KPX Odieresis Adieresis -40 KPX Odieresis Agrave -40 KPX Odieresis Amacron -40 KPX Odieresis Aogonek -40 KPX Odieresis Aring -40 KPX Odieresis Atilde -40 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -40 KPX Ograve Aacute -40 KPX Ograve Abreve -40 KPX Ograve Acircumflex -40 KPX Ograve Adieresis -40 KPX Ograve Agrave -40 KPX Ograve Amacron -40 KPX Ograve Aogonek -40 KPX Ograve Aring -40 KPX Ograve Atilde -40 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -40 KPX Ohungarumlaut Aacute -40 KPX Ohungarumlaut Abreve -40 KPX Ohungarumlaut Acircumflex -40 KPX Ohungarumlaut Adieresis -40 KPX Ohungarumlaut Agrave -40 KPX Ohungarumlaut Amacron -40 KPX Ohungarumlaut Aogonek -40 KPX Ohungarumlaut Aring -40 KPX Ohungarumlaut Atilde -40 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -40 KPX Omacron Aacute -40 KPX Omacron Abreve -40 KPX Omacron Acircumflex -40 KPX Omacron Adieresis -40 KPX Omacron Agrave -40 KPX Omacron Amacron -40 KPX Omacron Aogonek -40 KPX Omacron Aring -40 KPX Omacron Atilde -40 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -40 KPX Oslash Aacute -40 KPX Oslash Abreve -40 KPX Oslash Acircumflex -40 KPX Oslash Adieresis -40 KPX Oslash Agrave -40 KPX Oslash Amacron -40 KPX Oslash Aogonek -40 KPX Oslash Aring -40 KPX Oslash Atilde -40 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -40 KPX Otilde Aacute -40 KPX Otilde Abreve -40 KPX Otilde Acircumflex -40 KPX Otilde Adieresis -40 KPX Otilde Agrave -40 KPX Otilde Amacron -40 KPX Otilde Aogonek -40 KPX Otilde Aring -40 KPX Otilde Atilde -40 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P a -10 KPX P aacute -10 KPX P abreve -10 KPX P acircumflex -10 KPX P adieresis -10 KPX P agrave -10 KPX P amacron -10 KPX P aogonek -10 KPX P aring -10 KPX P atilde -10 KPX P comma -92 KPX P e -20 KPX P eacute -20 KPX P ecaron -20 KPX P ecircumflex -20 KPX P edieresis -20 KPX P edotaccent -20 KPX P egrave -20 KPX P emacron -20 KPX P eogonek -20 KPX P o -20 KPX P oacute -20 KPX P ocircumflex -20 KPX P odieresis -20 KPX P ograve -20 KPX P ohungarumlaut -20 KPX P omacron -20 KPX P oslash -20 KPX P otilde -20 KPX P period -110 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q period -20 KPX R O -30 KPX R Oacute -30 KPX R Ocircumflex -30 KPX R Odieresis -30 KPX R Ograve -30 KPX R Ohungarumlaut -30 KPX R Omacron -30 KPX R Oslash -30 KPX R Otilde -30 KPX R T -40 KPX R Tcaron -40 KPX R Tcommaaccent -40 KPX R U -30 KPX R Uacute -30 KPX R Ucircumflex -30 KPX R Udieresis -30 KPX R Ugrave -30 KPX R Uhungarumlaut -30 KPX R Umacron -30 KPX R Uogonek -30 KPX R Uring -30 KPX R V -55 KPX R W -35 KPX R Y -35 KPX R Yacute -35 KPX R Ydieresis -35 KPX Racute O -30 KPX Racute Oacute -30 KPX Racute Ocircumflex -30 KPX Racute Odieresis -30 KPX Racute Ograve -30 KPX Racute Ohungarumlaut -30 KPX Racute Omacron -30 KPX Racute Oslash -30 KPX Racute Otilde -30 KPX Racute T -40 KPX Racute Tcaron -40 KPX Racute Tcommaaccent -40 KPX Racute U -30 KPX Racute Uacute -30 KPX Racute Ucircumflex -30 KPX Racute Udieresis -30 KPX Racute Ugrave -30 KPX Racute Uhungarumlaut -30 KPX Racute Umacron -30 KPX Racute Uogonek -30 KPX Racute Uring -30 KPX Racute V -55 KPX Racute W -35 KPX Racute Y -35 KPX Racute Yacute -35 KPX Racute Ydieresis -35 KPX Rcaron O -30 KPX Rcaron Oacute -30 KPX Rcaron Ocircumflex -30 KPX Rcaron Odieresis -30 KPX Rcaron Ograve -30 KPX Rcaron Ohungarumlaut -30 KPX Rcaron Omacron -30 KPX Rcaron Oslash -30 KPX Rcaron Otilde -30 KPX Rcaron T -40 KPX Rcaron Tcaron -40 KPX Rcaron Tcommaaccent -40 KPX Rcaron U -30 KPX Rcaron Uacute -30 KPX Rcaron Ucircumflex -30 KPX Rcaron Udieresis -30 KPX Rcaron Ugrave -30 KPX Rcaron Uhungarumlaut -30 KPX Rcaron Umacron -30 KPX Rcaron Uogonek -30 KPX Rcaron Uring -30 KPX Rcaron V -55 KPX Rcaron W -35 KPX Rcaron Y -35 KPX Rcaron Yacute -35 KPX Rcaron Ydieresis -35 KPX Rcommaaccent O -30 KPX Rcommaaccent Oacute -30 KPX Rcommaaccent Ocircumflex -30 KPX Rcommaaccent Odieresis -30 KPX Rcommaaccent Ograve -30 KPX Rcommaaccent Ohungarumlaut -30 KPX Rcommaaccent Omacron -30 KPX Rcommaaccent Oslash -30 KPX Rcommaaccent Otilde -30 KPX Rcommaaccent T -40 KPX Rcommaaccent Tcaron -40 KPX Rcommaaccent Tcommaaccent -40 KPX Rcommaaccent U -30 KPX Rcommaaccent Uacute -30 KPX Rcommaaccent Ucircumflex -30 KPX Rcommaaccent Udieresis -30 KPX Rcommaaccent Ugrave -30 KPX Rcommaaccent Uhungarumlaut -30 KPX Rcommaaccent Umacron -30 KPX Rcommaaccent Uogonek -30 KPX Rcommaaccent Uring -30 KPX Rcommaaccent V -55 KPX Rcommaaccent W -35 KPX Rcommaaccent Y -35 KPX Rcommaaccent Yacute -35 KPX Rcommaaccent Ydieresis -35 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -52 KPX T acircumflex -52 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -92 KPX T aring -92 KPX T atilde -52 KPX T colon -74 KPX T comma -74 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -92 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -92 KPX T i -18 KPX T iacute -18 KPX T iogonek -18 KPX T o -92 KPX T oacute -92 KPX T ocircumflex -92 KPX T odieresis -92 KPX T ograve -92 KPX T ohungarumlaut -92 KPX T omacron -92 KPX T oslash -92 KPX T otilde -92 KPX T period -90 KPX T r -74 KPX T racute -74 KPX T rcaron -74 KPX T rcommaaccent -74 KPX T semicolon -74 KPX T u -92 KPX T uacute -92 KPX T ucircumflex -92 KPX T udieresis -92 KPX T ugrave -92 KPX T uhungarumlaut -92 KPX T umacron -92 KPX T uogonek -92 KPX T uring -92 KPX T w -74 KPX T y -34 KPX T yacute -34 KPX T ydieresis -34 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -52 KPX Tcaron acircumflex -52 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -52 KPX Tcaron colon -74 KPX Tcaron comma -74 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -92 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -92 KPX Tcaron i -18 KPX Tcaron iacute -18 KPX Tcaron iogonek -18 KPX Tcaron o -92 KPX Tcaron oacute -92 KPX Tcaron ocircumflex -92 KPX Tcaron odieresis -92 KPX Tcaron ograve -92 KPX Tcaron ohungarumlaut -92 KPX Tcaron omacron -92 KPX Tcaron oslash -92 KPX Tcaron otilde -92 KPX Tcaron period -90 KPX Tcaron r -74 KPX Tcaron racute -74 KPX Tcaron rcaron -74 KPX Tcaron rcommaaccent -74 KPX Tcaron semicolon -74 KPX Tcaron u -92 KPX Tcaron uacute -92 KPX Tcaron ucircumflex -92 KPX Tcaron udieresis -92 KPX Tcaron ugrave -92 KPX Tcaron uhungarumlaut -92 KPX Tcaron umacron -92 KPX Tcaron uogonek -92 KPX Tcaron uring -92 KPX Tcaron w -74 KPX Tcaron y -34 KPX Tcaron yacute -34 KPX Tcaron ydieresis -34 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -52 KPX Tcommaaccent acircumflex -52 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -52 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -92 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -18 KPX Tcommaaccent iacute -18 KPX Tcommaaccent iogonek -18 KPX Tcommaaccent o -92 KPX Tcommaaccent oacute -92 KPX Tcommaaccent ocircumflex -92 KPX Tcommaaccent odieresis -92 KPX Tcommaaccent ograve -92 KPX Tcommaaccent ohungarumlaut -92 KPX Tcommaaccent omacron -92 KPX Tcommaaccent oslash -92 KPX Tcommaaccent otilde -92 KPX Tcommaaccent period -90 KPX Tcommaaccent r -74 KPX Tcommaaccent racute -74 KPX Tcommaaccent rcaron -74 KPX Tcommaaccent rcommaaccent -74 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -92 KPX Tcommaaccent uacute -92 KPX Tcommaaccent ucircumflex -92 KPX Tcommaaccent udieresis -92 KPX Tcommaaccent ugrave -92 KPX Tcommaaccent uhungarumlaut -92 KPX Tcommaaccent umacron -92 KPX Tcommaaccent uogonek -92 KPX Tcommaaccent uring -92 KPX Tcommaaccent w -74 KPX Tcommaaccent y -34 KPX Tcommaaccent yacute -34 KPX Tcommaaccent ydieresis -34 KPX U A -60 KPX U Aacute -60 KPX U Abreve -60 KPX U Acircumflex -60 KPX U Adieresis -60 KPX U Agrave -60 KPX U Amacron -60 KPX U Aogonek -60 KPX U Aring -60 KPX U Atilde -60 KPX U comma -50 KPX U period -50 KPX Uacute A -60 KPX Uacute Aacute -60 KPX Uacute Abreve -60 KPX Uacute Acircumflex -60 KPX Uacute Adieresis -60 KPX Uacute Agrave -60 KPX Uacute Amacron -60 KPX Uacute Aogonek -60 KPX Uacute Aring -60 KPX Uacute Atilde -60 KPX Uacute comma -50 KPX Uacute period -50 KPX Ucircumflex A -60 KPX Ucircumflex Aacute -60 KPX Ucircumflex Abreve -60 KPX Ucircumflex Acircumflex -60 KPX Ucircumflex Adieresis -60 KPX Ucircumflex Agrave -60 KPX Ucircumflex Amacron -60 KPX Ucircumflex Aogonek -60 KPX Ucircumflex Aring -60 KPX Ucircumflex Atilde -60 KPX Ucircumflex comma -50 KPX Ucircumflex period -50 KPX Udieresis A -60 KPX Udieresis Aacute -60 KPX Udieresis Abreve -60 KPX Udieresis Acircumflex -60 KPX Udieresis Adieresis -60 KPX Udieresis Agrave -60 KPX Udieresis Amacron -60 KPX Udieresis Aogonek -60 KPX Udieresis Aring -60 KPX Udieresis Atilde -60 KPX Udieresis comma -50 KPX Udieresis period -50 KPX Ugrave A -60 KPX Ugrave Aacute -60 KPX Ugrave Abreve -60 KPX Ugrave Acircumflex -60 KPX Ugrave Adieresis -60 KPX Ugrave Agrave -60 KPX Ugrave Amacron -60 KPX Ugrave Aogonek -60 KPX Ugrave Aring -60 KPX Ugrave Atilde -60 KPX Ugrave comma -50 KPX Ugrave period -50 KPX Uhungarumlaut A -60 KPX Uhungarumlaut Aacute -60 KPX Uhungarumlaut Abreve -60 KPX Uhungarumlaut Acircumflex -60 KPX Uhungarumlaut Adieresis -60 KPX Uhungarumlaut Agrave -60 KPX Uhungarumlaut Amacron -60 KPX Uhungarumlaut Aogonek -60 KPX Uhungarumlaut Aring -60 KPX Uhungarumlaut Atilde -60 KPX Uhungarumlaut comma -50 KPX Uhungarumlaut period -50 KPX Umacron A -60 KPX Umacron Aacute -60 KPX Umacron Abreve -60 KPX Umacron Acircumflex -60 KPX Umacron Adieresis -60 KPX Umacron Agrave -60 KPX Umacron Amacron -60 KPX Umacron Aogonek -60 KPX Umacron Aring -60 KPX Umacron Atilde -60 KPX Umacron comma -50 KPX Umacron period -50 KPX Uogonek A -60 KPX Uogonek Aacute -60 KPX Uogonek Abreve -60 KPX Uogonek Acircumflex -60 KPX Uogonek Adieresis -60 KPX Uogonek Agrave -60 KPX Uogonek Amacron -60 KPX Uogonek Aogonek -60 KPX Uogonek Aring -60 KPX Uogonek Atilde -60 KPX Uogonek comma -50 KPX Uogonek period -50 KPX Uring A -60 KPX Uring Aacute -60 KPX Uring Abreve -60 KPX Uring Acircumflex -60 KPX Uring Adieresis -60 KPX Uring Agrave -60 KPX Uring Amacron -60 KPX Uring Aogonek -60 KPX Uring Aring -60 KPX Uring Atilde -60 KPX Uring comma -50 KPX Uring period -50 KPX V A -135 KPX V Aacute -135 KPX V Abreve -135 KPX V Acircumflex -135 KPX V Adieresis -135 KPX V Agrave -135 KPX V Amacron -135 KPX V Aogonek -135 KPX V Aring -135 KPX V Atilde -135 KPX V G -30 KPX V Gbreve -30 KPX V Gcommaaccent -30 KPX V O -45 KPX V Oacute -45 KPX V Ocircumflex -45 KPX V Odieresis -45 KPX V Ograve -45 KPX V Ohungarumlaut -45 KPX V Omacron -45 KPX V Oslash -45 KPX V Otilde -45 KPX V a -92 KPX V aacute -92 KPX V abreve -92 KPX V acircumflex -92 KPX V adieresis -92 KPX V agrave -92 KPX V amacron -92 KPX V aogonek -92 KPX V aring -92 KPX V atilde -92 KPX V colon -92 KPX V comma -129 KPX V e -100 KPX V eacute -100 KPX V ecaron -100 KPX V ecircumflex -100 KPX V edieresis -100 KPX V edotaccent -100 KPX V egrave -100 KPX V emacron -100 KPX V eogonek -100 KPX V hyphen -74 KPX V i -37 KPX V iacute -37 KPX V icircumflex -37 KPX V idieresis -37 KPX V igrave -37 KPX V imacron -37 KPX V iogonek -37 KPX V o -100 KPX V oacute -100 KPX V ocircumflex -100 KPX V odieresis -100 KPX V ograve -100 KPX V ohungarumlaut -100 KPX V omacron -100 KPX V oslash -100 KPX V otilde -100 KPX V period -145 KPX V semicolon -92 KPX V u -92 KPX V uacute -92 KPX V ucircumflex -92 KPX V udieresis -92 KPX V ugrave -92 KPX V uhungarumlaut -92 KPX V umacron -92 KPX V uogonek -92 KPX V uring -92 KPX W A -120 KPX W Aacute -120 KPX W Abreve -120 KPX W Acircumflex -120 KPX W Adieresis -120 KPX W Agrave -120 KPX W Amacron -120 KPX W Aogonek -120 KPX W Aring -120 KPX W Atilde -120 KPX W O -10 KPX W Oacute -10 KPX W Ocircumflex -10 KPX W Odieresis -10 KPX W Ograve -10 KPX W Ohungarumlaut -10 KPX W Omacron -10 KPX W Oslash -10 KPX W Otilde -10 KPX W a -65 KPX W aacute -65 KPX W abreve -65 KPX W acircumflex -65 KPX W adieresis -65 KPX W agrave -65 KPX W amacron -65 KPX W aogonek -65 KPX W aring -65 KPX W atilde -65 KPX W colon -55 KPX W comma -92 KPX W e -65 KPX W eacute -65 KPX W ecaron -65 KPX W ecircumflex -65 KPX W edieresis -65 KPX W edotaccent -65 KPX W egrave -65 KPX W emacron -65 KPX W eogonek -65 KPX W hyphen -37 KPX W i -18 KPX W iacute -18 KPX W iogonek -18 KPX W o -75 KPX W oacute -75 KPX W ocircumflex -75 KPX W odieresis -75 KPX W ograve -75 KPX W ohungarumlaut -75 KPX W omacron -75 KPX W oslash -75 KPX W otilde -75 KPX W period -92 KPX W semicolon -55 KPX W u -50 KPX W uacute -50 KPX W ucircumflex -50 KPX W udieresis -50 KPX W ugrave -50 KPX W uhungarumlaut -50 KPX W umacron -50 KPX W uogonek -50 KPX W uring -50 KPX W y -60 KPX W yacute -60 KPX W ydieresis -60 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -35 KPX Y Oacute -35 KPX Y Ocircumflex -35 KPX Y Odieresis -35 KPX Y Ograve -35 KPX Y Ohungarumlaut -35 KPX Y Omacron -35 KPX Y Oslash -35 KPX Y Otilde -35 KPX Y a -85 KPX Y aacute -85 KPX Y abreve -85 KPX Y acircumflex -85 KPX Y adieresis -85 KPX Y agrave -85 KPX Y amacron -85 KPX Y aogonek -85 KPX Y aring -85 KPX Y atilde -85 KPX Y colon -92 KPX Y comma -92 KPX Y e -111 KPX Y eacute -111 KPX Y ecaron -111 KPX Y ecircumflex -111 KPX Y edieresis -71 KPX Y edotaccent -111 KPX Y egrave -71 KPX Y emacron -71 KPX Y eogonek -111 KPX Y hyphen -92 KPX Y i -37 KPX Y iacute -37 KPX Y iogonek -37 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y period -92 KPX Y semicolon -92 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -35 KPX Yacute Oacute -35 KPX Yacute Ocircumflex -35 KPX Yacute Odieresis -35 KPX Yacute Ograve -35 KPX Yacute Ohungarumlaut -35 KPX Yacute Omacron -35 KPX Yacute Oslash -35 KPX Yacute Otilde -35 KPX Yacute a -85 KPX Yacute aacute -85 KPX Yacute abreve -85 KPX Yacute acircumflex -85 KPX Yacute adieresis -85 KPX Yacute agrave -85 KPX Yacute amacron -85 KPX Yacute aogonek -85 KPX Yacute aring -85 KPX Yacute atilde -85 KPX Yacute colon -92 KPX Yacute comma -92 KPX Yacute e -111 KPX Yacute eacute -111 KPX Yacute ecaron -111 KPX Yacute ecircumflex -111 KPX Yacute edieresis -71 KPX Yacute edotaccent -111 KPX Yacute egrave -71 KPX Yacute emacron -71 KPX Yacute eogonek -111 KPX Yacute hyphen -92 KPX Yacute i -37 KPX Yacute iacute -37 KPX Yacute iogonek -37 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute period -92 KPX Yacute semicolon -92 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -35 KPX Ydieresis Oacute -35 KPX Ydieresis Ocircumflex -35 KPX Ydieresis Odieresis -35 KPX Ydieresis Ograve -35 KPX Ydieresis Ohungarumlaut -35 KPX Ydieresis Omacron -35 KPX Ydieresis Oslash -35 KPX Ydieresis Otilde -35 KPX Ydieresis a -85 KPX Ydieresis aacute -85 KPX Ydieresis abreve -85 KPX Ydieresis acircumflex -85 KPX Ydieresis adieresis -85 KPX Ydieresis agrave -85 KPX Ydieresis amacron -85 KPX Ydieresis aogonek -85 KPX Ydieresis aring -85 KPX Ydieresis atilde -85 KPX Ydieresis colon -92 KPX Ydieresis comma -92 KPX Ydieresis e -111 KPX Ydieresis eacute -111 KPX Ydieresis ecaron -111 KPX Ydieresis ecircumflex -111 KPX Ydieresis edieresis -71 KPX Ydieresis edotaccent -111 KPX Ydieresis egrave -71 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -111 KPX Ydieresis hyphen -92 KPX Ydieresis i -37 KPX Ydieresis iacute -37 KPX Ydieresis iogonek -37 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis period -92 KPX Ydieresis semicolon -92 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX a v -25 KPX aacute v -25 KPX abreve v -25 KPX acircumflex v -25 KPX adieresis v -25 KPX agrave v -25 KPX amacron v -25 KPX aogonek v -25 KPX aring v -25 KPX atilde v -25 KPX b b -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -15 KPX comma quotedblright -45 KPX comma quoteright -55 KPX d w -15 KPX dcroat w -15 KPX e v -15 KPX eacute v -15 KPX ecaron v -15 KPX ecircumflex v -15 KPX edieresis v -15 KPX edotaccent v -15 KPX egrave v -15 KPX emacron v -15 KPX eogonek v -15 KPX f comma -15 KPX f dotlessi -35 KPX f i -25 KPX f o -25 KPX f oacute -25 KPX f ocircumflex -25 KPX f odieresis -25 KPX f ograve -25 KPX f ohungarumlaut -25 KPX f omacron -25 KPX f oslash -25 KPX f otilde -25 KPX f period -15 KPX f quotedblright 50 KPX f quoteright 55 KPX g period -15 KPX gbreve period -15 KPX gcommaaccent period -15 KPX h y -15 KPX h yacute -15 KPX h ydieresis -15 KPX i v -10 KPX iacute v -10 KPX icircumflex v -10 KPX idieresis v -10 KPX igrave v -10 KPX imacron v -10 KPX iogonek v -10 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX k y -15 KPX k yacute -15 KPX k ydieresis -15 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX kcommaaccent y -15 KPX kcommaaccent yacute -15 KPX kcommaaccent ydieresis -15 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o v -10 KPX o w -10 KPX oacute v -10 KPX oacute w -10 KPX ocircumflex v -10 KPX ocircumflex w -10 KPX odieresis v -10 KPX odieresis w -10 KPX ograve v -10 KPX ograve w -10 KPX ohungarumlaut v -10 KPX ohungarumlaut w -10 KPX omacron v -10 KPX omacron w -10 KPX oslash v -10 KPX oslash w -10 KPX otilde v -10 KPX otilde w -10 KPX period quotedblright -55 KPX period quoteright -55 KPX quotedblleft A -10 KPX quotedblleft Aacute -10 KPX quotedblleft Abreve -10 KPX quotedblleft Acircumflex -10 KPX quotedblleft Adieresis -10 KPX quotedblleft Agrave -10 KPX quotedblleft Amacron -10 KPX quotedblleft Aogonek -10 KPX quotedblleft Aring -10 KPX quotedblleft Atilde -10 KPX quoteleft A -10 KPX quoteleft Aacute -10 KPX quoteleft Abreve -10 KPX quoteleft Acircumflex -10 KPX quoteleft Adieresis -10 KPX quoteleft Agrave -10 KPX quoteleft Amacron -10 KPX quoteleft Aogonek -10 KPX quoteleft Aring -10 KPX quoteleft Atilde -10 KPX quoteleft quoteleft -63 KPX quoteright d -20 KPX quoteright dcroat -20 KPX quoteright quoteright -63 KPX quoteright r -20 KPX quoteright racute -20 KPX quoteright rcaron -20 KPX quoteright rcommaaccent -20 KPX quoteright s -37 KPX quoteright sacute -37 KPX quoteright scaron -37 KPX quoteright scedilla -37 KPX quoteright scommaaccent -37 KPX quoteright space -74 KPX quoteright v -20 KPX r c -18 KPX r cacute -18 KPX r ccaron -18 KPX r ccedilla -18 KPX r comma -92 KPX r e -18 KPX r eacute -18 KPX r ecaron -18 KPX r ecircumflex -18 KPX r edieresis -18 KPX r edotaccent -18 KPX r egrave -18 KPX r emacron -18 KPX r eogonek -18 KPX r g -10 KPX r gbreve -10 KPX r gcommaaccent -10 KPX r hyphen -37 KPX r n -15 KPX r nacute -15 KPX r ncaron -15 KPX r ncommaaccent -15 KPX r ntilde -15 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r p -10 KPX r period -100 KPX r q -18 KPX r v -10 KPX racute c -18 KPX racute cacute -18 KPX racute ccaron -18 KPX racute ccedilla -18 KPX racute comma -92 KPX racute e -18 KPX racute eacute -18 KPX racute ecaron -18 KPX racute ecircumflex -18 KPX racute edieresis -18 KPX racute edotaccent -18 KPX racute egrave -18 KPX racute emacron -18 KPX racute eogonek -18 KPX racute g -10 KPX racute gbreve -10 KPX racute gcommaaccent -10 KPX racute hyphen -37 KPX racute n -15 KPX racute nacute -15 KPX racute ncaron -15 KPX racute ncommaaccent -15 KPX racute ntilde -15 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute p -10 KPX racute period -100 KPX racute q -18 KPX racute v -10 KPX rcaron c -18 KPX rcaron cacute -18 KPX rcaron ccaron -18 KPX rcaron ccedilla -18 KPX rcaron comma -92 KPX rcaron e -18 KPX rcaron eacute -18 KPX rcaron ecaron -18 KPX rcaron ecircumflex -18 KPX rcaron edieresis -18 KPX rcaron edotaccent -18 KPX rcaron egrave -18 KPX rcaron emacron -18 KPX rcaron eogonek -18 KPX rcaron g -10 KPX rcaron gbreve -10 KPX rcaron gcommaaccent -10 KPX rcaron hyphen -37 KPX rcaron n -15 KPX rcaron nacute -15 KPX rcaron ncaron -15 KPX rcaron ncommaaccent -15 KPX rcaron ntilde -15 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron p -10 KPX rcaron period -100 KPX rcaron q -18 KPX rcaron v -10 KPX rcommaaccent c -18 KPX rcommaaccent cacute -18 KPX rcommaaccent ccaron -18 KPX rcommaaccent ccedilla -18 KPX rcommaaccent comma -92 KPX rcommaaccent e -18 KPX rcommaaccent eacute -18 KPX rcommaaccent ecaron -18 KPX rcommaaccent ecircumflex -18 KPX rcommaaccent edieresis -18 KPX rcommaaccent edotaccent -18 KPX rcommaaccent egrave -18 KPX rcommaaccent emacron -18 KPX rcommaaccent eogonek -18 KPX rcommaaccent g -10 KPX rcommaaccent gbreve -10 KPX rcommaaccent gcommaaccent -10 KPX rcommaaccent hyphen -37 KPX rcommaaccent n -15 KPX rcommaaccent nacute -15 KPX rcommaaccent ncaron -15 KPX rcommaaccent ncommaaccent -15 KPX rcommaaccent ntilde -15 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent p -10 KPX rcommaaccent period -100 KPX rcommaaccent q -18 KPX rcommaaccent v -10 KPX space A -55 KPX space Aacute -55 KPX space Abreve -55 KPX space Acircumflex -55 KPX space Adieresis -55 KPX space Agrave -55 KPX space Amacron -55 KPX space Aogonek -55 KPX space Aring -55 KPX space Atilde -55 KPX space T -30 KPX space Tcaron -30 KPX space Tcommaaccent -30 KPX space V -45 KPX space W -30 KPX space Y -55 KPX space Yacute -55 KPX space Ydieresis -55 KPX v a -10 KPX v aacute -10 KPX v abreve -10 KPX v acircumflex -10 KPX v adieresis -10 KPX v agrave -10 KPX v amacron -10 KPX v aogonek -10 KPX v aring -10 KPX v atilde -10 KPX v comma -55 KPX v e -10 KPX v eacute -10 KPX v ecaron -10 KPX v ecircumflex -10 KPX v edieresis -10 KPX v edotaccent -10 KPX v egrave -10 KPX v emacron -10 KPX v eogonek -10 KPX v o -10 KPX v oacute -10 KPX v ocircumflex -10 KPX v odieresis -10 KPX v ograve -10 KPX v ohungarumlaut -10 KPX v omacron -10 KPX v oslash -10 KPX v otilde -10 KPX v period -70 KPX w comma -55 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -70 KPX y comma -55 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -70 KPX yacute comma -55 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -70 KPX ydieresis comma -55 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -70 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/Times-BoldItalic.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:04:06 1997 Comment UniqueID 43066 Comment VMusage 45874 56899 FontName Times-BoldItalic FullName Times Bold Italic FamilyName Times Weight Bold ItalicAngle -15 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -200 -218 996 921 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 669 XHeight 462 Ascender 683 Descender -217 StdHW 42 StdVW 121 StartCharMetrics 315 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ; C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ; C 49 ; WX 500 ; N one ; B 5 0 419 683 ; C 50 ; WX 500 ; N two ; B -27 0 446 683 ; C 51 ; WX 500 ; N three ; B -15 -13 450 683 ; C 52 ; WX 500 ; N four ; B -15 0 503 683 ; C 53 ; WX 500 ; N five ; B -11 -13 487 669 ; C 54 ; WX 500 ; N six ; B 23 -15 509 679 ; C 55 ; WX 500 ; N seven ; B 52 0 525 669 ; C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ; C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ; C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; C 65 ; WX 667 ; N A ; B -67 0 593 683 ; C 66 ; WX 667 ; N B ; B -24 0 624 669 ; C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; C 68 ; WX 722 ; N D ; B -46 0 685 669 ; C 69 ; WX 667 ; N E ; B -27 0 653 669 ; C 70 ; WX 667 ; N F ; B -13 0 660 669 ; C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; C 72 ; WX 778 ; N H ; B -24 0 799 669 ; C 73 ; WX 389 ; N I ; B -32 0 406 669 ; C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; C 75 ; WX 667 ; N K ; B -21 0 702 669 ; C 76 ; WX 611 ; N L ; B -22 0 590 669 ; C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; C 80 ; WX 611 ; N P ; B -27 0 613 669 ; C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; C 82 ; WX 667 ; N R ; B -29 0 623 669 ; C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; C 84 ; WX 611 ; N T ; B 50 0 650 669 ; C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; C 88 ; WX 667 ; N X ; B -24 0 694 669 ; C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; C 105 ; WX 278 ; N i ; B 2 -9 263 684 ; C 106 ; WX 278 ; N j ; B -189 -207 279 684 ; C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; C 114 ; WX 389 ; N r ; B -21 0 389 462 ; C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ; C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ; C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ; C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ; C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; C 168 ; WX 500 ; N currency ; B -26 34 526 586 ; C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ; C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ; C 177 ; WX 500 ; N endash ; B -40 178 477 269 ; C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ; C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ; C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; C 193 ; WX 333 ; N grave ; B 85 516 297 697 ; C 194 ; WX 333 ; N acute ; B 139 516 379 697 ; C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ; C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ; C 197 ; WX 333 ; N macron ; B 51 553 393 623 ; C 198 ; WX 333 ; N breve ; B 71 516 387 678 ; C 199 ; WX 333 ; N dotaccent ; B 163 550 298 684 ; C 200 ; WX 333 ; N dieresis ; B 55 550 402 684 ; C 202 ; WX 333 ; N ring ; B 127 516 340 729 ; C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; C 206 ; WX 333 ; N ogonek ; B 15 -183 244 34 ; C 207 ; WX 333 ; N caron ; B 79 516 411 690 ; C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ; C 225 ; WX 944 ; N AE ; B -64 0 918 669 ; C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ; C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ; C 235 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ; C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ; C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; C 248 ; WX 278 ; N lslash ; B -7 -9 307 699 ; C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ; C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ; C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; C -1 ; WX 389 ; N Idieresis ; B -32 0 450 862 ; C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; C -1 ; WX 500 ; N abreve ; B -21 -14 471 678 ; C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ; C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ; C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; C -1 ; WX 389 ; N scommaaccent ; B -19 -218 333 462 ; C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; C -1 ; WX 722 ; N Uring ; B 67 -18 744 921 ; C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; C -1 ; WX 500 ; N aogonek ; B -21 -183 455 462 ; C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; C -1 ; WX 556 ; N uogonek ; B 15 -183 492 462 ; C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ; C -1 ; WX 250 ; N commaaccent ; B -36 -218 131 -50 ; C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; C -1 ; WX 667 ; N Emacron ; B -27 0 653 830 ; C -1 ; WX 444 ; N ccaron ; B -5 -13 467 690 ; C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ; C -1 ; WX 722 ; N Ncommaaccent ; B -27 -218 748 669 ; C -1 ; WX 278 ; N lacute ; B 2 -9 392 904 ; C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; C -1 ; WX 611 ; N Tcommaaccent ; B 50 -218 650 669 ; C -1 ; WX 667 ; N Cacute ; B 32 -18 677 904 ; C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 862 ; C -1 ; WX 389 ; N scaron ; B -19 -13 424 690 ; C -1 ; WX 389 ; N scedilla ; B -19 -218 333 462 ; C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 667 ; N Rcaron ; B -29 0 623 897 ; C -1 ; WX 722 ; N Gcommaaccent ; B 21 -218 706 685 ; C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; C -1 ; WX 667 ; N Amacron ; B -67 0 593 830 ; C -1 ; WX 389 ; N rcaron ; B -21 0 424 690 ; C -1 ; WX 444 ; N ccedilla ; B -5 -218 392 462 ; C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 862 ; C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; C -1 ; WX 722 ; N Omacron ; B 27 -18 691 830 ; C -1 ; WX 667 ; N Racute ; B -29 0 623 904 ; C -1 ; WX 556 ; N Sacute ; B 2 -18 531 904 ; C -1 ; WX 608 ; N dcaron ; B -21 -13 675 708 ; C -1 ; WX 722 ; N Umacron ; B 67 -18 744 830 ; C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ; C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; C -1 ; WX 667 ; N Abreve ; B -67 0 593 885 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; C -1 ; WX 611 ; N Tcaron ; B 50 0 650 897 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 444 ; N ydieresis ; B -94 -205 443 655 ; C -1 ; WX 722 ; N Nacute ; B -27 -15 748 904 ; C -1 ; WX 278 ; N icircumflex ; B -3 -9 324 690 ; C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; C -1 ; WX 500 ; N adieresis ; B -21 -14 476 655 ; C -1 ; WX 444 ; N edieresis ; B 5 -13 448 655 ; C -1 ; WX 444 ; N cacute ; B -5 -13 435 697 ; C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ; C -1 ; WX 556 ; N umacron ; B 15 -9 492 623 ; C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 897 ; C -1 ; WX 389 ; N Iacute ; B -32 0 432 904 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 885 ; C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 862 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; C -1 ; WX 389 ; N racute ; B -21 0 407 697 ; C -1 ; WX 500 ; N omacron ; B -3 -13 462 623 ; C -1 ; WX 611 ; N Zacute ; B -11 0 590 904 ; C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; C -1 ; WX 278 ; N lcommaaccent ; B -42 -218 290 699 ; C -1 ; WX 366 ; N tcaron ; B -11 -9 434 754 ; C -1 ; WX 444 ; N eogonek ; B 5 -183 398 462 ; C -1 ; WX 722 ; N Uogonek ; B 67 -183 744 669 ; C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ; C -1 ; WX 278 ; N iogonek ; B -20 -183 263 684 ; C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; C -1 ; WX 500 ; N amacron ; B -21 -14 467 623 ; C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ; C -1 ; WX 278 ; N idieresis ; B 2 -9 364 655 ; C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ; C -1 ; WX 278 ; N igrave ; B 2 -9 259 697 ; C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ; C -1 ; WX 667 ; N Eogonek ; B -27 -183 653 669 ; C -1 ; WX 500 ; N dcroat ; B -21 -13 552 699 ; C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ; C -1 ; WX 382 ; N lcaron ; B 2 -9 448 708 ; C -1 ; WX 667 ; N Kcommaaccent ; B -21 -218 702 669 ; C -1 ; WX 611 ; N Lacute ; B -22 0 590 904 ; C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ; C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; C -1 ; WX 389 ; N Imacron ; B -32 0 461 830 ; C -1 ; WX 611 ; N Lcaron ; B -22 0 671 718 ; C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 904 ; C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; C -1 ; WX 444 ; N emacron ; B 5 -13 439 623 ; C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ; C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; C -1 ; WX 556 ; N Scaron ; B 2 -18 553 897 ; C -1 ; WX 556 ; N Scommaaccent ; B 2 -218 526 685 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 723 904 ; C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 897 ; C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B -46 0 685 897 ; C -1 ; WX 389 ; N rcommaaccent ; B -67 -218 389 462 ; C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; C -1 ; WX 667 ; N Rcommaaccent ; B -29 -218 623 669 ; C -1 ; WX 611 ; N Lcommaaccent ; B -22 -218 590 669 ; C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; C -1 ; WX 667 ; N Aogonek ; B -67 -183 604 683 ; C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ; C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ; C -1 ; WX 667 ; N Ecaron ; B -27 0 653 897 ; C -1 ; WX 389 ; N Iogonek ; B -32 -183 406 669 ; C -1 ; WX 500 ; N kcommaaccent ; B -23 -218 483 699 ; C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; C -1 ; WX 389 ; N Icircumflex ; B -32 0 450 897 ; C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ; C -1 ; WX 278 ; N tcommaaccent ; B -62 -218 281 594 ; C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; C -1 ; WX 500 ; N odieresis ; B -3 -13 471 655 ; C -1 ; WX 556 ; N udieresis ; B 15 -9 499 655 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 767 ; C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; C -1 ; WX 556 ; N ncommaaccent ; B -6 -218 493 462 ; C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; C -1 ; WX 278 ; N imacron ; B 2 -9 294 623 ; C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2038 KPX A C -65 KPX A Cacute -65 KPX A Ccaron -65 KPX A Ccedilla -65 KPX A G -60 KPX A Gbreve -60 KPX A Gcommaaccent -60 KPX A O -50 KPX A Oacute -50 KPX A Ocircumflex -50 KPX A Odieresis -50 KPX A Ograve -50 KPX A Ohungarumlaut -50 KPX A Omacron -50 KPX A Oslash -50 KPX A Otilde -50 KPX A Q -55 KPX A T -55 KPX A Tcaron -55 KPX A Tcommaaccent -55 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -95 KPX A W -100 KPX A Y -70 KPX A Yacute -70 KPX A Ydieresis -70 KPX A quoteright -74 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -74 KPX A w -74 KPX A y -74 KPX A yacute -74 KPX A ydieresis -74 KPX Aacute C -65 KPX Aacute Cacute -65 KPX Aacute Ccaron -65 KPX Aacute Ccedilla -65 KPX Aacute G -60 KPX Aacute Gbreve -60 KPX Aacute Gcommaaccent -60 KPX Aacute O -50 KPX Aacute Oacute -50 KPX Aacute Ocircumflex -50 KPX Aacute Odieresis -50 KPX Aacute Ograve -50 KPX Aacute Ohungarumlaut -50 KPX Aacute Omacron -50 KPX Aacute Oslash -50 KPX Aacute Otilde -50 KPX Aacute Q -55 KPX Aacute T -55 KPX Aacute Tcaron -55 KPX Aacute Tcommaaccent -55 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -95 KPX Aacute W -100 KPX Aacute Y -70 KPX Aacute Yacute -70 KPX Aacute Ydieresis -70 KPX Aacute quoteright -74 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -74 KPX Aacute w -74 KPX Aacute y -74 KPX Aacute yacute -74 KPX Aacute ydieresis -74 KPX Abreve C -65 KPX Abreve Cacute -65 KPX Abreve Ccaron -65 KPX Abreve Ccedilla -65 KPX Abreve G -60 KPX Abreve Gbreve -60 KPX Abreve Gcommaaccent -60 KPX Abreve O -50 KPX Abreve Oacute -50 KPX Abreve Ocircumflex -50 KPX Abreve Odieresis -50 KPX Abreve Ograve -50 KPX Abreve Ohungarumlaut -50 KPX Abreve Omacron -50 KPX Abreve Oslash -50 KPX Abreve Otilde -50 KPX Abreve Q -55 KPX Abreve T -55 KPX Abreve Tcaron -55 KPX Abreve Tcommaaccent -55 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -95 KPX Abreve W -100 KPX Abreve Y -70 KPX Abreve Yacute -70 KPX Abreve Ydieresis -70 KPX Abreve quoteright -74 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -74 KPX Abreve w -74 KPX Abreve y -74 KPX Abreve yacute -74 KPX Abreve ydieresis -74 KPX Acircumflex C -65 KPX Acircumflex Cacute -65 KPX Acircumflex Ccaron -65 KPX Acircumflex Ccedilla -65 KPX Acircumflex G -60 KPX Acircumflex Gbreve -60 KPX Acircumflex Gcommaaccent -60 KPX Acircumflex O -50 KPX Acircumflex Oacute -50 KPX Acircumflex Ocircumflex -50 KPX Acircumflex Odieresis -50 KPX Acircumflex Ograve -50 KPX Acircumflex Ohungarumlaut -50 KPX Acircumflex Omacron -50 KPX Acircumflex Oslash -50 KPX Acircumflex Otilde -50 KPX Acircumflex Q -55 KPX Acircumflex T -55 KPX Acircumflex Tcaron -55 KPX Acircumflex Tcommaaccent -55 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -95 KPX Acircumflex W -100 KPX Acircumflex Y -70 KPX Acircumflex Yacute -70 KPX Acircumflex Ydieresis -70 KPX Acircumflex quoteright -74 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -74 KPX Acircumflex w -74 KPX Acircumflex y -74 KPX Acircumflex yacute -74 KPX Acircumflex ydieresis -74 KPX Adieresis C -65 KPX Adieresis Cacute -65 KPX Adieresis Ccaron -65 KPX Adieresis Ccedilla -65 KPX Adieresis G -60 KPX Adieresis Gbreve -60 KPX Adieresis Gcommaaccent -60 KPX Adieresis O -50 KPX Adieresis Oacute -50 KPX Adieresis Ocircumflex -50 KPX Adieresis Odieresis -50 KPX Adieresis Ograve -50 KPX Adieresis Ohungarumlaut -50 KPX Adieresis Omacron -50 KPX Adieresis Oslash -50 KPX Adieresis Otilde -50 KPX Adieresis Q -55 KPX Adieresis T -55 KPX Adieresis Tcaron -55 KPX Adieresis Tcommaaccent -55 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -95 KPX Adieresis W -100 KPX Adieresis Y -70 KPX Adieresis Yacute -70 KPX Adieresis Ydieresis -70 KPX Adieresis quoteright -74 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -74 KPX Adieresis w -74 KPX Adieresis y -74 KPX Adieresis yacute -74 KPX Adieresis ydieresis -74 KPX Agrave C -65 KPX Agrave Cacute -65 KPX Agrave Ccaron -65 KPX Agrave Ccedilla -65 KPX Agrave G -60 KPX Agrave Gbreve -60 KPX Agrave Gcommaaccent -60 KPX Agrave O -50 KPX Agrave Oacute -50 KPX Agrave Ocircumflex -50 KPX Agrave Odieresis -50 KPX Agrave Ograve -50 KPX Agrave Ohungarumlaut -50 KPX Agrave Omacron -50 KPX Agrave Oslash -50 KPX Agrave Otilde -50 KPX Agrave Q -55 KPX Agrave T -55 KPX Agrave Tcaron -55 KPX Agrave Tcommaaccent -55 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -95 KPX Agrave W -100 KPX Agrave Y -70 KPX Agrave Yacute -70 KPX Agrave Ydieresis -70 KPX Agrave quoteright -74 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -74 KPX Agrave w -74 KPX Agrave y -74 KPX Agrave yacute -74 KPX Agrave ydieresis -74 KPX Amacron C -65 KPX Amacron Cacute -65 KPX Amacron Ccaron -65 KPX Amacron Ccedilla -65 KPX Amacron G -60 KPX Amacron Gbreve -60 KPX Amacron Gcommaaccent -60 KPX Amacron O -50 KPX Amacron Oacute -50 KPX Amacron Ocircumflex -50 KPX Amacron Odieresis -50 KPX Amacron Ograve -50 KPX Amacron Ohungarumlaut -50 KPX Amacron Omacron -50 KPX Amacron Oslash -50 KPX Amacron Otilde -50 KPX Amacron Q -55 KPX Amacron T -55 KPX Amacron Tcaron -55 KPX Amacron Tcommaaccent -55 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -95 KPX Amacron W -100 KPX Amacron Y -70 KPX Amacron Yacute -70 KPX Amacron Ydieresis -70 KPX Amacron quoteright -74 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -74 KPX Amacron w -74 KPX Amacron y -74 KPX Amacron yacute -74 KPX Amacron ydieresis -74 KPX Aogonek C -65 KPX Aogonek Cacute -65 KPX Aogonek Ccaron -65 KPX Aogonek Ccedilla -65 KPX Aogonek G -60 KPX Aogonek Gbreve -60 KPX Aogonek Gcommaaccent -60 KPX Aogonek O -50 KPX Aogonek Oacute -50 KPX Aogonek Ocircumflex -50 KPX Aogonek Odieresis -50 KPX Aogonek Ograve -50 KPX Aogonek Ohungarumlaut -50 KPX Aogonek Omacron -50 KPX Aogonek Oslash -50 KPX Aogonek Otilde -50 KPX Aogonek Q -55 KPX Aogonek T -55 KPX Aogonek Tcaron -55 KPX Aogonek Tcommaaccent -55 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -95 KPX Aogonek W -100 KPX Aogonek Y -70 KPX Aogonek Yacute -70 KPX Aogonek Ydieresis -70 KPX Aogonek quoteright -74 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -74 KPX Aogonek w -74 KPX Aogonek y -34 KPX Aogonek yacute -34 KPX Aogonek ydieresis -34 KPX Aring C -65 KPX Aring Cacute -65 KPX Aring Ccaron -65 KPX Aring Ccedilla -65 KPX Aring G -60 KPX Aring Gbreve -60 KPX Aring Gcommaaccent -60 KPX Aring O -50 KPX Aring Oacute -50 KPX Aring Ocircumflex -50 KPX Aring Odieresis -50 KPX Aring Ograve -50 KPX Aring Ohungarumlaut -50 KPX Aring Omacron -50 KPX Aring Oslash -50 KPX Aring Otilde -50 KPX Aring Q -55 KPX Aring T -55 KPX Aring Tcaron -55 KPX Aring Tcommaaccent -55 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -95 KPX Aring W -100 KPX Aring Y -70 KPX Aring Yacute -70 KPX Aring Ydieresis -70 KPX Aring quoteright -74 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -74 KPX Aring w -74 KPX Aring y -74 KPX Aring yacute -74 KPX Aring ydieresis -74 KPX Atilde C -65 KPX Atilde Cacute -65 KPX Atilde Ccaron -65 KPX Atilde Ccedilla -65 KPX Atilde G -60 KPX Atilde Gbreve -60 KPX Atilde Gcommaaccent -60 KPX Atilde O -50 KPX Atilde Oacute -50 KPX Atilde Ocircumflex -50 KPX Atilde Odieresis -50 KPX Atilde Ograve -50 KPX Atilde Ohungarumlaut -50 KPX Atilde Omacron -50 KPX Atilde Oslash -50 KPX Atilde Otilde -50 KPX Atilde Q -55 KPX Atilde T -55 KPX Atilde Tcaron -55 KPX Atilde Tcommaaccent -55 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -95 KPX Atilde W -100 KPX Atilde Y -70 KPX Atilde Yacute -70 KPX Atilde Ydieresis -70 KPX Atilde quoteright -74 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -74 KPX Atilde w -74 KPX Atilde y -74 KPX Atilde yacute -74 KPX Atilde ydieresis -74 KPX B A -25 KPX B Aacute -25 KPX B Abreve -25 KPX B Acircumflex -25 KPX B Adieresis -25 KPX B Agrave -25 KPX B Amacron -25 KPX B Aogonek -25 KPX B Aring -25 KPX B Atilde -25 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -25 KPX D Aacute -25 KPX D Abreve -25 KPX D Acircumflex -25 KPX D Adieresis -25 KPX D Agrave -25 KPX D Amacron -25 KPX D Aogonek -25 KPX D Aring -25 KPX D Atilde -25 KPX D V -50 KPX D W -40 KPX D Y -50 KPX D Yacute -50 KPX D Ydieresis -50 KPX Dcaron A -25 KPX Dcaron Aacute -25 KPX Dcaron Abreve -25 KPX Dcaron Acircumflex -25 KPX Dcaron Adieresis -25 KPX Dcaron Agrave -25 KPX Dcaron Amacron -25 KPX Dcaron Aogonek -25 KPX Dcaron Aring -25 KPX Dcaron Atilde -25 KPX Dcaron V -50 KPX Dcaron W -40 KPX Dcaron Y -50 KPX Dcaron Yacute -50 KPX Dcaron Ydieresis -50 KPX Dcroat A -25 KPX Dcroat Aacute -25 KPX Dcroat Abreve -25 KPX Dcroat Acircumflex -25 KPX Dcroat Adieresis -25 KPX Dcroat Agrave -25 KPX Dcroat Amacron -25 KPX Dcroat Aogonek -25 KPX Dcroat Aring -25 KPX Dcroat Atilde -25 KPX Dcroat V -50 KPX Dcroat W -40 KPX Dcroat Y -50 KPX Dcroat Yacute -50 KPX Dcroat Ydieresis -50 KPX F A -100 KPX F Aacute -100 KPX F Abreve -100 KPX F Acircumflex -100 KPX F Adieresis -100 KPX F Agrave -100 KPX F Amacron -100 KPX F Aogonek -100 KPX F Aring -100 KPX F Atilde -100 KPX F a -95 KPX F aacute -95 KPX F abreve -95 KPX F acircumflex -95 KPX F adieresis -95 KPX F agrave -95 KPX F amacron -95 KPX F aogonek -95 KPX F aring -95 KPX F atilde -95 KPX F comma -129 KPX F e -100 KPX F eacute -100 KPX F ecaron -100 KPX F ecircumflex -100 KPX F edieresis -100 KPX F edotaccent -100 KPX F egrave -100 KPX F emacron -100 KPX F eogonek -100 KPX F i -40 KPX F iacute -40 KPX F icircumflex -40 KPX F idieresis -40 KPX F igrave -40 KPX F imacron -40 KPX F iogonek -40 KPX F o -70 KPX F oacute -70 KPX F ocircumflex -70 KPX F odieresis -70 KPX F ograve -70 KPX F ohungarumlaut -70 KPX F omacron -70 KPX F oslash -70 KPX F otilde -70 KPX F period -129 KPX F r -50 KPX F racute -50 KPX F rcaron -50 KPX F rcommaaccent -50 KPX J A -25 KPX J Aacute -25 KPX J Abreve -25 KPX J Acircumflex -25 KPX J Adieresis -25 KPX J Agrave -25 KPX J Amacron -25 KPX J Aogonek -25 KPX J Aring -25 KPX J Atilde -25 KPX J a -40 KPX J aacute -40 KPX J abreve -40 KPX J acircumflex -40 KPX J adieresis -40 KPX J agrave -40 KPX J amacron -40 KPX J aogonek -40 KPX J aring -40 KPX J atilde -40 KPX J comma -10 KPX J e -40 KPX J eacute -40 KPX J ecaron -40 KPX J ecircumflex -40 KPX J edieresis -40 KPX J edotaccent -40 KPX J egrave -40 KPX J emacron -40 KPX J eogonek -40 KPX J o -40 KPX J oacute -40 KPX J ocircumflex -40 KPX J odieresis -40 KPX J ograve -40 KPX J ohungarumlaut -40 KPX J omacron -40 KPX J oslash -40 KPX J otilde -40 KPX J period -10 KPX J u -40 KPX J uacute -40 KPX J ucircumflex -40 KPX J udieresis -40 KPX J ugrave -40 KPX J uhungarumlaut -40 KPX J umacron -40 KPX J uogonek -40 KPX J uring -40 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -25 KPX K oacute -25 KPX K ocircumflex -25 KPX K odieresis -25 KPX K ograve -25 KPX K ohungarumlaut -25 KPX K omacron -25 KPX K oslash -25 KPX K otilde -25 KPX K u -20 KPX K uacute -20 KPX K ucircumflex -20 KPX K udieresis -20 KPX K ugrave -20 KPX K uhungarumlaut -20 KPX K umacron -20 KPX K uogonek -20 KPX K uring -20 KPX K y -20 KPX K yacute -20 KPX K ydieresis -20 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -25 KPX Kcommaaccent oacute -25 KPX Kcommaaccent ocircumflex -25 KPX Kcommaaccent odieresis -25 KPX Kcommaaccent ograve -25 KPX Kcommaaccent ohungarumlaut -25 KPX Kcommaaccent omacron -25 KPX Kcommaaccent oslash -25 KPX Kcommaaccent otilde -25 KPX Kcommaaccent u -20 KPX Kcommaaccent uacute -20 KPX Kcommaaccent ucircumflex -20 KPX Kcommaaccent udieresis -20 KPX Kcommaaccent ugrave -20 KPX Kcommaaccent uhungarumlaut -20 KPX Kcommaaccent umacron -20 KPX Kcommaaccent uogonek -20 KPX Kcommaaccent uring -20 KPX Kcommaaccent y -20 KPX Kcommaaccent yacute -20 KPX Kcommaaccent ydieresis -20 KPX L T -18 KPX L Tcaron -18 KPX L Tcommaaccent -18 KPX L V -37 KPX L W -37 KPX L Y -37 KPX L Yacute -37 KPX L Ydieresis -37 KPX L quoteright -55 KPX L y -37 KPX L yacute -37 KPX L ydieresis -37 KPX Lacute T -18 KPX Lacute Tcaron -18 KPX Lacute Tcommaaccent -18 KPX Lacute V -37 KPX Lacute W -37 KPX Lacute Y -37 KPX Lacute Yacute -37 KPX Lacute Ydieresis -37 KPX Lacute quoteright -55 KPX Lacute y -37 KPX Lacute yacute -37 KPX Lacute ydieresis -37 KPX Lcommaaccent T -18 KPX Lcommaaccent Tcaron -18 KPX Lcommaaccent Tcommaaccent -18 KPX Lcommaaccent V -37 KPX Lcommaaccent W -37 KPX Lcommaaccent Y -37 KPX Lcommaaccent Yacute -37 KPX Lcommaaccent Ydieresis -37 KPX Lcommaaccent quoteright -55 KPX Lcommaaccent y -37 KPX Lcommaaccent yacute -37 KPX Lcommaaccent ydieresis -37 KPX Lslash T -18 KPX Lslash Tcaron -18 KPX Lslash Tcommaaccent -18 KPX Lslash V -37 KPX Lslash W -37 KPX Lslash Y -37 KPX Lslash Yacute -37 KPX Lslash Ydieresis -37 KPX Lslash quoteright -55 KPX Lslash y -37 KPX Lslash yacute -37 KPX Lslash ydieresis -37 KPX N A -30 KPX N Aacute -30 KPX N Abreve -30 KPX N Acircumflex -30 KPX N Adieresis -30 KPX N Agrave -30 KPX N Amacron -30 KPX N Aogonek -30 KPX N Aring -30 KPX N Atilde -30 KPX Nacute A -30 KPX Nacute Aacute -30 KPX Nacute Abreve -30 KPX Nacute Acircumflex -30 KPX Nacute Adieresis -30 KPX Nacute Agrave -30 KPX Nacute Amacron -30 KPX Nacute Aogonek -30 KPX Nacute Aring -30 KPX Nacute Atilde -30 KPX Ncaron A -30 KPX Ncaron Aacute -30 KPX Ncaron Abreve -30 KPX Ncaron Acircumflex -30 KPX Ncaron Adieresis -30 KPX Ncaron Agrave -30 KPX Ncaron Amacron -30 KPX Ncaron Aogonek -30 KPX Ncaron Aring -30 KPX Ncaron Atilde -30 KPX Ncommaaccent A -30 KPX Ncommaaccent Aacute -30 KPX Ncommaaccent Abreve -30 KPX Ncommaaccent Acircumflex -30 KPX Ncommaaccent Adieresis -30 KPX Ncommaaccent Agrave -30 KPX Ncommaaccent Amacron -30 KPX Ncommaaccent Aogonek -30 KPX Ncommaaccent Aring -30 KPX Ncommaaccent Atilde -30 KPX Ntilde A -30 KPX Ntilde Aacute -30 KPX Ntilde Abreve -30 KPX Ntilde Acircumflex -30 KPX Ntilde Adieresis -30 KPX Ntilde Agrave -30 KPX Ntilde Amacron -30 KPX Ntilde Aogonek -30 KPX Ntilde Aring -30 KPX Ntilde Atilde -30 KPX O A -40 KPX O Aacute -40 KPX O Abreve -40 KPX O Acircumflex -40 KPX O Adieresis -40 KPX O Agrave -40 KPX O Amacron -40 KPX O Aogonek -40 KPX O Aring -40 KPX O Atilde -40 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -40 KPX Oacute Aacute -40 KPX Oacute Abreve -40 KPX Oacute Acircumflex -40 KPX Oacute Adieresis -40 KPX Oacute Agrave -40 KPX Oacute Amacron -40 KPX Oacute Aogonek -40 KPX Oacute Aring -40 KPX Oacute Atilde -40 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -40 KPX Ocircumflex Aacute -40 KPX Ocircumflex Abreve -40 KPX Ocircumflex Acircumflex -40 KPX Ocircumflex Adieresis -40 KPX Ocircumflex Agrave -40 KPX Ocircumflex Amacron -40 KPX Ocircumflex Aogonek -40 KPX Ocircumflex Aring -40 KPX Ocircumflex Atilde -40 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -40 KPX Odieresis Aacute -40 KPX Odieresis Abreve -40 KPX Odieresis Acircumflex -40 KPX Odieresis Adieresis -40 KPX Odieresis Agrave -40 KPX Odieresis Amacron -40 KPX Odieresis Aogonek -40 KPX Odieresis Aring -40 KPX Odieresis Atilde -40 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -40 KPX Ograve Aacute -40 KPX Ograve Abreve -40 KPX Ograve Acircumflex -40 KPX Ograve Adieresis -40 KPX Ograve Agrave -40 KPX Ograve Amacron -40 KPX Ograve Aogonek -40 KPX Ograve Aring -40 KPX Ograve Atilde -40 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -40 KPX Ohungarumlaut Aacute -40 KPX Ohungarumlaut Abreve -40 KPX Ohungarumlaut Acircumflex -40 KPX Ohungarumlaut Adieresis -40 KPX Ohungarumlaut Agrave -40 KPX Ohungarumlaut Amacron -40 KPX Ohungarumlaut Aogonek -40 KPX Ohungarumlaut Aring -40 KPX Ohungarumlaut Atilde -40 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -40 KPX Omacron Aacute -40 KPX Omacron Abreve -40 KPX Omacron Acircumflex -40 KPX Omacron Adieresis -40 KPX Omacron Agrave -40 KPX Omacron Amacron -40 KPX Omacron Aogonek -40 KPX Omacron Aring -40 KPX Omacron Atilde -40 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -40 KPX Oslash Aacute -40 KPX Oslash Abreve -40 KPX Oslash Acircumflex -40 KPX Oslash Adieresis -40 KPX Oslash Agrave -40 KPX Oslash Amacron -40 KPX Oslash Aogonek -40 KPX Oslash Aring -40 KPX Oslash Atilde -40 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -40 KPX Otilde Aacute -40 KPX Otilde Abreve -40 KPX Otilde Acircumflex -40 KPX Otilde Adieresis -40 KPX Otilde Agrave -40 KPX Otilde Amacron -40 KPX Otilde Aogonek -40 KPX Otilde Aring -40 KPX Otilde Atilde -40 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -85 KPX P Aacute -85 KPX P Abreve -85 KPX P Acircumflex -85 KPX P Adieresis -85 KPX P Agrave -85 KPX P Amacron -85 KPX P Aogonek -85 KPX P Aring -85 KPX P Atilde -85 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -129 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -55 KPX P oacute -55 KPX P ocircumflex -55 KPX P odieresis -55 KPX P ograve -55 KPX P ohungarumlaut -55 KPX P omacron -55 KPX P oslash -55 KPX P otilde -55 KPX P period -129 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -40 KPX R Oacute -40 KPX R Ocircumflex -40 KPX R Odieresis -40 KPX R Ograve -40 KPX R Ohungarumlaut -40 KPX R Omacron -40 KPX R Oslash -40 KPX R Otilde -40 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -18 KPX R W -18 KPX R Y -18 KPX R Yacute -18 KPX R Ydieresis -18 KPX Racute O -40 KPX Racute Oacute -40 KPX Racute Ocircumflex -40 KPX Racute Odieresis -40 KPX Racute Ograve -40 KPX Racute Ohungarumlaut -40 KPX Racute Omacron -40 KPX Racute Oslash -40 KPX Racute Otilde -40 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -18 KPX Racute W -18 KPX Racute Y -18 KPX Racute Yacute -18 KPX Racute Ydieresis -18 KPX Rcaron O -40 KPX Rcaron Oacute -40 KPX Rcaron Ocircumflex -40 KPX Rcaron Odieresis -40 KPX Rcaron Ograve -40 KPX Rcaron Ohungarumlaut -40 KPX Rcaron Omacron -40 KPX Rcaron Oslash -40 KPX Rcaron Otilde -40 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -18 KPX Rcaron W -18 KPX Rcaron Y -18 KPX Rcaron Yacute -18 KPX Rcaron Ydieresis -18 KPX Rcommaaccent O -40 KPX Rcommaaccent Oacute -40 KPX Rcommaaccent Ocircumflex -40 KPX Rcommaaccent Odieresis -40 KPX Rcommaaccent Ograve -40 KPX Rcommaaccent Ohungarumlaut -40 KPX Rcommaaccent Omacron -40 KPX Rcommaaccent Oslash -40 KPX Rcommaaccent Otilde -40 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -18 KPX Rcommaaccent W -18 KPX Rcommaaccent Y -18 KPX Rcommaaccent Yacute -18 KPX Rcommaaccent Ydieresis -18 KPX T A -55 KPX T Aacute -55 KPX T Abreve -55 KPX T Acircumflex -55 KPX T Adieresis -55 KPX T Agrave -55 KPX T Amacron -55 KPX T Aogonek -55 KPX T Aring -55 KPX T Atilde -55 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -92 KPX T acircumflex -92 KPX T adieresis -92 KPX T agrave -92 KPX T amacron -92 KPX T aogonek -92 KPX T aring -92 KPX T atilde -92 KPX T colon -74 KPX T comma -92 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -92 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -92 KPX T i -37 KPX T iacute -37 KPX T iogonek -37 KPX T o -95 KPX T oacute -95 KPX T ocircumflex -95 KPX T odieresis -95 KPX T ograve -95 KPX T ohungarumlaut -95 KPX T omacron -95 KPX T oslash -95 KPX T otilde -95 KPX T period -92 KPX T r -37 KPX T racute -37 KPX T rcaron -37 KPX T rcommaaccent -37 KPX T semicolon -74 KPX T u -37 KPX T uacute -37 KPX T ucircumflex -37 KPX T udieresis -37 KPX T ugrave -37 KPX T uhungarumlaut -37 KPX T umacron -37 KPX T uogonek -37 KPX T uring -37 KPX T w -37 KPX T y -37 KPX T yacute -37 KPX T ydieresis -37 KPX Tcaron A -55 KPX Tcaron Aacute -55 KPX Tcaron Abreve -55 KPX Tcaron Acircumflex -55 KPX Tcaron Adieresis -55 KPX Tcaron Agrave -55 KPX Tcaron Amacron -55 KPX Tcaron Aogonek -55 KPX Tcaron Aring -55 KPX Tcaron Atilde -55 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -92 KPX Tcaron acircumflex -92 KPX Tcaron adieresis -92 KPX Tcaron agrave -92 KPX Tcaron amacron -92 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -92 KPX Tcaron colon -74 KPX Tcaron comma -92 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -92 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -92 KPX Tcaron i -37 KPX Tcaron iacute -37 KPX Tcaron iogonek -37 KPX Tcaron o -95 KPX Tcaron oacute -95 KPX Tcaron ocircumflex -95 KPX Tcaron odieresis -95 KPX Tcaron ograve -95 KPX Tcaron ohungarumlaut -95 KPX Tcaron omacron -95 KPX Tcaron oslash -95 KPX Tcaron otilde -95 KPX Tcaron period -92 KPX Tcaron r -37 KPX Tcaron racute -37 KPX Tcaron rcaron -37 KPX Tcaron rcommaaccent -37 KPX Tcaron semicolon -74 KPX Tcaron u -37 KPX Tcaron uacute -37 KPX Tcaron ucircumflex -37 KPX Tcaron udieresis -37 KPX Tcaron ugrave -37 KPX Tcaron uhungarumlaut -37 KPX Tcaron umacron -37 KPX Tcaron uogonek -37 KPX Tcaron uring -37 KPX Tcaron w -37 KPX Tcaron y -37 KPX Tcaron yacute -37 KPX Tcaron ydieresis -37 KPX Tcommaaccent A -55 KPX Tcommaaccent Aacute -55 KPX Tcommaaccent Abreve -55 KPX Tcommaaccent Acircumflex -55 KPX Tcommaaccent Adieresis -55 KPX Tcommaaccent Agrave -55 KPX Tcommaaccent Amacron -55 KPX Tcommaaccent Aogonek -55 KPX Tcommaaccent Aring -55 KPX Tcommaaccent Atilde -55 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -92 KPX Tcommaaccent acircumflex -92 KPX Tcommaaccent adieresis -92 KPX Tcommaaccent agrave -92 KPX Tcommaaccent amacron -92 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -92 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -92 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -92 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -37 KPX Tcommaaccent iacute -37 KPX Tcommaaccent iogonek -37 KPX Tcommaaccent o -95 KPX Tcommaaccent oacute -95 KPX Tcommaaccent ocircumflex -95 KPX Tcommaaccent odieresis -95 KPX Tcommaaccent ograve -95 KPX Tcommaaccent ohungarumlaut -95 KPX Tcommaaccent omacron -95 KPX Tcommaaccent oslash -95 KPX Tcommaaccent otilde -95 KPX Tcommaaccent period -92 KPX Tcommaaccent r -37 KPX Tcommaaccent racute -37 KPX Tcommaaccent rcaron -37 KPX Tcommaaccent rcommaaccent -37 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -37 KPX Tcommaaccent uacute -37 KPX Tcommaaccent ucircumflex -37 KPX Tcommaaccent udieresis -37 KPX Tcommaaccent ugrave -37 KPX Tcommaaccent uhungarumlaut -37 KPX Tcommaaccent umacron -37 KPX Tcommaaccent uogonek -37 KPX Tcommaaccent uring -37 KPX Tcommaaccent w -37 KPX Tcommaaccent y -37 KPX Tcommaaccent yacute -37 KPX Tcommaaccent ydieresis -37 KPX U A -45 KPX U Aacute -45 KPX U Abreve -45 KPX U Acircumflex -45 KPX U Adieresis -45 KPX U Agrave -45 KPX U Amacron -45 KPX U Aogonek -45 KPX U Aring -45 KPX U Atilde -45 KPX Uacute A -45 KPX Uacute Aacute -45 KPX Uacute Abreve -45 KPX Uacute Acircumflex -45 KPX Uacute Adieresis -45 KPX Uacute Agrave -45 KPX Uacute Amacron -45 KPX Uacute Aogonek -45 KPX Uacute Aring -45 KPX Uacute Atilde -45 KPX Ucircumflex A -45 KPX Ucircumflex Aacute -45 KPX Ucircumflex Abreve -45 KPX Ucircumflex Acircumflex -45 KPX Ucircumflex Adieresis -45 KPX Ucircumflex Agrave -45 KPX Ucircumflex Amacron -45 KPX Ucircumflex Aogonek -45 KPX Ucircumflex Aring -45 KPX Ucircumflex Atilde -45 KPX Udieresis A -45 KPX Udieresis Aacute -45 KPX Udieresis Abreve -45 KPX Udieresis Acircumflex -45 KPX Udieresis Adieresis -45 KPX Udieresis Agrave -45 KPX Udieresis Amacron -45 KPX Udieresis Aogonek -45 KPX Udieresis Aring -45 KPX Udieresis Atilde -45 KPX Ugrave A -45 KPX Ugrave Aacute -45 KPX Ugrave Abreve -45 KPX Ugrave Acircumflex -45 KPX Ugrave Adieresis -45 KPX Ugrave Agrave -45 KPX Ugrave Amacron -45 KPX Ugrave Aogonek -45 KPX Ugrave Aring -45 KPX Ugrave Atilde -45 KPX Uhungarumlaut A -45 KPX Uhungarumlaut Aacute -45 KPX Uhungarumlaut Abreve -45 KPX Uhungarumlaut Acircumflex -45 KPX Uhungarumlaut Adieresis -45 KPX Uhungarumlaut Agrave -45 KPX Uhungarumlaut Amacron -45 KPX Uhungarumlaut Aogonek -45 KPX Uhungarumlaut Aring -45 KPX Uhungarumlaut Atilde -45 KPX Umacron A -45 KPX Umacron Aacute -45 KPX Umacron Abreve -45 KPX Umacron Acircumflex -45 KPX Umacron Adieresis -45 KPX Umacron Agrave -45 KPX Umacron Amacron -45 KPX Umacron Aogonek -45 KPX Umacron Aring -45 KPX Umacron Atilde -45 KPX Uogonek A -45 KPX Uogonek Aacute -45 KPX Uogonek Abreve -45 KPX Uogonek Acircumflex -45 KPX Uogonek Adieresis -45 KPX Uogonek Agrave -45 KPX Uogonek Amacron -45 KPX Uogonek Aogonek -45 KPX Uogonek Aring -45 KPX Uogonek Atilde -45 KPX Uring A -45 KPX Uring Aacute -45 KPX Uring Abreve -45 KPX Uring Acircumflex -45 KPX Uring Adieresis -45 KPX Uring Agrave -45 KPX Uring Amacron -45 KPX Uring Aogonek -45 KPX Uring Aring -45 KPX Uring Atilde -45 KPX V A -85 KPX V Aacute -85 KPX V Abreve -85 KPX V Acircumflex -85 KPX V Adieresis -85 KPX V Agrave -85 KPX V Amacron -85 KPX V Aogonek -85 KPX V Aring -85 KPX V Atilde -85 KPX V G -10 KPX V Gbreve -10 KPX V Gcommaaccent -10 KPX V O -30 KPX V Oacute -30 KPX V Ocircumflex -30 KPX V Odieresis -30 KPX V Ograve -30 KPX V Ohungarumlaut -30 KPX V Omacron -30 KPX V Oslash -30 KPX V Otilde -30 KPX V a -111 KPX V aacute -111 KPX V abreve -111 KPX V acircumflex -111 KPX V adieresis -111 KPX V agrave -111 KPX V amacron -111 KPX V aogonek -111 KPX V aring -111 KPX V atilde -111 KPX V colon -74 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -111 KPX V ecircumflex -111 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -71 KPX V eogonek -111 KPX V hyphen -70 KPX V i -55 KPX V iacute -55 KPX V iogonek -55 KPX V o -111 KPX V oacute -111 KPX V ocircumflex -111 KPX V odieresis -111 KPX V ograve -111 KPX V ohungarumlaut -111 KPX V omacron -111 KPX V oslash -111 KPX V otilde -111 KPX V period -129 KPX V semicolon -74 KPX V u -55 KPX V uacute -55 KPX V ucircumflex -55 KPX V udieresis -55 KPX V ugrave -55 KPX V uhungarumlaut -55 KPX V umacron -55 KPX V uogonek -55 KPX V uring -55 KPX W A -74 KPX W Aacute -74 KPX W Abreve -74 KPX W Acircumflex -74 KPX W Adieresis -74 KPX W Agrave -74 KPX W Amacron -74 KPX W Aogonek -74 KPX W Aring -74 KPX W Atilde -74 KPX W O -15 KPX W Oacute -15 KPX W Ocircumflex -15 KPX W Odieresis -15 KPX W Ograve -15 KPX W Ohungarumlaut -15 KPX W Omacron -15 KPX W Oslash -15 KPX W Otilde -15 KPX W a -85 KPX W aacute -85 KPX W abreve -85 KPX W acircumflex -85 KPX W adieresis -85 KPX W agrave -85 KPX W amacron -85 KPX W aogonek -85 KPX W aring -85 KPX W atilde -85 KPX W colon -55 KPX W comma -74 KPX W e -90 KPX W eacute -90 KPX W ecaron -90 KPX W ecircumflex -90 KPX W edieresis -50 KPX W edotaccent -90 KPX W egrave -50 KPX W emacron -50 KPX W eogonek -90 KPX W hyphen -50 KPX W i -37 KPX W iacute -37 KPX W iogonek -37 KPX W o -80 KPX W oacute -80 KPX W ocircumflex -80 KPX W odieresis -80 KPX W ograve -80 KPX W ohungarumlaut -80 KPX W omacron -80 KPX W oslash -80 KPX W otilde -80 KPX W period -74 KPX W semicolon -55 KPX W u -55 KPX W uacute -55 KPX W ucircumflex -55 KPX W udieresis -55 KPX W ugrave -55 KPX W uhungarumlaut -55 KPX W umacron -55 KPX W uogonek -55 KPX W uring -55 KPX W y -55 KPX W yacute -55 KPX W ydieresis -55 KPX Y A -74 KPX Y Aacute -74 KPX Y Abreve -74 KPX Y Acircumflex -74 KPX Y Adieresis -74 KPX Y Agrave -74 KPX Y Amacron -74 KPX Y Aogonek -74 KPX Y Aring -74 KPX Y Atilde -74 KPX Y O -25 KPX Y Oacute -25 KPX Y Ocircumflex -25 KPX Y Odieresis -25 KPX Y Ograve -25 KPX Y Ohungarumlaut -25 KPX Y Omacron -25 KPX Y Oslash -25 KPX Y Otilde -25 KPX Y a -92 KPX Y aacute -92 KPX Y abreve -92 KPX Y acircumflex -92 KPX Y adieresis -92 KPX Y agrave -92 KPX Y amacron -92 KPX Y aogonek -92 KPX Y aring -92 KPX Y atilde -92 KPX Y colon -92 KPX Y comma -92 KPX Y e -111 KPX Y eacute -111 KPX Y ecaron -111 KPX Y ecircumflex -71 KPX Y edieresis -71 KPX Y edotaccent -111 KPX Y egrave -71 KPX Y emacron -71 KPX Y eogonek -111 KPX Y hyphen -92 KPX Y i -55 KPX Y iacute -55 KPX Y iogonek -55 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y period -74 KPX Y semicolon -92 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -74 KPX Yacute Aacute -74 KPX Yacute Abreve -74 KPX Yacute Acircumflex -74 KPX Yacute Adieresis -74 KPX Yacute Agrave -74 KPX Yacute Amacron -74 KPX Yacute Aogonek -74 KPX Yacute Aring -74 KPX Yacute Atilde -74 KPX Yacute O -25 KPX Yacute Oacute -25 KPX Yacute Ocircumflex -25 KPX Yacute Odieresis -25 KPX Yacute Ograve -25 KPX Yacute Ohungarumlaut -25 KPX Yacute Omacron -25 KPX Yacute Oslash -25 KPX Yacute Otilde -25 KPX Yacute a -92 KPX Yacute aacute -92 KPX Yacute abreve -92 KPX Yacute acircumflex -92 KPX Yacute adieresis -92 KPX Yacute agrave -92 KPX Yacute amacron -92 KPX Yacute aogonek -92 KPX Yacute aring -92 KPX Yacute atilde -92 KPX Yacute colon -92 KPX Yacute comma -92 KPX Yacute e -111 KPX Yacute eacute -111 KPX Yacute ecaron -111 KPX Yacute ecircumflex -71 KPX Yacute edieresis -71 KPX Yacute edotaccent -111 KPX Yacute egrave -71 KPX Yacute emacron -71 KPX Yacute eogonek -111 KPX Yacute hyphen -92 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute iogonek -55 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute period -74 KPX Yacute semicolon -92 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -74 KPX Ydieresis Aacute -74 KPX Ydieresis Abreve -74 KPX Ydieresis Acircumflex -74 KPX Ydieresis Adieresis -74 KPX Ydieresis Agrave -74 KPX Ydieresis Amacron -74 KPX Ydieresis Aogonek -74 KPX Ydieresis Aring -74 KPX Ydieresis Atilde -74 KPX Ydieresis O -25 KPX Ydieresis Oacute -25 KPX Ydieresis Ocircumflex -25 KPX Ydieresis Odieresis -25 KPX Ydieresis Ograve -25 KPX Ydieresis Ohungarumlaut -25 KPX Ydieresis Omacron -25 KPX Ydieresis Oslash -25 KPX Ydieresis Otilde -25 KPX Ydieresis a -92 KPX Ydieresis aacute -92 KPX Ydieresis abreve -92 KPX Ydieresis acircumflex -92 KPX Ydieresis adieresis -92 KPX Ydieresis agrave -92 KPX Ydieresis amacron -92 KPX Ydieresis aogonek -92 KPX Ydieresis aring -92 KPX Ydieresis atilde -92 KPX Ydieresis colon -92 KPX Ydieresis comma -92 KPX Ydieresis e -111 KPX Ydieresis eacute -111 KPX Ydieresis ecaron -111 KPX Ydieresis ecircumflex -71 KPX Ydieresis edieresis -71 KPX Ydieresis edotaccent -111 KPX Ydieresis egrave -71 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -111 KPX Ydieresis hyphen -92 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis period -74 KPX Ydieresis semicolon -92 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX b b -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX c h -10 KPX c k -10 KPX c kcommaaccent -10 KPX cacute h -10 KPX cacute k -10 KPX cacute kcommaaccent -10 KPX ccaron h -10 KPX ccaron k -10 KPX ccaron kcommaaccent -10 KPX ccedilla h -10 KPX ccedilla k -10 KPX ccedilla kcommaaccent -10 KPX comma quotedblright -95 KPX comma quoteright -95 KPX e b -10 KPX eacute b -10 KPX ecaron b -10 KPX ecircumflex b -10 KPX edieresis b -10 KPX edotaccent b -10 KPX egrave b -10 KPX emacron b -10 KPX eogonek b -10 KPX f comma -10 KPX f dotlessi -30 KPX f e -10 KPX f eacute -10 KPX f edotaccent -10 KPX f eogonek -10 KPX f f -18 KPX f o -10 KPX f oacute -10 KPX f ocircumflex -10 KPX f ograve -10 KPX f ohungarumlaut -10 KPX f oslash -10 KPX f otilde -10 KPX f period -10 KPX f quoteright 55 KPX k e -30 KPX k eacute -30 KPX k ecaron -30 KPX k ecircumflex -30 KPX k edieresis -30 KPX k edotaccent -30 KPX k egrave -30 KPX k emacron -30 KPX k eogonek -30 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k oslash -10 KPX k otilde -10 KPX kcommaaccent e -30 KPX kcommaaccent eacute -30 KPX kcommaaccent ecaron -30 KPX kcommaaccent ecircumflex -30 KPX kcommaaccent edieresis -30 KPX kcommaaccent edotaccent -30 KPX kcommaaccent egrave -30 KPX kcommaaccent emacron -30 KPX kcommaaccent eogonek -30 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent oslash -10 KPX kcommaaccent otilde -10 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o v -15 KPX o w -25 KPX o x -10 KPX o y -10 KPX o yacute -10 KPX o ydieresis -10 KPX oacute v -15 KPX oacute w -25 KPX oacute x -10 KPX oacute y -10 KPX oacute yacute -10 KPX oacute ydieresis -10 KPX ocircumflex v -15 KPX ocircumflex w -25 KPX ocircumflex x -10 KPX ocircumflex y -10 KPX ocircumflex yacute -10 KPX ocircumflex ydieresis -10 KPX odieresis v -15 KPX odieresis w -25 KPX odieresis x -10 KPX odieresis y -10 KPX odieresis yacute -10 KPX odieresis ydieresis -10 KPX ograve v -15 KPX ograve w -25 KPX ograve x -10 KPX ograve y -10 KPX ograve yacute -10 KPX ograve ydieresis -10 KPX ohungarumlaut v -15 KPX ohungarumlaut w -25 KPX ohungarumlaut x -10 KPX ohungarumlaut y -10 KPX ohungarumlaut yacute -10 KPX ohungarumlaut ydieresis -10 KPX omacron v -15 KPX omacron w -25 KPX omacron x -10 KPX omacron y -10 KPX omacron yacute -10 KPX omacron ydieresis -10 KPX oslash v -15 KPX oslash w -25 KPX oslash x -10 KPX oslash y -10 KPX oslash yacute -10 KPX oslash ydieresis -10 KPX otilde v -15 KPX otilde w -25 KPX otilde x -10 KPX otilde y -10 KPX otilde yacute -10 KPX otilde ydieresis -10 KPX period quotedblright -95 KPX period quoteright -95 KPX quoteleft quoteleft -74 KPX quoteright d -15 KPX quoteright dcroat -15 KPX quoteright quoteright -74 KPX quoteright r -15 KPX quoteright racute -15 KPX quoteright rcaron -15 KPX quoteright rcommaaccent -15 KPX quoteright s -74 KPX quoteright sacute -74 KPX quoteright scaron -74 KPX quoteright scedilla -74 KPX quoteright scommaaccent -74 KPX quoteright space -74 KPX quoteright t -37 KPX quoteright tcommaaccent -37 KPX quoteright v -15 KPX r comma -65 KPX r period -65 KPX racute comma -65 KPX racute period -65 KPX rcaron comma -65 KPX rcaron period -65 KPX rcommaaccent comma -65 KPX rcommaaccent period -65 KPX space A -37 KPX space Aacute -37 KPX space Abreve -37 KPX space Acircumflex -37 KPX space Adieresis -37 KPX space Agrave -37 KPX space Amacron -37 KPX space Aogonek -37 KPX space Aring -37 KPX space Atilde -37 KPX space V -70 KPX space W -70 KPX space Y -70 KPX space Yacute -70 KPX space Ydieresis -70 KPX v comma -37 KPX v e -15 KPX v eacute -15 KPX v ecaron -15 KPX v ecircumflex -15 KPX v edieresis -15 KPX v edotaccent -15 KPX v egrave -15 KPX v emacron -15 KPX v eogonek -15 KPX v o -15 KPX v oacute -15 KPX v ocircumflex -15 KPX v odieresis -15 KPX v ograve -15 KPX v ohungarumlaut -15 KPX v omacron -15 KPX v oslash -15 KPX v otilde -15 KPX v period -37 KPX w a -10 KPX w aacute -10 KPX w abreve -10 KPX w acircumflex -10 KPX w adieresis -10 KPX w agrave -10 KPX w amacron -10 KPX w aogonek -10 KPX w aring -10 KPX w atilde -10 KPX w comma -37 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -15 KPX w oacute -15 KPX w ocircumflex -15 KPX w odieresis -15 KPX w ograve -15 KPX w ohungarumlaut -15 KPX w omacron -15 KPX w oslash -15 KPX w otilde -15 KPX w period -37 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y comma -37 KPX y period -37 KPX yacute comma -37 KPX yacute period -37 KPX ydieresis comma -37 KPX ydieresis period -37 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/Times-Italic.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:56:55 1997 Comment UniqueID 43067 Comment VMusage 47727 58752 FontName Times-Italic FullName Times Italic FamilyName Times Weight Medium ItalicAngle -15.5 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -169 -217 1010 883 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 653 XHeight 441 Ascender 683 Descender -217 StdHW 32 StdVW 76 StartCharMetrics 315 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; C 49 ; WX 500 ; N one ; B 49 0 409 676 ; C 50 ; WX 500 ; N two ; B 12 0 452 676 ; C 51 ; WX 500 ; N three ; B 15 -7 465 676 ; C 52 ; WX 500 ; N four ; B 1 0 479 676 ; C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; C 60 ; WX 675 ; N less ; B 84 -8 592 514 ; C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ; C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; C 65 ; WX 611 ; N A ; B -51 0 564 668 ; C 66 ; WX 611 ; N B ; B -8 0 588 653 ; C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; C 68 ; WX 722 ; N D ; B -8 0 700 653 ; C 69 ; WX 611 ; N E ; B -1 0 634 653 ; C 70 ; WX 611 ; N F ; B 8 0 645 653 ; C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; C 72 ; WX 722 ; N H ; B -8 0 767 653 ; C 73 ; WX 333 ; N I ; B -8 0 384 653 ; C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; C 75 ; WX 667 ; N K ; B 7 0 722 653 ; C 76 ; WX 556 ; N L ; B -8 0 559 653 ; C 77 ; WX 833 ; N M ; B -18 0 873 653 ; C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; C 79 ; WX 722 ; N O ; B 60 -18 699 666 ; C 80 ; WX 611 ; N P ; B 0 0 605 653 ; C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; C 82 ; WX 611 ; N R ; B -13 0 588 653 ; C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; C 84 ; WX 556 ; N T ; B 59 0 633 653 ; C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; C 88 ; WX 611 ; N X ; B -29 0 655 653 ; C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; C 114 ; WX 389 ; N r ; B 45 0 412 441 ; C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; C 124 ; WX 275 ; N bar ; B 105 -217 171 783 ; C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ; C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ; C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; C 199 ; WX 333 ; N dotaccent ; B 207 548 305 646 ; C 200 ; WX 333 ; N dieresis ; B 107 548 405 646 ; C 202 ; WX 333 ; N ring ; B 155 492 355 691 ; C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; C 206 ; WX 333 ; N ogonek ; B 20 -169 203 40 ; C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ; C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; C 248 ; WX 278 ; N lslash ; B 41 -11 312 683 ; C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ; C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 580 664 ; C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ; C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; C -1 ; WX 389 ; N scommaaccent ; B 16 -217 366 442 ; C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; C -1 ; WX 722 ; N Uring ; B 102 -18 765 883 ; C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; C -1 ; WX 500 ; N aogonek ; B 17 -169 476 441 ; C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; C -1 ; WX 500 ; N uogonek ; B 42 -169 477 441 ; C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ; C -1 ; WX 250 ; N commaaccent ; B 8 -217 133 -50 ; C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ; C -1 ; WX 444 ; N ccaron ; B 30 -11 482 661 ; C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ; C -1 ; WX 667 ; N Ncommaaccent ; B -20 -187 727 653 ; C -1 ; WX 278 ; N lacute ; B 41 -11 395 876 ; C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; C -1 ; WX 556 ; N Tcommaaccent ; B 59 -217 633 653 ; C -1 ; WX 667 ; N Cacute ; B 66 -18 690 876 ; C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ; C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; C -1 ; WX 389 ; N scedilla ; B 16 -217 366 442 ; C -1 ; WX 278 ; N iacute ; B 49 -11 355 664 ; C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ; C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ; C -1 ; WX 722 ; N Gcommaaccent ; B 52 -217 722 666 ; C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ; C -1 ; WX 389 ; N rcaron ; B 45 0 434 661 ; C -1 ; WX 444 ; N ccedilla ; B 30 -217 425 441 ; C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ; C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; C -1 ; WX 722 ; N Omacron ; B 60 -18 699 795 ; C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ; C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ; C -1 ; WX 544 ; N dcaron ; B 15 -13 658 683 ; C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ; C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ; C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ; C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ; C -1 ; WX 278 ; N icircumflex ; B 33 -11 327 661 ; C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; C -1 ; WX 444 ; N cacute ; B 30 -11 459 664 ; C -1 ; WX 500 ; N nacute ; B 14 -9 477 664 ; C -1 ; WX 500 ; N umacron ; B 42 -11 485 583 ; C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ; C -1 ; WX 333 ; N Iacute ; B -8 0 433 876 ; C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ; C -1 ; WX 275 ; N brokenbar ; B 105 -142 171 708 ; C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ; C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ; C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; C -1 ; WX 389 ; N racute ; B 45 0 431 664 ; C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ; C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ; C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ; C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; C -1 ; WX 278 ; N lcommaaccent ; B 22 -217 279 683 ; C -1 ; WX 300 ; N tcaron ; B 37 -11 407 681 ; C -1 ; WX 444 ; N eogonek ; B 31 -169 412 441 ; C -1 ; WX 722 ; N Uogonek ; B 102 -184 765 653 ; C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ; C -1 ; WX 278 ; N iogonek ; B 49 -169 264 654 ; C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ; C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ; C -1 ; WX 278 ; N idieresis ; B 49 -11 352 606 ; C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 590 664 ; C -1 ; WX 611 ; N Eogonek ; B -1 -169 634 653 ; C -1 ; WX 500 ; N dcroat ; B 15 -13 572 683 ; C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ; C -1 ; WX 300 ; N lcaron ; B 41 -11 407 683 ; C -1 ; WX 667 ; N Kcommaaccent ; B 7 -217 722 653 ; C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ; C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ; C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ; C -1 ; WX 611 ; N Lcaron ; B -8 0 586 653 ; C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ; C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; C -1 ; WX 444 ; N emacron ; B 31 -11 457 583 ; C -1 ; WX 500 ; N gbreve ; B 8 -206 487 650 ; C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; C -1 ; WX 500 ; N Scommaaccent ; B 17 -217 508 667 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 699 876 ; C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ; C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ; C -1 ; WX 389 ; N rcommaaccent ; B -3 -217 412 441 ; C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; C -1 ; WX 611 ; N Rcommaaccent ; B -13 -187 588 653 ; C -1 ; WX 556 ; N Lcommaaccent ; B -8 -217 559 653 ; C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; C -1 ; WX 611 ; N Aogonek ; B -51 -169 566 668 ; C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ; C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ; C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ; C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ; C -1 ; WX 444 ; N kcommaaccent ; B 14 -187 461 683 ; C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ; C -1 ; WX 278 ; N tcommaaccent ; B 2 -217 296 546 ; C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ; C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ; C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; C -1 ; WX 500 ; N ncommaaccent ; B 14 -187 474 441 ; C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; C -1 ; WX 278 ; N imacron ; B 46 -11 311 583 ; C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2321 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -35 KPX A Gbreve -35 KPX A Gcommaaccent -35 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -37 KPX A Tcaron -37 KPX A Tcommaaccent -37 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -105 KPX A W -95 KPX A Y -55 KPX A Yacute -55 KPX A Ydieresis -55 KPX A quoteright -37 KPX A u -20 KPX A uacute -20 KPX A ucircumflex -20 KPX A udieresis -20 KPX A ugrave -20 KPX A uhungarumlaut -20 KPX A umacron -20 KPX A uogonek -20 KPX A uring -20 KPX A v -55 KPX A w -55 KPX A y -55 KPX A yacute -55 KPX A ydieresis -55 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -35 KPX Aacute Gbreve -35 KPX Aacute Gcommaaccent -35 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -37 KPX Aacute Tcaron -37 KPX Aacute Tcommaaccent -37 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -105 KPX Aacute W -95 KPX Aacute Y -55 KPX Aacute Yacute -55 KPX Aacute Ydieresis -55 KPX Aacute quoteright -37 KPX Aacute u -20 KPX Aacute uacute -20 KPX Aacute ucircumflex -20 KPX Aacute udieresis -20 KPX Aacute ugrave -20 KPX Aacute uhungarumlaut -20 KPX Aacute umacron -20 KPX Aacute uogonek -20 KPX Aacute uring -20 KPX Aacute v -55 KPX Aacute w -55 KPX Aacute y -55 KPX Aacute yacute -55 KPX Aacute ydieresis -55 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -35 KPX Abreve Gbreve -35 KPX Abreve Gcommaaccent -35 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -37 KPX Abreve Tcaron -37 KPX Abreve Tcommaaccent -37 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -105 KPX Abreve W -95 KPX Abreve Y -55 KPX Abreve Yacute -55 KPX Abreve Ydieresis -55 KPX Abreve quoteright -37 KPX Abreve u -20 KPX Abreve uacute -20 KPX Abreve ucircumflex -20 KPX Abreve udieresis -20 KPX Abreve ugrave -20 KPX Abreve uhungarumlaut -20 KPX Abreve umacron -20 KPX Abreve uogonek -20 KPX Abreve uring -20 KPX Abreve v -55 KPX Abreve w -55 KPX Abreve y -55 KPX Abreve yacute -55 KPX Abreve ydieresis -55 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -35 KPX Acircumflex Gbreve -35 KPX Acircumflex Gcommaaccent -35 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -37 KPX Acircumflex Tcaron -37 KPX Acircumflex Tcommaaccent -37 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -105 KPX Acircumflex W -95 KPX Acircumflex Y -55 KPX Acircumflex Yacute -55 KPX Acircumflex Ydieresis -55 KPX Acircumflex quoteright -37 KPX Acircumflex u -20 KPX Acircumflex uacute -20 KPX Acircumflex ucircumflex -20 KPX Acircumflex udieresis -20 KPX Acircumflex ugrave -20 KPX Acircumflex uhungarumlaut -20 KPX Acircumflex umacron -20 KPX Acircumflex uogonek -20 KPX Acircumflex uring -20 KPX Acircumflex v -55 KPX Acircumflex w -55 KPX Acircumflex y -55 KPX Acircumflex yacute -55 KPX Acircumflex ydieresis -55 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -35 KPX Adieresis Gbreve -35 KPX Adieresis Gcommaaccent -35 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -37 KPX Adieresis Tcaron -37 KPX Adieresis Tcommaaccent -37 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -105 KPX Adieresis W -95 KPX Adieresis Y -55 KPX Adieresis Yacute -55 KPX Adieresis Ydieresis -55 KPX Adieresis quoteright -37 KPX Adieresis u -20 KPX Adieresis uacute -20 KPX Adieresis ucircumflex -20 KPX Adieresis udieresis -20 KPX Adieresis ugrave -20 KPX Adieresis uhungarumlaut -20 KPX Adieresis umacron -20 KPX Adieresis uogonek -20 KPX Adieresis uring -20 KPX Adieresis v -55 KPX Adieresis w -55 KPX Adieresis y -55 KPX Adieresis yacute -55 KPX Adieresis ydieresis -55 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -35 KPX Agrave Gbreve -35 KPX Agrave Gcommaaccent -35 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -37 KPX Agrave Tcaron -37 KPX Agrave Tcommaaccent -37 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -105 KPX Agrave W -95 KPX Agrave Y -55 KPX Agrave Yacute -55 KPX Agrave Ydieresis -55 KPX Agrave quoteright -37 KPX Agrave u -20 KPX Agrave uacute -20 KPX Agrave ucircumflex -20 KPX Agrave udieresis -20 KPX Agrave ugrave -20 KPX Agrave uhungarumlaut -20 KPX Agrave umacron -20 KPX Agrave uogonek -20 KPX Agrave uring -20 KPX Agrave v -55 KPX Agrave w -55 KPX Agrave y -55 KPX Agrave yacute -55 KPX Agrave ydieresis -55 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -35 KPX Amacron Gbreve -35 KPX Amacron Gcommaaccent -35 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -37 KPX Amacron Tcaron -37 KPX Amacron Tcommaaccent -37 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -105 KPX Amacron W -95 KPX Amacron Y -55 KPX Amacron Yacute -55 KPX Amacron Ydieresis -55 KPX Amacron quoteright -37 KPX Amacron u -20 KPX Amacron uacute -20 KPX Amacron ucircumflex -20 KPX Amacron udieresis -20 KPX Amacron ugrave -20 KPX Amacron uhungarumlaut -20 KPX Amacron umacron -20 KPX Amacron uogonek -20 KPX Amacron uring -20 KPX Amacron v -55 KPX Amacron w -55 KPX Amacron y -55 KPX Amacron yacute -55 KPX Amacron ydieresis -55 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -35 KPX Aogonek Gbreve -35 KPX Aogonek Gcommaaccent -35 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -37 KPX Aogonek Tcaron -37 KPX Aogonek Tcommaaccent -37 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -105 KPX Aogonek W -95 KPX Aogonek Y -55 KPX Aogonek Yacute -55 KPX Aogonek Ydieresis -55 KPX Aogonek quoteright -37 KPX Aogonek u -20 KPX Aogonek uacute -20 KPX Aogonek ucircumflex -20 KPX Aogonek udieresis -20 KPX Aogonek ugrave -20 KPX Aogonek uhungarumlaut -20 KPX Aogonek umacron -20 KPX Aogonek uogonek -20 KPX Aogonek uring -20 KPX Aogonek v -55 KPX Aogonek w -55 KPX Aogonek y -55 KPX Aogonek yacute -55 KPX Aogonek ydieresis -55 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -35 KPX Aring Gbreve -35 KPX Aring Gcommaaccent -35 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -37 KPX Aring Tcaron -37 KPX Aring Tcommaaccent -37 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -105 KPX Aring W -95 KPX Aring Y -55 KPX Aring Yacute -55 KPX Aring Ydieresis -55 KPX Aring quoteright -37 KPX Aring u -20 KPX Aring uacute -20 KPX Aring ucircumflex -20 KPX Aring udieresis -20 KPX Aring ugrave -20 KPX Aring uhungarumlaut -20 KPX Aring umacron -20 KPX Aring uogonek -20 KPX Aring uring -20 KPX Aring v -55 KPX Aring w -55 KPX Aring y -55 KPX Aring yacute -55 KPX Aring ydieresis -55 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -35 KPX Atilde Gbreve -35 KPX Atilde Gcommaaccent -35 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -37 KPX Atilde Tcaron -37 KPX Atilde Tcommaaccent -37 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -105 KPX Atilde W -95 KPX Atilde Y -55 KPX Atilde Yacute -55 KPX Atilde Ydieresis -55 KPX Atilde quoteright -37 KPX Atilde u -20 KPX Atilde uacute -20 KPX Atilde ucircumflex -20 KPX Atilde udieresis -20 KPX Atilde ugrave -20 KPX Atilde uhungarumlaut -20 KPX Atilde umacron -20 KPX Atilde uogonek -20 KPX Atilde uring -20 KPX Atilde v -55 KPX Atilde w -55 KPX Atilde y -55 KPX Atilde yacute -55 KPX Atilde ydieresis -55 KPX B A -25 KPX B Aacute -25 KPX B Abreve -25 KPX B Acircumflex -25 KPX B Adieresis -25 KPX B Agrave -25 KPX B Amacron -25 KPX B Aogonek -25 KPX B Aring -25 KPX B Atilde -25 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -35 KPX D Aacute -35 KPX D Abreve -35 KPX D Acircumflex -35 KPX D Adieresis -35 KPX D Agrave -35 KPX D Amacron -35 KPX D Aogonek -35 KPX D Aring -35 KPX D Atilde -35 KPX D V -40 KPX D W -40 KPX D Y -40 KPX D Yacute -40 KPX D Ydieresis -40 KPX Dcaron A -35 KPX Dcaron Aacute -35 KPX Dcaron Abreve -35 KPX Dcaron Acircumflex -35 KPX Dcaron Adieresis -35 KPX Dcaron Agrave -35 KPX Dcaron Amacron -35 KPX Dcaron Aogonek -35 KPX Dcaron Aring -35 KPX Dcaron Atilde -35 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -40 KPX Dcaron Yacute -40 KPX Dcaron Ydieresis -40 KPX Dcroat A -35 KPX Dcroat Aacute -35 KPX Dcroat Abreve -35 KPX Dcroat Acircumflex -35 KPX Dcroat Adieresis -35 KPX Dcroat Agrave -35 KPX Dcroat Amacron -35 KPX Dcroat Aogonek -35 KPX Dcroat Aring -35 KPX Dcroat Atilde -35 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -40 KPX Dcroat Yacute -40 KPX Dcroat Ydieresis -40 KPX F A -115 KPX F Aacute -115 KPX F Abreve -115 KPX F Acircumflex -115 KPX F Adieresis -115 KPX F Agrave -115 KPX F Amacron -115 KPX F Aogonek -115 KPX F Aring -115 KPX F Atilde -115 KPX F a -75 KPX F aacute -75 KPX F abreve -75 KPX F acircumflex -75 KPX F adieresis -75 KPX F agrave -75 KPX F amacron -75 KPX F aogonek -75 KPX F aring -75 KPX F atilde -75 KPX F comma -135 KPX F e -75 KPX F eacute -75 KPX F ecaron -75 KPX F ecircumflex -75 KPX F edieresis -75 KPX F edotaccent -75 KPX F egrave -75 KPX F emacron -75 KPX F eogonek -75 KPX F i -45 KPX F iacute -45 KPX F icircumflex -45 KPX F idieresis -45 KPX F igrave -45 KPX F imacron -45 KPX F iogonek -45 KPX F o -105 KPX F oacute -105 KPX F ocircumflex -105 KPX F odieresis -105 KPX F ograve -105 KPX F ohungarumlaut -105 KPX F omacron -105 KPX F oslash -105 KPX F otilde -105 KPX F period -135 KPX F r -55 KPX F racute -55 KPX F rcaron -55 KPX F rcommaaccent -55 KPX J A -40 KPX J Aacute -40 KPX J Abreve -40 KPX J Acircumflex -40 KPX J Adieresis -40 KPX J Agrave -40 KPX J Amacron -40 KPX J Aogonek -40 KPX J Aring -40 KPX J Atilde -40 KPX J a -35 KPX J aacute -35 KPX J abreve -35 KPX J acircumflex -35 KPX J adieresis -35 KPX J agrave -35 KPX J amacron -35 KPX J aogonek -35 KPX J aring -35 KPX J atilde -35 KPX J comma -25 KPX J e -25 KPX J eacute -25 KPX J ecaron -25 KPX J ecircumflex -25 KPX J edieresis -25 KPX J edotaccent -25 KPX J egrave -25 KPX J emacron -25 KPX J eogonek -25 KPX J o -25 KPX J oacute -25 KPX J ocircumflex -25 KPX J odieresis -25 KPX J ograve -25 KPX J ohungarumlaut -25 KPX J omacron -25 KPX J oslash -25 KPX J otilde -25 KPX J period -25 KPX J u -35 KPX J uacute -35 KPX J ucircumflex -35 KPX J udieresis -35 KPX J ugrave -35 KPX J uhungarumlaut -35 KPX J umacron -35 KPX J uogonek -35 KPX J uring -35 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -35 KPX K eacute -35 KPX K ecaron -35 KPX K ecircumflex -35 KPX K edieresis -35 KPX K edotaccent -35 KPX K egrave -35 KPX K emacron -35 KPX K eogonek -35 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -40 KPX K uacute -40 KPX K ucircumflex -40 KPX K udieresis -40 KPX K ugrave -40 KPX K uhungarumlaut -40 KPX K umacron -40 KPX K uogonek -40 KPX K uring -40 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -35 KPX Kcommaaccent eacute -35 KPX Kcommaaccent ecaron -35 KPX Kcommaaccent ecircumflex -35 KPX Kcommaaccent edieresis -35 KPX Kcommaaccent edotaccent -35 KPX Kcommaaccent egrave -35 KPX Kcommaaccent emacron -35 KPX Kcommaaccent eogonek -35 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -40 KPX Kcommaaccent uacute -40 KPX Kcommaaccent ucircumflex -40 KPX Kcommaaccent udieresis -40 KPX Kcommaaccent ugrave -40 KPX Kcommaaccent uhungarumlaut -40 KPX Kcommaaccent umacron -40 KPX Kcommaaccent uogonek -40 KPX Kcommaaccent uring -40 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -20 KPX L Tcaron -20 KPX L Tcommaaccent -20 KPX L V -55 KPX L W -55 KPX L Y -20 KPX L Yacute -20 KPX L Ydieresis -20 KPX L quoteright -37 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -20 KPX Lacute Tcaron -20 KPX Lacute Tcommaaccent -20 KPX Lacute V -55 KPX Lacute W -55 KPX Lacute Y -20 KPX Lacute Yacute -20 KPX Lacute Ydieresis -20 KPX Lacute quoteright -37 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -20 KPX Lcommaaccent Tcaron -20 KPX Lcommaaccent Tcommaaccent -20 KPX Lcommaaccent V -55 KPX Lcommaaccent W -55 KPX Lcommaaccent Y -20 KPX Lcommaaccent Yacute -20 KPX Lcommaaccent Ydieresis -20 KPX Lcommaaccent quoteright -37 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -20 KPX Lslash Tcaron -20 KPX Lslash Tcommaaccent -20 KPX Lslash V -55 KPX Lslash W -55 KPX Lslash Y -20 KPX Lslash Yacute -20 KPX Lslash Ydieresis -20 KPX Lslash quoteright -37 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX N A -27 KPX N Aacute -27 KPX N Abreve -27 KPX N Acircumflex -27 KPX N Adieresis -27 KPX N Agrave -27 KPX N Amacron -27 KPX N Aogonek -27 KPX N Aring -27 KPX N Atilde -27 KPX Nacute A -27 KPX Nacute Aacute -27 KPX Nacute Abreve -27 KPX Nacute Acircumflex -27 KPX Nacute Adieresis -27 KPX Nacute Agrave -27 KPX Nacute Amacron -27 KPX Nacute Aogonek -27 KPX Nacute Aring -27 KPX Nacute Atilde -27 KPX Ncaron A -27 KPX Ncaron Aacute -27 KPX Ncaron Abreve -27 KPX Ncaron Acircumflex -27 KPX Ncaron Adieresis -27 KPX Ncaron Agrave -27 KPX Ncaron Amacron -27 KPX Ncaron Aogonek -27 KPX Ncaron Aring -27 KPX Ncaron Atilde -27 KPX Ncommaaccent A -27 KPX Ncommaaccent Aacute -27 KPX Ncommaaccent Abreve -27 KPX Ncommaaccent Acircumflex -27 KPX Ncommaaccent Adieresis -27 KPX Ncommaaccent Agrave -27 KPX Ncommaaccent Amacron -27 KPX Ncommaaccent Aogonek -27 KPX Ncommaaccent Aring -27 KPX Ncommaaccent Atilde -27 KPX Ntilde A -27 KPX Ntilde Aacute -27 KPX Ntilde Abreve -27 KPX Ntilde Acircumflex -27 KPX Ntilde Adieresis -27 KPX Ntilde Agrave -27 KPX Ntilde Amacron -27 KPX Ntilde Aogonek -27 KPX Ntilde Aring -27 KPX Ntilde Atilde -27 KPX O A -55 KPX O Aacute -55 KPX O Abreve -55 KPX O Acircumflex -55 KPX O Adieresis -55 KPX O Agrave -55 KPX O Amacron -55 KPX O Aogonek -55 KPX O Aring -55 KPX O Atilde -55 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -55 KPX Oacute Aacute -55 KPX Oacute Abreve -55 KPX Oacute Acircumflex -55 KPX Oacute Adieresis -55 KPX Oacute Agrave -55 KPX Oacute Amacron -55 KPX Oacute Aogonek -55 KPX Oacute Aring -55 KPX Oacute Atilde -55 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -55 KPX Ocircumflex Aacute -55 KPX Ocircumflex Abreve -55 KPX Ocircumflex Acircumflex -55 KPX Ocircumflex Adieresis -55 KPX Ocircumflex Agrave -55 KPX Ocircumflex Amacron -55 KPX Ocircumflex Aogonek -55 KPX Ocircumflex Aring -55 KPX Ocircumflex Atilde -55 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -55 KPX Odieresis Aacute -55 KPX Odieresis Abreve -55 KPX Odieresis Acircumflex -55 KPX Odieresis Adieresis -55 KPX Odieresis Agrave -55 KPX Odieresis Amacron -55 KPX Odieresis Aogonek -55 KPX Odieresis Aring -55 KPX Odieresis Atilde -55 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -55 KPX Ograve Aacute -55 KPX Ograve Abreve -55 KPX Ograve Acircumflex -55 KPX Ograve Adieresis -55 KPX Ograve Agrave -55 KPX Ograve Amacron -55 KPX Ograve Aogonek -55 KPX Ograve Aring -55 KPX Ograve Atilde -55 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -55 KPX Ohungarumlaut Aacute -55 KPX Ohungarumlaut Abreve -55 KPX Ohungarumlaut Acircumflex -55 KPX Ohungarumlaut Adieresis -55 KPX Ohungarumlaut Agrave -55 KPX Ohungarumlaut Amacron -55 KPX Ohungarumlaut Aogonek -55 KPX Ohungarumlaut Aring -55 KPX Ohungarumlaut Atilde -55 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -55 KPX Omacron Aacute -55 KPX Omacron Abreve -55 KPX Omacron Acircumflex -55 KPX Omacron Adieresis -55 KPX Omacron Agrave -55 KPX Omacron Amacron -55 KPX Omacron Aogonek -55 KPX Omacron Aring -55 KPX Omacron Atilde -55 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -55 KPX Oslash Aacute -55 KPX Oslash Abreve -55 KPX Oslash Acircumflex -55 KPX Oslash Adieresis -55 KPX Oslash Agrave -55 KPX Oslash Amacron -55 KPX Oslash Aogonek -55 KPX Oslash Aring -55 KPX Oslash Atilde -55 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -55 KPX Otilde Aacute -55 KPX Otilde Abreve -55 KPX Otilde Acircumflex -55 KPX Otilde Adieresis -55 KPX Otilde Agrave -55 KPX Otilde Amacron -55 KPX Otilde Aogonek -55 KPX Otilde Aring -55 KPX Otilde Atilde -55 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -90 KPX P Aacute -90 KPX P Abreve -90 KPX P Acircumflex -90 KPX P Adieresis -90 KPX P Agrave -90 KPX P Amacron -90 KPX P Aogonek -90 KPX P Aring -90 KPX P Atilde -90 KPX P a -80 KPX P aacute -80 KPX P abreve -80 KPX P acircumflex -80 KPX P adieresis -80 KPX P agrave -80 KPX P amacron -80 KPX P aogonek -80 KPX P aring -80 KPX P atilde -80 KPX P comma -135 KPX P e -80 KPX P eacute -80 KPX P ecaron -80 KPX P ecircumflex -80 KPX P edieresis -80 KPX P edotaccent -80 KPX P egrave -80 KPX P emacron -80 KPX P eogonek -80 KPX P o -80 KPX P oacute -80 KPX P ocircumflex -80 KPX P odieresis -80 KPX P ograve -80 KPX P ohungarumlaut -80 KPX P omacron -80 KPX P oslash -80 KPX P otilde -80 KPX P period -135 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -40 KPX R Oacute -40 KPX R Ocircumflex -40 KPX R Odieresis -40 KPX R Ograve -40 KPX R Ohungarumlaut -40 KPX R Omacron -40 KPX R Oslash -40 KPX R Otilde -40 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -18 KPX R W -18 KPX R Y -18 KPX R Yacute -18 KPX R Ydieresis -18 KPX Racute O -40 KPX Racute Oacute -40 KPX Racute Ocircumflex -40 KPX Racute Odieresis -40 KPX Racute Ograve -40 KPX Racute Ohungarumlaut -40 KPX Racute Omacron -40 KPX Racute Oslash -40 KPX Racute Otilde -40 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -18 KPX Racute W -18 KPX Racute Y -18 KPX Racute Yacute -18 KPX Racute Ydieresis -18 KPX Rcaron O -40 KPX Rcaron Oacute -40 KPX Rcaron Ocircumflex -40 KPX Rcaron Odieresis -40 KPX Rcaron Ograve -40 KPX Rcaron Ohungarumlaut -40 KPX Rcaron Omacron -40 KPX Rcaron Oslash -40 KPX Rcaron Otilde -40 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -18 KPX Rcaron W -18 KPX Rcaron Y -18 KPX Rcaron Yacute -18 KPX Rcaron Ydieresis -18 KPX Rcommaaccent O -40 KPX Rcommaaccent Oacute -40 KPX Rcommaaccent Ocircumflex -40 KPX Rcommaaccent Odieresis -40 KPX Rcommaaccent Ograve -40 KPX Rcommaaccent Ohungarumlaut -40 KPX Rcommaaccent Omacron -40 KPX Rcommaaccent Oslash -40 KPX Rcommaaccent Otilde -40 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -18 KPX Rcommaaccent W -18 KPX Rcommaaccent Y -18 KPX Rcommaaccent Yacute -18 KPX Rcommaaccent Ydieresis -18 KPX T A -50 KPX T Aacute -50 KPX T Abreve -50 KPX T Acircumflex -50 KPX T Adieresis -50 KPX T Agrave -50 KPX T Amacron -50 KPX T Aogonek -50 KPX T Aring -50 KPX T Atilde -50 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -92 KPX T acircumflex -92 KPX T adieresis -92 KPX T agrave -92 KPX T amacron -92 KPX T aogonek -92 KPX T aring -92 KPX T atilde -92 KPX T colon -55 KPX T comma -74 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -52 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -74 KPX T i -55 KPX T iacute -55 KPX T iogonek -55 KPX T o -92 KPX T oacute -92 KPX T ocircumflex -92 KPX T odieresis -92 KPX T ograve -92 KPX T ohungarumlaut -92 KPX T omacron -92 KPX T oslash -92 KPX T otilde -92 KPX T period -74 KPX T r -55 KPX T racute -55 KPX T rcaron -55 KPX T rcommaaccent -55 KPX T semicolon -65 KPX T u -55 KPX T uacute -55 KPX T ucircumflex -55 KPX T udieresis -55 KPX T ugrave -55 KPX T uhungarumlaut -55 KPX T umacron -55 KPX T uogonek -55 KPX T uring -55 KPX T w -74 KPX T y -74 KPX T yacute -74 KPX T ydieresis -34 KPX Tcaron A -50 KPX Tcaron Aacute -50 KPX Tcaron Abreve -50 KPX Tcaron Acircumflex -50 KPX Tcaron Adieresis -50 KPX Tcaron Agrave -50 KPX Tcaron Amacron -50 KPX Tcaron Aogonek -50 KPX Tcaron Aring -50 KPX Tcaron Atilde -50 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -92 KPX Tcaron acircumflex -92 KPX Tcaron adieresis -92 KPX Tcaron agrave -92 KPX Tcaron amacron -92 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -92 KPX Tcaron colon -55 KPX Tcaron comma -74 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -52 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -74 KPX Tcaron i -55 KPX Tcaron iacute -55 KPX Tcaron iogonek -55 KPX Tcaron o -92 KPX Tcaron oacute -92 KPX Tcaron ocircumflex -92 KPX Tcaron odieresis -92 KPX Tcaron ograve -92 KPX Tcaron ohungarumlaut -92 KPX Tcaron omacron -92 KPX Tcaron oslash -92 KPX Tcaron otilde -92 KPX Tcaron period -74 KPX Tcaron r -55 KPX Tcaron racute -55 KPX Tcaron rcaron -55 KPX Tcaron rcommaaccent -55 KPX Tcaron semicolon -65 KPX Tcaron u -55 KPX Tcaron uacute -55 KPX Tcaron ucircumflex -55 KPX Tcaron udieresis -55 KPX Tcaron ugrave -55 KPX Tcaron uhungarumlaut -55 KPX Tcaron umacron -55 KPX Tcaron uogonek -55 KPX Tcaron uring -55 KPX Tcaron w -74 KPX Tcaron y -74 KPX Tcaron yacute -74 KPX Tcaron ydieresis -34 KPX Tcommaaccent A -50 KPX Tcommaaccent Aacute -50 KPX Tcommaaccent Abreve -50 KPX Tcommaaccent Acircumflex -50 KPX Tcommaaccent Adieresis -50 KPX Tcommaaccent Agrave -50 KPX Tcommaaccent Amacron -50 KPX Tcommaaccent Aogonek -50 KPX Tcommaaccent Aring -50 KPX Tcommaaccent Atilde -50 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -92 KPX Tcommaaccent acircumflex -92 KPX Tcommaaccent adieresis -92 KPX Tcommaaccent agrave -92 KPX Tcommaaccent amacron -92 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -92 KPX Tcommaaccent colon -55 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -52 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -74 KPX Tcommaaccent i -55 KPX Tcommaaccent iacute -55 KPX Tcommaaccent iogonek -55 KPX Tcommaaccent o -92 KPX Tcommaaccent oacute -92 KPX Tcommaaccent ocircumflex -92 KPX Tcommaaccent odieresis -92 KPX Tcommaaccent ograve -92 KPX Tcommaaccent ohungarumlaut -92 KPX Tcommaaccent omacron -92 KPX Tcommaaccent oslash -92 KPX Tcommaaccent otilde -92 KPX Tcommaaccent period -74 KPX Tcommaaccent r -55 KPX Tcommaaccent racute -55 KPX Tcommaaccent rcaron -55 KPX Tcommaaccent rcommaaccent -55 KPX Tcommaaccent semicolon -65 KPX Tcommaaccent u -55 KPX Tcommaaccent uacute -55 KPX Tcommaaccent ucircumflex -55 KPX Tcommaaccent udieresis -55 KPX Tcommaaccent ugrave -55 KPX Tcommaaccent uhungarumlaut -55 KPX Tcommaaccent umacron -55 KPX Tcommaaccent uogonek -55 KPX Tcommaaccent uring -55 KPX Tcommaaccent w -74 KPX Tcommaaccent y -74 KPX Tcommaaccent yacute -74 KPX Tcommaaccent ydieresis -34 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -25 KPX U period -25 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -25 KPX Uacute period -25 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -25 KPX Ucircumflex period -25 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -25 KPX Udieresis period -25 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -25 KPX Ugrave period -25 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -25 KPX Uhungarumlaut period -25 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -25 KPX Umacron period -25 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -25 KPX Uogonek period -25 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -25 KPX Uring period -25 KPX V A -60 KPX V Aacute -60 KPX V Abreve -60 KPX V Acircumflex -60 KPX V Adieresis -60 KPX V Agrave -60 KPX V Amacron -60 KPX V Aogonek -60 KPX V Aring -60 KPX V Atilde -60 KPX V O -30 KPX V Oacute -30 KPX V Ocircumflex -30 KPX V Odieresis -30 KPX V Ograve -30 KPX V Ohungarumlaut -30 KPX V Omacron -30 KPX V Oslash -30 KPX V Otilde -30 KPX V a -111 KPX V aacute -111 KPX V abreve -111 KPX V acircumflex -111 KPX V adieresis -111 KPX V agrave -111 KPX V amacron -111 KPX V aogonek -111 KPX V aring -111 KPX V atilde -111 KPX V colon -65 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -111 KPX V ecircumflex -111 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -71 KPX V eogonek -111 KPX V hyphen -55 KPX V i -74 KPX V iacute -74 KPX V icircumflex -34 KPX V idieresis -34 KPX V igrave -34 KPX V imacron -34 KPX V iogonek -74 KPX V o -111 KPX V oacute -111 KPX V ocircumflex -111 KPX V odieresis -111 KPX V ograve -111 KPX V ohungarumlaut -111 KPX V omacron -111 KPX V oslash -111 KPX V otilde -111 KPX V period -129 KPX V semicolon -74 KPX V u -74 KPX V uacute -74 KPX V ucircumflex -74 KPX V udieresis -74 KPX V ugrave -74 KPX V uhungarumlaut -74 KPX V umacron -74 KPX V uogonek -74 KPX V uring -74 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -25 KPX W Oacute -25 KPX W Ocircumflex -25 KPX W Odieresis -25 KPX W Ograve -25 KPX W Ohungarumlaut -25 KPX W Omacron -25 KPX W Oslash -25 KPX W Otilde -25 KPX W a -92 KPX W aacute -92 KPX W abreve -92 KPX W acircumflex -92 KPX W adieresis -92 KPX W agrave -92 KPX W amacron -92 KPX W aogonek -92 KPX W aring -92 KPX W atilde -92 KPX W colon -65 KPX W comma -92 KPX W e -92 KPX W eacute -92 KPX W ecaron -92 KPX W ecircumflex -92 KPX W edieresis -52 KPX W edotaccent -92 KPX W egrave -52 KPX W emacron -52 KPX W eogonek -92 KPX W hyphen -37 KPX W i -55 KPX W iacute -55 KPX W iogonek -55 KPX W o -92 KPX W oacute -92 KPX W ocircumflex -92 KPX W odieresis -92 KPX W ograve -92 KPX W ohungarumlaut -92 KPX W omacron -92 KPX W oslash -92 KPX W otilde -92 KPX W period -92 KPX W semicolon -65 KPX W u -55 KPX W uacute -55 KPX W ucircumflex -55 KPX W udieresis -55 KPX W ugrave -55 KPX W uhungarumlaut -55 KPX W umacron -55 KPX W uogonek -55 KPX W uring -55 KPX W y -70 KPX W yacute -70 KPX W ydieresis -70 KPX Y A -50 KPX Y Aacute -50 KPX Y Abreve -50 KPX Y Acircumflex -50 KPX Y Adieresis -50 KPX Y Agrave -50 KPX Y Amacron -50 KPX Y Aogonek -50 KPX Y Aring -50 KPX Y Atilde -50 KPX Y O -15 KPX Y Oacute -15 KPX Y Ocircumflex -15 KPX Y Odieresis -15 KPX Y Ograve -15 KPX Y Ohungarumlaut -15 KPX Y Omacron -15 KPX Y Oslash -15 KPX Y Otilde -15 KPX Y a -92 KPX Y aacute -92 KPX Y abreve -92 KPX Y acircumflex -92 KPX Y adieresis -92 KPX Y agrave -92 KPX Y amacron -92 KPX Y aogonek -92 KPX Y aring -92 KPX Y atilde -92 KPX Y colon -65 KPX Y comma -92 KPX Y e -92 KPX Y eacute -92 KPX Y ecaron -92 KPX Y ecircumflex -92 KPX Y edieresis -52 KPX Y edotaccent -92 KPX Y egrave -52 KPX Y emacron -52 KPX Y eogonek -92 KPX Y hyphen -74 KPX Y i -74 KPX Y iacute -74 KPX Y icircumflex -34 KPX Y idieresis -34 KPX Y igrave -34 KPX Y imacron -34 KPX Y iogonek -74 KPX Y o -92 KPX Y oacute -92 KPX Y ocircumflex -92 KPX Y odieresis -92 KPX Y ograve -92 KPX Y ohungarumlaut -92 KPX Y omacron -92 KPX Y oslash -92 KPX Y otilde -92 KPX Y period -92 KPX Y semicolon -65 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -50 KPX Yacute Aacute -50 KPX Yacute Abreve -50 KPX Yacute Acircumflex -50 KPX Yacute Adieresis -50 KPX Yacute Agrave -50 KPX Yacute Amacron -50 KPX Yacute Aogonek -50 KPX Yacute Aring -50 KPX Yacute Atilde -50 KPX Yacute O -15 KPX Yacute Oacute -15 KPX Yacute Ocircumflex -15 KPX Yacute Odieresis -15 KPX Yacute Ograve -15 KPX Yacute Ohungarumlaut -15 KPX Yacute Omacron -15 KPX Yacute Oslash -15 KPX Yacute Otilde -15 KPX Yacute a -92 KPX Yacute aacute -92 KPX Yacute abreve -92 KPX Yacute acircumflex -92 KPX Yacute adieresis -92 KPX Yacute agrave -92 KPX Yacute amacron -92 KPX Yacute aogonek -92 KPX Yacute aring -92 KPX Yacute atilde -92 KPX Yacute colon -65 KPX Yacute comma -92 KPX Yacute e -92 KPX Yacute eacute -92 KPX Yacute ecaron -92 KPX Yacute ecircumflex -92 KPX Yacute edieresis -52 KPX Yacute edotaccent -92 KPX Yacute egrave -52 KPX Yacute emacron -52 KPX Yacute eogonek -92 KPX Yacute hyphen -74 KPX Yacute i -74 KPX Yacute iacute -74 KPX Yacute icircumflex -34 KPX Yacute idieresis -34 KPX Yacute igrave -34 KPX Yacute imacron -34 KPX Yacute iogonek -74 KPX Yacute o -92 KPX Yacute oacute -92 KPX Yacute ocircumflex -92 KPX Yacute odieresis -92 KPX Yacute ograve -92 KPX Yacute ohungarumlaut -92 KPX Yacute omacron -92 KPX Yacute oslash -92 KPX Yacute otilde -92 KPX Yacute period -92 KPX Yacute semicolon -65 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -50 KPX Ydieresis Aacute -50 KPX Ydieresis Abreve -50 KPX Ydieresis Acircumflex -50 KPX Ydieresis Adieresis -50 KPX Ydieresis Agrave -50 KPX Ydieresis Amacron -50 KPX Ydieresis Aogonek -50 KPX Ydieresis Aring -50 KPX Ydieresis Atilde -50 KPX Ydieresis O -15 KPX Ydieresis Oacute -15 KPX Ydieresis Ocircumflex -15 KPX Ydieresis Odieresis -15 KPX Ydieresis Ograve -15 KPX Ydieresis Ohungarumlaut -15 KPX Ydieresis Omacron -15 KPX Ydieresis Oslash -15 KPX Ydieresis Otilde -15 KPX Ydieresis a -92 KPX Ydieresis aacute -92 KPX Ydieresis abreve -92 KPX Ydieresis acircumflex -92 KPX Ydieresis adieresis -92 KPX Ydieresis agrave -92 KPX Ydieresis amacron -92 KPX Ydieresis aogonek -92 KPX Ydieresis aring -92 KPX Ydieresis atilde -92 KPX Ydieresis colon -65 KPX Ydieresis comma -92 KPX Ydieresis e -92 KPX Ydieresis eacute -92 KPX Ydieresis ecaron -92 KPX Ydieresis ecircumflex -92 KPX Ydieresis edieresis -52 KPX Ydieresis edotaccent -92 KPX Ydieresis egrave -52 KPX Ydieresis emacron -52 KPX Ydieresis eogonek -92 KPX Ydieresis hyphen -74 KPX Ydieresis i -74 KPX Ydieresis iacute -74 KPX Ydieresis icircumflex -34 KPX Ydieresis idieresis -34 KPX Ydieresis igrave -34 KPX Ydieresis imacron -34 KPX Ydieresis iogonek -74 KPX Ydieresis o -92 KPX Ydieresis oacute -92 KPX Ydieresis ocircumflex -92 KPX Ydieresis odieresis -92 KPX Ydieresis ograve -92 KPX Ydieresis ohungarumlaut -92 KPX Ydieresis omacron -92 KPX Ydieresis oslash -92 KPX Ydieresis otilde -92 KPX Ydieresis period -92 KPX Ydieresis semicolon -65 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX c h -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute h -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron h -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla h -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX comma quotedblright -140 KPX comma quoteright -140 KPX e comma -10 KPX e g -40 KPX e gbreve -40 KPX e gcommaaccent -40 KPX e period -15 KPX e v -15 KPX e w -15 KPX e x -20 KPX e y -30 KPX e yacute -30 KPX e ydieresis -30 KPX eacute comma -10 KPX eacute g -40 KPX eacute gbreve -40 KPX eacute gcommaaccent -40 KPX eacute period -15 KPX eacute v -15 KPX eacute w -15 KPX eacute x -20 KPX eacute y -30 KPX eacute yacute -30 KPX eacute ydieresis -30 KPX ecaron comma -10 KPX ecaron g -40 KPX ecaron gbreve -40 KPX ecaron gcommaaccent -40 KPX ecaron period -15 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -20 KPX ecaron y -30 KPX ecaron yacute -30 KPX ecaron ydieresis -30 KPX ecircumflex comma -10 KPX ecircumflex g -40 KPX ecircumflex gbreve -40 KPX ecircumflex gcommaaccent -40 KPX ecircumflex period -15 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -20 KPX ecircumflex y -30 KPX ecircumflex yacute -30 KPX ecircumflex ydieresis -30 KPX edieresis comma -10 KPX edieresis g -40 KPX edieresis gbreve -40 KPX edieresis gcommaaccent -40 KPX edieresis period -15 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -20 KPX edieresis y -30 KPX edieresis yacute -30 KPX edieresis ydieresis -30 KPX edotaccent comma -10 KPX edotaccent g -40 KPX edotaccent gbreve -40 KPX edotaccent gcommaaccent -40 KPX edotaccent period -15 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -20 KPX edotaccent y -30 KPX edotaccent yacute -30 KPX edotaccent ydieresis -30 KPX egrave comma -10 KPX egrave g -40 KPX egrave gbreve -40 KPX egrave gcommaaccent -40 KPX egrave period -15 KPX egrave v -15 KPX egrave w -15 KPX egrave x -20 KPX egrave y -30 KPX egrave yacute -30 KPX egrave ydieresis -30 KPX emacron comma -10 KPX emacron g -40 KPX emacron gbreve -40 KPX emacron gcommaaccent -40 KPX emacron period -15 KPX emacron v -15 KPX emacron w -15 KPX emacron x -20 KPX emacron y -30 KPX emacron yacute -30 KPX emacron ydieresis -30 KPX eogonek comma -10 KPX eogonek g -40 KPX eogonek gbreve -40 KPX eogonek gcommaaccent -40 KPX eogonek period -15 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -20 KPX eogonek y -30 KPX eogonek yacute -30 KPX eogonek ydieresis -30 KPX f comma -10 KPX f dotlessi -60 KPX f f -18 KPX f i -20 KPX f iogonek -20 KPX f period -15 KPX f quoteright 92 KPX g comma -10 KPX g e -10 KPX g eacute -10 KPX g ecaron -10 KPX g ecircumflex -10 KPX g edieresis -10 KPX g edotaccent -10 KPX g egrave -10 KPX g emacron -10 KPX g eogonek -10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX g period -15 KPX gbreve comma -10 KPX gbreve e -10 KPX gbreve eacute -10 KPX gbreve ecaron -10 KPX gbreve ecircumflex -10 KPX gbreve edieresis -10 KPX gbreve edotaccent -10 KPX gbreve egrave -10 KPX gbreve emacron -10 KPX gbreve eogonek -10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gbreve period -15 KPX gcommaaccent comma -10 KPX gcommaaccent e -10 KPX gcommaaccent eacute -10 KPX gcommaaccent ecaron -10 KPX gcommaaccent ecircumflex -10 KPX gcommaaccent edieresis -10 KPX gcommaaccent edotaccent -10 KPX gcommaaccent egrave -10 KPX gcommaaccent emacron -10 KPX gcommaaccent eogonek -10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX gcommaaccent period -15 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k oslash -10 KPX k otilde -10 KPX k y -10 KPX k yacute -10 KPX k ydieresis -10 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent oslash -10 KPX kcommaaccent otilde -10 KPX kcommaaccent y -10 KPX kcommaaccent yacute -10 KPX kcommaaccent ydieresis -10 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o g -10 KPX o gbreve -10 KPX o gcommaaccent -10 KPX o v -10 KPX oacute g -10 KPX oacute gbreve -10 KPX oacute gcommaaccent -10 KPX oacute v -10 KPX ocircumflex g -10 KPX ocircumflex gbreve -10 KPX ocircumflex gcommaaccent -10 KPX ocircumflex v -10 KPX odieresis g -10 KPX odieresis gbreve -10 KPX odieresis gcommaaccent -10 KPX odieresis v -10 KPX ograve g -10 KPX ograve gbreve -10 KPX ograve gcommaaccent -10 KPX ograve v -10 KPX ohungarumlaut g -10 KPX ohungarumlaut gbreve -10 KPX ohungarumlaut gcommaaccent -10 KPX ohungarumlaut v -10 KPX omacron g -10 KPX omacron gbreve -10 KPX omacron gcommaaccent -10 KPX omacron v -10 KPX oslash g -10 KPX oslash gbreve -10 KPX oslash gcommaaccent -10 KPX oslash v -10 KPX otilde g -10 KPX otilde gbreve -10 KPX otilde gcommaaccent -10 KPX otilde v -10 KPX period quotedblright -140 KPX period quoteright -140 KPX quoteleft quoteleft -111 KPX quoteright d -25 KPX quoteright dcroat -25 KPX quoteright quoteright -111 KPX quoteright r -25 KPX quoteright racute -25 KPX quoteright rcaron -25 KPX quoteright rcommaaccent -25 KPX quoteright s -40 KPX quoteright sacute -40 KPX quoteright scaron -40 KPX quoteright scedilla -40 KPX quoteright scommaaccent -40 KPX quoteright space -111 KPX quoteright t -30 KPX quoteright tcommaaccent -30 KPX quoteright v -10 KPX r a -15 KPX r aacute -15 KPX r abreve -15 KPX r acircumflex -15 KPX r adieresis -15 KPX r agrave -15 KPX r amacron -15 KPX r aogonek -15 KPX r aring -15 KPX r atilde -15 KPX r c -37 KPX r cacute -37 KPX r ccaron -37 KPX r ccedilla -37 KPX r comma -111 KPX r d -37 KPX r dcroat -37 KPX r e -37 KPX r eacute -37 KPX r ecaron -37 KPX r ecircumflex -37 KPX r edieresis -37 KPX r edotaccent -37 KPX r egrave -37 KPX r emacron -37 KPX r eogonek -37 KPX r g -37 KPX r gbreve -37 KPX r gcommaaccent -37 KPX r hyphen -20 KPX r o -45 KPX r oacute -45 KPX r ocircumflex -45 KPX r odieresis -45 KPX r ograve -45 KPX r ohungarumlaut -45 KPX r omacron -45 KPX r oslash -45 KPX r otilde -45 KPX r period -111 KPX r q -37 KPX r s -10 KPX r sacute -10 KPX r scaron -10 KPX r scedilla -10 KPX r scommaaccent -10 KPX racute a -15 KPX racute aacute -15 KPX racute abreve -15 KPX racute acircumflex -15 KPX racute adieresis -15 KPX racute agrave -15 KPX racute amacron -15 KPX racute aogonek -15 KPX racute aring -15 KPX racute atilde -15 KPX racute c -37 KPX racute cacute -37 KPX racute ccaron -37 KPX racute ccedilla -37 KPX racute comma -111 KPX racute d -37 KPX racute dcroat -37 KPX racute e -37 KPX racute eacute -37 KPX racute ecaron -37 KPX racute ecircumflex -37 KPX racute edieresis -37 KPX racute edotaccent -37 KPX racute egrave -37 KPX racute emacron -37 KPX racute eogonek -37 KPX racute g -37 KPX racute gbreve -37 KPX racute gcommaaccent -37 KPX racute hyphen -20 KPX racute o -45 KPX racute oacute -45 KPX racute ocircumflex -45 KPX racute odieresis -45 KPX racute ograve -45 KPX racute ohungarumlaut -45 KPX racute omacron -45 KPX racute oslash -45 KPX racute otilde -45 KPX racute period -111 KPX racute q -37 KPX racute s -10 KPX racute sacute -10 KPX racute scaron -10 KPX racute scedilla -10 KPX racute scommaaccent -10 KPX rcaron a -15 KPX rcaron aacute -15 KPX rcaron abreve -15 KPX rcaron acircumflex -15 KPX rcaron adieresis -15 KPX rcaron agrave -15 KPX rcaron amacron -15 KPX rcaron aogonek -15 KPX rcaron aring -15 KPX rcaron atilde -15 KPX rcaron c -37 KPX rcaron cacute -37 KPX rcaron ccaron -37 KPX rcaron ccedilla -37 KPX rcaron comma -111 KPX rcaron d -37 KPX rcaron dcroat -37 KPX rcaron e -37 KPX rcaron eacute -37 KPX rcaron ecaron -37 KPX rcaron ecircumflex -37 KPX rcaron edieresis -37 KPX rcaron edotaccent -37 KPX rcaron egrave -37 KPX rcaron emacron -37 KPX rcaron eogonek -37 KPX rcaron g -37 KPX rcaron gbreve -37 KPX rcaron gcommaaccent -37 KPX rcaron hyphen -20 KPX rcaron o -45 KPX rcaron oacute -45 KPX rcaron ocircumflex -45 KPX rcaron odieresis -45 KPX rcaron ograve -45 KPX rcaron ohungarumlaut -45 KPX rcaron omacron -45 KPX rcaron oslash -45 KPX rcaron otilde -45 KPX rcaron period -111 KPX rcaron q -37 KPX rcaron s -10 KPX rcaron sacute -10 KPX rcaron scaron -10 KPX rcaron scedilla -10 KPX rcaron scommaaccent -10 KPX rcommaaccent a -15 KPX rcommaaccent aacute -15 KPX rcommaaccent abreve -15 KPX rcommaaccent acircumflex -15 KPX rcommaaccent adieresis -15 KPX rcommaaccent agrave -15 KPX rcommaaccent amacron -15 KPX rcommaaccent aogonek -15 KPX rcommaaccent aring -15 KPX rcommaaccent atilde -15 KPX rcommaaccent c -37 KPX rcommaaccent cacute -37 KPX rcommaaccent ccaron -37 KPX rcommaaccent ccedilla -37 KPX rcommaaccent comma -111 KPX rcommaaccent d -37 KPX rcommaaccent dcroat -37 KPX rcommaaccent e -37 KPX rcommaaccent eacute -37 KPX rcommaaccent ecaron -37 KPX rcommaaccent ecircumflex -37 KPX rcommaaccent edieresis -37 KPX rcommaaccent edotaccent -37 KPX rcommaaccent egrave -37 KPX rcommaaccent emacron -37 KPX rcommaaccent eogonek -37 KPX rcommaaccent g -37 KPX rcommaaccent gbreve -37 KPX rcommaaccent gcommaaccent -37 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -45 KPX rcommaaccent oacute -45 KPX rcommaaccent ocircumflex -45 KPX rcommaaccent odieresis -45 KPX rcommaaccent ograve -45 KPX rcommaaccent ohungarumlaut -45 KPX rcommaaccent omacron -45 KPX rcommaaccent oslash -45 KPX rcommaaccent otilde -45 KPX rcommaaccent period -111 KPX rcommaaccent q -37 KPX rcommaaccent s -10 KPX rcommaaccent sacute -10 KPX rcommaaccent scaron -10 KPX rcommaaccent scedilla -10 KPX rcommaaccent scommaaccent -10 KPX space A -18 KPX space Aacute -18 KPX space Abreve -18 KPX space Acircumflex -18 KPX space Adieresis -18 KPX space Agrave -18 KPX space Amacron -18 KPX space Aogonek -18 KPX space Aring -18 KPX space Atilde -18 KPX space T -18 KPX space Tcaron -18 KPX space Tcommaaccent -18 KPX space V -35 KPX space W -40 KPX space Y -75 KPX space Yacute -75 KPX space Ydieresis -75 KPX v comma -74 KPX v period -74 KPX w comma -74 KPX w period -74 KPX y comma -55 KPX y period -55 KPX yacute comma -55 KPX yacute period -55 KPX ydieresis comma -55 KPX ydieresis period -55 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/Times-Roman.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:49:17 1997 Comment UniqueID 43068 Comment VMusage 43909 54934 FontName Times-Roman FullName Times Roman FamilyName Times Weight Roman ItalicAngle 0 IsFixedPitch false CharacterSet ExtendedRoman FontBBox -168 -218 1000 898 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 662 XHeight 450 Ascender 683 Descender -217 StdHW 28 StdVW 84 StartCharMetrics 315 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ; C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ; C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; C 49 ; WX 500 ; N one ; B 111 0 394 676 ; C 50 ; WX 500 ; N two ; B 30 0 475 676 ; C 51 ; WX 500 ; N three ; B 43 -14 431 676 ; C 52 ; WX 500 ; N four ; B 12 0 472 676 ; C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; C 54 ; WX 500 ; N six ; B 34 -14 468 684 ; C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ; C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ; C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ; C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; C 60 ; WX 564 ; N less ; B 28 -8 536 514 ; C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ; C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; C 65 ; WX 722 ; N A ; B 15 0 706 674 ; C 66 ; WX 667 ; N B ; B 17 0 593 662 ; C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; C 68 ; WX 722 ; N D ; B 16 0 685 662 ; C 69 ; WX 611 ; N E ; B 12 0 597 662 ; C 70 ; WX 556 ; N F ; B 12 0 546 662 ; C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; C 72 ; WX 722 ; N H ; B 19 0 702 662 ; C 73 ; WX 333 ; N I ; B 18 0 315 662 ; C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; C 75 ; WX 722 ; N K ; B 34 0 723 662 ; C 76 ; WX 611 ; N L ; B 12 0 598 662 ; C 77 ; WX 889 ; N M ; B 12 0 863 662 ; C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; C 80 ; WX 556 ; N P ; B 16 0 542 662 ; C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; C 82 ; WX 667 ; N R ; B 17 0 659 662 ; C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; C 84 ; WX 611 ; N T ; B 17 0 593 662 ; C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; C 88 ; WX 722 ; N X ; B 10 0 704 662 ; C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; C 97 ; WX 444 ; N a ; B 37 -10 442 460 ; C 98 ; WX 500 ; N b ; B 3 -10 468 683 ; C 99 ; WX 444 ; N c ; B 25 -10 412 460 ; C 100 ; WX 500 ; N d ; B 27 -10 491 683 ; C 101 ; WX 444 ; N e ; B 25 -10 424 460 ; C 102 ; WX 333 ; N f ; B 20 0 383 683 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 28 -218 470 460 ; C 104 ; WX 500 ; N h ; B 9 0 487 683 ; C 105 ; WX 278 ; N i ; B 16 0 253 683 ; C 106 ; WX 278 ; N j ; B -70 -218 194 683 ; C 107 ; WX 500 ; N k ; B 7 0 505 683 ; C 108 ; WX 278 ; N l ; B 19 0 257 683 ; C 109 ; WX 778 ; N m ; B 16 0 775 460 ; C 110 ; WX 500 ; N n ; B 16 0 485 460 ; C 111 ; WX 500 ; N o ; B 29 -10 470 460 ; C 112 ; WX 500 ; N p ; B 5 -217 470 460 ; C 113 ; WX 500 ; N q ; B 24 -217 488 460 ; C 114 ; WX 333 ; N r ; B 5 0 335 460 ; C 115 ; WX 389 ; N s ; B 51 -10 348 460 ; C 116 ; WX 278 ; N t ; B 13 -10 279 579 ; C 117 ; WX 500 ; N u ; B 9 -10 479 450 ; C 118 ; WX 500 ; N v ; B 19 -14 477 450 ; C 119 ; WX 722 ; N w ; B 21 -14 694 450 ; C 120 ; WX 500 ; N x ; B 17 0 479 450 ; C 121 ; WX 500 ; N y ; B 14 -218 475 450 ; C 122 ; WX 444 ; N z ; B 27 0 418 450 ; C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; C 124 ; WX 200 ; N bar ; B 67 -218 133 782 ; C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ; C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ; C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ; C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; C 168 ; WX 500 ; N currency ; B -22 58 522 602 ; C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; C 174 ; WX 556 ; N fi ; B 31 0 521 683 ; C 175 ; WX 556 ; N fl ; B 32 0 521 683 ; C 177 ; WX 500 ; N endash ; B 0 201 500 250 ; C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ; C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ; C 193 ; WX 333 ; N grave ; B 19 507 242 678 ; C 194 ; WX 333 ; N acute ; B 93 507 317 678 ; C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ; C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ; C 197 ; WX 333 ; N macron ; B 11 547 322 601 ; C 198 ; WX 333 ; N breve ; B 26 507 307 664 ; C 199 ; WX 333 ; N dotaccent ; B 118 581 216 681 ; C 200 ; WX 333 ; N dieresis ; B 18 581 315 681 ; C 202 ; WX 333 ; N ring ; B 67 512 266 711 ; C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ; C 206 ; WX 333 ; N ogonek ; B 62 -165 243 0 ; C 207 ; WX 333 ; N caron ; B 11 507 322 674 ; C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ; C 225 ; WX 889 ; N AE ; B 0 0 863 662 ; C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ; C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ; C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ; C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ; C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ; C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ; C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ; C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ; C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ; C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 501 678 ; C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ; C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ; C -1 ; WX 389 ; N scommaaccent ; B 51 -218 348 460 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; C -1 ; WX 722 ; N Uring ; B 14 -14 705 898 ; C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; C -1 ; WX 444 ; N aogonek ; B 37 -165 469 460 ; C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; C -1 ; WX 500 ; N uogonek ; B 9 -155 487 450 ; C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; C -1 ; WX 722 ; N Dcroat ; B 16 0 685 662 ; C -1 ; WX 250 ; N commaaccent ; B 59 -218 184 -50 ; C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; C -1 ; WX 611 ; N Emacron ; B 12 0 597 813 ; C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ; C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ; C -1 ; WX 722 ; N Ncommaaccent ; B 12 -198 707 662 ; C -1 ; WX 278 ; N lacute ; B 19 0 290 890 ; C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; C -1 ; WX 611 ; N Tcommaaccent ; B 17 -218 593 662 ; C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ; C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 835 ; C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ; C -1 ; WX 389 ; N scedilla ; B 51 -215 348 460 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ; C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ; C -1 ; WX 667 ; N Rcaron ; B 17 0 659 886 ; C -1 ; WX 722 ; N Gcommaaccent ; B 32 -218 709 676 ; C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; C -1 ; WX 722 ; N Amacron ; B 15 0 706 813 ; C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ; C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 835 ; C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; C -1 ; WX 722 ; N Omacron ; B 34 -14 688 813 ; C -1 ; WX 667 ; N Racute ; B 17 0 659 890 ; C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ; C -1 ; WX 588 ; N dcaron ; B 27 -10 589 695 ; C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ; C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ; C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; C -1 ; WX 722 ; N Abreve ; B 15 0 706 876 ; C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; C -1 ; WX 611 ; N Tcaron ; B 17 0 593 886 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ; C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ; C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ; C -1 ; WX 444 ; N cacute ; B 25 -10 413 678 ; C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ; C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ; C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 886 ; C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ; C -1 ; WX 200 ; N brokenbar ; B 67 -143 133 707 ; C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; C -1 ; WX 722 ; N Gbreve ; B 32 -14 709 876 ; C -1 ; WX 333 ; N Idotaccent ; B 18 0 315 835 ; C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; C -1 ; WX 333 ; N racute ; B 5 0 335 678 ; C -1 ; WX 500 ; N omacron ; B 29 -10 470 601 ; C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ; C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ; C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; C -1 ; WX 278 ; N lcommaaccent ; B 19 -218 257 683 ; C -1 ; WX 326 ; N tcaron ; B 13 -10 318 722 ; C -1 ; WX 444 ; N eogonek ; B 25 -165 424 460 ; C -1 ; WX 722 ; N Uogonek ; B 14 -165 705 662 ; C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ; C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ; C -1 ; WX 278 ; N iogonek ; B 16 -165 265 683 ; C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ; C -1 ; WX 444 ; N amacron ; B 37 -10 442 601 ; C -1 ; WX 389 ; N sacute ; B 51 -10 348 678 ; C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ; C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ; C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ; C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 491 678 ; C -1 ; WX 611 ; N Eogonek ; B 12 -165 597 662 ; C -1 ; WX 500 ; N dcroat ; B 27 -10 500 683 ; C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ; C -1 ; WX 344 ; N lcaron ; B 19 0 347 695 ; C -1 ; WX 722 ; N Kcommaaccent ; B 34 -198 723 662 ; C -1 ; WX 611 ; N Lacute ; B 12 0 598 890 ; C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 623 ; C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; C -1 ; WX 333 ; N Imacron ; B 11 0 322 813 ; C -1 ; WX 611 ; N Lcaron ; B 12 0 598 676 ; C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ; C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 890 ; C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; C -1 ; WX 444 ; N emacron ; B 25 -10 424 601 ; C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ; C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; C -1 ; WX 556 ; N Scommaaccent ; B 42 -218 491 676 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 890 ; C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ; C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ; C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; C -1 ; WX 722 ; N Dcaron ; B 16 0 685 886 ; C -1 ; WX 333 ; N rcommaaccent ; B 5 -218 335 460 ; C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ; C -1 ; WX 667 ; N Rcommaaccent ; B 17 -198 659 662 ; C -1 ; WX 611 ; N Lcommaaccent ; B 12 -218 598 662 ; C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; C -1 ; WX 722 ; N Aogonek ; B 15 -165 738 674 ; C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ; C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 623 ; C -1 ; WX 611 ; N Ecaron ; B 12 0 597 886 ; C -1 ; WX 333 ; N Iogonek ; B 18 -165 315 662 ; C -1 ; WX 500 ; N kcommaaccent ; B 7 -218 505 683 ; C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ; C -1 ; WX 278 ; N tcommaaccent ; B 13 -218 279 579 ; C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ; C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -218 470 749 ; C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ; C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ; C -1 ; WX 500 ; N ncommaaccent ; B 16 -218 485 460 ; C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; C -1 ; WX 278 ; N imacron ; B 6 0 271 601 ; C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ; EndCharMetrics StartKernData StartKernPairs 2073 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -40 KPX A Gbreve -40 KPX A Gcommaaccent -40 KPX A O -55 KPX A Oacute -55 KPX A Ocircumflex -55 KPX A Odieresis -55 KPX A Ograve -55 KPX A Ohungarumlaut -55 KPX A Omacron -55 KPX A Oslash -55 KPX A Otilde -55 KPX A Q -55 KPX A T -111 KPX A Tcaron -111 KPX A Tcommaaccent -111 KPX A U -55 KPX A Uacute -55 KPX A Ucircumflex -55 KPX A Udieresis -55 KPX A Ugrave -55 KPX A Uhungarumlaut -55 KPX A Umacron -55 KPX A Uogonek -55 KPX A Uring -55 KPX A V -135 KPX A W -90 KPX A Y -105 KPX A Yacute -105 KPX A Ydieresis -105 KPX A quoteright -111 KPX A v -74 KPX A w -92 KPX A y -92 KPX A yacute -92 KPX A ydieresis -92 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -40 KPX Aacute Gbreve -40 KPX Aacute Gcommaaccent -40 KPX Aacute O -55 KPX Aacute Oacute -55 KPX Aacute Ocircumflex -55 KPX Aacute Odieresis -55 KPX Aacute Ograve -55 KPX Aacute Ohungarumlaut -55 KPX Aacute Omacron -55 KPX Aacute Oslash -55 KPX Aacute Otilde -55 KPX Aacute Q -55 KPX Aacute T -111 KPX Aacute Tcaron -111 KPX Aacute Tcommaaccent -111 KPX Aacute U -55 KPX Aacute Uacute -55 KPX Aacute Ucircumflex -55 KPX Aacute Udieresis -55 KPX Aacute Ugrave -55 KPX Aacute Uhungarumlaut -55 KPX Aacute Umacron -55 KPX Aacute Uogonek -55 KPX Aacute Uring -55 KPX Aacute V -135 KPX Aacute W -90 KPX Aacute Y -105 KPX Aacute Yacute -105 KPX Aacute Ydieresis -105 KPX Aacute quoteright -111 KPX Aacute v -74 KPX Aacute w -92 KPX Aacute y -92 KPX Aacute yacute -92 KPX Aacute ydieresis -92 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -40 KPX Abreve Gbreve -40 KPX Abreve Gcommaaccent -40 KPX Abreve O -55 KPX Abreve Oacute -55 KPX Abreve Ocircumflex -55 KPX Abreve Odieresis -55 KPX Abreve Ograve -55 KPX Abreve Ohungarumlaut -55 KPX Abreve Omacron -55 KPX Abreve Oslash -55 KPX Abreve Otilde -55 KPX Abreve Q -55 KPX Abreve T -111 KPX Abreve Tcaron -111 KPX Abreve Tcommaaccent -111 KPX Abreve U -55 KPX Abreve Uacute -55 KPX Abreve Ucircumflex -55 KPX Abreve Udieresis -55 KPX Abreve Ugrave -55 KPX Abreve Uhungarumlaut -55 KPX Abreve Umacron -55 KPX Abreve Uogonek -55 KPX Abreve Uring -55 KPX Abreve V -135 KPX Abreve W -90 KPX Abreve Y -105 KPX Abreve Yacute -105 KPX Abreve Ydieresis -105 KPX Abreve quoteright -111 KPX Abreve v -74 KPX Abreve w -92 KPX Abreve y -92 KPX Abreve yacute -92 KPX Abreve ydieresis -92 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -40 KPX Acircumflex Gbreve -40 KPX Acircumflex Gcommaaccent -40 KPX Acircumflex O -55 KPX Acircumflex Oacute -55 KPX Acircumflex Ocircumflex -55 KPX Acircumflex Odieresis -55 KPX Acircumflex Ograve -55 KPX Acircumflex Ohungarumlaut -55 KPX Acircumflex Omacron -55 KPX Acircumflex Oslash -55 KPX Acircumflex Otilde -55 KPX Acircumflex Q -55 KPX Acircumflex T -111 KPX Acircumflex Tcaron -111 KPX Acircumflex Tcommaaccent -111 KPX Acircumflex U -55 KPX Acircumflex Uacute -55 KPX Acircumflex Ucircumflex -55 KPX Acircumflex Udieresis -55 KPX Acircumflex Ugrave -55 KPX Acircumflex Uhungarumlaut -55 KPX Acircumflex Umacron -55 KPX Acircumflex Uogonek -55 KPX Acircumflex Uring -55 KPX Acircumflex V -135 KPX Acircumflex W -90 KPX Acircumflex Y -105 KPX Acircumflex Yacute -105 KPX Acircumflex Ydieresis -105 KPX Acircumflex quoteright -111 KPX Acircumflex v -74 KPX Acircumflex w -92 KPX Acircumflex y -92 KPX Acircumflex yacute -92 KPX Acircumflex ydieresis -92 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -40 KPX Adieresis Gbreve -40 KPX Adieresis Gcommaaccent -40 KPX Adieresis O -55 KPX Adieresis Oacute -55 KPX Adieresis Ocircumflex -55 KPX Adieresis Odieresis -55 KPX Adieresis Ograve -55 KPX Adieresis Ohungarumlaut -55 KPX Adieresis Omacron -55 KPX Adieresis Oslash -55 KPX Adieresis Otilde -55 KPX Adieresis Q -55 KPX Adieresis T -111 KPX Adieresis Tcaron -111 KPX Adieresis Tcommaaccent -111 KPX Adieresis U -55 KPX Adieresis Uacute -55 KPX Adieresis Ucircumflex -55 KPX Adieresis Udieresis -55 KPX Adieresis Ugrave -55 KPX Adieresis Uhungarumlaut -55 KPX Adieresis Umacron -55 KPX Adieresis Uogonek -55 KPX Adieresis Uring -55 KPX Adieresis V -135 KPX Adieresis W -90 KPX Adieresis Y -105 KPX Adieresis Yacute -105 KPX Adieresis Ydieresis -105 KPX Adieresis quoteright -111 KPX Adieresis v -74 KPX Adieresis w -92 KPX Adieresis y -92 KPX Adieresis yacute -92 KPX Adieresis ydieresis -92 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -40 KPX Agrave Gbreve -40 KPX Agrave Gcommaaccent -40 KPX Agrave O -55 KPX Agrave Oacute -55 KPX Agrave Ocircumflex -55 KPX Agrave Odieresis -55 KPX Agrave Ograve -55 KPX Agrave Ohungarumlaut -55 KPX Agrave Omacron -55 KPX Agrave Oslash -55 KPX Agrave Otilde -55 KPX Agrave Q -55 KPX Agrave T -111 KPX Agrave Tcaron -111 KPX Agrave Tcommaaccent -111 KPX Agrave U -55 KPX Agrave Uacute -55 KPX Agrave Ucircumflex -55 KPX Agrave Udieresis -55 KPX Agrave Ugrave -55 KPX Agrave Uhungarumlaut -55 KPX Agrave Umacron -55 KPX Agrave Uogonek -55 KPX Agrave Uring -55 KPX Agrave V -135 KPX Agrave W -90 KPX Agrave Y -105 KPX Agrave Yacute -105 KPX Agrave Ydieresis -105 KPX Agrave quoteright -111 KPX Agrave v -74 KPX Agrave w -92 KPX Agrave y -92 KPX Agrave yacute -92 KPX Agrave ydieresis -92 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -40 KPX Amacron Gbreve -40 KPX Amacron Gcommaaccent -40 KPX Amacron O -55 KPX Amacron Oacute -55 KPX Amacron Ocircumflex -55 KPX Amacron Odieresis -55 KPX Amacron Ograve -55 KPX Amacron Ohungarumlaut -55 KPX Amacron Omacron -55 KPX Amacron Oslash -55 KPX Amacron Otilde -55 KPX Amacron Q -55 KPX Amacron T -111 KPX Amacron Tcaron -111 KPX Amacron Tcommaaccent -111 KPX Amacron U -55 KPX Amacron Uacute -55 KPX Amacron Ucircumflex -55 KPX Amacron Udieresis -55 KPX Amacron Ugrave -55 KPX Amacron Uhungarumlaut -55 KPX Amacron Umacron -55 KPX Amacron Uogonek -55 KPX Amacron Uring -55 KPX Amacron V -135 KPX Amacron W -90 KPX Amacron Y -105 KPX Amacron Yacute -105 KPX Amacron Ydieresis -105 KPX Amacron quoteright -111 KPX Amacron v -74 KPX Amacron w -92 KPX Amacron y -92 KPX Amacron yacute -92 KPX Amacron ydieresis -92 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -40 KPX Aogonek Gbreve -40 KPX Aogonek Gcommaaccent -40 KPX Aogonek O -55 KPX Aogonek Oacute -55 KPX Aogonek Ocircumflex -55 KPX Aogonek Odieresis -55 KPX Aogonek Ograve -55 KPX Aogonek Ohungarumlaut -55 KPX Aogonek Omacron -55 KPX Aogonek Oslash -55 KPX Aogonek Otilde -55 KPX Aogonek Q -55 KPX Aogonek T -111 KPX Aogonek Tcaron -111 KPX Aogonek Tcommaaccent -111 KPX Aogonek U -55 KPX Aogonek Uacute -55 KPX Aogonek Ucircumflex -55 KPX Aogonek Udieresis -55 KPX Aogonek Ugrave -55 KPX Aogonek Uhungarumlaut -55 KPX Aogonek Umacron -55 KPX Aogonek Uogonek -55 KPX Aogonek Uring -55 KPX Aogonek V -135 KPX Aogonek W -90 KPX Aogonek Y -105 KPX Aogonek Yacute -105 KPX Aogonek Ydieresis -105 KPX Aogonek quoteright -111 KPX Aogonek v -74 KPX Aogonek w -52 KPX Aogonek y -52 KPX Aogonek yacute -52 KPX Aogonek ydieresis -52 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -40 KPX Aring Gbreve -40 KPX Aring Gcommaaccent -40 KPX Aring O -55 KPX Aring Oacute -55 KPX Aring Ocircumflex -55 KPX Aring Odieresis -55 KPX Aring Ograve -55 KPX Aring Ohungarumlaut -55 KPX Aring Omacron -55 KPX Aring Oslash -55 KPX Aring Otilde -55 KPX Aring Q -55 KPX Aring T -111 KPX Aring Tcaron -111 KPX Aring Tcommaaccent -111 KPX Aring U -55 KPX Aring Uacute -55 KPX Aring Ucircumflex -55 KPX Aring Udieresis -55 KPX Aring Ugrave -55 KPX Aring Uhungarumlaut -55 KPX Aring Umacron -55 KPX Aring Uogonek -55 KPX Aring Uring -55 KPX Aring V -135 KPX Aring W -90 KPX Aring Y -105 KPX Aring Yacute -105 KPX Aring Ydieresis -105 KPX Aring quoteright -111 KPX Aring v -74 KPX Aring w -92 KPX Aring y -92 KPX Aring yacute -92 KPX Aring ydieresis -92 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -40 KPX Atilde Gbreve -40 KPX Atilde Gcommaaccent -40 KPX Atilde O -55 KPX Atilde Oacute -55 KPX Atilde Ocircumflex -55 KPX Atilde Odieresis -55 KPX Atilde Ograve -55 KPX Atilde Ohungarumlaut -55 KPX Atilde Omacron -55 KPX Atilde Oslash -55 KPX Atilde Otilde -55 KPX Atilde Q -55 KPX Atilde T -111 KPX Atilde Tcaron -111 KPX Atilde Tcommaaccent -111 KPX Atilde U -55 KPX Atilde Uacute -55 KPX Atilde Ucircumflex -55 KPX Atilde Udieresis -55 KPX Atilde Ugrave -55 KPX Atilde Uhungarumlaut -55 KPX Atilde Umacron -55 KPX Atilde Uogonek -55 KPX Atilde Uring -55 KPX Atilde V -135 KPX Atilde W -90 KPX Atilde Y -105 KPX Atilde Yacute -105 KPX Atilde Ydieresis -105 KPX Atilde quoteright -111 KPX Atilde v -74 KPX Atilde w -92 KPX Atilde y -92 KPX Atilde yacute -92 KPX Atilde ydieresis -92 KPX B A -35 KPX B Aacute -35 KPX B Abreve -35 KPX B Acircumflex -35 KPX B Adieresis -35 KPX B Agrave -35 KPX B Amacron -35 KPX B Aogonek -35 KPX B Aring -35 KPX B Atilde -35 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -30 KPX D Y -55 KPX D Yacute -55 KPX D Ydieresis -55 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -30 KPX Dcaron Y -55 KPX Dcaron Yacute -55 KPX Dcaron Ydieresis -55 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -30 KPX Dcroat Y -55 KPX Dcroat Yacute -55 KPX Dcroat Ydieresis -55 KPX F A -74 KPX F Aacute -74 KPX F Abreve -74 KPX F Acircumflex -74 KPX F Adieresis -74 KPX F Agrave -74 KPX F Amacron -74 KPX F Aogonek -74 KPX F Aring -74 KPX F Atilde -74 KPX F a -15 KPX F aacute -15 KPX F abreve -15 KPX F acircumflex -15 KPX F adieresis -15 KPX F agrave -15 KPX F amacron -15 KPX F aogonek -15 KPX F aring -15 KPX F atilde -15 KPX F comma -80 KPX F o -15 KPX F oacute -15 KPX F ocircumflex -15 KPX F odieresis -15 KPX F ograve -15 KPX F ohungarumlaut -15 KPX F omacron -15 KPX F oslash -15 KPX F otilde -15 KPX F period -80 KPX J A -60 KPX J Aacute -60 KPX J Abreve -60 KPX J Acircumflex -60 KPX J Adieresis -60 KPX J Agrave -60 KPX J Amacron -60 KPX J Aogonek -60 KPX J Aring -60 KPX J Atilde -60 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -15 KPX K uacute -15 KPX K ucircumflex -15 KPX K udieresis -15 KPX K ugrave -15 KPX K uhungarumlaut -15 KPX K umacron -15 KPX K uogonek -15 KPX K uring -15 KPX K y -25 KPX K yacute -25 KPX K ydieresis -25 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -15 KPX Kcommaaccent uacute -15 KPX Kcommaaccent ucircumflex -15 KPX Kcommaaccent udieresis -15 KPX Kcommaaccent ugrave -15 KPX Kcommaaccent uhungarumlaut -15 KPX Kcommaaccent umacron -15 KPX Kcommaaccent uogonek -15 KPX Kcommaaccent uring -15 KPX Kcommaaccent y -25 KPX Kcommaaccent yacute -25 KPX Kcommaaccent ydieresis -25 KPX L T -92 KPX L Tcaron -92 KPX L Tcommaaccent -92 KPX L V -100 KPX L W -74 KPX L Y -100 KPX L Yacute -100 KPX L Ydieresis -100 KPX L quoteright -92 KPX L y -55 KPX L yacute -55 KPX L ydieresis -55 KPX Lacute T -92 KPX Lacute Tcaron -92 KPX Lacute Tcommaaccent -92 KPX Lacute V -100 KPX Lacute W -74 KPX Lacute Y -100 KPX Lacute Yacute -100 KPX Lacute Ydieresis -100 KPX Lacute quoteright -92 KPX Lacute y -55 KPX Lacute yacute -55 KPX Lacute ydieresis -55 KPX Lcaron quoteright -92 KPX Lcaron y -55 KPX Lcaron yacute -55 KPX Lcaron ydieresis -55 KPX Lcommaaccent T -92 KPX Lcommaaccent Tcaron -92 KPX Lcommaaccent Tcommaaccent -92 KPX Lcommaaccent V -100 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -100 KPX Lcommaaccent Yacute -100 KPX Lcommaaccent Ydieresis -100 KPX Lcommaaccent quoteright -92 KPX Lcommaaccent y -55 KPX Lcommaaccent yacute -55 KPX Lcommaaccent ydieresis -55 KPX Lslash T -92 KPX Lslash Tcaron -92 KPX Lslash Tcommaaccent -92 KPX Lslash V -100 KPX Lslash W -74 KPX Lslash Y -100 KPX Lslash Yacute -100 KPX Lslash Ydieresis -100 KPX Lslash quoteright -92 KPX Lslash y -55 KPX Lslash yacute -55 KPX Lslash ydieresis -55 KPX N A -35 KPX N Aacute -35 KPX N Abreve -35 KPX N Acircumflex -35 KPX N Adieresis -35 KPX N Agrave -35 KPX N Amacron -35 KPX N Aogonek -35 KPX N Aring -35 KPX N Atilde -35 KPX Nacute A -35 KPX Nacute Aacute -35 KPX Nacute Abreve -35 KPX Nacute Acircumflex -35 KPX Nacute Adieresis -35 KPX Nacute Agrave -35 KPX Nacute Amacron -35 KPX Nacute Aogonek -35 KPX Nacute Aring -35 KPX Nacute Atilde -35 KPX Ncaron A -35 KPX Ncaron Aacute -35 KPX Ncaron Abreve -35 KPX Ncaron Acircumflex -35 KPX Ncaron Adieresis -35 KPX Ncaron Agrave -35 KPX Ncaron Amacron -35 KPX Ncaron Aogonek -35 KPX Ncaron Aring -35 KPX Ncaron Atilde -35 KPX Ncommaaccent A -35 KPX Ncommaaccent Aacute -35 KPX Ncommaaccent Abreve -35 KPX Ncommaaccent Acircumflex -35 KPX Ncommaaccent Adieresis -35 KPX Ncommaaccent Agrave -35 KPX Ncommaaccent Amacron -35 KPX Ncommaaccent Aogonek -35 KPX Ncommaaccent Aring -35 KPX Ncommaaccent Atilde -35 KPX Ntilde A -35 KPX Ntilde Aacute -35 KPX Ntilde Abreve -35 KPX Ntilde Acircumflex -35 KPX Ntilde Adieresis -35 KPX Ntilde Agrave -35 KPX Ntilde Amacron -35 KPX Ntilde Aogonek -35 KPX Ntilde Aring -35 KPX Ntilde Atilde -35 KPX O A -35 KPX O Aacute -35 KPX O Abreve -35 KPX O Acircumflex -35 KPX O Adieresis -35 KPX O Agrave -35 KPX O Amacron -35 KPX O Aogonek -35 KPX O Aring -35 KPX O Atilde -35 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -35 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -35 KPX Oacute Aacute -35 KPX Oacute Abreve -35 KPX Oacute Acircumflex -35 KPX Oacute Adieresis -35 KPX Oacute Agrave -35 KPX Oacute Amacron -35 KPX Oacute Aogonek -35 KPX Oacute Aring -35 KPX Oacute Atilde -35 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -35 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -35 KPX Ocircumflex Aacute -35 KPX Ocircumflex Abreve -35 KPX Ocircumflex Acircumflex -35 KPX Ocircumflex Adieresis -35 KPX Ocircumflex Agrave -35 KPX Ocircumflex Amacron -35 KPX Ocircumflex Aogonek -35 KPX Ocircumflex Aring -35 KPX Ocircumflex Atilde -35 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -35 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -35 KPX Odieresis Aacute -35 KPX Odieresis Abreve -35 KPX Odieresis Acircumflex -35 KPX Odieresis Adieresis -35 KPX Odieresis Agrave -35 KPX Odieresis Amacron -35 KPX Odieresis Aogonek -35 KPX Odieresis Aring -35 KPX Odieresis Atilde -35 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -35 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -35 KPX Ograve Aacute -35 KPX Ograve Abreve -35 KPX Ograve Acircumflex -35 KPX Ograve Adieresis -35 KPX Ograve Agrave -35 KPX Ograve Amacron -35 KPX Ograve Aogonek -35 KPX Ograve Aring -35 KPX Ograve Atilde -35 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -35 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -35 KPX Ohungarumlaut Aacute -35 KPX Ohungarumlaut Abreve -35 KPX Ohungarumlaut Acircumflex -35 KPX Ohungarumlaut Adieresis -35 KPX Ohungarumlaut Agrave -35 KPX Ohungarumlaut Amacron -35 KPX Ohungarumlaut Aogonek -35 KPX Ohungarumlaut Aring -35 KPX Ohungarumlaut Atilde -35 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -35 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -35 KPX Omacron Aacute -35 KPX Omacron Abreve -35 KPX Omacron Acircumflex -35 KPX Omacron Adieresis -35 KPX Omacron Agrave -35 KPX Omacron Amacron -35 KPX Omacron Aogonek -35 KPX Omacron Aring -35 KPX Omacron Atilde -35 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -35 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -35 KPX Oslash Aacute -35 KPX Oslash Abreve -35 KPX Oslash Acircumflex -35 KPX Oslash Adieresis -35 KPX Oslash Agrave -35 KPX Oslash Amacron -35 KPX Oslash Aogonek -35 KPX Oslash Aring -35 KPX Oslash Atilde -35 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -35 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -35 KPX Otilde Aacute -35 KPX Otilde Abreve -35 KPX Otilde Acircumflex -35 KPX Otilde Adieresis -35 KPX Otilde Agrave -35 KPX Otilde Amacron -35 KPX Otilde Aogonek -35 KPX Otilde Aring -35 KPX Otilde Atilde -35 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -35 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -92 KPX P Aacute -92 KPX P Abreve -92 KPX P Acircumflex -92 KPX P Adieresis -92 KPX P Agrave -92 KPX P Amacron -92 KPX P Aogonek -92 KPX P Aring -92 KPX P Atilde -92 KPX P a -15 KPX P aacute -15 KPX P abreve -15 KPX P acircumflex -15 KPX P adieresis -15 KPX P agrave -15 KPX P amacron -15 KPX P aogonek -15 KPX P aring -15 KPX P atilde -15 KPX P comma -111 KPX P period -111 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -40 KPX R Oacute -40 KPX R Ocircumflex -40 KPX R Odieresis -40 KPX R Ograve -40 KPX R Ohungarumlaut -40 KPX R Omacron -40 KPX R Oslash -40 KPX R Otilde -40 KPX R T -60 KPX R Tcaron -60 KPX R Tcommaaccent -60 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -80 KPX R W -55 KPX R Y -65 KPX R Yacute -65 KPX R Ydieresis -65 KPX Racute O -40 KPX Racute Oacute -40 KPX Racute Ocircumflex -40 KPX Racute Odieresis -40 KPX Racute Ograve -40 KPX Racute Ohungarumlaut -40 KPX Racute Omacron -40 KPX Racute Oslash -40 KPX Racute Otilde -40 KPX Racute T -60 KPX Racute Tcaron -60 KPX Racute Tcommaaccent -60 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -80 KPX Racute W -55 KPX Racute Y -65 KPX Racute Yacute -65 KPX Racute Ydieresis -65 KPX Rcaron O -40 KPX Rcaron Oacute -40 KPX Rcaron Ocircumflex -40 KPX Rcaron Odieresis -40 KPX Rcaron Ograve -40 KPX Rcaron Ohungarumlaut -40 KPX Rcaron Omacron -40 KPX Rcaron Oslash -40 KPX Rcaron Otilde -40 KPX Rcaron T -60 KPX Rcaron Tcaron -60 KPX Rcaron Tcommaaccent -60 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -80 KPX Rcaron W -55 KPX Rcaron Y -65 KPX Rcaron Yacute -65 KPX Rcaron Ydieresis -65 KPX Rcommaaccent O -40 KPX Rcommaaccent Oacute -40 KPX Rcommaaccent Ocircumflex -40 KPX Rcommaaccent Odieresis -40 KPX Rcommaaccent Ograve -40 KPX Rcommaaccent Ohungarumlaut -40 KPX Rcommaaccent Omacron -40 KPX Rcommaaccent Oslash -40 KPX Rcommaaccent Otilde -40 KPX Rcommaaccent T -60 KPX Rcommaaccent Tcaron -60 KPX Rcommaaccent Tcommaaccent -60 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -80 KPX Rcommaaccent W -55 KPX Rcommaaccent Y -65 KPX Rcommaaccent Yacute -65 KPX Rcommaaccent Ydieresis -65 KPX T A -93 KPX T Aacute -93 KPX T Abreve -93 KPX T Acircumflex -93 KPX T Adieresis -93 KPX T Agrave -93 KPX T Amacron -93 KPX T Aogonek -93 KPX T Aring -93 KPX T Atilde -93 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -40 KPX T agrave -40 KPX T amacron -40 KPX T aogonek -80 KPX T aring -80 KPX T atilde -40 KPX T colon -50 KPX T comma -74 KPX T e -70 KPX T eacute -70 KPX T ecaron -70 KPX T ecircumflex -70 KPX T edieresis -30 KPX T edotaccent -70 KPX T egrave -70 KPX T emacron -30 KPX T eogonek -70 KPX T hyphen -92 KPX T i -35 KPX T iacute -35 KPX T iogonek -35 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -74 KPX T r -35 KPX T racute -35 KPX T rcaron -35 KPX T rcommaaccent -35 KPX T semicolon -55 KPX T u -45 KPX T uacute -45 KPX T ucircumflex -45 KPX T udieresis -45 KPX T ugrave -45 KPX T uhungarumlaut -45 KPX T umacron -45 KPX T uogonek -45 KPX T uring -45 KPX T w -80 KPX T y -80 KPX T yacute -80 KPX T ydieresis -80 KPX Tcaron A -93 KPX Tcaron Aacute -93 KPX Tcaron Abreve -93 KPX Tcaron Acircumflex -93 KPX Tcaron Adieresis -93 KPX Tcaron Agrave -93 KPX Tcaron Amacron -93 KPX Tcaron Aogonek -93 KPX Tcaron Aring -93 KPX Tcaron Atilde -93 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -40 KPX Tcaron agrave -40 KPX Tcaron amacron -40 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -40 KPX Tcaron colon -50 KPX Tcaron comma -74 KPX Tcaron e -70 KPX Tcaron eacute -70 KPX Tcaron ecaron -70 KPX Tcaron ecircumflex -30 KPX Tcaron edieresis -30 KPX Tcaron edotaccent -70 KPX Tcaron egrave -70 KPX Tcaron emacron -30 KPX Tcaron eogonek -70 KPX Tcaron hyphen -92 KPX Tcaron i -35 KPX Tcaron iacute -35 KPX Tcaron iogonek -35 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -74 KPX Tcaron r -35 KPX Tcaron racute -35 KPX Tcaron rcaron -35 KPX Tcaron rcommaaccent -35 KPX Tcaron semicolon -55 KPX Tcaron u -45 KPX Tcaron uacute -45 KPX Tcaron ucircumflex -45 KPX Tcaron udieresis -45 KPX Tcaron ugrave -45 KPX Tcaron uhungarumlaut -45 KPX Tcaron umacron -45 KPX Tcaron uogonek -45 KPX Tcaron uring -45 KPX Tcaron w -80 KPX Tcaron y -80 KPX Tcaron yacute -80 KPX Tcaron ydieresis -80 KPX Tcommaaccent A -93 KPX Tcommaaccent Aacute -93 KPX Tcommaaccent Abreve -93 KPX Tcommaaccent Acircumflex -93 KPX Tcommaaccent Adieresis -93 KPX Tcommaaccent Agrave -93 KPX Tcommaaccent Amacron -93 KPX Tcommaaccent Aogonek -93 KPX Tcommaaccent Aring -93 KPX Tcommaaccent Atilde -93 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -40 KPX Tcommaaccent agrave -40 KPX Tcommaaccent amacron -40 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -40 KPX Tcommaaccent colon -50 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -70 KPX Tcommaaccent eacute -70 KPX Tcommaaccent ecaron -70 KPX Tcommaaccent ecircumflex -30 KPX Tcommaaccent edieresis -30 KPX Tcommaaccent edotaccent -70 KPX Tcommaaccent egrave -30 KPX Tcommaaccent emacron -70 KPX Tcommaaccent eogonek -70 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -35 KPX Tcommaaccent iacute -35 KPX Tcommaaccent iogonek -35 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -74 KPX Tcommaaccent r -35 KPX Tcommaaccent racute -35 KPX Tcommaaccent rcaron -35 KPX Tcommaaccent rcommaaccent -35 KPX Tcommaaccent semicolon -55 KPX Tcommaaccent u -45 KPX Tcommaaccent uacute -45 KPX Tcommaaccent ucircumflex -45 KPX Tcommaaccent udieresis -45 KPX Tcommaaccent ugrave -45 KPX Tcommaaccent uhungarumlaut -45 KPX Tcommaaccent umacron -45 KPX Tcommaaccent uogonek -45 KPX Tcommaaccent uring -45 KPX Tcommaaccent w -80 KPX Tcommaaccent y -80 KPX Tcommaaccent yacute -80 KPX Tcommaaccent ydieresis -80 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX V A -135 KPX V Aacute -135 KPX V Abreve -135 KPX V Acircumflex -135 KPX V Adieresis -135 KPX V Agrave -135 KPX V Amacron -135 KPX V Aogonek -135 KPX V Aring -135 KPX V Atilde -135 KPX V G -15 KPX V Gbreve -15 KPX V Gcommaaccent -15 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -111 KPX V aacute -111 KPX V abreve -111 KPX V acircumflex -71 KPX V adieresis -71 KPX V agrave -71 KPX V amacron -71 KPX V aogonek -111 KPX V aring -111 KPX V atilde -71 KPX V colon -74 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -71 KPX V ecircumflex -71 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -71 KPX V eogonek -111 KPX V hyphen -100 KPX V i -60 KPX V iacute -60 KPX V icircumflex -20 KPX V idieresis -20 KPX V igrave -20 KPX V imacron -20 KPX V iogonek -60 KPX V o -129 KPX V oacute -129 KPX V ocircumflex -129 KPX V odieresis -89 KPX V ograve -89 KPX V ohungarumlaut -129 KPX V omacron -89 KPX V oslash -129 KPX V otilde -89 KPX V period -129 KPX V semicolon -74 KPX V u -75 KPX V uacute -75 KPX V ucircumflex -75 KPX V udieresis -75 KPX V ugrave -75 KPX V uhungarumlaut -75 KPX V umacron -75 KPX V uogonek -75 KPX V uring -75 KPX W A -120 KPX W Aacute -120 KPX W Abreve -120 KPX W Acircumflex -120 KPX W Adieresis -120 KPX W Agrave -120 KPX W Amacron -120 KPX W Aogonek -120 KPX W Aring -120 KPX W Atilde -120 KPX W O -10 KPX W Oacute -10 KPX W Ocircumflex -10 KPX W Odieresis -10 KPX W Ograve -10 KPX W Ohungarumlaut -10 KPX W Omacron -10 KPX W Oslash -10 KPX W Otilde -10 KPX W a -80 KPX W aacute -80 KPX W abreve -80 KPX W acircumflex -80 KPX W adieresis -80 KPX W agrave -80 KPX W amacron -80 KPX W aogonek -80 KPX W aring -80 KPX W atilde -80 KPX W colon -37 KPX W comma -92 KPX W e -80 KPX W eacute -80 KPX W ecaron -80 KPX W ecircumflex -80 KPX W edieresis -40 KPX W edotaccent -80 KPX W egrave -40 KPX W emacron -40 KPX W eogonek -80 KPX W hyphen -65 KPX W i -40 KPX W iacute -40 KPX W iogonek -40 KPX W o -80 KPX W oacute -80 KPX W ocircumflex -80 KPX W odieresis -80 KPX W ograve -80 KPX W ohungarumlaut -80 KPX W omacron -80 KPX W oslash -80 KPX W otilde -80 KPX W period -92 KPX W semicolon -37 KPX W u -50 KPX W uacute -50 KPX W ucircumflex -50 KPX W udieresis -50 KPX W ugrave -50 KPX W uhungarumlaut -50 KPX W umacron -50 KPX W uogonek -50 KPX W uring -50 KPX W y -73 KPX W yacute -73 KPX W ydieresis -73 KPX Y A -120 KPX Y Aacute -120 KPX Y Abreve -120 KPX Y Acircumflex -120 KPX Y Adieresis -120 KPX Y Agrave -120 KPX Y Amacron -120 KPX Y Aogonek -120 KPX Y Aring -120 KPX Y Atilde -120 KPX Y O -30 KPX Y Oacute -30 KPX Y Ocircumflex -30 KPX Y Odieresis -30 KPX Y Ograve -30 KPX Y Ohungarumlaut -30 KPX Y Omacron -30 KPX Y Oslash -30 KPX Y Otilde -30 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -100 KPX Y acircumflex -100 KPX Y adieresis -60 KPX Y agrave -60 KPX Y amacron -60 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -60 KPX Y colon -92 KPX Y comma -129 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -100 KPX Y ecircumflex -100 KPX Y edieresis -60 KPX Y edotaccent -100 KPX Y egrave -60 KPX Y emacron -60 KPX Y eogonek -100 KPX Y hyphen -111 KPX Y i -55 KPX Y iacute -55 KPX Y iogonek -55 KPX Y o -110 KPX Y oacute -110 KPX Y ocircumflex -110 KPX Y odieresis -70 KPX Y ograve -70 KPX Y ohungarumlaut -110 KPX Y omacron -70 KPX Y oslash -110 KPX Y otilde -70 KPX Y period -129 KPX Y semicolon -92 KPX Y u -111 KPX Y uacute -111 KPX Y ucircumflex -111 KPX Y udieresis -71 KPX Y ugrave -71 KPX Y uhungarumlaut -111 KPX Y umacron -71 KPX Y uogonek -111 KPX Y uring -111 KPX Yacute A -120 KPX Yacute Aacute -120 KPX Yacute Abreve -120 KPX Yacute Acircumflex -120 KPX Yacute Adieresis -120 KPX Yacute Agrave -120 KPX Yacute Amacron -120 KPX Yacute Aogonek -120 KPX Yacute Aring -120 KPX Yacute Atilde -120 KPX Yacute O -30 KPX Yacute Oacute -30 KPX Yacute Ocircumflex -30 KPX Yacute Odieresis -30 KPX Yacute Ograve -30 KPX Yacute Ohungarumlaut -30 KPX Yacute Omacron -30 KPX Yacute Oslash -30 KPX Yacute Otilde -30 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -100 KPX Yacute acircumflex -100 KPX Yacute adieresis -60 KPX Yacute agrave -60 KPX Yacute amacron -60 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -60 KPX Yacute colon -92 KPX Yacute comma -129 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -100 KPX Yacute ecircumflex -100 KPX Yacute edieresis -60 KPX Yacute edotaccent -100 KPX Yacute egrave -60 KPX Yacute emacron -60 KPX Yacute eogonek -100 KPX Yacute hyphen -111 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute iogonek -55 KPX Yacute o -110 KPX Yacute oacute -110 KPX Yacute ocircumflex -110 KPX Yacute odieresis -70 KPX Yacute ograve -70 KPX Yacute ohungarumlaut -110 KPX Yacute omacron -70 KPX Yacute oslash -110 KPX Yacute otilde -70 KPX Yacute period -129 KPX Yacute semicolon -92 KPX Yacute u -111 KPX Yacute uacute -111 KPX Yacute ucircumflex -111 KPX Yacute udieresis -71 KPX Yacute ugrave -71 KPX Yacute uhungarumlaut -111 KPX Yacute umacron -71 KPX Yacute uogonek -111 KPX Yacute uring -111 KPX Ydieresis A -120 KPX Ydieresis Aacute -120 KPX Ydieresis Abreve -120 KPX Ydieresis Acircumflex -120 KPX Ydieresis Adieresis -120 KPX Ydieresis Agrave -120 KPX Ydieresis Amacron -120 KPX Ydieresis Aogonek -120 KPX Ydieresis Aring -120 KPX Ydieresis Atilde -120 KPX Ydieresis O -30 KPX Ydieresis Oacute -30 KPX Ydieresis Ocircumflex -30 KPX Ydieresis Odieresis -30 KPX Ydieresis Ograve -30 KPX Ydieresis Ohungarumlaut -30 KPX Ydieresis Omacron -30 KPX Ydieresis Oslash -30 KPX Ydieresis Otilde -30 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -100 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -60 KPX Ydieresis agrave -60 KPX Ydieresis amacron -60 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -92 KPX Ydieresis comma -129 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -100 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -60 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -60 KPX Ydieresis emacron -60 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -111 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -110 KPX Ydieresis oacute -110 KPX Ydieresis ocircumflex -110 KPX Ydieresis odieresis -70 KPX Ydieresis ograve -70 KPX Ydieresis ohungarumlaut -110 KPX Ydieresis omacron -70 KPX Ydieresis oslash -110 KPX Ydieresis otilde -70 KPX Ydieresis period -129 KPX Ydieresis semicolon -92 KPX Ydieresis u -111 KPX Ydieresis uacute -111 KPX Ydieresis ucircumflex -111 KPX Ydieresis udieresis -71 KPX Ydieresis ugrave -71 KPX Ydieresis uhungarumlaut -111 KPX Ydieresis umacron -71 KPX Ydieresis uogonek -111 KPX Ydieresis uring -111 KPX a v -20 KPX a w -15 KPX aacute v -20 KPX aacute w -15 KPX abreve v -20 KPX abreve w -15 KPX acircumflex v -20 KPX acircumflex w -15 KPX adieresis v -20 KPX adieresis w -15 KPX agrave v -20 KPX agrave w -15 KPX amacron v -20 KPX amacron w -15 KPX aogonek v -20 KPX aogonek w -15 KPX aring v -20 KPX aring w -15 KPX atilde v -20 KPX atilde w -15 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -15 KPX c y -15 KPX c yacute -15 KPX c ydieresis -15 KPX cacute y -15 KPX cacute yacute -15 KPX cacute ydieresis -15 KPX ccaron y -15 KPX ccaron yacute -15 KPX ccaron ydieresis -15 KPX ccedilla y -15 KPX ccedilla yacute -15 KPX ccedilla ydieresis -15 KPX comma quotedblright -70 KPX comma quoteright -70 KPX e g -15 KPX e gbreve -15 KPX e gcommaaccent -15 KPX e v -25 KPX e w -25 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute g -15 KPX eacute gbreve -15 KPX eacute gcommaaccent -15 KPX eacute v -25 KPX eacute w -25 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron g -15 KPX ecaron gbreve -15 KPX ecaron gcommaaccent -15 KPX ecaron v -25 KPX ecaron w -25 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex g -15 KPX ecircumflex gbreve -15 KPX ecircumflex gcommaaccent -15 KPX ecircumflex v -25 KPX ecircumflex w -25 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis g -15 KPX edieresis gbreve -15 KPX edieresis gcommaaccent -15 KPX edieresis v -25 KPX edieresis w -25 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent g -15 KPX edotaccent gbreve -15 KPX edotaccent gcommaaccent -15 KPX edotaccent v -25 KPX edotaccent w -25 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave g -15 KPX egrave gbreve -15 KPX egrave gcommaaccent -15 KPX egrave v -25 KPX egrave w -25 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron g -15 KPX emacron gbreve -15 KPX emacron gcommaaccent -15 KPX emacron v -25 KPX emacron w -25 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek g -15 KPX eogonek gbreve -15 KPX eogonek gcommaaccent -15 KPX eogonek v -25 KPX eogonek w -25 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f a -10 KPX f aacute -10 KPX f abreve -10 KPX f acircumflex -10 KPX f adieresis -10 KPX f agrave -10 KPX f amacron -10 KPX f aogonek -10 KPX f aring -10 KPX f atilde -10 KPX f dotlessi -50 KPX f f -25 KPX f i -20 KPX f iacute -20 KPX f quoteright 55 KPX g a -5 KPX g aacute -5 KPX g abreve -5 KPX g acircumflex -5 KPX g adieresis -5 KPX g agrave -5 KPX g amacron -5 KPX g aogonek -5 KPX g aring -5 KPX g atilde -5 KPX gbreve a -5 KPX gbreve aacute -5 KPX gbreve abreve -5 KPX gbreve acircumflex -5 KPX gbreve adieresis -5 KPX gbreve agrave -5 KPX gbreve amacron -5 KPX gbreve aogonek -5 KPX gbreve aring -5 KPX gbreve atilde -5 KPX gcommaaccent a -5 KPX gcommaaccent aacute -5 KPX gcommaaccent abreve -5 KPX gcommaaccent acircumflex -5 KPX gcommaaccent adieresis -5 KPX gcommaaccent agrave -5 KPX gcommaaccent amacron -5 KPX gcommaaccent aogonek -5 KPX gcommaaccent aring -5 KPX gcommaaccent atilde -5 KPX h y -5 KPX h yacute -5 KPX h ydieresis -5 KPX i v -25 KPX iacute v -25 KPX icircumflex v -25 KPX idieresis v -25 KPX igrave v -25 KPX imacron v -25 KPX iogonek v -25 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k oslash -10 KPX k otilde -10 KPX k y -15 KPX k yacute -15 KPX k ydieresis -15 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent oslash -10 KPX kcommaaccent otilde -10 KPX kcommaaccent y -15 KPX kcommaaccent yacute -15 KPX kcommaaccent ydieresis -15 KPX l w -10 KPX lacute w -10 KPX lcommaaccent w -10 KPX lslash w -10 KPX n v -40 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute v -40 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron v -40 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent v -40 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde v -40 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o v -15 KPX o w -25 KPX o y -10 KPX o yacute -10 KPX o ydieresis -10 KPX oacute v -15 KPX oacute w -25 KPX oacute y -10 KPX oacute yacute -10 KPX oacute ydieresis -10 KPX ocircumflex v -15 KPX ocircumflex w -25 KPX ocircumflex y -10 KPX ocircumflex yacute -10 KPX ocircumflex ydieresis -10 KPX odieresis v -15 KPX odieresis w -25 KPX odieresis y -10 KPX odieresis yacute -10 KPX odieresis ydieresis -10 KPX ograve v -15 KPX ograve w -25 KPX ograve y -10 KPX ograve yacute -10 KPX ograve ydieresis -10 KPX ohungarumlaut v -15 KPX ohungarumlaut w -25 KPX ohungarumlaut y -10 KPX ohungarumlaut yacute -10 KPX ohungarumlaut ydieresis -10 KPX omacron v -15 KPX omacron w -25 KPX omacron y -10 KPX omacron yacute -10 KPX omacron ydieresis -10 KPX oslash v -15 KPX oslash w -25 KPX oslash y -10 KPX oslash yacute -10 KPX oslash ydieresis -10 KPX otilde v -15 KPX otilde w -25 KPX otilde y -10 KPX otilde yacute -10 KPX otilde ydieresis -10 KPX p y -10 KPX p yacute -10 KPX p ydieresis -10 KPX period quotedblright -70 KPX period quoteright -70 KPX quotedblleft A -80 KPX quotedblleft Aacute -80 KPX quotedblleft Abreve -80 KPX quotedblleft Acircumflex -80 KPX quotedblleft Adieresis -80 KPX quotedblleft Agrave -80 KPX quotedblleft Amacron -80 KPX quotedblleft Aogonek -80 KPX quotedblleft Aring -80 KPX quotedblleft Atilde -80 KPX quoteleft A -80 KPX quoteleft Aacute -80 KPX quoteleft Abreve -80 KPX quoteleft Acircumflex -80 KPX quoteleft Adieresis -80 KPX quoteleft Agrave -80 KPX quoteleft Amacron -80 KPX quoteleft Aogonek -80 KPX quoteleft Aring -80 KPX quoteleft Atilde -80 KPX quoteleft quoteleft -74 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright l -10 KPX quoteright lacute -10 KPX quoteright lcommaaccent -10 KPX quoteright lslash -10 KPX quoteright quoteright -74 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -55 KPX quoteright sacute -55 KPX quoteright scaron -55 KPX quoteright scedilla -55 KPX quoteright scommaaccent -55 KPX quoteright space -74 KPX quoteright t -18 KPX quoteright tcommaaccent -18 KPX quoteright v -50 KPX r comma -40 KPX r g -18 KPX r gbreve -18 KPX r gcommaaccent -18 KPX r hyphen -20 KPX r period -55 KPX racute comma -40 KPX racute g -18 KPX racute gbreve -18 KPX racute gcommaaccent -18 KPX racute hyphen -20 KPX racute period -55 KPX rcaron comma -40 KPX rcaron g -18 KPX rcaron gbreve -18 KPX rcaron gcommaaccent -18 KPX rcaron hyphen -20 KPX rcaron period -55 KPX rcommaaccent comma -40 KPX rcommaaccent g -18 KPX rcommaaccent gbreve -18 KPX rcommaaccent gcommaaccent -18 KPX rcommaaccent hyphen -20 KPX rcommaaccent period -55 KPX space A -55 KPX space Aacute -55 KPX space Abreve -55 KPX space Acircumflex -55 KPX space Adieresis -55 KPX space Agrave -55 KPX space Amacron -55 KPX space Aogonek -55 KPX space Aring -55 KPX space Atilde -55 KPX space T -18 KPX space Tcaron -18 KPX space Tcommaaccent -18 KPX space V -50 KPX space W -30 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -65 KPX v e -15 KPX v eacute -15 KPX v ecaron -15 KPX v ecircumflex -15 KPX v edieresis -15 KPX v edotaccent -15 KPX v egrave -15 KPX v emacron -15 KPX v eogonek -15 KPX v o -20 KPX v oacute -20 KPX v ocircumflex -20 KPX v odieresis -20 KPX v ograve -20 KPX v ohungarumlaut -20 KPX v omacron -20 KPX v oslash -20 KPX v otilde -20 KPX v period -65 KPX w a -10 KPX w aacute -10 KPX w abreve -10 KPX w acircumflex -10 KPX w adieresis -10 KPX w agrave -10 KPX w amacron -10 KPX w aogonek -10 KPX w aring -10 KPX w atilde -10 KPX w comma -65 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -65 KPX x e -15 KPX x eacute -15 KPX x ecaron -15 KPX x ecircumflex -15 KPX x edieresis -15 KPX x edotaccent -15 KPX x egrave -15 KPX x emacron -15 KPX x eogonek -15 KPX y comma -65 KPX y period -65 KPX yacute comma -65 KPX yacute period -65 KPX ydieresis comma -65 KPX ydieresis period -65 EndKernPairs EndKernData EndFontMetrics ================================================ FILE: lib/font/data/ZapfDingbats.afm ================================================ StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 15:14:13 1997 Comment UniqueID 43082 Comment VMusage 45775 55535 FontName ZapfDingbats FullName ITC Zapf Dingbats FamilyName ZapfDingbats Weight Medium ItalicAngle 0 IsFixedPitch false CharacterSet Special FontBBox -1 -143 981 820 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation. EncodingScheme FontSpecific StdHW 28 StdVW 90 StartCharMetrics 202 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ; C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ; C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ; C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ; C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ; C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ; C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ; C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ; C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ; C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ; C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ; C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ; C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ; C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ; C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ; C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ; C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ; C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ; C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ; C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ; C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ; C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ; C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ; C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ; C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ; C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ; C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ; C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ; C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ; C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ; C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ; C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ; C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ; C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ; C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ; C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ; C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ; C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ; C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ; C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ; C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ; C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ; C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ; C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ; C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ; C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ; C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ; C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ; C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ; C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ; C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ; C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ; C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ; C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ; C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ; C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ; C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ; C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ; C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ; C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ; C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ; C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ; C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ; C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ; C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ; C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ; C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ; C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ; C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ; C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ; C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ; C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ; C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ; C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ; C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ; C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ; C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ; C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ; C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ; C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ; C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ; C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ; C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ; C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ; C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ; C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ; C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ; C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ; C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ; C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ; C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ; C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ; C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ; C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ; C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ; C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ; C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ; C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ; C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ; C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ; C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ; C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ; C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ; C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ; C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ; C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ; C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ; C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ; C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ; C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ; C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ; C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ; C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ; C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ; C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ; C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ; C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ; C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ; C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ; C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ; C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ; C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ; C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ; C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ; C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ; C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ; C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ; C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ; C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ; C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ; C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ; C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ; C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ; C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ; C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ; C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ; C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ; C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ; C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ; C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ; C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ; C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ; C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ; C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ; C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ; C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ; C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ; C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ; C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ; C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ; C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ; C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ; C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ; C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ; C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ; C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ; C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ; C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ; C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ; C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ; C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ; C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ; C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ; C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ; C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ; C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ; C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ; C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ; C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ; C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ; C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ; C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ; C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ; C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ; C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ; C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ; C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ; C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ; C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ; C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ; C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ; C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ; C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ; C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ; C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ; C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ; C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ; C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ; C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ; C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ; C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ; C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ; C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ; C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ; C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ; C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ; C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ; C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ; C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ; C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ; C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ; EndCharMetrics EndFontMetrics ================================================ FILE: lib/font/embedded.js ================================================ import PDFFont from '../font'; const toHex = function (num) { return `0000${num.toString(16)}`.slice(-4); }; class EmbeddedFont extends PDFFont { constructor(document, font, id) { super(); this.document = document; this.font = font; this.id = id; this.subset = this.font.createSubset(); this.unicode = [[0]]; this.widths = [this.font.getGlyph(0).advanceWidth]; this.name = this.font.postscriptName; this.scale = 1000 / this.font.unitsPerEm; this.ascender = this.font.ascent * this.scale; this.descender = this.font.descent * this.scale; this.xHeight = this.font.xHeight * this.scale; this.capHeight = this.font.capHeight * this.scale; this.lineGap = this.font.lineGap * this.scale; this.bbox = this.font.bbox; if (document.options.fontLayoutCache !== false) { this.layoutCache = Object.create(null); } } layoutRun(text, features) { const run = this.font.layout(text, features); // Normalize position values for (let i = 0; i < run.positions.length; i++) { const position = run.positions[i]; for (let key in position) { position[key] *= this.scale; } position.advanceWidth = run.glyphs[i].advanceWidth * this.scale; } return run; } layoutCached(text) { if (!this.layoutCache) { return this.layoutRun(text); } let cached; if ((cached = this.layoutCache[text])) { return cached; } const run = this.layoutRun(text); this.layoutCache[text] = run; return run; } layout(text, features, onlyWidth) { // Skip the cache if any user defined features are applied if (features) { return this.layoutRun(text, features); } let glyphs = onlyWidth ? null : []; let positions = onlyWidth ? null : []; let advanceWidth = 0; // Split the string by words to increase cache efficiency. // For this purpose, spaces and tabs are a good enough delimeter. let last = 0; let index = 0; while (index <= text.length) { var needle; if ( (index === text.length && last < index) || ((needle = text.charAt(index)), [' ', '\t'].includes(needle)) ) { const run = this.layoutCached(text.slice(last, ++index)); if (!onlyWidth) { glyphs = glyphs.concat(run.glyphs); positions = positions.concat(run.positions); } advanceWidth += run.advanceWidth; last = index; } else { index++; } } return { glyphs, positions, advanceWidth }; } encode(text, features) { const { glyphs, positions } = this.layout(text, features); const res = []; for (let i = 0; i < glyphs.length; i++) { const glyph = glyphs[i]; const gid = this.subset.includeGlyph(glyph.id); res.push(`0000${gid.toString(16)}`.slice(-4)); if (this.widths[gid] == null) { this.widths[gid] = glyph.advanceWidth * this.scale; } if (this.unicode[gid] == null) { this.unicode[gid] = glyph.codePoints; } } return [res, positions]; } widthOfString(string, size, features) { const width = this.layout(string, features, true).advanceWidth; const scale = size / 1000; return width * scale; } embed() { const isCFF = this.subset.cff != null; const fontFile = this.document.ref(); if (isCFF) { fontFile.data.Subtype = 'CIDFontType0C'; } fontFile.end(this.subset.encode()); const familyClass = ((this.font['OS/2'] != null ? this.font['OS/2'].sFamilyClass : undefined) || 0) >> 8; let flags = 0; if (this.font.post.isFixedPitch) { flags |= 1 << 0; } if (1 <= familyClass && familyClass <= 7) { flags |= 1 << 1; } flags |= 1 << 2; // assume the font uses non-latin characters if (familyClass === 10) { flags |= 1 << 3; } if (this.font.head.macStyle.italic) { flags |= 1 << 6; } // generate a tag (6 uppercase letters. 17 is the char code offset from '0' to 'A'. 73 will map to 'Z') const tag = [1, 2, 3, 4, 5, 6] .map((i) => String.fromCharCode((this.id.charCodeAt(i) || 73) + 17)) .join(''); const name = tag + '+' + this.font.postscriptName?.replaceAll(' ', '_'); const { bbox } = this.font; const descriptor = this.document.ref({ Type: 'FontDescriptor', FontName: name, Flags: flags, FontBBox: [ bbox.minX * this.scale, bbox.minY * this.scale, bbox.maxX * this.scale, bbox.maxY * this.scale, ], ItalicAngle: this.font.italicAngle, Ascent: this.ascender, Descent: this.descender, CapHeight: (this.font.capHeight || this.font.ascent) * this.scale, XHeight: (this.font.xHeight || 0) * this.scale, StemV: 0, }); // not sure how to calculate this if (isCFF) { descriptor.data.FontFile3 = fontFile; } else { descriptor.data.FontFile2 = fontFile; } if (this.document.subset && this.document.subset === 1) { const maxCID = this.widths.length - 1; const cidSetBuffer = Buffer.alloc(Math.ceil((maxCID + 1) / 8), 0); for (let cid = 0; cid <= maxCID; cid++) { if (this.widths[cid] != null) { cidSetBuffer[Math.floor(cid / 8)] |= 0x80 >> cid % 8; } } const CIDSetRef = this.document.ref(); CIDSetRef.write(cidSetBuffer); CIDSetRef.end(); descriptor.data.CIDSet = CIDSetRef; } descriptor.end(); const descendantFontData = { Type: 'Font', Subtype: 'CIDFontType0', BaseFont: name, CIDSystemInfo: { Registry: new String('Adobe'), Ordering: new String('Identity'), Supplement: 0, }, FontDescriptor: descriptor, W: [0, this.widths], }; if (!isCFF) { descendantFontData.Subtype = 'CIDFontType2'; descendantFontData.CIDToGIDMap = 'Identity'; } const descendantFont = this.document.ref(descendantFontData); descendantFont.end(); this.dictionary.data = { Type: 'Font', Subtype: 'Type0', BaseFont: name, Encoding: 'Identity-H', DescendantFonts: [descendantFont], ToUnicode: this.toUnicodeCmap(), }; return this.dictionary.end(); } // Maps the glyph ids encoded in the PDF back to unicode strings // Because of ligature substitutions and the like, there may be one or more // unicode characters represented by each glyph. toUnicodeCmap() { const cmap = this.document.ref(); const entries = []; for (let codePoints of this.unicode) { const encoded = []; // encode codePoints to utf16 for (let value of codePoints) { if (value > 0xffff) { value -= 0x10000; encoded.push(toHex(((value >>> 10) & 0x3ff) | 0xd800)); value = 0xdc00 | (value & 0x3ff); } encoded.push(toHex(value)); } entries.push(`<${encoded.join(' ')}>`); } const chunkSize = 256; const chunks = Math.ceil(entries.length / chunkSize); const ranges = []; for (let i = 0; i < chunks; i++) { const start = i * chunkSize; const end = Math.min((i + 1) * chunkSize, entries.length); ranges.push( `<${toHex(start)}> <${toHex(end - 1)}> [${entries.slice(start, end).join(' ')}]`, ); } cmap.end(`\ /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def /CMapName /Adobe-Identity-UCS def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange ${ranges.length} beginbfrange ${ranges.join('\n')} endbfrange endcmap CMapName currentdict /CMap defineresource pop end end\ `); return cmap; } } export default EmbeddedFont; ================================================ FILE: lib/font/standard.js ================================================ import AFMFont from './afm'; import PDFFont from '../font'; import fs from 'fs'; // This insanity is so bundlers can inline the font files const STANDARD_FONTS = { Courier() { return fs.readFileSync(__dirname + '/data/Courier.afm', 'utf8'); }, 'Courier-Bold'() { return fs.readFileSync(__dirname + '/data/Courier-Bold.afm', 'utf8'); }, 'Courier-Oblique'() { return fs.readFileSync(__dirname + '/data/Courier-Oblique.afm', 'utf8'); }, 'Courier-BoldOblique'() { return fs.readFileSync(__dirname + '/data/Courier-BoldOblique.afm', 'utf8'); }, Helvetica() { return fs.readFileSync(__dirname + '/data/Helvetica.afm', 'utf8'); }, 'Helvetica-Bold'() { return fs.readFileSync(__dirname + '/data/Helvetica-Bold.afm', 'utf8'); }, 'Helvetica-Oblique'() { return fs.readFileSync(__dirname + '/data/Helvetica-Oblique.afm', 'utf8'); }, 'Helvetica-BoldOblique'() { return fs.readFileSync( __dirname + '/data/Helvetica-BoldOblique.afm', 'utf8', ); }, 'Times-Roman'() { return fs.readFileSync(__dirname + '/data/Times-Roman.afm', 'utf8'); }, 'Times-Bold'() { return fs.readFileSync(__dirname + '/data/Times-Bold.afm', 'utf8'); }, 'Times-Italic'() { return fs.readFileSync(__dirname + '/data/Times-Italic.afm', 'utf8'); }, 'Times-BoldItalic'() { return fs.readFileSync(__dirname + '/data/Times-BoldItalic.afm', 'utf8'); }, Symbol() { return fs.readFileSync(__dirname + '/data/Symbol.afm', 'utf8'); }, ZapfDingbats() { return fs.readFileSync(__dirname + '/data/ZapfDingbats.afm', 'utf8'); }, }; class StandardFont extends PDFFont { constructor(document, name, id) { super(); this.document = document; this.name = name; this.id = id; this.font = new AFMFont(STANDARD_FONTS[this.name]()); ({ ascender: this.ascender, descender: this.descender, bbox: this.bbox, lineGap: this.lineGap, xHeight: this.xHeight, capHeight: this.capHeight, } = this.font); } embed() { this.dictionary.data = { Type: 'Font', BaseFont: this.name, Subtype: 'Type1', Encoding: 'WinAnsiEncoding', }; return this.dictionary.end(); } encode(text) { const encoded = this.font.encodeText(text); const glyphs = this.font.glyphsForString(`${text}`); const advances = this.font.advancesForGlyphs(glyphs); const positions = []; for (let i = 0; i < glyphs.length; i++) { const glyph = glyphs[i]; positions.push({ xAdvance: advances[i], yAdvance: 0, xOffset: 0, yOffset: 0, advanceWidth: this.font.widthOfGlyph(glyph), }); } return [encoded, positions]; } widthOfString(string, size) { const glyphs = this.font.glyphsForString(`${string}`); const advances = this.font.advancesForGlyphs(glyphs); let width = 0; for (let advance of advances) { width += advance; } const scale = size / 1000; return width * scale; } static isStandardFont(name) { return name in STANDARD_FONTS; } } export default StandardFont; ================================================ FILE: lib/font.js ================================================ class PDFFont { constructor() {} encode() { throw new Error('Must be implemented by subclasses'); } widthOfString() { throw new Error('Must be implemented by subclasses'); } ref() { return this.dictionary != null ? this.dictionary : (this.dictionary = this.document.ref()); } finalize() { if (this.embedded || this.dictionary == null) { return; } this.embed(); this.embedded = true; } embed() { throw new Error('Must be implemented by subclasses'); } lineHeight(size, includeGap = false) { const gap = includeGap ? this.lineGap : 0; return ((this.ascender + gap - this.descender) / 1000) * size; } } export default PDFFont; ================================================ FILE: lib/font_factory.js ================================================ import fs from 'fs'; import { create } from 'fontkit'; import StandardFont from './font/standard'; import EmbeddedFont from './font/embedded'; class PDFFontFactory { static open(document, src, family, id) { let font; if (typeof src === 'string') { if (StandardFont.isStandardFont(src)) { return new StandardFont(document, src, id); } src = fs.readFileSync(src); } if (src instanceof Uint8Array) { font = create(src, family); } else if (src instanceof ArrayBuffer) { font = create(new Uint8Array(src), family); } if (font == null) { throw new Error('Not a supported font format or standard PDF font.'); } return new EmbeddedFont(document, font, id); } } export default PDFFontFactory; ================================================ FILE: lib/gradient.js ================================================ import PDFObject from './object'; const { number } = PDFObject; class PDFGradient { constructor(doc) { this.doc = doc; this.stops = []; this.embedded = false; this.transform = [1, 0, 0, 1, 0, 0]; } stop(pos, color, opacity) { if (opacity == null) { opacity = 1; } color = this.doc._normalizeColor(color); if (this.stops.length === 0) { if (color.length === 3) { this._colorSpace = 'DeviceRGB'; } else if (color.length === 4) { this._colorSpace = 'DeviceCMYK'; } else if (color.length === 1) { this._colorSpace = 'DeviceGray'; } else { throw new Error('Unknown color space'); } } else if ( (this._colorSpace === 'DeviceRGB' && color.length !== 3) || (this._colorSpace === 'DeviceCMYK' && color.length !== 4) || (this._colorSpace === 'DeviceGray' && color.length !== 1) ) { throw new Error('All gradient stops must use the same color space'); } opacity = Math.max(0, Math.min(1, opacity)); this.stops.push([pos, color, opacity]); return this; } setTransform(m11, m12, m21, m22, dx, dy) { this.transform = [m11, m12, m21, m22, dx, dy]; return this; } embed(m) { let fn; const stopsLength = this.stops.length; if (stopsLength === 0) { return; } this.embedded = true; this.matrix = m; // if the last stop comes before 100%, add a copy at 100% const last = this.stops[stopsLength - 1]; if (last[0] < 1) { this.stops.push([1, last[1], last[2]]); } const bounds = []; const encode = []; const stops = []; for (let i = 0; i < stopsLength - 1; i++) { encode.push(0, 1); if (i + 2 !== stopsLength) { bounds.push(this.stops[i + 1][0]); } fn = this.doc.ref({ FunctionType: 2, Domain: [0, 1], C0: this.stops[i + 0][1], C1: this.stops[i + 1][1], N: 1, }); stops.push(fn); fn.end(); } // if there are only two stops, we don't need a stitching function if (stopsLength === 1) { fn = stops[0]; } else { fn = this.doc.ref({ FunctionType: 3, // stitching function Domain: [0, 1], Functions: stops, Bounds: bounds, Encode: encode, }); fn.end(); } this.id = `Sh${++this.doc._gradCount}`; const shader = this.shader(fn); shader.end(); const pattern = this.doc.ref({ Type: 'Pattern', PatternType: 2, Shading: shader, Matrix: this.matrix.map(number), }); pattern.end(); if (this.stops.some((stop) => stop[2] < 1)) { let grad = this.opacityGradient(); grad._colorSpace = 'DeviceGray'; for (let stop of this.stops) { grad.stop(stop[0], [stop[2]]); } grad = grad.embed(this.matrix); const pageBBox = [0, 0, this.doc.page.width, this.doc.page.height]; const form = this.doc.ref({ Type: 'XObject', Subtype: 'Form', FormType: 1, BBox: pageBBox, Group: { Type: 'Group', S: 'Transparency', CS: 'DeviceGray', }, Resources: { ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'], Pattern: { Sh1: grad, }, }, }); form.write('/Pattern cs /Sh1 scn'); form.end(`${pageBBox.join(' ')} re f`); const gstate = this.doc.ref({ Type: 'ExtGState', SMask: { Type: 'Mask', S: 'Luminosity', G: form, }, }); gstate.end(); const opacityPattern = this.doc.ref({ Type: 'Pattern', PatternType: 1, PaintType: 1, TilingType: 2, BBox: pageBBox, XStep: pageBBox[2], YStep: pageBBox[3], Resources: { ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'], Pattern: { Sh1: pattern, }, ExtGState: { Gs1: gstate, }, }, }); opacityPattern.write('/Gs1 gs /Pattern cs /Sh1 scn'); opacityPattern.end(`${pageBBox.join(' ')} re f`); this.doc.page.patterns[this.id] = opacityPattern; } else { this.doc.page.patterns[this.id] = pattern; } return pattern; } apply(stroke) { // apply gradient transform to existing document ctm const [m0, m1, m2, m3, m4, m5] = this.doc._ctm; const [m11, m12, m21, m22, dx, dy] = this.transform; const m = [ m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5, ]; if (!this.embedded || m.join(' ') !== this.matrix.join(' ')) { this.embed(m); } this.doc._setColorSpace('Pattern', stroke); const op = stroke ? 'SCN' : 'scn'; return this.doc.addContent(`/${this.id} ${op}`); } } class PDFLinearGradient extends PDFGradient { constructor(doc, x1, y1, x2, y2) { super(doc); this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } shader(fn) { return this.doc.ref({ ShadingType: 2, ColorSpace: this._colorSpace, Coords: [this.x1, this.y1, this.x2, this.y2], Function: fn, Extend: [true, true], }); } opacityGradient() { return new PDFLinearGradient(this.doc, this.x1, this.y1, this.x2, this.y2); } } class PDFRadialGradient extends PDFGradient { constructor(doc, x1, y1, r1, x2, y2, r2) { super(doc); this.doc = doc; this.x1 = x1; this.y1 = y1; this.r1 = r1; this.x2 = x2; this.y2 = y2; this.r2 = r2; } shader(fn) { return this.doc.ref({ ShadingType: 3, ColorSpace: this._colorSpace, Coords: [this.x1, this.y1, this.r1, this.x2, this.y2, this.r2], Function: fn, Extend: [true, true], }); } opacityGradient() { return new PDFRadialGradient( this.doc, this.x1, this.y1, this.r1, this.x2, this.y2, this.r2, ); } } export default { PDFGradient, PDFLinearGradient, PDFRadialGradient }; ================================================ FILE: lib/image/jpeg.js ================================================ /** * Parse EXIF orientation from JPEG buffer * @param {Buffer} data - JPEG image data * @returns {number|null} Orientation value (1-8) or null if not found */ const parseExifOrientation = (data) => { if (!data || data.length < 20) return null; let pos = 2; // Skip SOI marker while (pos < data.length - 4) { // Skip padding bytes (some JPEG files have null bytes between segments) while (pos < data.length && data[pos] !== 0xff) pos++; if (pos >= data.length - 4) return null; const marker = data.readUInt16BE(pos); pos += 2; // SOS marker - image data starts, stop searching if (marker === 0xffda) return null; // Skip standalone markers if ((marker >= 0xffd0 && marker <= 0xffd9) || marker === 0xff01) continue; if (pos + 2 > data.length) return null; const segmentLength = data.readUInt16BE(pos); // APP1 (EXIF) marker if (marker === 0xffe1 && pos + 8 <= data.length) { const exifHeader = data.subarray(pos + 2, pos + 8).toString('binary'); if (exifHeader === 'Exif\x00\x00') { const tiffStart = pos + 8; if (tiffStart + 8 > data.length) return null; // Byte order const byteOrder = data .subarray(tiffStart, tiffStart + 2) .toString('ascii'); const isLittleEndian = byteOrder === 'II'; if (!isLittleEndian && byteOrder !== 'MM') return null; const read16 = isLittleEndian ? (o) => data.readUInt16LE(o) : (o) => data.readUInt16BE(o); const read32 = isLittleEndian ? (o) => data.readUInt32LE(o) : (o) => data.readUInt32BE(o); // Verify TIFF magic number (42) if (read16(tiffStart + 2) !== 42) return null; // IFD0 offset const ifdPos = tiffStart + read32(tiffStart + 4); if (ifdPos + 2 > data.length) return null; const entryCount = read16(ifdPos); // Scan IFD entries for Orientation tag (0x0112) for (let i = 0; i < entryCount; i++) { const entryPos = ifdPos + 2 + i * 12; if (entryPos + 12 > data.length) return null; if (read16(entryPos) === 0x0112) { const value = read16(entryPos + 8); return value >= 1 && value <= 8 ? value : null; } } return null; } } pos += segmentLength; } return null; }; const MARKERS = [ 0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc5, 0xffc6, 0xffc7, 0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf, ]; const COLOR_SPACE_MAP = { 1: 'DeviceGray', 3: 'DeviceRGB', 4: 'DeviceCMYK', }; class JPEG { constructor(data, label) { let marker; this.data = data; this.label = label; if (this.data.readUInt16BE(0) !== 0xffd8) { throw 'SOI not found in JPEG'; } // Parse the EXIF orientation this.orientation = parseExifOrientation(this.data) || 1; let pos = 2; while (pos < this.data.length) { // Skip padding bytes (some JPEG files have null bytes between segments) while (pos < this.data.length && this.data[pos] !== 0xff) pos++; if (pos >= this.data.length) break; marker = this.data.readUInt16BE(pos); pos += 2; if (MARKERS.includes(marker)) { break; } pos += this.data.readUInt16BE(pos); } if (!MARKERS.includes(marker)) { throw 'Invalid JPEG.'; } pos += 2; this.bits = this.data[pos++]; this.height = this.data.readUInt16BE(pos); pos += 2; this.width = this.data.readUInt16BE(pos); pos += 2; const channels = this.data[pos++]; this.colorSpace = COLOR_SPACE_MAP[channels]; this.obj = null; } embed(document) { if (this.obj) { return; } this.obj = document.ref({ Type: 'XObject', Subtype: 'Image', BitsPerComponent: this.bits, Width: this.width, Height: this.height, ColorSpace: this.colorSpace, Filter: 'DCTDecode', }); // add extra decode params for CMYK images. By swapping the // min and max values from the default, we invert the colors. See // section 4.8.4 of the spec. if (this.colorSpace === 'DeviceCMYK') { this.obj.data['Decode'] = [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0]; } this.obj.end(this.data); // free memory return (this.data = null); } } export default JPEG; ================================================ FILE: lib/image/png.js ================================================ import zlib from 'zlib'; import PNG from 'png-js'; class PNGImage { constructor(data, label) { this.label = label; this.image = new PNG(data); this.width = this.image.width; this.height = this.image.height; this.imgData = this.image.imgData; this.obj = null; } embed(document) { let dataDecoded = false; this.document = document; if (this.obj) { return; } const hasAlphaChannel = this.image.hasAlphaChannel; const isInterlaced = this.image.interlaceMethod === 1; this.obj = this.document.ref({ Type: 'XObject', Subtype: 'Image', BitsPerComponent: hasAlphaChannel ? 8 : this.image.bits, Width: this.width, Height: this.height, Filter: 'FlateDecode', }); if (!hasAlphaChannel) { const params = this.document.ref({ Predictor: isInterlaced ? 1 : 15, Colors: this.image.colors, BitsPerComponent: this.image.bits, Columns: this.width, }); this.obj.data['DecodeParms'] = params; params.end(); } if (this.image.palette.length === 0) { this.obj.data['ColorSpace'] = this.image.colorSpace; } else { // embed the color palette in the PDF as an object stream const palette = this.document.ref(); palette.end(Buffer.from(this.image.palette)); // build the color space array for the image this.obj.data['ColorSpace'] = [ 'Indexed', 'DeviceRGB', this.image.palette.length / 3 - 1, palette, ]; } // For PNG color types 0, 2 and 3, the transparency data is stored in // a dedicated PNG chunk. if (this.image.transparency.grayscale != null) { // Use Color Key Masking (spec section 4.8.5) // An array with N elements, where N is two times the number of color components. const val = this.image.transparency.grayscale; this.obj.data['Mask'] = [val, val]; } else if (this.image.transparency.rgb) { // Use Color Key Masking (spec section 4.8.5) // An array with N elements, where N is two times the number of color components. const { rgb } = this.image.transparency; const mask = []; for (let x of rgb) { mask.push(x, x); } this.obj.data['Mask'] = mask; } else if (this.image.transparency.indexed) { // Create a transparency SMask for the image based on the data // in the PLTE and tRNS sections. See below for details on SMasks. dataDecoded = true; return this.loadIndexedAlphaChannel(); } else if (hasAlphaChannel) { // For PNG color types 4 and 6, the transparency data is stored as a alpha // channel mixed in with the main image data. Separate this data out into an // SMask object and store it separately in the PDF. dataDecoded = true; return this.splitAlphaChannel(); } if (isInterlaced && !dataDecoded) { return this.decodeData(); } this.finalize(); } finalize() { if (this.alphaChannel) { const sMask = this.document.ref({ Type: 'XObject', Subtype: 'Image', Height: this.height, Width: this.width, BitsPerComponent: 8, Filter: 'FlateDecode', ColorSpace: 'DeviceGray', Decode: [0, 1], }); sMask.end(this.alphaChannel); this.obj.data['SMask'] = sMask; } // add the actual image data this.obj.end(this.imgData); // free memory this.image = null; return (this.imgData = null); } splitAlphaChannel() { return this.image.decodePixels((pixels) => { let a, p; const colorCount = this.image.colors; const pixelCount = this.width * this.height; const imgData = Buffer.alloc(pixelCount * colorCount); const alphaChannel = Buffer.alloc(pixelCount); let i = (p = a = 0); const len = pixels.length; // For 16bit images copy only most significant byte (MSB) - PNG data is always stored in network byte order (MSB first) const skipByteCount = this.image.bits === 16 ? 1 : 0; while (i < len) { for (let colorIndex = 0; colorIndex < colorCount; colorIndex++) { imgData[p++] = pixels[i++]; i += skipByteCount; } alphaChannel[a++] = pixels[i++]; i += skipByteCount; } this.imgData = zlib.deflateSync(imgData); this.alphaChannel = zlib.deflateSync(alphaChannel); return this.finalize(); }); } loadIndexedAlphaChannel() { const transparency = this.image.transparency.indexed; const isInterlaced = this.image.interlaceMethod === 1; return this.image.decodePixels((pixels) => { const alphaChannel = Buffer.alloc(this.width * this.height); let i = 0; for (let j = 0, end = pixels.length; j < end; j++) { alphaChannel[i++] = transparency[pixels[j]]; } // For interlaced images, re-encode the decoded pixel data if (isInterlaced) { this.imgData = zlib.deflateSync(Buffer.from(pixels)); } this.alphaChannel = zlib.deflateSync(alphaChannel); return this.finalize(); }); } decodeData() { this.image.decodePixels((pixels) => { this.imgData = zlib.deflateSync(pixels); this.finalize(); }); } } export default PNGImage; ================================================ FILE: lib/image.js ================================================ /* PDFImage - embeds images in PDF documents By Devon Govett */ import fs from 'fs'; import JPEG from './image/jpeg'; import PNG from './image/png'; class PDFImage { static open(src, label) { let data; if (Buffer.isBuffer(src)) { data = src; } else if (src instanceof ArrayBuffer) { data = Buffer.from(new Uint8Array(src)); } else { const match = /^data:.+?;base64,(.*)$/.exec(src); if (match) { data = Buffer.from(match[1], 'base64'); } else { data = fs.readFileSync(src); if (!data) { return; } } } if (data[0] === 0xff && data[1] === 0xd8) { return new JPEG(data, label); } else if (data[0] === 0x89 && data.toString('ascii', 1, 4) === 'PNG') { return new PNG(data, label); } else { throw new Error('Unknown image format.'); } } } export default PDFImage; ================================================ FILE: lib/line_wrapper.js ================================================ import { EventEmitter } from 'events'; import LineBreaker from 'linebreak'; import { PDFNumber } from './utils'; const SOFT_HYPHEN = '\u00AD'; const HYPHEN = '-'; class LineWrapper extends EventEmitter { constructor(document, options) { super(); this.document = document; this.horizontalScaling = options.horizontalScaling || 100; this.indent = ((options.indent || 0) * this.horizontalScaling) / 100; this.indentAllLines = options.indentAllLines || false; this.characterSpacing = ((options.characterSpacing || 0) * this.horizontalScaling) / 100; this.wordSpacing = ((options.wordSpacing === 0) * this.horizontalScaling) / 100; this.columns = options.columns || 1; this.columnGap = ((options.columnGap != null ? options.columnGap : 18) * this.horizontalScaling) / 100; // 1/4 inch this.lineWidth = ((options.width * this.horizontalScaling) / 100 - this.columnGap * (this.columns - 1)) / this.columns; this.spaceLeft = this.lineWidth; this.startX = this.document.x; this.startY = this.document.y; this.column = 1; this.ellipsis = options.ellipsis; this.continuedX = 0; this.features = options.features; // calculate the maximum Y position the text can appear at if (options.height != null) { this.height = options.height; this.maxY = PDFNumber(this.startY + options.height); } else { this.maxY = PDFNumber(this.document.page.maxY()); } // handle paragraph indents this.on('firstLine', (options) => { // if this is the first line of the text segment, and // we're continuing where we left off, indent that much // otherwise use the user specified indent option const indent = this.continuedX || this.indent; this.document.x += indent; this.lineWidth -= indent; // if indentAllLines is set to true // we're not resetting the indentation for this paragraph after the first line if (options.indentAllLines) { return; } // otherwise we start the next line without indent this.once('line', () => { this.document.x -= indent; this.lineWidth += indent; if (options.continued && !this.continuedX) { this.continuedX = this.indent; } if (!options.continued) { this.continuedX = 0; } }); }); // handle left aligning last lines of paragraphs this.on('lastLine', (options) => { const { align } = options; if (align === 'justify') { options.align = 'left'; } this.lastLine = true; this.once('line', () => { this.document.y += options.paragraphGap || 0; options.align = align; return (this.lastLine = false); }); }); } wordWidth(word) { return PDFNumber( this.document.widthOfString(word, this) + this.characterSpacing + this.wordSpacing, ); } canFit(word, w) { if (word[word.length - 1] != SOFT_HYPHEN) { return w <= this.spaceLeft; } return w + this.wordWidth(HYPHEN) <= this.spaceLeft; } eachWord(text, fn) { // setup a unicode line breaker let bk; const breaker = new LineBreaker(text); let last = null; const wordWidths = Object.create(null); while ((bk = breaker.nextBreak())) { var shouldContinue; let word = text.slice( (last != null ? last.position : undefined) || 0, bk.position, ); let w = wordWidths[word] != null ? wordWidths[word] : (wordWidths[word] = this.wordWidth(word)); // if the word is longer than the whole line, chop it up // TODO: break by grapheme clusters, not JS string characters if (w > this.lineWidth + this.continuedX) { // make some fake break objects let lbk = last; const fbk = {}; while (word.length) { // fit as much of the word as possible into the space we have var l, mightGrow; if (w > this.spaceLeft) { // start our check at the end of our available space - this method is faster than a loop of each character and it resolves // an issue with long loops when processing massive words, such as a huge number of spaces l = Math.ceil(this.spaceLeft / (w / word.length)); w = this.wordWidth(word.slice(0, l)); mightGrow = w <= this.spaceLeft && l < word.length; } else { l = word.length; } let mustShrink = w > this.spaceLeft && l > 0; // shrink or grow word as necessary after our near-guess above while (mustShrink || mightGrow) { if (mustShrink) { w = this.wordWidth(word.slice(0, --l)); mustShrink = w > this.spaceLeft && l > 0; } else { w = this.wordWidth(word.slice(0, ++l)); mustShrink = w > this.spaceLeft && l > 0; mightGrow = w <= this.spaceLeft && l < word.length; } } // check for the edge case where a single character cannot fit into a line. if (l === 0 && this.spaceLeft === this.lineWidth) { l = 1; } // send a required break unless this is the last piece and a linebreak is not specified fbk.required = bk.required || l < word.length; shouldContinue = fn(word.slice(0, l), w, fbk, lbk); lbk = { required: false }; // get the remaining piece of the word word = word.slice(l); w = this.wordWidth(word); if (shouldContinue === false) { break; } } } else { // otherwise just emit the break as it was given to us shouldContinue = fn(word, w, bk, last); } if (shouldContinue === false) { break; } last = bk; } } wrap(text, options) { // override options from previous continued fragments this.horizontalScaling = options.horizontalScaling || 100; if (options.indent != null) { this.indent = (options.indent * this.horizontalScaling) / 100; } if (options.characterSpacing != null) { this.characterSpacing = (options.characterSpacing * this.horizontalScaling) / 100; } if (options.wordSpacing != null) { this.wordSpacing = (options.wordSpacing * this.horizontalScaling) / 100; } if (options.ellipsis != null) { this.ellipsis = options.ellipsis; } // make sure we're actually on the page // and that the first line of is never by // itself at the bottom of a page (orphans) const nextY = this.document.y + this.document.currentLineHeight(true); if (this.document.y > this.maxY || nextY > this.maxY) { this.nextSection(); } let buffer = ''; let textWidth = 0; let wc = 0; let lc = 0; let { y } = this.document; // used to reset Y pos if options.continued (below) const emitLine = () => { options.textWidth = textWidth + this.wordSpacing * (wc - 1); options.wordCount = wc; options.lineWidth = this.lineWidth; ({ y } = this.document); this.emit('line', buffer, options, this); return lc++; }; this.emit('sectionStart', options, this); this.eachWord(text, (word, w, bk, last) => { if (last == null || last.required) { this.emit('firstLine', options, this); this.spaceLeft = this.lineWidth; } if (this.canFit(word, w)) { buffer += word; textWidth += w; wc++; } if (bk.required || !this.canFit(word, w)) { // if the user specified a max height and an ellipsis, and is about to pass the // max height and max columns after the next line, append the ellipsis const lh = this.document.currentLineHeight(true); if ( this.height != null && this.ellipsis && PDFNumber(this.document.y + lh * 2) > this.maxY && this.column >= this.columns ) { if (this.ellipsis === true) { this.ellipsis = '…'; } // map default ellipsis character buffer = buffer.replace(/\s+$/, ''); textWidth = this.wordWidth(buffer + this.ellipsis); // remove characters from the buffer until the ellipsis fits // to avoid infinite loop need to stop while-loop if buffer is empty string while (buffer && textWidth > this.lineWidth) { buffer = buffer.slice(0, -1).replace(/\s+$/, ''); textWidth = this.wordWidth(buffer + this.ellipsis); } // need to add ellipsis only if there is enough space for it if (textWidth <= this.lineWidth) { buffer = buffer + this.ellipsis; } textWidth = this.wordWidth(buffer); } if (bk.required) { if (w > this.spaceLeft) { emitLine(); buffer = word; textWidth = w; wc = 1; } this.emit('lastLine', options, this); } // Previous entry is a soft hyphen - add visible hyphen. if (buffer[buffer.length - 1] == SOFT_HYPHEN) { buffer = buffer.slice(0, -1) + HYPHEN; this.spaceLeft -= this.wordWidth(HYPHEN); } emitLine(); // if we've reached the edge of the page, // continue on a new page or column if (PDFNumber(this.document.y + lh) > this.maxY) { this.emit('sectionEnd', options, this); const shouldContinue = this.nextSection(); // stop if we reached the maximum height if (!shouldContinue) { wc = 0; buffer = ''; return false; } this.emit('sectionStart', options, this); } // reset the space left and buffer if (bk.required) { this.spaceLeft = this.lineWidth; buffer = ''; textWidth = 0; return (wc = 0); } else { // reset the space left and buffer this.spaceLeft = this.lineWidth - w; buffer = word; textWidth = w; return (wc = 1); } } else { return (this.spaceLeft -= w); } }); if (wc > 0) { this.emit('lastLine', options, this); emitLine(); } this.emit('sectionEnd', options, this); // if the wrap is set to be continued, save the X position // to start the first line of the next segment at, and reset // the y position if (options.continued === true) { if (lc > 1) { this.continuedX = 0; } this.continuedX += options.textWidth || 0; this.document.y = y; } else { this.document.x = this.startX; } } nextSection(options) { if (++this.column > this.columns) { // if a max height was specified by the user, we're done. // otherwise, the default is to make a new page at the bottom. if (this.height != null) { return false; } this.document.continueOnNewPage(); this.column = 1; this.startY = this.document.page.margins.top; this.maxY = this.document.page.maxY(); if (this.indentAllLines) { const indent = this.continuedX || this.indent; this.document.x += indent; this.lineWidth -= indent; } else { this.document.x = this.startX; } if (this.document._fillColor) { this.document.fillColor(...this.document._fillColor); } this.emit('pageBreak', options, this); } else { this.document.x += this.lineWidth + this.columnGap; this.document.y = this.startY; this.emit('columnBreak', options, this); } return true; } } export default LineWrapper; ================================================ FILE: lib/metadata.js ================================================ class PDFMetadata { constructor() { this._metadata = ` `; } _closeTags() { this._metadata = this._metadata.concat(` `); } append(xml, newline = true) { this._metadata = this._metadata.concat(xml); if (newline) this._metadata = this._metadata.concat('\n'); } getXML() { return this._metadata; } getLength() { return this._metadata.length; } end() { this._closeTags(); this._metadata = this._metadata.trim(); } } export default PDFMetadata; ================================================ FILE: lib/mixins/acroform.js ================================================ const FIELD_FLAGS = { readOnly: 1, required: 2, noExport: 4, multiline: 0x1000, password: 0x2000, toggleToOffButton: 0x4000, radioButton: 0x8000, pushButton: 0x10000, combo: 0x20000, edit: 0x40000, sort: 0x80000, multiSelect: 0x200000, noSpell: 0x400000, }; const FIELD_JUSTIFY = { left: 0, center: 1, right: 2, }; const VALUE_MAP = { value: 'V', defaultValue: 'DV' }; const FORMAT_SPECIAL = { zip: '0', zipPlus4: '1', zip4: '1', phone: '2', ssn: '3', }; const FORMAT_DEFAULT = { number: { nDec: 0, sepComma: false, negStyle: 'MinusBlack', currency: '', currencyPrepend: true, }, percent: { nDec: 0, sepComma: false, }, }; export default { /** * Must call if adding AcroForms to a document. Must also call font() before * this method to set the default font. */ initForm() { if (!this._font) { throw new Error('Must set a font before calling initForm method'); } this._acroform = { fonts: {}, defaultFont: this._font.name, }; this._acroform.fonts[this._font.id] = this._font.ref(); let data = { Fields: [], NeedAppearances: true, DA: new String(`/${this._font.id} 0 Tf 0 g`), DR: { Font: {}, }, }; data.DR.Font[this._font.id] = this._font.ref(); const AcroForm = this.ref(data); this._root.data.AcroForm = AcroForm; return this; }, /** * Called automatically by document.js */ endAcroForm() { if (this._root.data.AcroForm) { if ( !Object.keys(this._acroform.fonts).length && !this._acroform.defaultFont ) { throw new Error('No fonts specified for PDF form'); } let fontDict = this._root.data.AcroForm.data.DR.Font; Object.keys(this._acroform.fonts).forEach((name) => { fontDict[name] = this._acroform.fonts[name]; }); this._root.data.AcroForm.data.Fields.forEach((fieldRef) => { this._endChild(fieldRef); }); this._root.data.AcroForm.end(); } return this; }, _endChild(ref) { if (Array.isArray(ref.data.Kids)) { ref.data.Kids.forEach((childRef) => { this._endChild(childRef); }); ref.end(); } return this; }, /** * Creates and adds a form field to the document. Form fields are intermediate * nodes in a PDF form that are used to specify form name heirarchy and form * value defaults. * @param {string} name - field name (T attribute in field dictionary) * @param {object} options - other attributes to include in field dictionary */ formField(name, options = {}) { let fieldDict = this._fieldDict(name, null, options); let fieldRef = this.ref(fieldDict); this._addToParent(fieldRef); return fieldRef; }, /** * Creates and adds a Form Annotation to the document. Form annotations are * called Widget annotations internally within a PDF file. * @param {string} name - form field name (T attribute of widget annotation * dictionary) * @param {number} x * @param {number} y * @param {number} w * @param {number} h * @param {object} options */ formAnnotation(name, type, x, y, w, h, options = {}) { let fieldDict = this._fieldDict(name, type, options); fieldDict.Subtype = 'Widget'; if (fieldDict.F === undefined) { fieldDict.F = 4; // print the annotation } // Add Field annot to page, and get it's ref this.annotate(x, y, w, h, fieldDict); let annotRef = this.page.annotations[this.page.annotations.length - 1]; return this._addToParent(annotRef); }, formText(name, x, y, w, h, options = {}) { return this.formAnnotation(name, 'text', x, y, w, h, options); }, formPushButton(name, x, y, w, h, options = {}) { return this.formAnnotation(name, 'pushButton', x, y, w, h, options); }, formCombo(name, x, y, w, h, options = {}) { return this.formAnnotation(name, 'combo', x, y, w, h, options); }, formList(name, x, y, w, h, options = {}) { return this.formAnnotation(name, 'list', x, y, w, h, options); }, formRadioButton(name, x, y, w, h, options = {}) { return this.formAnnotation(name, 'radioButton', x, y, w, h, options); }, formCheckbox(name, x, y, w, h, options = {}) { return this.formAnnotation(name, 'checkbox', x, y, w, h, options); }, _addToParent(fieldRef) { let parent = fieldRef.data.Parent; if (parent) { if (!parent.data.Kids) { parent.data.Kids = []; } parent.data.Kids.push(fieldRef); } else { this._root.data.AcroForm.data.Fields.push(fieldRef); } return this; }, _fieldDict(name, type, options = {}) { if (!this._acroform) { throw new Error( 'Call document.initForm() method before adding form elements to document', ); } let opts = Object.assign({}, options); if (type !== null) { opts = this._resolveType(type, options); } opts = this._resolveFlags(opts); opts = this._resolveJustify(opts); opts = this._resolveFont(opts); opts = this._resolveStrings(opts); opts = this._resolveColors(opts); opts = this._resolveFormat(opts); opts.T = new String(name); if (opts.parent) { opts.Parent = opts.parent; delete opts.parent; } return opts; }, _resolveType(type, opts) { if (type === 'text') { opts.FT = 'Tx'; } else if (type === 'pushButton') { opts.FT = 'Btn'; opts.pushButton = true; } else if (type === 'radioButton') { opts.FT = 'Btn'; opts.radioButton = true; } else if (type === 'checkbox') { opts.FT = 'Btn'; } else if (type === 'combo') { opts.FT = 'Ch'; opts.combo = true; } else if (type === 'list') { opts.FT = 'Ch'; } else { throw new Error(`Invalid form annotation type '${type}'`); } return opts; }, _resolveFormat(opts) { const f = opts.format; if (f && f.type) { let fnKeystroke; let fnFormat; let params = ''; if (FORMAT_SPECIAL[f.type] !== undefined) { fnKeystroke = `AFSpecial_Keystroke`; fnFormat = `AFSpecial_Format`; params = FORMAT_SPECIAL[f.type]; } else { let format = f.type.charAt(0).toUpperCase() + f.type.slice(1); fnKeystroke = `AF${format}_Keystroke`; fnFormat = `AF${format}_Format`; if (f.type === 'date') { fnKeystroke += 'Ex'; params = String(f.param); } else if (f.type === 'time') { params = String(f.param); } else if (f.type === 'number') { let p = Object.assign({}, FORMAT_DEFAULT.number, f); params = String( [ String(p.nDec), p.sepComma ? '0' : '1', '"' + p.negStyle + '"', 'null', '"' + p.currency + '"', String(p.currencyPrepend), ].join(','), ); } else if (f.type === 'percent') { let p = Object.assign({}, FORMAT_DEFAULT.percent, f); params = String([String(p.nDec), p.sepComma ? '0' : '1'].join(',')); } } opts.AA = opts.AA ? opts.AA : {}; opts.AA.K = { S: 'JavaScript', JS: new String(`${fnKeystroke}(${params});`), }; opts.AA.F = { S: 'JavaScript', JS: new String(`${fnFormat}(${params});`), }; } delete opts.format; return opts; }, _resolveColors(opts) { let color = this._normalizeColor(opts.backgroundColor); if (color) { if (!opts.MK) { opts.MK = {}; } opts.MK.BG = color; } color = this._normalizeColor(opts.borderColor); if (color) { if (!opts.MK) { opts.MK = {}; } opts.MK.BC = color; } delete opts.backgroundColor; delete opts.borderColor; return opts; }, _resolveFlags(options) { let result = 0; Object.keys(options).forEach((key) => { if (FIELD_FLAGS[key]) { if (options[key]) { result |= FIELD_FLAGS[key]; } delete options[key]; } }); if (result !== 0) { options.Ff = options.Ff ? options.Ff : 0; options.Ff |= result; } return options; }, _resolveJustify(options) { let result = 0; if (options.align !== undefined) { if (typeof FIELD_JUSTIFY[options.align] === 'number') { result = FIELD_JUSTIFY[options.align]; } delete options.align; } if (result !== 0) { options.Q = result; // default } return options; }, _resolveFont(options) { // add current font to document-level AcroForm dict if necessary if (this._acroform.fonts[this._font.id] == null) { this._acroform.fonts[this._font.id] = this._font.ref(); } // add current font to field's resource dict (RD) if not the default acroform font if (this._acroform.defaultFont !== this._font.name) { options.DR = { Font: {} }; // Get the fontSize option. If not set use auto sizing const fontSize = options.fontSize || 0; options.DR.Font[this._font.id] = this._font.ref(); options.DA = new String(`/${this._font.id} ${fontSize} Tf 0 g`); } return options; }, _resolveStrings(options) { let select = []; function appendChoices(a) { if (Array.isArray(a)) { for (let idx = 0; idx < a.length; idx++) { if (typeof a[idx] === 'string') { select.push(new String(a[idx])); } else { select.push(a[idx]); } } } } appendChoices(options.Opt); if (options.select) { appendChoices(options.select); delete options.select; } if (select.length) { options.Opt = select; } Object.keys(VALUE_MAP).forEach((key) => { if (options[key] !== undefined) { options[VALUE_MAP[key]] = options[key]; delete options[key]; } }); ['V', 'DV'].forEach((key) => { if (typeof options[key] === 'string') { options[key] = new String(options[key]); } }); if (options.MK && options.MK.CA) { options.MK.CA = new String(options.MK.CA); } if (options.label) { options.MK = options.MK ? options.MK : {}; options.MK.CA = new String(options.label); delete options.label; } return options; }, }; ================================================ FILE: lib/mixins/annotations.js ================================================ import PDFAnnotationReference from '../structure_annotation'; export default { annotate(x, y, w, h, options) { options.Type = 'Annot'; options.Rect = this._convertRect(x, y, w, h); options.Border = [0, 0, 0]; if (options.Subtype === 'Link' && typeof options.F === 'undefined') { options.F = 1 << 2; // Print Annotation Flag } if (options.Subtype !== 'Link') { if (options.C == null) { options.C = this._normalizeColor(options.color || [0, 0, 0]); } } // convert colors delete options.color; if (typeof options.Dest === 'string') { options.Dest = new String(options.Dest); } const structParent = options.structParent; delete options.structParent; // Capitalize keys for (let key in options) { const val = options[key]; options[key[0].toUpperCase() + key.slice(1)] = val; } const ref = this.ref(options); this.page.annotations.push(ref); if (structParent && typeof structParent.add === 'function') { const annotRef = new PDFAnnotationReference(ref); structParent.add(annotRef); } ref.end(); return this; }, note(x, y, w, h, contents, options = {}) { options.Subtype = 'Text'; options.Contents = new String(contents); if (options.Name == null) { options.Name = 'Comment'; } if (options.color == null) { options.color = [243, 223, 92]; } return this.annotate(x, y, w, h, options); }, goTo(x, y, w, h, name, options = {}) { options.Subtype = 'Link'; options.A = this.ref({ S: 'GoTo', D: new String(name), }); options.A.end(); return this.annotate(x, y, w, h, options); }, link(x, y, w, h, url, options = {}) { options.Subtype = 'Link'; if (typeof url === 'number') { // Link to a page in the document (the page must already exist) const pages = this._root.data.Pages.data; if (url >= 0 && url < pages.Kids.length) { options.A = this.ref({ S: 'GoTo', D: [pages.Kids[url], 'XYZ', null, null, null], }); options.A.end(); } else { throw new Error(`The document has no page ${url}`); } } else { // Link to an external url options.A = this.ref({ S: 'URI', URI: new String(url), }); options.A.end(); } if (options.structParent && !options.Contents) { options.Contents = new String(''); } return this.annotate(x, y, w, h, options); }, _markup(x, y, w, h, options = {}) { const [x1, y1, x2, y2] = this._convertRect(x, y, w, h); options.QuadPoints = [x1, y2, x2, y2, x1, y1, x2, y1]; options.Contents = new String(); return this.annotate(x, y, w, h, options); }, highlight(x, y, w, h, options = {}) { options.Subtype = 'Highlight'; if (options.color == null) { options.color = [241, 238, 148]; } return this._markup(x, y, w, h, options); }, underline(x, y, w, h, options = {}) { options.Subtype = 'Underline'; return this._markup(x, y, w, h, options); }, strike(x, y, w, h, options = {}) { options.Subtype = 'StrikeOut'; return this._markup(x, y, w, h, options); }, lineAnnotation(x1, y1, x2, y2, options = {}) { options.Subtype = 'Line'; options.Contents = new String(); options.L = [x1, this.page.height - y1, x2, this.page.height - y2]; return this.annotate(x1, y1, x2, y2, options); }, rectAnnotation(x, y, w, h, options = {}) { options.Subtype = 'Square'; options.Contents = new String(); return this.annotate(x, y, w, h, options); }, ellipseAnnotation(x, y, w, h, options = {}) { options.Subtype = 'Circle'; options.Contents = new String(); return this.annotate(x, y, w, h, options); }, textAnnotation(x, y, w, h, text, options = {}) { options.Subtype = 'FreeText'; options.Contents = new String(text); options.DA = new String(); return this.annotate(x, y, w, h, options); }, fileAnnotation(x, y, w, h, file = {}, options = {}) { // create hidden file const filespec = this.file(file.src, Object.assign({ hidden: true }, file)); options.Subtype = 'FileAttachment'; options.FS = filespec; // add description from filespec unless description (Contents) has already been set if (options.Contents) { options.Contents = new String(options.Contents); } else if (filespec.data.Desc) { options.Contents = filespec.data.Desc; } return this.annotate(x, y, w, h, options); }, _convertRect(x1, y1, w, h) { // flip y1 and y2 let y2 = y1; y1 += h; // make x2 let x2 = x1 + w; // apply current transformation matrix to points const [m0, m1, m2, m3, m4, m5] = this._ctm; x1 = m0 * x1 + m2 * y1 + m4; y1 = m1 * x1 + m3 * y1 + m5; x2 = m0 * x2 + m2 * y2 + m4; y2 = m1 * x2 + m3 * y2 + m5; return [x1, y1, x2, y2]; }, }; ================================================ FILE: lib/mixins/attachments.js ================================================ import fs from 'fs'; import { md5Hex } from '../crypto/md5'; export default { /** * Embed contents of `src` in PDF * @param {Buffer | ArrayBuffer | string} src input Buffer, ArrayBuffer, base64 encoded string or path to file * @param {object} options * * options.name: filename to be shown in PDF, will use `src` if none set * * options.type: filetype to be shown in PDF * * options.description: description to be shown in PDF * * options.hidden: if true, do not add attachment to EmbeddedFiles dictionary. Useful for file attachment annotations * * options.creationDate: override creation date * * options.modifiedDate: override modified date * * options.relationship: Relationship between the PDF document and its attached file. Can be 'Alternative', 'Data', 'Source', 'Supplement' or 'Unspecified'. * @returns filespec reference */ file(src, options = {}) { options.name = options.name || src; options.relationship = options.relationship || 'Unspecified'; const refBody = { Type: 'EmbeddedFile', Params: {}, }; let data; if (!src) { throw new Error('No src specified'); } if (Buffer.isBuffer(src)) { data = src; } else if (src instanceof ArrayBuffer) { data = Buffer.from(new Uint8Array(src)); } else { const match = /^data:(.*?);base64,(.*)$/.exec(src); if (match) { if (match[1]) { refBody.Subtype = match[1].replace('/', '#2F'); } data = Buffer.from(match[2], 'base64'); } else { data = fs.readFileSync(src); if (!data) { throw new Error(`Could not read contents of file at filepath ${src}`); } // update CreationDate and ModDate const { birthtime, ctime } = fs.statSync(src); refBody.Params.CreationDate = birthtime; refBody.Params.ModDate = ctime; } } // override creation date and modified date if (options.creationDate instanceof Date) { refBody.Params.CreationDate = options.creationDate; } if (options.modifiedDate instanceof Date) { refBody.Params.ModDate = options.modifiedDate; } // add optional subtype if (options.type) { refBody.Subtype = options.type.replace('/', '#2F'); } // add checksum and size information const checksum = md5Hex(new Uint8Array(data)); refBody.Params.CheckSum = new String(checksum); refBody.Params.Size = data.byteLength; // save some space when embedding the same file again // if a file with the same name and metadata exists, reuse its reference let ref; if (!this._fileRegistry) this._fileRegistry = {}; let file = this._fileRegistry[options.name]; if (file && isEqual(refBody, file)) { ref = file.ref; } else { ref = this.ref(refBody); ref.end(data); this._fileRegistry[options.name] = { ...refBody, ref }; } // add filespec for embedded file const fileSpecBody = { Type: 'Filespec', AFRelationship: options.relationship, F: new String(options.name), EF: { F: ref }, UF: new String(options.name), }; if (options.description) { fileSpecBody.Desc = new String(options.description); } const filespec = this.ref(fileSpecBody); filespec.end(); if (!options.hidden) { this.addNamedEmbeddedFile(options.name, filespec); } // Add file to the catalogue to be PDF/A3 compliant if (this._root.data.AF) { this._root.data.AF.push(filespec); } else { this._root.data.AF = [filespec]; } return filespec; }, }; /** check two embedded file metadata objects for equality */ function isEqual(a, b) { return ( a.Subtype === b.Subtype && a.Params.CheckSum.toString() === b.Params.CheckSum.toString() && a.Params.Size === b.Params.Size && a.Params.CreationDate.getTime() === b.Params.CreationDate.getTime() && ((a.Params.ModDate === undefined && b.Params.ModDate === undefined) || a.Params.ModDate.getTime() === b.Params.ModDate.getTime()) ); } ================================================ FILE: lib/mixins/color.js ================================================ import Gradient from '../gradient'; import pattern from '../pattern'; import SpotColor from '../spotcolor'; const { PDFGradient, PDFLinearGradient, PDFRadialGradient } = Gradient; const { PDFTilingPattern } = pattern; export default { initColor() { this.spotColors = {}; // The opacity dictionaries this._opacityRegistry = {}; this._opacityCount = 0; this._patternCount = 0; this._gradCount = 0; }, _normalizeColor(color) { if (typeof color === 'string') { if (color.charAt(0) === '#') { if (color.length === 4) { color = color.replace( /#([0-9A-F])([0-9A-F])([0-9A-F])/i, '#$1$1$2$2$3$3', ); } const hex = parseInt(color.slice(1), 16); color = [hex >> 16, (hex >> 8) & 0xff, hex & 0xff]; } else if (namedColors[color]) { color = namedColors[color]; } else if (this.spotColors[color]) { return this.spotColors[color]; } } if (Array.isArray(color)) { // RGB if (color.length === 3) { color = color.map((part) => part / 255); // CMYK } else if (color.length === 4) { color = color.map((part) => part / 100); } return color; } return null; }, _setColor(color, stroke) { if (color instanceof PDFGradient) { color.apply(stroke); return true; // see if tiling pattern, decode & apply it it } else if (Array.isArray(color) && color[0] instanceof PDFTilingPattern) { color[0].apply(stroke, color[1]); return true; } // any other case should be a normal color and not a pattern return this._setColorCore(color, stroke); }, _setColorCore(color, stroke) { color = this._normalizeColor(color); if (!color) { return false; } const op = stroke ? 'SCN' : 'scn'; const space = this._getColorSpace(color); this._setColorSpace(space, stroke); if (color instanceof SpotColor) { this.page.colorSpaces[color.id] = color.ref; this.addContent(`1 ${op}`); } else { this.addContent(`${color.join(' ')} ${op}`); } return true; }, _setColorSpace(space, stroke) { const op = stroke ? 'CS' : 'cs'; return this.addContent(`/${space} ${op}`); }, _getColorSpace(color) { if (color instanceof SpotColor) { return color.id; } return color.length === 4 ? 'DeviceCMYK' : 'DeviceRGB'; }, fillColor(color, opacity) { const set = this._setColor(color, false); if (set) { this.fillOpacity(opacity); } // save this for text wrapper, which needs to reset // the fill color on new pages this._fillColor = [color, opacity]; return this; }, strokeColor(color, opacity) { const set = this._setColor(color, true); if (set) { this.strokeOpacity(opacity); } return this; }, opacity(opacity) { this._doOpacity(opacity, opacity); return this; }, fillOpacity(opacity) { this._doOpacity(opacity, null); return this; }, strokeOpacity(opacity) { this._doOpacity(null, opacity); return this; }, _doOpacity(fillOpacity, strokeOpacity) { let dictionary, name; if (fillOpacity == null && strokeOpacity == null) { return; } if (fillOpacity != null) { fillOpacity = Math.max(0, Math.min(1, fillOpacity)); } if (strokeOpacity != null) { strokeOpacity = Math.max(0, Math.min(1, strokeOpacity)); } const key = `${fillOpacity}_${strokeOpacity}`; if (this._opacityRegistry[key]) { [dictionary, name] = this._opacityRegistry[key]; } else { dictionary = { Type: 'ExtGState' }; if (fillOpacity != null) { dictionary.ca = fillOpacity; } if (strokeOpacity != null) { dictionary.CA = strokeOpacity; } dictionary = this.ref(dictionary); dictionary.end(); const id = ++this._opacityCount; name = `Gs${id}`; this._opacityRegistry[key] = [dictionary, name]; } this.page.ext_gstates[name] = dictionary; return this.addContent(`/${name} gs`); }, linearGradient(x1, y1, x2, y2) { return new PDFLinearGradient(this, x1, y1, x2, y2); }, radialGradient(x1, y1, r1, x2, y2, r2) { return new PDFRadialGradient(this, x1, y1, r1, x2, y2, r2); }, pattern(bbox, xStep, yStep, stream) { return new PDFTilingPattern(this, bbox, xStep, yStep, stream); }, addSpotColor(name, C, M, Y, K) { const color = new SpotColor(this, name, C, M, Y, K); this.spotColors[name] = color; return this; }, }; var namedColors = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], grey: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50], }; ================================================ FILE: lib/mixins/fonts.js ================================================ import PDFFontFactory from '../font_factory'; import { CM_TO_IN, IN_TO_PT, MM_TO_CM, PC_TO_PT, PX_TO_IN } from '../utils'; const isEqualFont = (font1, font2) => { // compare font checksum if ( font1.font._tables?.head?.checkSumAdjustment !== font2.font._tables?.head?.checkSumAdjustment ) { return false; } // compare font name table if ( JSON.stringify(font1.font._tables?.name?.records) !== JSON.stringify(font2.font._tables?.name?.records) ) { return false; } return true; }; export default { initFonts( defaultFont = 'Helvetica', defaultFontFamily = null, defaultFontSize = 12, ) { // Lookup table for embedded fonts this._fontFamilies = {}; this._fontCount = 0; // Font state // Useful to export the font builder so that someone can create a snapshot of the current state // (e.g. Reverting back to the previous font) this._fontSource = defaultFont; this._fontFamily = defaultFontFamily; this._fontSize = defaultFontSize; this._font = null; // rem size is fixed per document as the document is the root element this._remSize = defaultFontSize; this._registeredFonts = {}; // Set the default font if (defaultFont) { this.font(defaultFont, defaultFontFamily); } }, font(src, family, size) { let cacheKey, font; if (typeof family === 'number') { size = family; family = null; } // check registered fonts if src is a string if (typeof src === 'string' && this._registeredFonts[src]) { cacheKey = src; ({ src, family } = this._registeredFonts[src]); } else { cacheKey = family || src; if (typeof cacheKey !== 'string') { cacheKey = null; } } this._fontSource = src; this._fontFamily = family; if (size != null) { this.fontSize(size); } // fast path: check if the font is already in the PDF if ((font = this._fontFamilies[cacheKey])) { this._font = font; return this; } // load the font const id = `F${++this._fontCount}`; this._font = PDFFontFactory.open(this, src, family, id); // check for existing font familes with the same name already in the PDF // useful if the font was passed as a buffer if ( (font = this._fontFamilies[this._font.name]) && isEqualFont(this._font, font) ) { this._font = font; return this; } // save the font for reuse later if (cacheKey) { this._fontFamilies[cacheKey] = this._font; } if (this._font.name) { this._fontFamilies[this._font.name] = this._font; } return this; }, fontSize(_fontSize) { this._fontSize = this.sizeToPoint(_fontSize); return this; }, currentLineHeight(includeGap) { return this._font.lineHeight(this._fontSize, includeGap); }, registerFont(name, src, family) { this._registeredFonts[name] = { src, family, }; return this; }, /** * Convert a {@link Size} into a point measurement * * @param {Size | boolean | undefined} size - The size to convert * @param {Size | boolean | undefined} defaultValue - The default value when undefined * @param {PDFPage} page - The page used for computing font sizes * @param {number} [percentageWidth] - The value to use for computing size based on `%` * * @returns number */ sizeToPoint( size, defaultValue = 0, page = this.page, percentageWidth = undefined, ) { if (!percentageWidth) percentageWidth = this._fontSize; if (typeof defaultValue !== 'number') defaultValue = this.sizeToPoint(defaultValue); if (size === undefined) return defaultValue; if (typeof size === 'number') return size; if (typeof size === 'boolean') return Number(size); const match = String(size).match( /((\d+)?(\.\d+)?)(em|in|px|cm|mm|pc|ex|ch|rem|vw|vh|vmin|vmax|%|pt)?/, ); if (!match) throw new Error(`Unsupported size '${size}'`); let multiplier; switch (match[4]) { case 'em': multiplier = this._fontSize; break; case 'in': multiplier = IN_TO_PT; break; case 'px': multiplier = PX_TO_IN * IN_TO_PT; break; case 'cm': multiplier = CM_TO_IN * IN_TO_PT; break; case 'mm': multiplier = MM_TO_CM * CM_TO_IN * IN_TO_PT; break; case 'pc': multiplier = PC_TO_PT; break; case 'ex': multiplier = this.currentLineHeight(); break; case 'ch': multiplier = this.widthOfString('0'); break; case 'rem': multiplier = this._remSize; break; case 'vw': multiplier = page.width / 100; break; case 'vh': multiplier = page.height / 100; break; case 'vmin': multiplier = Math.min(page.width, page.height) / 100; break; case 'vmax': multiplier = Math.max(page.width, page.height) / 100; break; case '%': multiplier = percentageWidth / 100; break; case 'pt': default: multiplier = 1; } return multiplier * Number(match[1]); }, }; ================================================ FILE: lib/mixins/images.js ================================================ import PDFImage from '../image'; export default { initImages() { this._imageRegistry = {}; this._imageCount = 0; }, image(src, x, y, options = {}) { let bh, bp, bw, image, ip, left, left1, originX, originY; if (typeof x === 'object') { options = x; x = null; } // Ignore orientation based on document options or image options const ignoreOrientation = options.ignoreOrientation || (options.ignoreOrientation !== false && this.options.ignoreOrientation); const inDocumentFlow = typeof y !== 'number'; x = (left = x != null ? x : options.x) != null ? left : this.x; y = (left1 = y != null ? y : options.y) != null ? left1 : this.y; if (typeof src === 'string') { image = this._imageRegistry[src]; } if (!image) { if (src.width && src.height) { image = src; } else { image = this.openImage(src); } } if (!image.obj) { image.embed(this); } if (this.page.xobjects[image.label] == null) { this.page.xobjects[image.label] = image.obj; } let { width, height } = image; // If EXIF orientation calls for it, swap width and height if (!ignoreOrientation && image.orientation > 4) { [width, height] = [height, width]; } let w = options.width || width; let h = options.height || height; if (options.width && !options.height) { const wp = w / width; w = width * wp; h = height * wp; } else if (options.height && !options.width) { const hp = h / height; w = width * hp; h = height * hp; } else if (options.scale) { w = width * options.scale; h = height * options.scale; } else if (options.fit) { [bw, bh] = options.fit; bp = bw / bh; ip = width / height; if (ip > bp) { w = bw; h = bw / ip; } else { h = bh; w = bh * ip; } } else if (options.cover) { [bw, bh] = options.cover; bp = bw / bh; ip = width / height; if (ip > bp) { h = bh; w = bh * ip; } else { w = bw; h = bw / ip; } } if (options.fit || options.cover) { if (options.align === 'center') { x = x + bw / 2 - w / 2; } else if (options.align === 'right') { x = x + bw - w; } if (options.valign === 'center') { y = y + bh / 2 - h / 2; } else if (options.valign === 'bottom') { y = y + bh - h; } } // need to flip image by default because of the default transform matrix on the document let rotateAngle = 0; let xTransform = x; let yTransform = y; let hTransform = h; let wTransform = w; if (!ignoreOrientation) { switch (image.orientation) { // No orientation (need to flip image, though, because of the default transform matrix on the document) default: case 1: hTransform = -h; yTransform += h; break; // Flip Horizontal case 2: wTransform = -w; hTransform = -h; xTransform += w; yTransform += h; break; // Rotate 180 degrees case 3: originX = x; originY = y; hTransform = -h; xTransform -= w; rotateAngle = 180; break; // Flip vertical case 4: // Do nothing, image will be flipped break; // Flip horizontally and rotate 270 degrees CW case 5: originX = x; originY = y; wTransform = h; hTransform = w; yTransform -= hTransform; rotateAngle = 90; break; // Rotate 90 degrees CW case 6: originX = x; originY = y; wTransform = h; hTransform = -w; rotateAngle = 90; break; // Flip horizontally and rotate 90 degrees CW case 7: originX = x; originY = y; hTransform = -w; wTransform = -h; xTransform += h; rotateAngle = 90; break; // Rotate 270 degrees CW case 8: originX = x; originY = y; wTransform = h; hTransform = -w; xTransform -= h; yTransform += w; rotateAngle = -90; break; } } else { hTransform = -h; yTransform += h; } // create link annotations if the link option is given if (options.link != null) { this.link(x, y, w, h, options.link); } if (options.goTo != null) { this.goTo(x, y, w, h, options.goTo); } if (options.destination != null) { this.addNamedDestination(options.destination, 'XYZ', x, y, null); } // Set the current y position to below the image if it is in the document flow if (inDocumentFlow) { this.y += h; } this.save(); if (rotateAngle) { this.rotate(rotateAngle, { origin: [originX, originY], }); } this.transform(wTransform, 0, 0, hTransform, xTransform, yTransform); this.addContent(`/${image.label} Do`); this.restore(); return this; }, openImage(src) { let image; if (typeof src === 'string') { image = this._imageRegistry[src]; } if (!image) { image = PDFImage.open(src, `I${++this._imageCount}`); if (typeof src === 'string') { this._imageRegistry[src] = image; } } return image; }, }; ================================================ FILE: lib/mixins/markings.js ================================================ /* Markings mixin - support marked content sequences in content streams By Ben Schmidt */ import PDFStructureElement from '../structure_element'; import PDFStructureContent from '../structure_content'; import PDFNumberTree from '../number_tree'; import PDFObject from '../object'; export default { initMarkings(options) { this.structChildren = []; if (options.tagged) { this.getMarkInfoDictionary().data.Marked = true; this.getStructTreeRoot(); } }, markContent(tag, options = null) { if (tag === 'Artifact' || (options && options.mcid)) { let toClose = 0; this.page.markings.forEach((marking) => { if (toClose || marking.structContent || marking.tag === 'Artifact') { toClose++; } }); while (toClose--) { this.endMarkedContent(); } } if (!options) { this.page.markings.push({ tag }); this.addContent(`/${tag} BMC`); return this; } this.page.markings.push({ tag, options }); const dictionary = {}; if (typeof options.mcid !== 'undefined') { dictionary.MCID = options.mcid; } if (tag === 'Artifact') { if (typeof options.type === 'string') { dictionary.Type = options.type; } if (Array.isArray(options.bbox)) { dictionary.BBox = [ options.bbox[0], this.page.height - options.bbox[3], options.bbox[2], this.page.height - options.bbox[1], ]; } if ( Array.isArray(options.attached) && options.attached.every((val) => typeof val === 'string') ) { dictionary.Attached = options.attached; } } if (tag === 'Span') { if (options.lang) { dictionary.Lang = new String(options.lang); } if (options.alt) { dictionary.Alt = new String(options.alt); } if (options.expanded) { dictionary.E = new String(options.expanded); } if (options.actual) { dictionary.ActualText = new String(options.actual); } } this.addContent(`/${tag} ${PDFObject.convert(dictionary)} BDC`); return this; }, markStructureContent(tag, options = {}) { const pageStructParents = this.getStructParentTree().get( this.page.structParentTreeKey, ); const mcid = pageStructParents.length; pageStructParents.push(null); this.markContent(tag, { ...options, mcid }); const structContent = new PDFStructureContent(this.page.dictionary, mcid); this.page.markings.slice(-1)[0].structContent = structContent; return structContent; }, endMarkedContent() { this.page.markings.pop(); this.addContent('EMC'); if (this._textOptions) { delete this._textOptions.link; delete this._textOptions.goTo; delete this._textOptions.destination; delete this._textOptions.underline; delete this._textOptions.strike; } return this; }, struct(type, options = {}, children = null) { return new PDFStructureElement(this, type, options, children); }, addStructure(structElem) { const structTreeRoot = this.getStructTreeRoot(); structElem.setParent(structTreeRoot); structElem.setAttached(); this.structChildren.push(structElem); if (!structTreeRoot.data.K) { structTreeRoot.data.K = []; } structTreeRoot.data.K.push(structElem.dictionary); return this; }, initPageMarkings(pageMarkings) { pageMarkings.forEach((marking) => { if (marking.structContent) { const structContent = marking.structContent; const newStructContent = this.markStructureContent( marking.tag, marking.options, ); structContent.push(newStructContent); this.page.markings.slice(-1)[0].structContent = structContent; } else { this.markContent(marking.tag, marking.options); } }); }, endPageMarkings(page) { const pageMarkings = page.markings; pageMarkings.forEach(() => page.write('EMC')); page.markings = []; return pageMarkings; }, getMarkInfoDictionary() { if (!this._root.data.MarkInfo) { this._root.data.MarkInfo = this.ref({}); } return this._root.data.MarkInfo; }, hasMarkInfoDictionary() { return !!this._root.data.MarkInfo; }, getStructTreeRoot() { if (!this._root.data.StructTreeRoot) { this._root.data.StructTreeRoot = this.ref({ Type: 'StructTreeRoot', ParentTree: new PDFNumberTree(), ParentTreeNextKey: 0, }); } return this._root.data.StructTreeRoot; }, getStructParentTree() { return this.getStructTreeRoot().data.ParentTree; }, createStructParentTreeNextKey() { // initialise the MarkInfo dictionary this.getMarkInfoDictionary(); const structTreeRoot = this.getStructTreeRoot(); const key = structTreeRoot.data.ParentTreeNextKey++; structTreeRoot.data.ParentTree.add(key, []); return key; }, endMarkings() { const structTreeRoot = this._root.data.StructTreeRoot; if (structTreeRoot) { structTreeRoot.end(); this.structChildren.forEach((structElem) => structElem.end()); } if (this._root.data.MarkInfo) { this._root.data.MarkInfo.end(); } }, }; ================================================ FILE: lib/mixins/metadata.js ================================================ import PDFMetadata from '../metadata'; export default { initMetadata() { this.metadata = new PDFMetadata(); }, appendXML(xml, newline = true) { this.metadata.append(xml, newline); }, _addInfo() { this.appendXML(` ${this.info.CreationDate.toISOString().split('.')[0] + 'Z'} ${this.info.Creator} `); if (this.info.Title || this.info.Author || this.info.Subject) { this.appendXML(` `); if (this.info.Title) { this.appendXML(` ${this.info.Title} `); } if (this.info.Author) { this.appendXML(` ${this.info.Author} `); } if (this.info.Subject) { this.appendXML(` ${this.info.Subject} `); } this.appendXML(` `); } this.appendXML( ` ${this.info.Producer}`, false, ); if (this.info.Keywords) { this.appendXML( ` ${this.info.Keywords}`, false, ); } this.appendXML(` `); }, endMetadata() { this._addInfo(); this.metadata.end(); /* Metadata was introduced in PDF 1.4, so adding it to 1.3 will likely only take up more space. */ if (this.version != 1.3) { this.metadataRef = this.ref({ length: this.metadata.getLength(), Type: 'Metadata', Subtype: 'XML', }); this.metadataRef.compress = false; this.metadataRef.write(Buffer.from(this.metadata.getXML(), 'utf-8')); this.metadataRef.end(); this._root.data.Metadata = this.metadataRef; } }, }; ================================================ FILE: lib/mixins/outline.js ================================================ import PDFOutline from '../outline'; export default { initOutline() { this.outline = new PDFOutline(this, null, null, null); }, endOutline() { this.outline.endOutline(); if (this.outline.children.length > 0) { this._root.data.Outlines = this.outline.dictionary; return (this._root.data.PageMode = this._root.data.PageMode || 'UseOutlines'); } }, }; ================================================ FILE: lib/mixins/pdfa.js ================================================ import fs from 'fs'; export default { initPDFA(pSubset) { if (pSubset.charAt(pSubset.length - 3) === '-') { this.subset_conformance = pSubset .charAt(pSubset.length - 1) .toUpperCase(); this.subset = parseInt(pSubset.charAt(pSubset.length - 2)); } else { // Default to Basic conformance when user doesn't specify this.subset_conformance = 'B'; this.subset = parseInt(pSubset.charAt(pSubset.length - 1)); } }, endSubset() { this._addPdfaMetadata(); this._addColorOutputIntent(); }, _addColorOutputIntent() { const iccProfile = fs.readFileSync( `${__dirname}/data/sRGB_IEC61966_2_1.icc`, ); const colorProfileRef = this.ref({ Length: iccProfile.length, N: 3, }); colorProfileRef.write(iccProfile); colorProfileRef.end(); const intentRef = this.ref({ Type: 'OutputIntent', S: 'GTS_PDFA1', Info: new String('sRGB IEC61966-2.1'), OutputConditionIdentifier: new String('sRGB IEC61966-2.1'), DestOutputProfile: colorProfileRef, }); intentRef.end(); this._root.data.OutputIntents = [intentRef]; }, _getPdfaid() { return ` ${this.subset} ${this.subset_conformance} `; }, _addPdfaMetadata() { this.appendXML(this._getPdfaid()); }, }; ================================================ FILE: lib/mixins/pdfua.js ================================================ export default { initPDFUA() { this.subset = 1; }, endSubset() { this._addPdfuaMetadata(); }, _addPdfuaMetadata() { this.appendXML(this._getPdfuaid()); }, _getPdfuaid() { return ` ${this.subset} `; }, }; ================================================ FILE: lib/mixins/subsets.js ================================================ import PDFA from './pdfa'; import PDFUA from './pdfua'; export default { _importSubset(subset) { Object.assign(this, subset); }, initSubset(options) { switch (options.subset) { case 'PDF/A-1': case 'PDF/A-1a': case 'PDF/A-1b': case 'PDF/A-2': case 'PDF/A-2a': case 'PDF/A-2b': case 'PDF/A-3': case 'PDF/A-3a': case 'PDF/A-3b': this._importSubset(PDFA); this.initPDFA(options.subset); break; case 'PDF/UA': this._importSubset(PDFUA); this.initPDFUA(); break; } }, }; ================================================ FILE: lib/mixins/table.js ================================================ import PDFTable from '../table/index'; export default { initTables() { this._tableIndex = 0; }, /** * @param {Table} [opts] * @returns {PDFTable} returns the table object unless `data` is set, * then it returns the underlying document */ table(opts) { return new PDFTable(this, opts); }, }; ================================================ FILE: lib/mixins/text.js ================================================ import LineWrapper from '../line_wrapper'; import PDFObject from '../object'; import { cosine, sine } from '../utils'; const { number } = PDFObject; /** * Format a list label based on the list type * @param {number} n * @param {'numbered' | 'lettered'} listType * @returns {string} */ function formatListLabel(n, listType) { if (listType === 'numbered') { return `${n}.`; } // lettered var letter = String.fromCharCode(((n - 1) % 26) + 65); var times = Math.floor((n - 1) / 26 + 1); var text = Array(times + 1).join(letter); return `${text}.`; } export default { initText() { this._line = this._line.bind(this); // Current coordinates this.x = 0; this.y = 0; this._lineGap = 0; }, lineGap(_lineGap) { this._lineGap = _lineGap; return this; }, moveDown(lines) { if (lines == null) { lines = 1; } this.y += this.currentLineHeight(true) * lines + this._lineGap; return this; }, moveUp(lines) { if (lines == null) { lines = 1; } this.y -= this.currentLineHeight(true) * lines + this._lineGap; return this; }, _text(text, x, y, options, lineCallback) { options = this._initOptions(x, y, options); // Convert text to a string text = text == null ? '' : `${text}`; // if the wordSpacing option is specified, remove multiple consecutive spaces if (options.wordSpacing) { text = text.replace(/\s{2,}/g, ' '); } const addStructure = () => { if (options.structParent) { options.structParent.add( this.struct(options.structType || 'P', [ this.markStructureContent(options.structType || 'P'), ]), ); } }; // We can save some bytes if there is no rotation if (options.rotation !== 0) { this.save(); this.rotate(-options.rotation, { origin: [this.x, this.y] }); } // word wrapping if (options.width) { let wrapper = this._wrapper; if (!wrapper) { wrapper = new LineWrapper(this, options); wrapper.on('line', lineCallback); wrapper.on('firstLine', addStructure); } this._wrapper = options.continued ? wrapper : null; this._textOptions = options.continued ? options : null; wrapper.wrap(text, options); // render paragraphs as single lines } else { for (let line of text.split('\n')) { addStructure(); lineCallback(line, options); } } // Cleanup if there was a rotation if (options.rotation !== 0) this.restore(); return this; }, text(text, x, y, options) { return this._text(text, x, y, options, this._line); }, widthOfString(string, options = {}) { const horizontalScaling = options.horizontalScaling || 100; return ( ((this._font.widthOfString(string, this._fontSize, options.features) + (options.characterSpacing || 0) * (string.length - 1)) * horizontalScaling) / 100 ); }, /** * Compute the bounding box of a string * based on what will actually be rendered by `doc.text()` * * @param string - The string * @param x - X position of text (defaults to this.x) * @param y - Y position of text (defaults to this.y) * @param options - Any text options (The same you would apply to `doc.text()`) * @returns {{x: number, y: number, width: number, height: number}} */ boundsOfString(string, x, y, options) { options = this._initOptions(x, y, options); ({ x, y } = this); const lineGap = options.lineGap ?? this._lineGap ?? 0; const lineHeight = this.currentLineHeight(true) + lineGap; let contentWidth = 0; // Convert text to a string string = String(string ?? ''); // if the wordSpacing option is specified, remove multiple consecutive spaces if (options.wordSpacing) { string = string.replace(/\s{2,}/g, ' '); } // word wrapping if (options.width) { let wrapper = new LineWrapper(this, options); wrapper.on('line', (text, options) => { this.y += lineHeight; text = text.replace(/\n/g, ''); if (text.length) { // handle options let wordSpacing = options.wordSpacing ?? 0; const characterSpacing = options.characterSpacing ?? 0; // justify alignments if (options.width && options.align === 'justify') { // calculate the word spacing value const words = text.trim().split(/\s+/); const textWidth = this.widthOfString( text.replace(/\s+/g, ''), options, ); const spaceWidth = this.widthOfString(' ') + characterSpacing; wordSpacing = Math.max( 0, (options.lineWidth - textWidth) / Math.max(1, words.length - 1) - spaceWidth, ); } // calculate the actual rendered width of the string after word and character spacing contentWidth = Math.max( contentWidth, options.textWidth + wordSpacing * (options.wordCount - 1) + characterSpacing * (text.length - 1), ); } }); wrapper.wrap(string, options); } else { // render paragraphs as single lines for (let line of string.split('\n')) { const lineWidth = this.widthOfString(line, options); this.y += lineHeight; contentWidth = Math.max(contentWidth, lineWidth); } } let contentHeight = this.y - y; // Clamp height to max height if (options.height) contentHeight = Math.min(contentHeight, options.height); this.x = x; this.y = y; /** * Rotates around top left corner * [x1,y1] > [x2,y2] * ⌃ ⌄ * [x4,y4] < [x3,y3] */ if (options.rotation === 0) { // No rotation so we can use the existing values return { x, y, width: contentWidth, height: contentHeight }; // Use fast computation without explicit trig } else if (options.rotation === 90) { return { x: x, y: y - contentWidth, width: contentHeight, height: contentWidth, }; } else if (options.rotation === 180) { return { x: x - contentWidth, y: y - contentHeight, width: contentWidth, height: contentHeight, }; } else if (options.rotation === 270) { return { x: x - contentHeight, y: y, width: contentHeight, height: contentWidth, }; } // Non-trivial values so time for trig const cos = cosine(options.rotation); const sin = sine(options.rotation); const x1 = x; const y1 = y; const x2 = x + contentWidth * cos; const y2 = y - contentWidth * sin; const x3 = x + contentWidth * cos + contentHeight * sin; const y3 = y - contentWidth * sin + contentHeight * cos; const x4 = x + contentHeight * sin; const y4 = y + contentHeight * cos; const xMin = Math.min(x1, x2, x3, x4); const xMax = Math.max(x1, x2, x3, x4); const yMin = Math.min(y1, y2, y3, y4); const yMax = Math.max(y1, y2, y3, y4); return { x: xMin, y: yMin, width: xMax - xMin, height: yMax - yMin }; }, heightOfString(text, options) { const { x, y } = this; options = this._initOptions(options); options.height = Infinity; // don't break pages const lineGap = options.lineGap || this._lineGap || 0; this._text(text, this.x, this.y, options, () => { this.y += this.currentLineHeight(true) + lineGap; }); const height = this.y - y; this.x = x; this.y = y; return height; }, list(list, x, y, options) { options = this._initOptions(x, y, options); const listType = options.listType || 'bullet'; const unit = Math.round((this._font.ascender / 1000) * this._fontSize); const midLine = unit / 2; const r = options.bulletRadius || unit / 3; const indent = options.textIndent || (listType === 'bullet' ? r * 5 : unit * 2); const itemIndent = options.bulletIndent || (listType === 'bullet' ? r * 8 : unit * 2); let level = 1; const items = []; const levels = []; const numbers = []; var flatten = function (list) { let n = 1; for (let i = 0; i < list.length; i++) { const item = list[i]; if (Array.isArray(item)) { level++; flatten(item); level--; } else { items.push(item); levels.push(level); if (listType !== 'bullet') { numbers.push(n++); } } } }; flatten(list); const drawListItem = function (listItem, i) { const wrapper = new LineWrapper(this, options); wrapper.on('line', this._line); level = 1; wrapper.once('firstLine', () => { let item, itemType, labelType, bodyType; if (options.structParent) { if (options.structTypes) { [itemType, labelType, bodyType] = options.structTypes; } else { [itemType, labelType, bodyType] = ['LI', 'Lbl', 'LBody']; } } if (itemType) { item = this.struct(itemType); options.structParent.add(item); } else if (options.structParent) { item = options.structParent; } let l; if ((l = levels[i++]) !== level) { const diff = itemIndent * (l - level); this.x += diff; wrapper.lineWidth -= diff; level = l; } if (item && (labelType || bodyType)) { item.add( this.struct(labelType || bodyType, [ this.markStructureContent(labelType || bodyType), ]), ); } switch (listType) { case 'bullet': this.circle(this.x - indent + r, this.y + midLine, r); this.fill(); break; case 'numbered': case 'lettered': var text = formatListLabel(numbers[i - 1], listType); this._fragment(text, this.x - indent, this.y, options); break; } if (item && labelType && bodyType) { item.add( this.struct(bodyType, [this.markStructureContent(bodyType)]), ); } if (item && item !== options.structParent) { item.end(); } }); wrapper.on('sectionStart', () => { const pos = indent + itemIndent * (level - 1); this.x += pos; wrapper.lineWidth -= pos; }); wrapper.on('sectionEnd', () => { const pos = indent + itemIndent * (level - 1); this.x -= pos; wrapper.lineWidth += pos; }); wrapper.wrap(listItem, options); }; for (let i = 0; i < items.length; i++) { drawListItem.call(this, items[i], i); } return this; }, _initOptions(x = {}, y, options = {}) { if (x && typeof x === 'object') { options = x; x = null; } // clone options object const result = Object.assign({}, options); // extend options with previous values for continued text if (this._textOptions) { for (let key in this._textOptions) { const val = this._textOptions[key]; if (key !== 'continued') { if (result[key] === undefined) { result[key] = val; } } } } // Update the current position if (x != null) { this.x = x; } if (y != null) { this.y = y; } // wrap to margins if no x or y position passed if (result.lineBreak !== false) { if (result.width == null) { result.width = this.page.width - this.x - this.page.margins.right; } result.width = Math.max(result.width, 0); } if (!result.columns) { result.columns = 0; } if (result.columnGap == null) { result.columnGap = 18; } // 1/4 inch // Normalize rotation to between 0 - 360 result.rotation = Number(result.rotation ?? 0) % 360; if (result.rotation < 0) result.rotation += 360; return result; }, _line(text, options = {}, wrapper) { this._fragment(text, this.x, this.y, options); if (wrapper) { const lineGap = options.lineGap || this._lineGap || 0; this.y += this.currentLineHeight(true) + lineGap; } else { this.x += this.widthOfString(text, options); } }, _fragment(text, x, y, options) { let dy, encoded, i, positions, textWidth, words; text = `${text}`.replace(/\n/g, ''); if (text.length === 0) { return; } // handle options const align = options.align || 'left'; let wordSpacing = options.wordSpacing || 0; const characterSpacing = options.characterSpacing || 0; const horizontalScaling = options.horizontalScaling || 100; // text alignments if (options.width) { switch (align) { case 'right': textWidth = this.widthOfString(text.replace(/\s+$/, ''), options); x += options.lineWidth - textWidth; break; case 'center': x += options.lineWidth / 2 - options.textWidth / 2; break; case 'justify': // calculate the word spacing value words = text.trim().split(/\s+/); textWidth = this.widthOfString(text.replace(/\s+/g, ''), options); var spaceWidth = this.widthOfString(' ') + characterSpacing; wordSpacing = Math.max( 0, (options.lineWidth - textWidth) / Math.max(1, words.length - 1) - spaceWidth, ); break; } } // text baseline alignments based on http://wiki.apache.org/xmlgraphics-fop/LineLayout/AlignmentHandling if (typeof options.baseline === 'number') { dy = -options.baseline; } else { switch (options.baseline) { case 'svg-middle': dy = 0.5 * this._font.xHeight; break; case 'middle': case 'svg-central': dy = 0.5 * (this._font.descender + this._font.ascender); break; case 'bottom': case 'ideographic': dy = this._font.descender; break; case 'alphabetic': dy = 0; break; case 'mathematical': dy = 0.5 * this._font.ascender; break; case 'hanging': dy = 0.8 * this._font.ascender; break; case 'top': dy = this._font.ascender; break; default: dy = this._font.ascender; } dy = (dy / 1000) * this._fontSize; } // calculate the actual rendered width of the string after word and character spacing const renderedWidth = options.textWidth + wordSpacing * (options.wordCount - 1) + characterSpacing * (text.length - 1); // create link annotations if the link option is given if (options.link != null) { const linkOptions = {}; if ( this._currentStructureElement && this._currentStructureElement.dictionary.data.S === 'Link' ) { linkOptions.structParent = this._currentStructureElement; } this.link( x, y, renderedWidth, this.currentLineHeight(), options.link, linkOptions, ); } if (options.goTo != null) { this.goTo(x, y, renderedWidth, this.currentLineHeight(), options.goTo); } if (options.destination != null) { this.addNamedDestination(options.destination, 'XYZ', x, y, null); } // create underline if (options.underline) { this.save(); if (!options.stroke) { this.strokeColor(...(this._fillColor || [])); } const lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10); this.lineWidth(lineWidth); let lineY = y + this.currentLineHeight() - lineWidth; this.moveTo(x, lineY); this.lineTo(x + renderedWidth, lineY); this.stroke(); this.restore(); } // create strikethrough line if (options.strike) { this.save(); if (!options.stroke) { this.strokeColor(...(this._fillColor || [])); } const lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10); this.lineWidth(lineWidth); let lineY = y + this.currentLineHeight() / 2; this.moveTo(x, lineY); this.lineTo(x + renderedWidth, lineY); this.stroke(); this.restore(); } this.save(); // oblique (angle in degrees or boolean) if (options.oblique) { let skew; if (typeof options.oblique === 'number') { skew = -Math.tan((options.oblique * Math.PI) / 180); } else { skew = -0.25; } this.transform(1, 0, 0, 1, x, y); this.transform(1, 0, skew, 1, -skew * dy, 0); this.transform(1, 0, 0, 1, -x, -y); } // flip coordinate system this.transform(1, 0, 0, -1, 0, this.page.height); y = this.page.height - y - dy; // add current font to page if necessary if (this.page.fonts[this._font.id] == null) { this.page.fonts[this._font.id] = this._font.ref(); } // begin the text object this.addContent('BT'); // text position this.addContent(`1 0 0 1 ${number(x)} ${number(y)} Tm`); // font and font size this.addContent(`/${this._font.id} ${number(this._fontSize)} Tf`); // rendering mode const mode = options.fill && options.stroke ? 2 : options.stroke ? 1 : 0; if (mode) { this.addContent(`${mode} Tr`); } // Character spacing if (characterSpacing) { this.addContent(`${number(characterSpacing)} Tc`); } // Horizontal scaling if (horizontalScaling !== 100) { this.addContent(`${horizontalScaling} Tz`); } // Add the actual text // If we have a word spacing value, we need to encode each word separately // since the normal Tw operator only works on character code 32, which isn't // used for embedded fonts. if (wordSpacing) { words = text.trim().split(/\s+/); wordSpacing += this.widthOfString(' ') + characterSpacing; wordSpacing *= 1000 / this._fontSize; encoded = []; positions = []; for (let word of words) { const [encodedWord, positionsWord] = this._font.encode( word, options.features, ); encoded = encoded.concat(encodedWord); positions = positions.concat(positionsWord); // add the word spacing to the end of the word // clone object because of cache const space = {}; const object = positions[positions.length - 1]; for (let key in object) { const val = object[key]; space[key] = val; } space.xAdvance += wordSpacing; positions[positions.length - 1] = space; } } else { [encoded, positions] = this._font.encode(text, options.features); } const scale = this._fontSize / 1000; const commands = []; let last = 0; let hadOffset = false; // Adds a segment of text to the TJ command buffer const addSegment = (cur) => { if (last < cur) { const hex = encoded.slice(last, cur).join(''); const advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth; commands.push(`<${hex}> ${number(-advance)}`); } last = cur; }; // Flushes the current TJ commands to the output stream const flush = (i) => { addSegment(i); if (commands.length > 0) { this.addContent(`[${commands.join(' ')}] TJ`); commands.length = 0; } }; for (i = 0; i < positions.length; i++) { // If we have an x or y offset, we have to break out of the current TJ command // so we can move the text position. const pos = positions[i]; if (pos.xOffset || pos.yOffset) { // Flush the current buffer flush(i); // Move the text position and flush just the current character this.addContent( `1 0 0 1 ${number(x + pos.xOffset * scale)} ${number( y + pos.yOffset * scale, )} Tm`, ); flush(i + 1); hadOffset = true; } else { // If the last character had an offset, reset the text position if (hadOffset) { this.addContent(`1 0 0 1 ${number(x)} ${number(y)} Tm`); hadOffset = false; } // Group segments that don't have any advance adjustments if (pos.xAdvance - pos.advanceWidth !== 0) { addSegment(i + 1); } } x += pos.xAdvance * scale; } // Flush any remaining commands flush(i); // end the text object this.addContent('ET'); // restore flipped coordinate system this.restore(); }, }; ================================================ FILE: lib/mixins/vector.js ================================================ import SVGPath from '../path'; import PDFObject from '../object'; const { number } = PDFObject; // This constant is used to approximate a symmetrical arc using a cubic // Bezier curve. const KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0); export default { initVector() { this._ctm = [1, 0, 0, 1, 0, 0]; // current transformation matrix this._ctmStack = []; }, save() { this._ctmStack.push(this._ctm.slice()); // TODO: save/restore colorspace and styles so not setting it unnessesarily all the time? return this.addContent('q'); }, restore() { this._ctm = this._ctmStack.pop() || [1, 0, 0, 1, 0, 0]; return this.addContent('Q'); }, closePath() { return this.addContent('h'); }, lineWidth(w) { return this.addContent(`${number(w)} w`); }, _CAP_STYLES: { BUTT: 0, ROUND: 1, SQUARE: 2, }, lineCap(c) { if (typeof c === 'string') { c = this._CAP_STYLES[c.toUpperCase()]; } return this.addContent(`${c} J`); }, _JOIN_STYLES: { MITER: 0, ROUND: 1, BEVEL: 2, }, lineJoin(j) { if (typeof j === 'string') { j = this._JOIN_STYLES[j.toUpperCase()]; } return this.addContent(`${j} j`); }, miterLimit(m) { return this.addContent(`${number(m)} M`); }, dash(length, options = {}) { const originalLength = length; if (!Array.isArray(length)) { length = [length, options.space || length]; } const valid = length.every((x) => Number.isFinite(x) && x > 0); if (!valid) { throw new Error( `dash(${JSON.stringify(originalLength)}, ${JSON.stringify( options, )}) invalid, lengths must be numeric and greater than zero`, ); } length = length.map(number).join(' '); return this.addContent(`[${length}] ${number(options.phase || 0)} d`); }, undash() { return this.addContent('[] 0 d'); }, moveTo(x, y) { return this.addContent(`${number(x)} ${number(y)} m`); }, lineTo(x, y) { return this.addContent(`${number(x)} ${number(y)} l`); }, bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) { return this.addContent( `${number(cp1x)} ${number(cp1y)} ${number(cp2x)} ${number(cp2y)} ${number( x, )} ${number(y)} c`, ); }, quadraticCurveTo(cpx, cpy, x, y) { return this.addContent( `${number(cpx)} ${number(cpy)} ${number(x)} ${number(y)} v`, ); }, rect(x, y, w, h) { return this.addContent( `${number(x)} ${number(y)} ${number(w)} ${number(h)} re`, ); }, roundedRect(x, y, w, h, r) { if (r == null) { r = 0; } r = Math.min(r, 0.5 * w, 0.5 * h); // amount to inset control points from corners (see `ellipse`) const c = r * (1.0 - KAPPA); this.moveTo(x + r, y); this.lineTo(x + w - r, y); this.bezierCurveTo(x + w - c, y, x + w, y + c, x + w, y + r); this.lineTo(x + w, y + h - r); this.bezierCurveTo(x + w, y + h - c, x + w - c, y + h, x + w - r, y + h); this.lineTo(x + r, y + h); this.bezierCurveTo(x + c, y + h, x, y + h - c, x, y + h - r); this.lineTo(x, y + r); this.bezierCurveTo(x, y + c, x + c, y, x + r, y); return this.closePath(); }, ellipse(x, y, r1, r2) { // based on http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas/2173084#2173084 if (r2 == null) { r2 = r1; } x -= r1; y -= r2; const ox = r1 * KAPPA; const oy = r2 * KAPPA; const xe = x + r1 * 2; const ye = y + r2 * 2; const xm = x + r1; const ym = y + r2; this.moveTo(x, ym); this.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y); this.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym); this.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye); this.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym); return this.closePath(); }, circle(x, y, radius) { return this.ellipse(x, y, radius); }, arc(x, y, radius, startAngle, endAngle, anticlockwise) { if (anticlockwise == null) { anticlockwise = false; } const TWO_PI = 2.0 * Math.PI; const HALF_PI = 0.5 * Math.PI; let deltaAng = endAngle - startAngle; if (Math.abs(deltaAng) > TWO_PI) { // draw only full circle if more than that is specified deltaAng = TWO_PI; } else if (deltaAng !== 0 && anticlockwise !== deltaAng < 0) { // necessary to flip direction of rendering const dir = anticlockwise ? -1 : 1; deltaAng = dir * TWO_PI + deltaAng; } const numSegs = Math.ceil(Math.abs(deltaAng) / HALF_PI); const segAng = deltaAng / numSegs; const handleLen = (segAng / HALF_PI) * KAPPA * radius; let curAng = startAngle; // component distances between anchor point and control point let deltaCx = -Math.sin(curAng) * handleLen; let deltaCy = Math.cos(curAng) * handleLen; // anchor point let ax = x + Math.cos(curAng) * radius; let ay = y + Math.sin(curAng) * radius; // calculate and render segments this.moveTo(ax, ay); for (let segIdx = 0; segIdx < numSegs; segIdx++) { // starting control point const cp1x = ax + deltaCx; const cp1y = ay + deltaCy; // step angle curAng += segAng; // next anchor point ax = x + Math.cos(curAng) * radius; ay = y + Math.sin(curAng) * radius; // next control point delta deltaCx = -Math.sin(curAng) * handleLen; deltaCy = Math.cos(curAng) * handleLen; // ending control point const cp2x = ax - deltaCx; const cp2y = ay - deltaCy; // render segment this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, ax, ay); } return this; }, polygon(...points) { this.moveTo(...(points.shift() || [])); for (let point of points) { this.lineTo(...(point || [])); } return this.closePath(); }, path(path) { SVGPath.apply(this, path); return this; }, _windingRule(rule) { if (/even-?odd/.test(rule)) { return '*'; } return ''; }, fill(color, rule) { if (/(even-?odd)|(non-?zero)/.test(color)) { rule = color; color = null; } if (color) { this.fillColor(color); } return this.addContent(`f${this._windingRule(rule)}`); }, stroke(color) { if (color) { this.strokeColor(color); } return this.addContent('S'); }, fillAndStroke(fillColor, strokeColor, rule) { if (strokeColor == null) { strokeColor = fillColor; } const isFillRule = /(even-?odd)|(non-?zero)/; if (isFillRule.test(fillColor)) { rule = fillColor; fillColor = null; } if (isFillRule.test(strokeColor)) { rule = strokeColor; strokeColor = fillColor; } if (fillColor) { this.fillColor(fillColor); this.strokeColor(strokeColor); } return this.addContent(`B${this._windingRule(rule)}`); }, clip(rule) { return this.addContent(`W${this._windingRule(rule)} n`); }, transform(m11, m12, m21, m22, dx, dy) { // keep track of the current transformation matrix if ( m11 === 1 && m12 === 0 && m21 === 0 && m22 === 1 && dx === 0 && dy === 0 ) { // Ignore identity transforms return this; } const m = this._ctm; const [m0, m1, m2, m3, m4, m5] = m; m[0] = m0 * m11 + m2 * m12; m[1] = m1 * m11 + m3 * m12; m[2] = m0 * m21 + m2 * m22; m[3] = m1 * m21 + m3 * m22; m[4] = m0 * dx + m2 * dy + m4; m[5] = m1 * dx + m3 * dy + m5; const values = [m11, m12, m21, m22, dx, dy].map((v) => number(v)).join(' '); return this.addContent(`${values} cm`); }, translate(x, y) { return this.transform(1, 0, 0, 1, x, y); }, rotate(angle, options = {}) { let y; const rad = (angle * Math.PI) / 180; const cos = Math.cos(rad); const sin = Math.sin(rad); let x = (y = 0); if (options.origin != null) { [x, y] = options.origin; const x1 = x * cos - y * sin; const y1 = x * sin + y * cos; x -= x1; y -= y1; } return this.transform(cos, sin, -sin, cos, x, y); }, scale(xFactor, yFactor, options = {}) { let y; if (yFactor == null) { yFactor = xFactor; } if (typeof yFactor === 'object') { options = yFactor; yFactor = xFactor; } let x = (y = 0); if (options.origin != null) { [x, y] = options.origin; x -= xFactor * x; y -= yFactor * y; } return this.transform(xFactor, 0, 0, yFactor, x, y); }, }; ================================================ FILE: lib/name_tree.js ================================================ /* PDFNameTree - represents a name tree object */ import PDFTree from './tree'; class PDFNameTree extends PDFTree { _compareKeys(a, b) { return a.localeCompare(b); } _keysName() { return 'Names'; } _dataForKey(k) { return new String(k); } } export default PDFNameTree; ================================================ FILE: lib/number_tree.js ================================================ /* PDFNumberTree - represents a number tree object */ import PDFTree from './tree'; class PDFNumberTree extends PDFTree { _compareKeys(a, b) { return parseInt(a) - parseInt(b); } _keysName() { return 'Nums'; } _dataForKey(k) { return parseInt(k); } } export default PDFNumberTree; ================================================ FILE: lib/object.js ================================================ /* PDFObject - converts JavaScript types into their corresponding PDF types. By Devon Govett */ import PDFAbstractReference from './abstract_reference'; import PDFTree from './tree'; import SpotColor from './spotcolor'; const pad = (str, length) => (Array(length + 1).join('0') + str).slice(-length); const escapableRe = /[\n\r\t\b\f()\\]/g; const escapable = { '\n': '\\n', '\r': '\\r', '\t': '\\t', '\b': '\\b', '\f': '\\f', '\\': '\\\\', '(': '\\(', ')': '\\)', }; // Convert little endian UTF-16 to big endian const swapBytes = function (buff) { const l = buff.length; if (l & 0x01) { throw new Error('Buffer length must be even'); } else { for (let i = 0, end = l - 1; i < end; i += 2) { const a = buff[i]; buff[i] = buff[i + 1]; buff[i + 1] = a; } } return buff; }; class PDFObject { static convert(object, encryptFn = null) { // String literals are converted to the PDF name type if (typeof object === 'string') { return `/${object}`; // String objects are converted to PDF strings (UTF-16) } else if (object instanceof String) { let string = object; // Detect if this is a unicode string let isUnicode = false; for (let i = 0, end = string.length; i < end; i++) { if (string.charCodeAt(i) > 0x7f) { isUnicode = true; break; } } // If so, encode it as big endian UTF-16 let stringBuffer; if (isUnicode) { stringBuffer = swapBytes(Buffer.from(`\ufeff${string}`, 'utf16le')); } else { stringBuffer = Buffer.from(string.valueOf(), 'ascii'); } // Encrypt the string when necessary if (encryptFn) { string = encryptFn(stringBuffer).toString('binary'); } else { string = stringBuffer.toString('binary'); } // Escape characters as required by the spec string = string.replace(escapableRe, (c) => escapable[c]); return `(${string})`; // Buffers are converted to PDF hex strings } else if (Buffer.isBuffer(object)) { return `<${object.toString('hex')}>`; } else if ( object instanceof PDFAbstractReference || object instanceof PDFTree || object instanceof SpotColor ) { return object.toString(); } else if (object instanceof Date) { let string = `D:${pad(object.getUTCFullYear(), 4)}` + pad(object.getUTCMonth() + 1, 2) + pad(object.getUTCDate(), 2) + pad(object.getUTCHours(), 2) + pad(object.getUTCMinutes(), 2) + pad(object.getUTCSeconds(), 2) + 'Z'; // Encrypt the string when necessary if (encryptFn) { string = encryptFn(Buffer.from(string, 'ascii')).toString('binary'); // Escape characters as required by the spec string = string.replace(escapableRe, (c) => escapable[c]); } return `(${string})`; } else if (Array.isArray(object)) { const items = object .map((e) => PDFObject.convert(e, encryptFn)) .join(' '); return `[${items}]`; } else if ({}.toString.call(object) === '[object Object]') { const out = ['<<']; for (let key in object) { const val = object[key]; out.push(`/${key} ${PDFObject.convert(val, encryptFn)}`); } out.push('>>'); return out.join('\n'); } else if (typeof object === 'number') { return PDFObject.number(object); } else { return `${object}`; } } static number(n) { if (n > -1e21 && n < 1e21) { return Math.round(n * 1e6) / 1e6; } throw new Error(`unsupported number: ${n}`); } } export default PDFObject; ================================================ FILE: lib/outline.js ================================================ const DEFAULT_OPTIONS = { top: 0, left: 0, zoom: 0, fit: true, // Default to Fit for backward compatibility pageNumber: null, expanded: false, }; class PDFOutline { constructor(document, parent, title, dest, options = DEFAULT_OPTIONS) { this.document = document; this.options = options; this.outlineData = {}; if (dest !== null) { const destWidth = dest.data.MediaBox[2]; const destHeight = dest.data.MediaBox[3]; const top = destHeight - (options.top || 0); const left = destWidth - (options.left || 0); const zoom = options.zoom || 0; this.outlineData['Dest'] = options.fit ? [dest, 'Fit'] : [dest, 'XYZ', left, top, zoom]; } if (parent !== null) { this.outlineData['Parent'] = parent; } if (title !== null) { this.outlineData['Title'] = new String(title); } this.dictionary = this.document.ref(this.outlineData); this.children = []; } addItem(title, options = DEFAULT_OPTIONS) { const pages = this.document._root.data.Pages.data.Kids; const dest = options.pageNumber != null ? pages[options.pageNumber] : this.document.page.dictionary; const result = new PDFOutline( this.document, this.dictionary, title, dest, options, ); this.children.push(result); return result; } endOutline() { if (this.children.length > 0) { if (this.options.expanded) { this.outlineData.Count = this.children.length; } const first = this.children[0], last = this.children[this.children.length - 1]; this.outlineData.First = first.dictionary; this.outlineData.Last = last.dictionary; for (let i = 0, len = this.children.length; i < len; i++) { const child = this.children[i]; if (i > 0) { child.outlineData.Prev = this.children[i - 1].dictionary; } if (i < this.children.length - 1) { child.outlineData.Next = this.children[i + 1].dictionary; } child.endOutline(); } } return this.dictionary.end(); } } export default PDFOutline; ================================================ FILE: lib/page.js ================================================ /* PDFPage - represents a single page in the PDF document By Devon Govett */ import { normalizeSides } from './utils'; /** * @type {SideDefinition} */ const DEFAULT_MARGINS = { top: 72, left: 72, bottom: 72, right: 72, }; const SIZES = { '4A0': [4767.87, 6740.79], '2A0': [3370.39, 4767.87], A0: [2383.94, 3370.39], A1: [1683.78, 2383.94], A2: [1190.55, 1683.78], A3: [841.89, 1190.55], A4: [595.28, 841.89], A5: [419.53, 595.28], A6: [297.64, 419.53], A7: [209.76, 297.64], A8: [147.4, 209.76], A9: [104.88, 147.4], A10: [73.7, 104.88], B0: [2834.65, 4008.19], B1: [2004.09, 2834.65], B2: [1417.32, 2004.09], B3: [1000.63, 1417.32], B4: [708.66, 1000.63], B5: [498.9, 708.66], B6: [354.33, 498.9], B7: [249.45, 354.33], B8: [175.75, 249.45], B9: [124.72, 175.75], B10: [87.87, 124.72], C0: [2599.37, 3676.54], C1: [1836.85, 2599.37], C2: [1298.27, 1836.85], C3: [918.43, 1298.27], C4: [649.13, 918.43], C5: [459.21, 649.13], C6: [323.15, 459.21], C7: [229.61, 323.15], C8: [161.57, 229.61], C9: [113.39, 161.57], C10: [79.37, 113.39], RA0: [2437.8, 3458.27], RA1: [1729.13, 2437.8], RA2: [1218.9, 1729.13], RA3: [864.57, 1218.9], RA4: [609.45, 864.57], SRA0: [2551.18, 3628.35], SRA1: [1814.17, 2551.18], SRA2: [1275.59, 1814.17], SRA3: [907.09, 1275.59], SRA4: [637.8, 907.09], EXECUTIVE: [521.86, 756.0], FOLIO: [612.0, 936.0], LEGAL: [612.0, 1008.0], LETTER: [612.0, 792.0], TABLOID: [792.0, 1224.0], }; class PDFPage { constructor(document, options = {}) { this.document = document; this._options = options; this.size = options.size || 'letter'; this.layout = options.layout || 'portrait'; this.userUnit = options.userUnit || 1.0; // calculate page dimensions const dimensions = Array.isArray(this.size) ? this.size : SIZES[this.size.toUpperCase()]; this.width = dimensions[this.layout === 'portrait' ? 0 : 1]; this.height = dimensions[this.layout === 'portrait' ? 1 : 0]; this.content = this.document.ref(); if (options.font) document.font(options.font, options.fontFamily); if (options.fontSize) document.fontSize(options.fontSize); // process margins // Margin calculation must occur after font assignment to ensure any dynamic sizes are calculated correctly this.margins = normalizeSides( options.margin ?? options.margins, DEFAULT_MARGINS, (x) => document.sizeToPoint(x, 0, this), ); // Initialize the Font, XObject, and ExtGState dictionaries this.resources = this.document.ref({ ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'], }); // The page dictionary this.dictionary = this.document.ref({ Type: 'Page', Parent: this.document._root.data.Pages, MediaBox: [0, 0, this.width, this.height], Contents: this.content, Resources: this.resources, UserUnit: this.userUnit, }); this.markings = []; } // Lazily create these objects get fonts() { const data = this.resources.data; return data.Font != null ? data.Font : (data.Font = {}); } get xobjects() { const data = this.resources.data; return data.XObject != null ? data.XObject : (data.XObject = {}); } get ext_gstates() { const data = this.resources.data; return data.ExtGState != null ? data.ExtGState : (data.ExtGState = {}); } get patterns() { const data = this.resources.data; return data.Pattern != null ? data.Pattern : (data.Pattern = {}); } get colorSpaces() { const data = this.resources.data; return data.ColorSpace || (data.ColorSpace = {}); } get annotations() { const data = this.dictionary.data; return data.Annots != null ? data.Annots : (data.Annots = []); } get structParentTreeKey() { const data = this.dictionary.data; return data.StructParents != null ? data.StructParents : (data.StructParents = this.document.createStructParentTreeNextKey()); } /** * The width of the safe contents of a page * * @returns {number} */ get contentWidth() { return this.width - this.margins.left - this.margins.right; } /** * The height of the safe contents of a page * * @returns {number} */ get contentHeight() { return this.height - this.margins.top - this.margins.bottom; } maxY() { return this.height - this.margins.bottom; } write(chunk) { return this.content.write(chunk); } // Set tab order if document is tagged for accessibility. _setTabOrder() { if (!this.dictionary.Tabs && this.document.hasMarkInfoDictionary()) { this.dictionary.data.Tabs = 'S'; } } end() { this._setTabOrder(); this.dictionary.end(); this.resources.data.ColorSpace = this.resources.data.ColorSpace || {}; for (let color of Object.values(this.document.spotColors)) { this.resources.data.ColorSpace[color.id] = color; } this.resources.end(); return this.content.end(); } } export default PDFPage; ================================================ FILE: lib/path.js ================================================ let cx, cy, px, py, sx, sy; cx = cy = px = py = sx = sy = 0; const parameters = { A: 7, a: 7, C: 6, c: 6, H: 1, h: 1, L: 2, l: 2, M: 2, m: 2, Q: 4, q: 4, S: 4, s: 4, T: 2, t: 2, V: 1, v: 1, Z: 0, z: 0, }; const isCommand = function (c) { return c in parameters; }; const isWsp = function (c) { const codePoint = c.codePointAt(0); return ( codePoint === 0x20 || codePoint === 0x9 || codePoint === 0xd || codePoint === 0xa ); }; const isDigit = function (c) { const codePoint = c.codePointAt(0); if (codePoint == null) { return false; } return 48 <= codePoint && codePoint <= 57; }; const readNumber = function (string, cursor) { let i = cursor; let value = ''; let state = 'none'; for (; i < string.length; i += 1) { const c = string[i]; if (c === '+' || c === '-') { if (state === 'none') { state = 'sign'; value += c; continue; } if (state === 'e') { state = 'exponent_sign'; value += c; continue; } } if (isDigit(c)) { if (state === 'none' || state === 'sign' || state === 'whole') { state = 'whole'; value += c; continue; } if (state === 'decimal_point' || state === 'decimal') { state = 'decimal'; value += c; continue; } if (state === 'e' || state === 'exponent_sign' || state === 'exponent') { state = 'exponent'; value += c; continue; } } if (c === '.') { if (state === 'none' || state === 'sign' || state === 'whole') { state = 'decimal_point'; value += c; continue; } } if (c === 'E' || c === 'e') { if ( state === 'whole' || state === 'decimal_point' || state === 'decimal' ) { state = 'e'; value += c; continue; } } break; } const number = Number.parseFloat(value); if (Number.isNaN(number)) { return [cursor, null]; } // step back to delegate iteration to parent loop return [i - 1, number]; }; // parse is based on the path parser from SVGO // https://github.com/svg/svgo/blob/main/lib/path.js // License: MIT const parse = function (path) { const pathData = []; let command = null; let args = []; let argsCount = 0; let canHaveComma = false; let hadComma = false; for (let i = 0; i < path.length; i += 1) { const c = path.charAt(i); if (isWsp(c)) { continue; } // allow comma only between arguments if (canHaveComma && c === ',') { if (hadComma) { break; } hadComma = true; continue; } if (isCommand(c)) { if (hadComma) { return pathData; } if (command == null) { // moveto should be leading command if (c !== 'M' && c !== 'm') { return pathData; } } else { // stop if previous command arguments are not flushed if (args.length !== 0) { return pathData; } } command = c; args = []; argsCount = parameters[command]; canHaveComma = false; // flush command without arguments if (argsCount === 0) { pathData.push({ command, args }); } continue; } // avoid parsing arguments if no command detected if (command == null) { return pathData; } // read next argument let newCursor = i; let number = null; if (command === 'A' || command === 'a') { const position = args.length; if (position === 0 || position === 1) { // allow only positive number without sign as first two arguments if (c !== '+' && c !== '-') { [newCursor, number] = readNumber(path, i); } } if (position === 2 || position === 5 || position === 6) { [newCursor, number] = readNumber(path, i); } if (position === 3 || position === 4) { // read flags if (c === '0') { number = 0; } if (c === '1') { number = 1; } } } else { [newCursor, number] = readNumber(path, i); } if (number == null) { return pathData; } args.push(number); canHaveComma = true; hadComma = false; i = newCursor; // flush arguments when necessary count is reached if (args.length === argsCount) { pathData.push({ command, args }); // subsequent moveto coordinates are treated as implicit lineto commands if (command === 'M') { command = 'L'; } if (command === 'm') { command = 'l'; } args = []; } } return pathData; }; const apply = function (commands, doc) { // current point, control point, and subpath starting point cx = cy = px = py = sx = sy = 0; // run the commands for (let i = 0; i < commands.length; i++) { const c = commands[i]; if (typeof runners[c.command] === 'function') { runners[c.command](doc, c.args); } } }; const runners = { M(doc, a) { cx = a[0]; cy = a[1]; px = py = null; sx = cx; sy = cy; return doc.moveTo(cx, cy); }, m(doc, a) { cx += a[0]; cy += a[1]; px = py = null; sx = cx; sy = cy; return doc.moveTo(cx, cy); }, C(doc, a) { cx = a[4]; cy = a[5]; px = a[2]; py = a[3]; return doc.bezierCurveTo(...a); }, c(doc, a) { doc.bezierCurveTo( a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy, a[4] + cx, a[5] + cy, ); px = cx + a[2]; py = cy + a[3]; cx += a[4]; return (cy += a[5]); }, S(doc, a) { if (px === null) { px = cx; py = cy; } doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), a[0], a[1], a[2], a[3]); px = a[0]; py = a[1]; cx = a[2]; return (cy = a[3]); }, s(doc, a) { if (px === null) { px = cx; py = cy; } doc.bezierCurveTo( cx - (px - cx), cy - (py - cy), cx + a[0], cy + a[1], cx + a[2], cy + a[3], ); px = cx + a[0]; py = cy + a[1]; cx += a[2]; return (cy += a[3]); }, Q(doc, a) { px = a[0]; py = a[1]; cx = a[2]; cy = a[3]; return doc.quadraticCurveTo(a[0], a[1], cx, cy); }, q(doc, a) { doc.quadraticCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy); px = cx + a[0]; py = cy + a[1]; cx += a[2]; return (cy += a[3]); }, T(doc, a) { if (px === null) { px = cx; py = cy; } else { px = cx - (px - cx); py = cy - (py - cy); } doc.quadraticCurveTo(px, py, a[0], a[1]); px = cx - (px - cx); py = cy - (py - cy); cx = a[0]; return (cy = a[1]); }, t(doc, a) { if (px === null) { px = cx; py = cy; } else { px = cx - (px - cx); py = cy - (py - cy); } doc.quadraticCurveTo(px, py, cx + a[0], cy + a[1]); cx += a[0]; return (cy += a[1]); }, A(doc, a) { solveArc(doc, cx, cy, a); cx = a[5]; return (cy = a[6]); }, a(doc, a) { a[5] += cx; a[6] += cy; solveArc(doc, cx, cy, a); cx = a[5]; return (cy = a[6]); }, L(doc, a) { cx = a[0]; cy = a[1]; px = py = null; return doc.lineTo(cx, cy); }, l(doc, a) { cx += a[0]; cy += a[1]; px = py = null; return doc.lineTo(cx, cy); }, H(doc, a) { cx = a[0]; px = py = null; return doc.lineTo(cx, cy); }, h(doc, a) { cx += a[0]; px = py = null; return doc.lineTo(cx, cy); }, V(doc, a) { cy = a[0]; px = py = null; return doc.lineTo(cx, cy); }, v(doc, a) { cy += a[0]; px = py = null; return doc.lineTo(cx, cy); }, Z(doc) { doc.closePath(); cx = sx; return (cy = sy); }, z(doc) { doc.closePath(); cx = sx; return (cy = sy); }, }; const solveArc = function (doc, x, y, coords) { const [rx, ry, rot, large, sweep, ex, ey] = coords; const segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y); for (let seg of segs) { const bez = segmentToBezier(...seg); doc.bezierCurveTo(...bez); } }; // from Inkscape svgtopdf, thanks! const arcToSegments = function (x, y, rx, ry, large, sweep, rotateX, ox, oy) { const th = rotateX * (Math.PI / 180); const sin_th = Math.sin(th); const cos_th = Math.cos(th); rx = Math.abs(rx); ry = Math.abs(ry); px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y) * 0.5; py = cos_th * (oy - y) * 0.5 - sin_th * (ox - x) * 0.5; let pl = (px * px) / (rx * rx) + (py * py) / (ry * ry); if (pl > 1) { pl = Math.sqrt(pl); rx *= pl; ry *= pl; } const a00 = cos_th / rx; const a01 = sin_th / rx; const a10 = -sin_th / ry; const a11 = cos_th / ry; const x0 = a00 * ox + a01 * oy; const y0 = a10 * ox + a11 * oy; const x1 = a00 * x + a01 * y; const y1 = a10 * x + a11 * y; const d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0); let sfactor_sq = 1 / d - 0.25; if (sfactor_sq < 0) { sfactor_sq = 0; } let sfactor = Math.sqrt(sfactor_sq); if (sweep === large) { sfactor = -sfactor; } const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0); const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0); const th0 = Math.atan2(y0 - yc, x0 - xc); const th1 = Math.atan2(y1 - yc, x1 - xc); let th_arc = th1 - th0; if (th_arc < 0 && sweep === 1) { th_arc += 2 * Math.PI; } else if (th_arc > 0 && sweep === 0) { th_arc -= 2 * Math.PI; } const segments = Math.ceil(Math.abs(th_arc / (Math.PI * 0.5 + 0.001))); const result = []; for (let i = 0; i < segments; i++) { const th2 = th0 + (i * th_arc) / segments; const th3 = th0 + ((i + 1) * th_arc) / segments; result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th]; } return result; }; const segmentToBezier = function (cx, cy, th0, th1, rx, ry, sin_th, cos_th) { const a00 = cos_th * rx; const a01 = -sin_th * ry; const a10 = sin_th * rx; const a11 = cos_th * ry; const th_half = 0.5 * (th1 - th0); const t = ((8 / 3) * Math.sin(th_half * 0.5) * Math.sin(th_half * 0.5)) / Math.sin(th_half); const x1 = cx + Math.cos(th0) - t * Math.sin(th0); const y1 = cy + Math.sin(th0) + t * Math.cos(th0); const x3 = cx + Math.cos(th1); const y3 = cy + Math.sin(th1); const x2 = x3 + t * Math.sin(th1); const y2 = y3 - t * Math.cos(th1); return [ a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3, ]; }; class SVGPath { static apply(doc, path) { const commands = parse(path); apply(commands, doc); } } export default SVGPath; ================================================ FILE: lib/pattern.js ================================================ /* PDF tiling pattern support. Uncolored only. */ const underlyingColorSpaces = ['DeviceCMYK', 'DeviceRGB']; class PDFTilingPattern { constructor(doc, bBox, xStep, yStep, stream) { this.doc = doc; this.bBox = bBox; this.xStep = xStep; this.yStep = yStep; this.stream = stream; } createPattern() { // no resources needed for our current usage // required entry const resources = this.doc.ref(); resources.end(); // apply default transform matrix (flipped in the default doc._ctm) // see document.js & gradient.js const [m0, m1, m2, m3, m4, m5] = this.doc._ctm; const [m11, m12, m21, m22, dx, dy] = [1, 0, 0, 1, 0, 0]; const m = [ m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5, ]; const pattern = this.doc.ref({ Type: 'Pattern', PatternType: 1, // tiling PaintType: 2, // 1-colored, 2-uncolored TilingType: 2, // 2-no distortion BBox: this.bBox, XStep: this.xStep, YStep: this.yStep, Matrix: m.map((v) => +v.toFixed(5)), Resources: resources, }); pattern.end(this.stream); return pattern; } embedPatternColorSpaces() { // map each pattern to an underlying color space // and embed on each page underlyingColorSpaces.forEach((csName) => { const csId = this.getPatternColorSpaceId(csName); if (this.doc.page.colorSpaces[csId]) return; const cs = this.doc.ref(['Pattern', csName]); cs.end(); this.doc.page.colorSpaces[csId] = cs; }); } getPatternColorSpaceId(underlyingColorspace) { return `CsP${underlyingColorspace}`; } embed() { if (!this.id) { this.doc._patternCount = this.doc._patternCount + 1; this.id = 'P' + this.doc._patternCount; this.pattern = this.createPattern(); } // patterns are embedded in each page if (!this.doc.page.patterns[this.id]) { this.doc.page.patterns[this.id] = this.pattern; } } apply(stroke, patternColor) { // do any embedding/creating that might be needed this.embedPatternColorSpaces(); this.embed(); const normalizedColor = this.doc._normalizeColor(patternColor); if (!normalizedColor) throw Error(`invalid pattern color. (value: ${patternColor})`); // select one of the pattern color spaces const csId = this.getPatternColorSpaceId( this.doc._getColorSpace(normalizedColor), ); this.doc._setColorSpace(csId, stroke); // stroke/fill using the pattern and color (in the above underlying color space) const op = stroke ? 'SCN' : 'scn'; return this.doc.addContent( `${normalizedColor.join(' ')} /${this.id} ${op}`, ); } } export default { PDFTilingPattern }; ================================================ FILE: lib/reference.js ================================================ /* PDFReference - represents a reference to another object in the PDF object heirarchy By Devon Govett */ import zlib from 'zlib'; import PDFAbstractReference from './abstract_reference'; import PDFObject from './object'; class PDFReference extends PDFAbstractReference { constructor(document, id, data = {}) { super(); this.document = document; this.id = id; this.data = data; this.gen = 0; this.compress = this.document.compress && !this.data.Filter; this.uncompressedLength = 0; this.buffer = []; } write(chunk) { if (!(chunk instanceof Uint8Array)) { chunk = Buffer.from(chunk + '\n', 'binary'); } this.uncompressedLength += chunk.length; if (this.data.Length == null) { this.data.Length = 0; } this.buffer.push(chunk); this.data.Length += chunk.length; if (this.compress) { this.data.Filter = 'FlateDecode'; } } end(chunk) { if (chunk) { this.write(chunk); } this.finalize(); } finalize() { this.offset = this.document._offset; const encryptFn = this.document._security ? this.document._security.getEncryptFn(this.id, this.gen) : null; if (this.buffer.length) { this.buffer = Buffer.concat(this.buffer); if (this.compress) { this.buffer = zlib.deflateSync(this.buffer); } if (encryptFn) { this.buffer = encryptFn(this.buffer); } this.data.Length = this.buffer.length; } this.document._write(`${this.id} ${this.gen} obj`); this.document._write(PDFObject.convert(this.data, encryptFn)); if (this.buffer.length) { this.document._write('stream'); this.document._write(this.buffer); this.buffer = []; // free up memory this.document._write('\nendstream'); } this.document._write('endobj'); this.document._refEnd(this); } toString() { return `${this.id} ${this.gen} R`; } } export default PDFReference; ================================================ FILE: lib/saslprep/index.js ================================================ import { isUnassignedCodePoint, isCommonlyMappedToNothing, isNonASCIISpaceCharacter, isProhibitedCharacter, isBidirectionalRAL, isBidirectionalL, } from './lib/code-points'; // 2.1. Mapping /** * non-ASCII space characters [StringPrep, C.1.2] that can be * mapped to SPACE (U+0020) */ const mapping2space = isNonASCIISpaceCharacter; /** * the "commonly mapped to nothing" characters [StringPrep, B.1] * that can be mapped to nothing. */ const mapping2nothing = isCommonlyMappedToNothing; // utils const getCodePoint = (character) => character.codePointAt(0); const first = (x) => x[0]; const last = (x) => x[x.length - 1]; /** * Convert provided string into an array of Unicode Code Points. * Based on https://stackoverflow.com/a/21409165/1556249 * and https://www.npmjs.com/package/code-point-at. * @param {string} input * @returns {number[]} */ function toCodePoints(input) { const codepoints = []; const size = input.length; for (let i = 0; i < size; i += 1) { const before = input.charCodeAt(i); if (before >= 0xd800 && before <= 0xdbff && size > i + 1) { const next = input.charCodeAt(i + 1); if (next >= 0xdc00 && next <= 0xdfff) { codepoints.push((before - 0xd800) * 0x400 + next - 0xdc00 + 0x10000); i += 1; continue; } } codepoints.push(before); } return codepoints; } /** * SASLprep. * @param {string} input * @param {Object} opts * @param {boolean} opts.allowUnassigned * @returns {string} */ function saslprep(input, opts = {}) { if (typeof input !== 'string') { throw new TypeError('Expected string.'); } if (input.length === 0) { return ''; } // 1. Map const mapped_input = toCodePoints(input) // 1.1 mapping to space .map((character) => (mapping2space(character) ? 0x20 : character)) // 1.2 mapping to nothing .filter((character) => !mapping2nothing(character)); // 2. Normalize const normalized_input = String.fromCodePoint .apply(null, mapped_input) .normalize('NFKC'); const normalized_map = toCodePoints(normalized_input); // 3. Prohibit const hasProhibited = normalized_map.some(isProhibitedCharacter); if (hasProhibited) { throw new Error( 'Prohibited character, see https://tools.ietf.org/html/rfc4013#section-2.3', ); } // Unassigned Code Points if (opts.allowUnassigned !== true) { const hasUnassigned = normalized_map.some(isUnassignedCodePoint); if (hasUnassigned) { throw new Error( 'Unassigned code point, see https://tools.ietf.org/html/rfc4013#section-2.5', ); } } // 4. check bidi const hasBidiRAL = normalized_map.some(isBidirectionalRAL); const hasBidiL = normalized_map.some(isBidirectionalL); // 4.1 If a string contains any RandALCat character, the string MUST NOT // contain any LCat character. if (hasBidiRAL && hasBidiL) { throw new Error( 'String must not contain RandALCat and LCat at the same time,' + ' see https://tools.ietf.org/html/rfc3454#section-6', ); } /** * 4.2 If a string contains any RandALCat character, a RandALCat * character MUST be the first character of the string, and a * RandALCat character MUST be the last character of the string. */ const isFirstBidiRAL = isBidirectionalRAL( getCodePoint(first(normalized_input)), ); const isLastBidiRAL = isBidirectionalRAL( getCodePoint(last(normalized_input)), ); if (hasBidiRAL && !(isFirstBidiRAL && isLastBidiRAL)) { throw new Error( 'Bidirectional RandALCat character must be the first and the last' + ' character of the string, see https://tools.ietf.org/html/rfc3454#section-6', ); } return normalized_input; } export default saslprep; ================================================ FILE: lib/saslprep/lib/code-points.js ================================================ import { inRange } from './util'; // prettier-ignore-start /** * A.1 Unassigned code points in Unicode 3.2 * @link https://tools.ietf.org/html/rfc3454#appendix-A.1 */ const unassigned_code_points = [ 0x0221, 0x0221, 0x0234, 0x024f, 0x02ae, 0x02af, 0x02ef, 0x02ff, 0x0350, 0x035f, 0x0370, 0x0373, 0x0376, 0x0379, 0x037b, 0x037d, 0x037f, 0x0383, 0x038b, 0x038b, 0x038d, 0x038d, 0x03a2, 0x03a2, 0x03cf, 0x03cf, 0x03f7, 0x03ff, 0x0487, 0x0487, 0x04cf, 0x04cf, 0x04f6, 0x04f7, 0x04fa, 0x04ff, 0x0510, 0x0530, 0x0557, 0x0558, 0x0560, 0x0560, 0x0588, 0x0588, 0x058b, 0x0590, 0x05a2, 0x05a2, 0x05ba, 0x05ba, 0x05c5, 0x05cf, 0x05eb, 0x05ef, 0x05f5, 0x060b, 0x060d, 0x061a, 0x061c, 0x061e, 0x0620, 0x0620, 0x063b, 0x063f, 0x0656, 0x065f, 0x06ee, 0x06ef, 0x06ff, 0x06ff, 0x070e, 0x070e, 0x072d, 0x072f, 0x074b, 0x077f, 0x07b2, 0x0900, 0x0904, 0x0904, 0x093a, 0x093b, 0x094e, 0x094f, 0x0955, 0x0957, 0x0971, 0x0980, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, 0x09a9, 0x09a9, 0x09b1, 0x09b1, 0x09b3, 0x09b5, 0x09ba, 0x09bb, 0x09bd, 0x09bd, 0x09c5, 0x09c6, 0x09c9, 0x09ca, 0x09ce, 0x09d6, 0x09d8, 0x09db, 0x09de, 0x09de, 0x09e4, 0x09e5, 0x09fb, 0x0a01, 0x0a03, 0x0a04, 0x0a0b, 0x0a0e, 0x0a11, 0x0a12, 0x0a29, 0x0a29, 0x0a31, 0x0a31, 0x0a34, 0x0a34, 0x0a37, 0x0a37, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3d, 0x0a43, 0x0a46, 0x0a49, 0x0a4a, 0x0a4e, 0x0a58, 0x0a5d, 0x0a5d, 0x0a5f, 0x0a65, 0x0a75, 0x0a80, 0x0a84, 0x0a84, 0x0a8c, 0x0a8c, 0x0a8e, 0x0a8e, 0x0a92, 0x0a92, 0x0aa9, 0x0aa9, 0x0ab1, 0x0ab1, 0x0ab4, 0x0ab4, 0x0aba, 0x0abb, 0x0ac6, 0x0ac6, 0x0aca, 0x0aca, 0x0ace, 0x0acf, 0x0ad1, 0x0adf, 0x0ae1, 0x0ae5, 0x0af0, 0x0b00, 0x0b04, 0x0b04, 0x0b0d, 0x0b0e, 0x0b11, 0x0b12, 0x0b29, 0x0b29, 0x0b31, 0x0b31, 0x0b34, 0x0b35, 0x0b3a, 0x0b3b, 0x0b44, 0x0b46, 0x0b49, 0x0b4a, 0x0b4e, 0x0b55, 0x0b58, 0x0b5b, 0x0b5e, 0x0b5e, 0x0b62, 0x0b65, 0x0b71, 0x0b81, 0x0b84, 0x0b84, 0x0b8b, 0x0b8d, 0x0b91, 0x0b91, 0x0b96, 0x0b98, 0x0b9b, 0x0b9b, 0x0b9d, 0x0b9d, 0x0ba0, 0x0ba2, 0x0ba5, 0x0ba7, 0x0bab, 0x0bad, 0x0bb6, 0x0bb6, 0x0bba, 0x0bbd, 0x0bc3, 0x0bc5, 0x0bc9, 0x0bc9, 0x0bce, 0x0bd6, 0x0bd8, 0x0be6, 0x0bf3, 0x0c00, 0x0c04, 0x0c04, 0x0c0d, 0x0c0d, 0x0c11, 0x0c11, 0x0c29, 0x0c29, 0x0c34, 0x0c34, 0x0c3a, 0x0c3d, 0x0c45, 0x0c45, 0x0c49, 0x0c49, 0x0c4e, 0x0c54, 0x0c57, 0x0c5f, 0x0c62, 0x0c65, 0x0c70, 0x0c81, 0x0c84, 0x0c84, 0x0c8d, 0x0c8d, 0x0c91, 0x0c91, 0x0ca9, 0x0ca9, 0x0cb4, 0x0cb4, 0x0cba, 0x0cbd, 0x0cc5, 0x0cc5, 0x0cc9, 0x0cc9, 0x0cce, 0x0cd4, 0x0cd7, 0x0cdd, 0x0cdf, 0x0cdf, 0x0ce2, 0x0ce5, 0x0cf0, 0x0d01, 0x0d04, 0x0d04, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d29, 0x0d29, 0x0d3a, 0x0d3d, 0x0d44, 0x0d45, 0x0d49, 0x0d49, 0x0d4e, 0x0d56, 0x0d58, 0x0d5f, 0x0d62, 0x0d65, 0x0d70, 0x0d81, 0x0d84, 0x0d84, 0x0d97, 0x0d99, 0x0db2, 0x0db2, 0x0dbc, 0x0dbc, 0x0dbe, 0x0dbf, 0x0dc7, 0x0dc9, 0x0dcb, 0x0dce, 0x0dd5, 0x0dd5, 0x0dd7, 0x0dd7, 0x0de0, 0x0df1, 0x0df5, 0x0e00, 0x0e3b, 0x0e3e, 0x0e5c, 0x0e80, 0x0e83, 0x0e83, 0x0e85, 0x0e86, 0x0e89, 0x0e89, 0x0e8b, 0x0e8c, 0x0e8e, 0x0e93, 0x0e98, 0x0e98, 0x0ea0, 0x0ea0, 0x0ea4, 0x0ea4, 0x0ea6, 0x0ea6, 0x0ea8, 0x0ea9, 0x0eac, 0x0eac, 0x0eba, 0x0eba, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, 0x0ece, 0x0ecf, 0x0eda, 0x0edb, 0x0ede, 0x0eff, 0x0f48, 0x0f48, 0x0f6b, 0x0f70, 0x0f8c, 0x0f8f, 0x0f98, 0x0f98, 0x0fbd, 0x0fbd, 0x0fcd, 0x0fce, 0x0fd0, 0x0fff, 0x1022, 0x1022, 0x1028, 0x1028, 0x102b, 0x102b, 0x1033, 0x1035, 0x103a, 0x103f, 0x105a, 0x109f, 0x10c6, 0x10cf, 0x10f9, 0x10fa, 0x10fc, 0x10ff, 0x115a, 0x115e, 0x11a3, 0x11a7, 0x11fa, 0x11ff, 0x1207, 0x1207, 0x1247, 0x1247, 0x1249, 0x1249, 0x124e, 0x124f, 0x1257, 0x1257, 0x1259, 0x1259, 0x125e, 0x125f, 0x1287, 0x1287, 0x1289, 0x1289, 0x128e, 0x128f, 0x12af, 0x12af, 0x12b1, 0x12b1, 0x12b6, 0x12b7, 0x12bf, 0x12bf, 0x12c1, 0x12c1, 0x12c6, 0x12c7, 0x12cf, 0x12cf, 0x12d7, 0x12d7, 0x12ef, 0x12ef, 0x130f, 0x130f, 0x1311, 0x1311, 0x1316, 0x1317, 0x131f, 0x131f, 0x1347, 0x1347, 0x135b, 0x1360, 0x137d, 0x139f, 0x13f5, 0x1400, 0x1677, 0x167f, 0x169d, 0x169f, 0x16f1, 0x16ff, 0x170d, 0x170d, 0x1715, 0x171f, 0x1737, 0x173f, 0x1754, 0x175f, 0x176d, 0x176d, 0x1771, 0x1771, 0x1774, 0x177f, 0x17dd, 0x17df, 0x17ea, 0x17ff, 0x180f, 0x180f, 0x181a, 0x181f, 0x1878, 0x187f, 0x18aa, 0x1dff, 0x1e9c, 0x1e9f, 0x1efa, 0x1eff, 0x1f16, 0x1f17, 0x1f1e, 0x1f1f, 0x1f46, 0x1f47, 0x1f4e, 0x1f4f, 0x1f58, 0x1f58, 0x1f5a, 0x1f5a, 0x1f5c, 0x1f5c, 0x1f5e, 0x1f5e, 0x1f7e, 0x1f7f, 0x1fb5, 0x1fb5, 0x1fc5, 0x1fc5, 0x1fd4, 0x1fd5, 0x1fdc, 0x1fdc, 0x1ff0, 0x1ff1, 0x1ff5, 0x1ff5, 0x1fff, 0x1fff, 0x2053, 0x2056, 0x2058, 0x205e, 0x2064, 0x2069, 0x2072, 0x2073, 0x208f, 0x209f, 0x20b2, 0x20cf, 0x20eb, 0x20ff, 0x213b, 0x213c, 0x214c, 0x2152, 0x2184, 0x218f, 0x23cf, 0x23ff, 0x2427, 0x243f, 0x244b, 0x245f, 0x24ff, 0x24ff, 0x2614, 0x2615, 0x2618, 0x2618, 0x267e, 0x267f, 0x268a, 0x2700, 0x2705, 0x2705, 0x270a, 0x270b, 0x2728, 0x2728, 0x274c, 0x274c, 0x274e, 0x274e, 0x2753, 0x2755, 0x2757, 0x2757, 0x275f, 0x2760, 0x2795, 0x2797, 0x27b0, 0x27b0, 0x27bf, 0x27cf, 0x27ec, 0x27ef, 0x2b00, 0x2e7f, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, 0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x312d, 0x3130, 0x318f, 0x318f, 0x31b8, 0x31ef, 0x321d, 0x321f, 0x3244, 0x3250, 0x327c, 0x327e, 0x32cc, 0x32cf, 0x32ff, 0x32ff, 0x3377, 0x337a, 0x33de, 0x33df, 0x33ff, 0x33ff, 0x4db6, 0x4dff, 0x9fa6, 0x9fff, 0xa48d, 0xa48f, 0xa4c7, 0xabff, 0xd7a4, 0xd7ff, 0xfa2e, 0xfa2f, 0xfa6b, 0xfaff, 0xfb07, 0xfb12, 0xfb18, 0xfb1c, 0xfb37, 0xfb37, 0xfb3d, 0xfb3d, 0xfb3f, 0xfb3f, 0xfb42, 0xfb42, 0xfb45, 0xfb45, 0xfbb2, 0xfbd2, 0xfd40, 0xfd4f, 0xfd90, 0xfd91, 0xfdc8, 0xfdcf, 0xfdfd, 0xfdff, 0xfe10, 0xfe1f, 0xfe24, 0xfe2f, 0xfe47, 0xfe48, 0xfe53, 0xfe53, 0xfe67, 0xfe67, 0xfe6c, 0xfe6f, 0xfe75, 0xfe75, 0xfefd, 0xfefe, 0xff00, 0xff00, 0xffbf, 0xffc1, 0xffc8, 0xffc9, 0xffd0, 0xffd1, 0xffd8, 0xffd9, 0xffdd, 0xffdf, 0xffe7, 0xffe7, 0xffef, 0xfff8, 0x10000, 0x102ff, 0x1031f, 0x1031f, 0x10324, 0x1032f, 0x1034b, 0x103ff, 0x10426, 0x10427, 0x1044e, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d129, 0x1d1de, 0x1d3ff, 0x1d455, 0x1d455, 0x1d49d, 0x1d49d, 0x1d4a0, 0x1d4a1, 0x1d4a3, 0x1d4a4, 0x1d4a7, 0x1d4a8, 0x1d4ad, 0x1d4ad, 0x1d4ba, 0x1d4ba, 0x1d4bc, 0x1d4bc, 0x1d4c1, 0x1d4c1, 0x1d4c4, 0x1d4c4, 0x1d506, 0x1d506, 0x1d50b, 0x1d50c, 0x1d515, 0x1d515, 0x1d51d, 0x1d51d, 0x1d53a, 0x1d53a, 0x1d53f, 0x1d53f, 0x1d545, 0x1d545, 0x1d547, 0x1d549, 0x1d551, 0x1d551, 0x1d6a4, 0x1d6a7, 0x1d7ca, 0x1d7cd, 0x1d800, 0x1fffd, 0x2a6d7, 0x2f7ff, 0x2fa1e, 0x2fffd, 0x30000, 0x3fffd, 0x40000, 0x4fffd, 0x50000, 0x5fffd, 0x60000, 0x6fffd, 0x70000, 0x7fffd, 0x80000, 0x8fffd, 0x90000, 0x9fffd, 0xa0000, 0xafffd, 0xb0000, 0xbfffd, 0xc0000, 0xcfffd, 0xd0000, 0xdfffd, 0xe0000, 0xe0000, 0xe0002, 0xe001f, 0xe0080, 0xefffd, ]; // prettier-ignore-end const isUnassignedCodePoint = (character) => inRange(character, unassigned_code_points); // prettier-ignore-start /** * B.1 Commonly mapped to nothing * @link https://tools.ietf.org/html/rfc3454#appendix-B.1 */ const commonly_mapped_to_nothing = [ 0x00ad, 0x00ad, 0x034f, 0x034f, 0x1806, 0x1806, 0x180b, 0x180b, 0x180c, 0x180c, 0x180d, 0x180d, 0x200b, 0x200b, 0x200c, 0x200c, 0x200d, 0x200d, 0x2060, 0x2060, 0xfe00, 0xfe00, 0xfe01, 0xfe01, 0xfe02, 0xfe02, 0xfe03, 0xfe03, 0xfe04, 0xfe04, 0xfe05, 0xfe05, 0xfe06, 0xfe06, 0xfe07, 0xfe07, 0xfe08, 0xfe08, 0xfe09, 0xfe09, 0xfe0a, 0xfe0a, 0xfe0b, 0xfe0b, 0xfe0c, 0xfe0c, 0xfe0d, 0xfe0d, 0xfe0e, 0xfe0e, 0xfe0f, 0xfe0f, 0xfeff, 0xfeff, ]; // prettier-ignore-end const isCommonlyMappedToNothing = (character) => inRange(character, commonly_mapped_to_nothing); // prettier-ignore-start /** * C.1.2 Non-ASCII space characters * @link https://tools.ietf.org/html/rfc3454#appendix-C.1.2 */ const non_ASCII_space_characters = [ 0x00a0, 0x00a0 /* NO-BREAK SPACE */, 0x1680, 0x1680 /* OGHAM SPACE MARK */, 0x2000, 0x2000 /* EN QUAD */, 0x2001, 0x2001 /* EM QUAD */, 0x2002, 0x2002 /* EN SPACE */, 0x2003, 0x2003 /* EM SPACE */, 0x2004, 0x2004 /* THREE-PER-EM SPACE */, 0x2005, 0x2005 /* FOUR-PER-EM SPACE */, 0x2006, 0x2006 /* SIX-PER-EM SPACE */, 0x2007, 0x2007 /* FIGURE SPACE */, 0x2008, 0x2008 /* PUNCTUATION SPACE */, 0x2009, 0x2009 /* THIN SPACE */, 0x200a, 0x200a /* HAIR SPACE */, 0x200b, 0x200b /* ZERO WIDTH SPACE */, 0x202f, 0x202f /* NARROW NO-BREAK SPACE */, 0x205f, 0x205f /* MEDIUM MATHEMATICAL SPACE */, 0x3000, 0x3000 /* IDEOGRAPHIC SPACE */, ]; // prettier-ignore-end const isNonASCIISpaceCharacter = (character) => inRange(character, non_ASCII_space_characters); // prettier-ignore-start const non_ASCII_controls_characters = [ /** * C.2.2 Non-ASCII control characters * @link https://tools.ietf.org/html/rfc3454#appendix-C.2.2 */ 0x0080, 0x009f /* [CONTROL CHARACTERS] */, 0x06dd, 0x06dd /* ARABIC END OF AYAH */, 0x070f, 0x070f /* SYRIAC ABBREVIATION MARK */, 0x180e, 0x180e /* MONGOLIAN VOWEL SEPARATOR */, 0x200c, 0x200c /* ZERO WIDTH NON-JOINER */, 0x200d, 0x200d /* ZERO WIDTH JOINER */, 0x2028, 0x2028 /* LINE SEPARATOR */, 0x2029, 0x2029 /* PARAGRAPH SEPARATOR */, 0x2060, 0x2060 /* WORD JOINER */, 0x2061, 0x2061 /* FUNCTION APPLICATION */, 0x2062, 0x2062 /* INVISIBLE TIMES */, 0x2063, 0x2063 /* INVISIBLE SEPARATOR */, 0x206a, 0x206f /* [CONTROL CHARACTERS] */, 0xfeff, 0xfeff /* ZERO WIDTH NO-BREAK SPACE */, 0xfff9, 0xfffc /* [CONTROL CHARACTERS] */, 0x1d173, 0x1d17a /* [MUSICAL CONTROL CHARACTERS] */, ]; const non_character_codepoints = [ /** * C.4 Non-character code points * @link https://tools.ietf.org/html/rfc3454#appendix-C.4 */ 0xfdd0, 0xfdef /* [NONCHARACTER CODE POINTS] */, 0xfffe, 0xffff /* [NONCHARACTER CODE POINTS] */, 0x1fffe, 0x1ffff /* [NONCHARACTER CODE POINTS] */, 0x2fffe, 0x2ffff /* [NONCHARACTER CODE POINTS] */, 0x3fffe, 0x3ffff /* [NONCHARACTER CODE POINTS] */, 0x4fffe, 0x4ffff /* [NONCHARACTER CODE POINTS] */, 0x5fffe, 0x5ffff /* [NONCHARACTER CODE POINTS] */, 0x6fffe, 0x6ffff /* [NONCHARACTER CODE POINTS] */, 0x7fffe, 0x7ffff /* [NONCHARACTER CODE POINTS] */, 0x8fffe, 0x8ffff /* [NONCHARACTER CODE POINTS] */, 0x9fffe, 0x9ffff /* [NONCHARACTER CODE POINTS] */, 0xafffe, 0xaffff /* [NONCHARACTER CODE POINTS] */, 0xbfffe, 0xbffff /* [NONCHARACTER CODE POINTS] */, 0xcfffe, 0xcffff /* [NONCHARACTER CODE POINTS] */, 0xdfffe, 0xdffff /* [NONCHARACTER CODE POINTS] */, 0xefffe, 0xeffff /* [NONCHARACTER CODE POINTS] */, 0x10fffe, 0x10ffff /* [NONCHARACTER CODE POINTS] */, ]; /** * 2.3. Prohibited Output */ const prohibited_characters = [ /** * C.2.1 ASCII control characters * @link https://tools.ietf.org/html/rfc3454#appendix-C.2.1 */ 0, 0x001f /* [CONTROL CHARACTERS] */, 0x007f, 0x007f /* DELETE */, /** * C.8 Change display properties or are deprecated * @link https://tools.ietf.org/html/rfc3454#appendix-C.8 */ 0x0340, 0x0340 /* COMBINING GRAVE TONE MARK */, 0x0341, 0x0341 /* COMBINING ACUTE TONE MARK */, 0x200e, 0x200e /* LEFT-TO-RIGHT MARK */, 0x200f, 0x200f /* RIGHT-TO-LEFT MARK */, 0x202a, 0x202a /* LEFT-TO-RIGHT EMBEDDING */, 0x202b, 0x202b /* RIGHT-TO-LEFT EMBEDDING */, 0x202c, 0x202c /* POP DIRECTIONAL FORMATTING */, 0x202d, 0x202d /* LEFT-TO-RIGHT OVERRIDE */, 0x202e, 0x202e /* RIGHT-TO-LEFT OVERRIDE */, 0x206a, 0x206a /* INHIBIT SYMMETRIC SWAPPING */, 0x206b, 0x206b /* ACTIVATE SYMMETRIC SWAPPING */, 0x206c, 0x206c /* INHIBIT ARABIC FORM SHAPING */, 0x206d, 0x206d /* ACTIVATE ARABIC FORM SHAPING */, 0x206e, 0x206e /* NATIONAL DIGIT SHAPES */, 0x206f, 0x206f /* NOMINAL DIGIT SHAPES */, /** * C.7 Inappropriate for canonical representation * @link https://tools.ietf.org/html/rfc3454#appendix-C.7 */ 0x2ff0, 0x2ffb /* [IDEOGRAPHIC DESCRIPTION CHARACTERS] */, /** * C.5 Surrogate codes * @link https://tools.ietf.org/html/rfc3454#appendix-C.5 */ 0xd800, 0xdfff, /** * C.3 Private use * @link https://tools.ietf.org/html/rfc3454#appendix-C.3 */ 0xe000, 0xf8ff /* [PRIVATE USE, PLANE 0] */, /** * C.6 Inappropriate for plain text * @link https://tools.ietf.org/html/rfc3454#appendix-C.6 */ 0xfff9, 0xfff9 /* INTERLINEAR ANNOTATION ANCHOR */, 0xfffa, 0xfffa /* INTERLINEAR ANNOTATION SEPARATOR */, 0xfffb, 0xfffb /* INTERLINEAR ANNOTATION TERMINATOR */, 0xfffc, 0xfffc /* OBJECT REPLACEMENT CHARACTER */, 0xfffd, 0xfffd /* REPLACEMENT CHARACTER */, /** * C.9 Tagging characters * @link https://tools.ietf.org/html/rfc3454#appendix-C.9 */ 0xe0001, 0xe0001 /* LANGUAGE TAG */, 0xe0020, 0xe007f /* [TAGGING CHARACTERS] */, /** * C.3 Private use * @link https://tools.ietf.org/html/rfc3454#appendix-C.3 */ 0xf0000, 0xffffd /* [PRIVATE USE, PLANE 15] */, 0x100000, 0x10fffd /* [PRIVATE USE, PLANE 16] */, ]; // prettier-ignore-end const isProhibitedCharacter = (character) => inRange(character, non_ASCII_space_characters) || inRange(character, prohibited_characters) || inRange(character, non_ASCII_controls_characters) || inRange(character, non_character_codepoints); // prettier-ignore-start /** * D.1 Characters with bidirectional property "R" or "AL" * @link https://tools.ietf.org/html/rfc3454#appendix-D.1 */ const bidirectional_r_al = [ 0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05d0, 0x05ea, 0x05f0, 0x05f4, 0x061b, 0x061b, 0x061f, 0x061f, 0x0621, 0x063a, 0x0640, 0x064a, 0x066d, 0x066f, 0x0671, 0x06d5, 0x06dd, 0x06dd, 0x06e5, 0x06e6, 0x06fa, 0x06fe, 0x0700, 0x070d, 0x0710, 0x0710, 0x0712, 0x072c, 0x0780, 0x07a5, 0x07b1, 0x07b1, 0x200f, 0x200f, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb28, 0xfb2a, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfc, 0xfe70, 0xfe74, 0xfe76, 0xfefc, ]; // prettier-ignore-end const isBidirectionalRAL = (character) => inRange(character, bidirectional_r_al); // prettier-ignore-start /** * D.2 Characters with bidirectional property "L" * @link https://tools.ietf.org/html/rfc3454#appendix-D.2 */ const bidirectional_l = [ 0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x0220, 0x0222, 0x0233, 0x0250, 0x02ad, 0x02b0, 0x02b8, 0x02bb, 0x02c1, 0x02d0, 0x02d1, 0x02e0, 0x02e4, 0x02ee, 0x02ee, 0x037a, 0x037a, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03ce, 0x03d0, 0x03f5, 0x0400, 0x0482, 0x048a, 0x04ce, 0x04d0, 0x04f5, 0x04f8, 0x04f9, 0x0500, 0x050f, 0x0531, 0x0556, 0x0559, 0x055f, 0x0561, 0x0587, 0x0589, 0x0589, 0x0903, 0x0903, 0x0905, 0x0939, 0x093d, 0x0940, 0x0949, 0x094c, 0x0950, 0x0950, 0x0958, 0x0961, 0x0964, 0x0970, 0x0982, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09be, 0x09c0, 0x09c7, 0x09c8, 0x09cb, 0x09cc, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e1, 0x09e6, 0x09f1, 0x09f4, 0x09fa, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3e, 0x0a40, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a6f, 0x0a72, 0x0a74, 0x0a83, 0x0a83, 0x0a85, 0x0a8b, 0x0a8d, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0ac0, 0x0ac9, 0x0ac9, 0x0acb, 0x0acc, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae0, 0x0ae6, 0x0aef, 0x0b02, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b36, 0x0b39, 0x0b3d, 0x0b3e, 0x0b40, 0x0b40, 0x0b47, 0x0b48, 0x0b4b, 0x0b4c, 0x0b57, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b61, 0x0b66, 0x0b70, 0x0b83, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb5, 0x0bb7, 0x0bb9, 0x0bbe, 0x0bbf, 0x0bc1, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcc, 0x0bd7, 0x0bd7, 0x0be7, 0x0bf2, 0x0c01, 0x0c03, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c33, 0x0c35, 0x0c39, 0x0c41, 0x0c44, 0x0c60, 0x0c61, 0x0c66, 0x0c6f, 0x0c82, 0x0c83, 0x0c85, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbe, 0x0cbe, 0x0cc0, 0x0cc4, 0x0cc7, 0x0cc8, 0x0cca, 0x0ccb, 0x0cd5, 0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce1, 0x0ce6, 0x0cef, 0x0d02, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d28, 0x0d2a, 0x0d39, 0x0d3e, 0x0d40, 0x0d46, 0x0d48, 0x0d4a, 0x0d4c, 0x0d57, 0x0d57, 0x0d60, 0x0d61, 0x0d66, 0x0d6f, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0dcf, 0x0dd1, 0x0dd8, 0x0ddf, 0x0df2, 0x0df4, 0x0e01, 0x0e30, 0x0e32, 0x0e33, 0x0e40, 0x0e46, 0x0e4f, 0x0e5b, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e87, 0x0e88, 0x0e8a, 0x0e8a, 0x0e8d, 0x0e8d, 0x0e94, 0x0e97, 0x0e99, 0x0e9f, 0x0ea1, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ea7, 0x0eaa, 0x0eab, 0x0ead, 0x0eb0, 0x0eb2, 0x0eb3, 0x0ebd, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ed0, 0x0ed9, 0x0edc, 0x0edd, 0x0f00, 0x0f17, 0x0f1a, 0x0f34, 0x0f36, 0x0f36, 0x0f38, 0x0f38, 0x0f3e, 0x0f47, 0x0f49, 0x0f6a, 0x0f7f, 0x0f7f, 0x0f85, 0x0f85, 0x0f88, 0x0f8b, 0x0fbe, 0x0fc5, 0x0fc7, 0x0fcc, 0x0fcf, 0x0fcf, 0x1000, 0x1021, 0x1023, 0x1027, 0x1029, 0x102a, 0x102c, 0x102c, 0x1031, 0x1031, 0x1038, 0x1038, 0x1040, 0x1057, 0x10a0, 0x10c5, 0x10d0, 0x10f8, 0x10fb, 0x10fb, 0x1100, 0x1159, 0x115f, 0x11a2, 0x11a8, 0x11f9, 0x1200, 0x1206, 0x1208, 0x1246, 0x1248, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1286, 0x1288, 0x1288, 0x128a, 0x128d, 0x1290, 0x12ae, 0x12b0, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12ce, 0x12d0, 0x12d6, 0x12d8, 0x12ee, 0x12f0, 0x130e, 0x1310, 0x1310, 0x1312, 0x1315, 0x1318, 0x131e, 0x1320, 0x1346, 0x1348, 0x135a, 0x1361, 0x137c, 0x13a0, 0x13f4, 0x1401, 0x1676, 0x1681, 0x169a, 0x16a0, 0x16f0, 0x1700, 0x170c, 0x170e, 0x1711, 0x1720, 0x1731, 0x1735, 0x1736, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b6, 0x17be, 0x17c5, 0x17c7, 0x17c8, 0x17d4, 0x17da, 0x17dc, 0x17dc, 0x17e0, 0x17e9, 0x1810, 0x1819, 0x1820, 0x1877, 0x1880, 0x18a8, 0x1e00, 0x1e9b, 0x1ea0, 0x1ef9, 0x1f00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x200e, 0x200e, 0x2071, 0x2071, 0x207f, 0x207f, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2119, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a, 0x212d, 0x212f, 0x2131, 0x2133, 0x2139, 0x213d, 0x213f, 0x2145, 0x2149, 0x2160, 0x2183, 0x2336, 0x237a, 0x2395, 0x2395, 0x249c, 0x24e9, 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x309d, 0x309f, 0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105, 0x312c, 0x3131, 0x318e, 0x3190, 0x31b7, 0x31f0, 0x321c, 0x3220, 0x3243, 0x3260, 0x327b, 0x327f, 0x32b0, 0x32c0, 0x32cb, 0x32d0, 0x32fe, 0x3300, 0x3376, 0x337b, 0x33dd, 0x33e0, 0x33fe, 0x3400, 0x4db5, 0x4e00, 0x9fa5, 0xa000, 0xa48c, 0xac00, 0xd7a3, 0xd800, 0xfa2d, 0xfa30, 0xfa6a, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff21, 0xff3a, 0xff41, 0xff5a, 0xff66, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10300, 0x1031e, 0x10320, 0x10323, 0x10330, 0x1034a, 0x10400, 0x10425, 0x10428, 0x1044d, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d12a, 0x1d166, 0x1d16a, 0x1d172, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1dd, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c0, 0x1d4c2, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a3, 0x1d6a8, 0x1d7c9, 0x20000, 0x2a6d6, 0x2f800, 0x2fa1d, 0xf0000, 0xffffd, 0x100000, 0x10fffd, ]; // prettier-ignore-end const isBidirectionalL = (character) => inRange(character, bidirectional_l); export { isUnassignedCodePoint, isCommonlyMappedToNothing, isNonASCIISpaceCharacter, isProhibitedCharacter, isBidirectionalRAL, isBidirectionalL, }; ================================================ FILE: lib/saslprep/lib/util.js ================================================ /** * Check if value is in a range group. * @param {number} value * @param {number[]} rangeGroup * @returns {boolean} */ function inRange(value, rangeGroup) { if (value < rangeGroup[0]) return false; let startRange = 0; let endRange = rangeGroup.length / 2; while (startRange <= endRange) { const middleRange = Math.floor((startRange + endRange) / 2); // actual array index const arrayIndex = middleRange * 2; // Check if value is in range pointed by actual index if ( value >= rangeGroup[arrayIndex] && value <= rangeGroup[arrayIndex + 1] ) { return true; } if (value > rangeGroup[arrayIndex + 1]) { // Search Right Side Of Array startRange = middleRange + 1; } else { // Search Left Side Of Array endRange = middleRange - 1; } } return false; } export { inRange }; ================================================ FILE: lib/security.js ================================================ /* PDFSecurity - represents PDF security settings By Yang Liu */ import { concatBytes } from '@noble/hashes/utils'; import { md5Hash } from './crypto/md5'; import sha256Hash from './crypto/sha256'; import { aesCbcEncrypt, aesEcbEncrypt } from './crypto/aes'; import rc4 from './crypto/rc4'; import randomBytes from './crypto/random'; import saslprep from './saslprep/index'; class PDFSecurity { static generateFileID(info = {}) { let infoStr = `${info.CreationDate.getTime()}\n`; for (let key in info) { // eslint-disable-next-line no-prototype-builtins if (!info.hasOwnProperty(key)) { continue; } infoStr += `${key}: ${info[key].valueOf()}\n`; } return Buffer.from(md5Hash(infoStr)); } static generateRandomWordArray(bytes) { return randomBytes(bytes); } static create(document, options = {}) { if (!options.ownerPassword && !options.userPassword) { return null; } return new PDFSecurity(document, options); } constructor(document, options = {}) { if (!options.ownerPassword && !options.userPassword) { throw new Error('None of owner password and user password is defined.'); } this.document = document; this._setupEncryption(options); } _setupEncryption(options) { switch (options.pdfVersion) { case '1.4': case '1.5': this.version = 2; break; case '1.6': case '1.7': this.version = 4; break; case '1.7ext3': this.version = 5; break; default: this.version = 1; break; } const encDict = { Filter: 'Standard', }; switch (this.version) { case 1: case 2: case 4: this._setupEncryptionV1V2V4(this.version, encDict, options); break; case 5: this._setupEncryptionV5(encDict, options); break; } this.dictionary = this.document.ref(encDict); } _setupEncryptionV1V2V4(v, encDict, options) { let r, permissions; switch (v) { case 1: r = 2; this.keyBits = 40; permissions = getPermissionsR2(options.permissions); break; case 2: r = 3; this.keyBits = 128; permissions = getPermissionsR3(options.permissions); break; case 4: r = 4; this.keyBits = 128; permissions = getPermissionsR3(options.permissions); break; } const paddedUserPassword = processPasswordR2R3R4(options.userPassword); const paddedOwnerPassword = options.ownerPassword ? processPasswordR2R3R4(options.ownerPassword) : paddedUserPassword; const ownerPasswordEntry = getOwnerPasswordR2R3R4( r, this.keyBits, paddedUserPassword, paddedOwnerPassword, ); this.encryptionKey = getEncryptionKeyR2R3R4( r, this.keyBits, this.document._id, paddedUserPassword, ownerPasswordEntry, permissions, ); let userPasswordEntry; if (r === 2) { userPasswordEntry = getUserPasswordR2(this.encryptionKey); } else { userPasswordEntry = getUserPasswordR3R4( this.document._id, this.encryptionKey, ); } encDict.V = v; if (v >= 2) { encDict.Length = this.keyBits; } if (v === 4) { encDict.CF = { StdCF: { AuthEvent: 'DocOpen', CFM: 'AESV2', Length: this.keyBits / 8, }, }; encDict.StmF = 'StdCF'; encDict.StrF = 'StdCF'; } encDict.R = r; encDict.O = Buffer.from(ownerPasswordEntry); encDict.U = Buffer.from(userPasswordEntry); encDict.P = permissions; } _setupEncryptionV5(encDict, options) { this.keyBits = 256; const permissions = getPermissionsR3(options.permissions); const processedUserPassword = processPasswordR5(options.userPassword); const processedOwnerPassword = options.ownerPassword ? processPasswordR5(options.ownerPassword) : processedUserPassword; this.encryptionKey = getEncryptionKeyR5( PDFSecurity.generateRandomWordArray, ); const userPasswordEntry = getUserPasswordR5( processedUserPassword, PDFSecurity.generateRandomWordArray, ); const userKeySalt = userPasswordEntry.slice(40, 48); const userEncryptionKeyEntry = getUserEncryptionKeyR5( processedUserPassword, userKeySalt, this.encryptionKey, ); const ownerPasswordEntry = getOwnerPasswordR5( processedOwnerPassword, userPasswordEntry, PDFSecurity.generateRandomWordArray, ); const ownerKeySalt = ownerPasswordEntry.slice(40, 48); const ownerEncryptionKeyEntry = getOwnerEncryptionKeyR5( processedOwnerPassword, ownerKeySalt, userPasswordEntry, this.encryptionKey, ); const permsEntry = getEncryptedPermissionsR5( permissions, this.encryptionKey, PDFSecurity.generateRandomWordArray, ); encDict.V = 5; encDict.Length = this.keyBits; encDict.CF = { StdCF: { AuthEvent: 'DocOpen', CFM: 'AESV3', Length: this.keyBits / 8, }, }; encDict.StmF = 'StdCF'; encDict.StrF = 'StdCF'; encDict.R = 5; encDict.O = Buffer.from(ownerPasswordEntry); encDict.OE = Buffer.from(ownerEncryptionKeyEntry); encDict.U = Buffer.from(userPasswordEntry); encDict.UE = Buffer.from(userEncryptionKeyEntry); encDict.P = permissions; encDict.Perms = Buffer.from(permsEntry); } getEncryptFn(obj, gen) { let digest; if (this.version < 5) { // Create 5-byte object/generation number suffix const suffix = new Uint8Array([ obj & 0xff, (obj >> 8) & 0xff, (obj >> 16) & 0xff, gen & 0xff, (gen >> 8) & 0xff, ]); digest = concatBytes(this.encryptionKey, suffix); } if (this.version === 1 || this.version === 2) { let key = md5Hash(digest); const keyLen = Math.min(16, this.keyBits / 8 + 5); key = key.slice(0, keyLen); return (buffer) => Buffer.from(rc4(new Uint8Array(buffer), key)); } let key; if (this.version === 4) { // Append "sAlT" marker for AES const saltMarker = new Uint8Array([0x73, 0x41, 0x6c, 0x54]); key = md5Hash(concatBytes(digest, saltMarker)); } else { key = this.encryptionKey; } const iv = PDFSecurity.generateRandomWordArray(16); return (buffer) => { const encrypted = aesCbcEncrypt(new Uint8Array(buffer), key, iv, true); return Buffer.from(concatBytes(iv, encrypted)); }; } end() { this.dictionary.end(); } } function getPermissionsR2(permissionObject = {}) { let permissions = 0xffffffc0 >> 0; if (permissionObject.printing) { permissions |= 0b000000000100; } if (permissionObject.modifying) { permissions |= 0b000000001000; } if (permissionObject.copying) { permissions |= 0b000000010000; } if (permissionObject.annotating) { permissions |= 0b000000100000; } return permissions; } function getPermissionsR3(permissionObject = {}) { let permissions = 0xfffff0c0 >> 0; if (permissionObject.printing === 'lowResolution') { permissions |= 0b000000000100; } if (permissionObject.printing === 'highResolution') { permissions |= 0b100000000100; } if (permissionObject.modifying) { permissions |= 0b000000001000; } if (permissionObject.copying) { permissions |= 0b000000010000; } if (permissionObject.annotating) { permissions |= 0b000000100000; } if (permissionObject.fillingForms) { permissions |= 0b000100000000; } if (permissionObject.contentAccessibility) { permissions |= 0b001000000000; } if (permissionObject.documentAssembly) { permissions |= 0b010000000000; } return permissions; } function getUserPasswordR2(encryptionKey) { return rc4(processPasswordR2R3R4(), encryptionKey); } function getUserPasswordR3R4(documentId, encryptionKey) { const key = encryptionKey.slice(); let cipher = md5Hash( concatBytes(processPasswordR2R3R4(), new Uint8Array(documentId)), ); for (let i = 0; i < 20; i++) { const xorKey = new Uint8Array(key.length); for (let j = 0; j < key.length; j++) { xorKey[j] = encryptionKey[j] ^ i; } cipher = rc4(cipher, xorKey); } // Pad to 32 bytes const result = new Uint8Array(32); result.set(cipher); return result; } function getOwnerPasswordR2R3R4( r, keyBits, paddedUserPassword, paddedOwnerPassword, ) { let digest = paddedOwnerPassword; let round = r >= 3 ? 51 : 1; for (let i = 0; i < round; i++) { digest = md5Hash(digest); } const keyLen = keyBits / 8; let key = digest.slice(0, keyLen); let cipher = paddedUserPassword; round = r >= 3 ? 20 : 1; for (let i = 0; i < round; i++) { const xorKey = new Uint8Array(keyLen); for (let j = 0; j < keyLen; j++) { xorKey[j] = key[j] ^ i; } cipher = rc4(cipher, xorKey); } return cipher; } function getEncryptionKeyR2R3R4( r, keyBits, documentId, paddedUserPassword, ownerPasswordEntry, permissions, ) { // Build input: password + owner entry + permissions (LSB first) + document ID const permBytes = new Uint8Array([ permissions & 0xff, (permissions >> 8) & 0xff, (permissions >> 16) & 0xff, (permissions >> 24) & 0xff, ]); let key = concatBytes( paddedUserPassword, ownerPasswordEntry, permBytes, new Uint8Array(documentId), ); const round = r >= 3 ? 51 : 1; const keyLen = keyBits / 8; for (let i = 0; i < round; i++) { key = md5Hash(key); key = key.slice(0, keyLen); } return key; } function getUserPasswordR5(processedUserPassword, generateRandomWordArray) { const validationSalt = generateRandomWordArray(8); const keySalt = generateRandomWordArray(8); const hash = sha256Hash(concatBytes(processedUserPassword, validationSalt)); return concatBytes(hash, validationSalt, keySalt); } function getUserEncryptionKeyR5( processedUserPassword, userKeySalt, encryptionKey, ) { const key = sha256Hash(concatBytes(processedUserPassword, userKeySalt)); const iv = new Uint8Array(16); // Zero IV return aesCbcEncrypt(encryptionKey, key, iv, false); } function getOwnerPasswordR5( processedOwnerPassword, userPasswordEntry, generateRandomWordArray, ) { const validationSalt = generateRandomWordArray(8); const keySalt = generateRandomWordArray(8); const hash = sha256Hash( concatBytes(processedOwnerPassword, validationSalt, userPasswordEntry), ); return concatBytes(hash, validationSalt, keySalt); } function getOwnerEncryptionKeyR5( processedOwnerPassword, ownerKeySalt, userPasswordEntry, encryptionKey, ) { const key = sha256Hash( concatBytes(processedOwnerPassword, ownerKeySalt, userPasswordEntry), ); const iv = new Uint8Array(16); // Zero IV return aesCbcEncrypt(encryptionKey, key, iv, false); } function getEncryptionKeyR5(generateRandomWordArray) { return generateRandomWordArray(32); } function getEncryptedPermissionsR5( permissions, encryptionKey, generateRandomWordArray, ) { // Build 16-byte block: permissions (4 bytes LSB) + 0xFFFFFFFF (4 bytes) + "adbT" (4 bytes) + random (4 bytes) const data = new Uint8Array(16); // Permissions (LSB first) data[0] = permissions & 0xff; data[1] = (permissions >> 8) & 0xff; data[2] = (permissions >> 16) & 0xff; data[3] = (permissions >> 24) & 0xff; // 0xFFFFFFFF data[4] = 0xff; data[5] = 0xff; data[6] = 0xff; data[7] = 0xff; // "adbT" = 0x54616462 (but stored as individual bytes) data[8] = 0x54; // 'T' data[9] = 0x61; // 'a' data[10] = 0x64; // 'd' data[11] = 0x62; // 'b' // Random 4 bytes const randomPart = generateRandomWordArray(4); data.set(randomPart, 12); return aesEcbEncrypt(data, encryptionKey); } function processPasswordR2R3R4(password = '') { const out = new Uint8Array(32); const length = password.length; let index = 0; while (index < length && index < 32) { const code = password.charCodeAt(index); if (code > 0xff) { throw new Error('Password contains one or more invalid characters.'); } out[index] = code; index++; } while (index < 32) { out[index] = PASSWORD_PADDING[index - length]; index++; } return out; } function processPasswordR5(password = '') { password = unescape(encodeURIComponent(saslprep(password))); const length = Math.min(127, password.length); const out = new Uint8Array(length); for (let i = 0; i < length; i++) { out[i] = password.charCodeAt(i); } return out; } const PASSWORD_PADDING = [ 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a, ]; export default PDFSecurity; ================================================ FILE: lib/spotcolor.js ================================================ export default class SpotColor { constructor(doc, name, C, M, Y, K) { this.id = 'CS' + Object.keys(doc.spotColors).length; this.name = name; this.values = [C, M, Y, K]; this.ref = doc.ref([ 'Separation', this.name, 'DeviceCMYK', { Range: [0, 1, 0, 1, 0, 1, 0, 1], C0: [0, 0, 0, 0], C1: this.values.map((value) => value / 100), FunctionType: 2, Domain: [0, 1], N: 1, }, ]); this.ref.end(); } toString() { return `${this.ref.id} 0 R`; } } ================================================ FILE: lib/structure_annotation.js ================================================ class PDFAnnotationReference { constructor(annotationRef) { this.annotationRef = annotationRef; } } export default PDFAnnotationReference; ================================================ FILE: lib/structure_content.js ================================================ /* PDFStructureContent - a reference to a marked structure content By Ben Schmidt */ class PDFStructureContent { constructor(pageRef, mcid) { this.refs = [{ pageRef, mcid }]; } push(structContent) { structContent.refs.forEach((ref) => this.refs.push(ref)); } } export default PDFStructureContent; ================================================ FILE: lib/structure_element.js ================================================ /* PDFStructureElement - represents an element in the PDF logical structure tree By Ben Schmidt */ import PDFStructureContent from './structure_content'; import PDFAnnotationReference from './structure_annotation'; class PDFStructureElement { constructor(document, type, options = {}, children = null) { this.document = document; this._attached = false; this._ended = false; this._flushed = false; this.dictionary = document.ref({ // Type: "StructElem", S: type, }); const data = this.dictionary.data; if (Array.isArray(options) || this._isValidChild(options)) { children = options; options = {}; } if (typeof options.title !== 'undefined') { data.T = new String(options.title); } if (typeof options.lang !== 'undefined') { data.Lang = new String(options.lang); } if (typeof options.alt !== 'undefined') { data.Alt = new String(options.alt); } if (typeof options.expanded !== 'undefined') { data.E = new String(options.expanded); } if (typeof options.actual !== 'undefined') { data.ActualText = new String(options.actual); } this._children = []; if (children) { if (!Array.isArray(children)) { children = [children]; } children.forEach((child) => this.add(child)); this.end(); } } add(child) { if (this._ended) { throw new Error(`Cannot add child to already-ended structure element`); } if (!this._isValidChild(child)) { throw new Error(`Invalid structure element child`); } if (child instanceof PDFStructureElement) { child.setParent(this.dictionary); if (this._attached) { child.setAttached(); } } if (child instanceof PDFStructureContent) { this._addContentToParentTree(child); } if (child instanceof PDFAnnotationReference) { this._addAnnotationToParentTree(child.annotationRef); } if (typeof child === 'function' && this._attached) { // _contentForClosure() adds the content to the parent tree child = this._contentForClosure(child); } this._children.push(child); return this; } _addContentToParentTree(content) { content.refs.forEach(({ pageRef, mcid }) => { const pageStructParents = this.document .getStructParentTree() .get(pageRef.data.StructParents); pageStructParents[mcid] = this.dictionary; }); } _addAnnotationToParentTree(annotRef) { const parentTreeKey = this.document.createStructParentTreeNextKey(); annotRef.data.StructParent = parentTreeKey; const parentTree = this.document.getStructParentTree(); parentTree.add(parentTreeKey, this.dictionary); } setParent(parentRef) { if (this.dictionary.data.P) { throw new Error(`Structure element added to more than one parent`); } this.dictionary.data.P = parentRef; this._flush(); } setAttached() { if (this._attached) { return; } this._children.forEach((child, index) => { if (child instanceof PDFStructureElement) { child.setAttached(); } if (typeof child === 'function') { this._children[index] = this._contentForClosure(child); } }); this._attached = true; this._flush(); } end() { if (this._ended) { return; } this._children .filter((child) => child instanceof PDFStructureElement) .forEach((child) => child.end()); this._ended = true; this._flush(); } _isValidChild(child) { return ( child instanceof PDFStructureElement || child instanceof PDFStructureContent || child instanceof PDFAnnotationReference || typeof child === 'function' ); } _contentForClosure(closure) { const content = this.document.markStructureContent(this.dictionary.data.S); const prevStructElement = this.document._currentStructureElement; this.document._currentStructureElement = this; const wasEnded = this._ended; this._ended = false; closure(); this._ended = wasEnded; this.document._currentStructureElement = prevStructElement; this.document.endMarkedContent(); this._addContentToParentTree(content); return content; } _isFlushable() { if (!this.dictionary.data.P || !this._ended) { return false; } return this._children.every((child) => { if (typeof child === 'function') { return false; } if (child instanceof PDFStructureElement) { return child._isFlushable(); } return true; }); } _flush() { if (this._flushed || !this._isFlushable()) { return; } this.dictionary.data.K = []; this._children.forEach((child) => this._flushChild(child)); this.dictionary.end(); // free memory used by children; the dictionary itself may still be // referenced by a parent structure element or root, but we can // at least trim the tree here this._children = []; this.dictionary.data.K = null; this._flushed = true; } _flushChild(child) { if (child instanceof PDFStructureElement) { this.dictionary.data.K.push(child.dictionary); } if (child instanceof PDFStructureContent) { child.refs.forEach(({ pageRef, mcid }) => { if (!this.dictionary.data.Pg) { this.dictionary.data.Pg = pageRef; } if (this.dictionary.data.Pg === pageRef) { this.dictionary.data.K.push(mcid); } else { this.dictionary.data.K.push({ Type: 'MCR', Pg: pageRef, MCID: mcid, }); } }); } if (child instanceof PDFAnnotationReference) { const pageRef = this.document.page.dictionary; const objr = { Type: 'OBJR', Obj: child.annotationRef, Pg: pageRef, }; this.dictionary.data.K.push(objr); } } } export default PDFStructureElement; ================================================ FILE: lib/table/accessibility.js ================================================ import PDFStructureElement from '../structure_element'; import PDFDocument from '../document'; /** * Add accessibility to a table * * @this PDFTable * @memberOf PDFTable * @private */ export function accommodateTable() { const structParent = this.opts.structParent; if (structParent) { this._tableStruct = this.document.struct('Table'); this._tableStruct.dictionary.data.ID = this._id; if (structParent instanceof PDFStructureElement) { structParent.add(this._tableStruct); } else if (structParent instanceof PDFDocument) { structParent.addStructure(this._tableStruct); } this._headerRowLookup = {}; this._headerColumnLookup = {}; } } /** * Cleanup accessibility on a table * * @this PDFTable * @memberOf PDFTable * @private */ export function accommodateCleanup() { if (this._tableStruct) this._tableStruct.end(); } /** * Render a row with all its accessibility features * * @this PDFTable * @memberOf PDFTable * @param {SizedNormalizedTableCellStyle[]} row * @param {number} rowIndex * @param {Function} renderCell * @private */ export function accessibleRow(row, rowIndex, renderCell) { const rowStruct = this.document.struct('TR'); rowStruct.dictionary.data.ID = new String(`${this._id}-${rowIndex}`); this._tableStruct.add(rowStruct); row.forEach((cell) => renderCell(cell, rowStruct)); rowStruct.end(); } /** * Render a cell with all its accessibility features * * @this PDFTable * @memberOf PDFTable * @param {SizedNormalizedTableCellStyle} cell * @param {PDFStructureElement} rowStruct * @param {Function} callback * @private */ export function accessibleCell(cell, rowStruct, callback) { const doc = this.document; const cellStruct = doc.struct(cell.type, { title: cell.title }); cellStruct.dictionary.data.ID = cell.id; rowStruct.add(cellStruct); const padding = cell.padding; const border = cell.border; const attributes = { O: 'Table', Width: cell.width, Height: cell.height, Padding: [padding.top, padding.bottom, padding.left, padding.right], RowSpan: cell.rowSpan > 1 ? cell.rowSpan : undefined, ColSpan: cell.colSpan > 1 ? cell.colSpan : undefined, BorderThickness: [border.top, border.bottom, border.left, border.right], }; // Claim row Headers if (cell.type === 'TH') { if (cell.scope === 'Row' || cell.scope === 'Both') { for (let i = 0; i < cell.rowSpan; i++) { if (!this._headerRowLookup[cell.rowIndex + i]) { this._headerRowLookup[cell.rowIndex + i] = []; } this._headerRowLookup[cell.rowIndex + i].push(cell.id); } attributes.Scope = cell.scope; } if (cell.scope === 'Column' || cell.scope === 'Both') { for (let i = 0; i < cell.colSpan; i++) { if (!this._headerColumnLookup[cell.colIndex + i]) { this._headerColumnLookup[cell.colIndex + i] = []; } this._headerColumnLookup[cell.colIndex + i].push(cell.id); } attributes.Scope = cell.scope; } } // Find any cells which are marked as headers for this cell const Headers = new Set( [ ...Array.from( { length: cell.colSpan }, (_, i) => this._headerColumnLookup[cell.colIndex + i], ).flat(), ...Array.from( { length: cell.rowSpan }, (_, i) => this._headerRowLookup[cell.rowIndex + i], ).flat(), ].filter(Boolean), ); if (Headers.size) attributes.Headers = Array.from(Headers); const normalizeColor = doc._normalizeColor; if (cell.backgroundColor != null) { attributes.BackgroundColor = normalizeColor(cell.backgroundColor); } const hasBorder = [border.top, border.bottom, border.left, border.right]; if (hasBorder.some((x) => x)) { const borderColor = cell.borderColor; attributes.BorderColor = [ hasBorder[0] ? normalizeColor(borderColor.top) : null, hasBorder[1] ? normalizeColor(borderColor.bottom) : null, hasBorder[2] ? normalizeColor(borderColor.left) : null, hasBorder[3] ? normalizeColor(borderColor.right) : null, ]; } // Remove any undefined attributes Object.keys(attributes).forEach( (key) => attributes[key] === undefined && delete attributes[key], ); cellStruct.dictionary.data.A = doc.ref(attributes); cellStruct.add(callback); cellStruct.end(); cellStruct.dictionary.data.A.end(); } ================================================ FILE: lib/table/index.js ================================================ import { normalizeRow, normalizeTable } from './normalize'; import { measure, ensure } from './size'; import { renderRow } from './render'; import { accommodateCleanup, accommodateTable } from './accessibility'; class PDFTable { /** * @param {PDFDocument} document * @param {Table} [opts] */ constructor(document, opts = {}) { this.document = document; this.opts = Object.freeze(opts); normalizeTable.call(this); accommodateTable.call(this); this._currRowIndex = 0; this._ended = false; // Render cells if present if (opts.data) { for (const row of opts.data) this.row(row); return this.end(); } } /** * Render a new row in the table * * @param {Iterable} row - The cells to render * @param {boolean} lastRow - Whether this row is the last row * @returns {this} returns the table, unless lastRow is `true` then returns the `PDFDocument` */ row(row, lastRow = false) { if (this._ended) { throw new Error(`Table was marked as ended on row ${this._currRowIndex}`); } // Convert the iterable into an array row = Array.from(row); // Transform row row = normalizeRow.call(this, row, this._currRowIndex); if (this._currRowIndex === 0) ensure.call(this, row); const { newPage, toRender } = measure.call(this, row, this._currRowIndex); if (newPage) this.document.continueOnNewPage(); const yPos = renderRow.call(this, toRender, this._currRowIndex); // Position document at base of new row this.document.x = this._position.x; this.document.y = yPos; if (lastRow) return this.end(); this._currRowIndex++; return this; } /** * Indicates to the table that it is finished, * allowing the table to flush its cell buffer (which should be empty unless there is rowSpans) * * @returns {PDFDocument} the document */ end() { // Flush any remaining cells while (this._rowBuffer?.size) this.row([]); this._ended = true; accommodateCleanup.call(this); return this.document; } } export default PDFTable; ================================================ FILE: lib/table/normalize.js ================================================ import { deepMerge, memoize } from './utils'; import { normalizeAlignment, normalizedColumnStyle, normalizedDefaultStyle, normalizedRowStyle, } from './style'; import { normalizeSides } from '../utils'; /** * Normalize a table * * @this PDFTable * @memberOf PDFTable * @private */ export function normalizeTable() { const doc = this.document; const opts = this.opts; // Normalize config let index = doc._tableIndex++; this._id = new String(opts.id ?? `table-${index}`); this._position = { x: doc.sizeToPoint(opts.position?.x, doc.x), y: doc.sizeToPoint(opts.position?.y, doc.y), }; this._maxWidth = doc.sizeToPoint( opts.maxWidth, doc.page.width - doc.page.margins.right - this._position.x, ); const { defaultStyle, defaultColStyle, defaultRowStyle } = normalizedDefaultStyle(opts.defaultStyle); this._defaultStyle = defaultStyle; let colStyle; if (opts.columnStyles) { if (Array.isArray(opts.columnStyles)) { colStyle = (i) => opts.columnStyles[i]; } else if (typeof opts.columnStyles === 'function') { // memoize all columns colStyle = memoize((i) => opts.columnStyles(i), Infinity); } else if (typeof opts.columnStyles === 'object') { colStyle = () => opts.columnStyles; } } if (!colStyle) colStyle = () => ({}); this._colStyle = normalizedColumnStyle.bind(this, defaultColStyle, colStyle); let rowStyle; if (opts.rowStyles) { if (Array.isArray(opts.rowStyles)) { rowStyle = (i) => opts.rowStyles[i]; } else if (typeof opts.rowStyles === 'function') { // Memoize the row configs in a rolling buffer rowStyle = memoize((i) => opts.rowStyles(i), 10); } else if (typeof opts.rowStyles === 'object') { rowStyle = () => opts.rowStyles; } } if (!rowStyle) rowStyle = () => ({}); this._rowStyle = normalizedRowStyle.bind(this, defaultRowStyle, rowStyle); } /** * Convert text into a string * - null and undefined are preserved (as they will be ignored) * - everything else is run through `String()` * * @param {*} text * @returns {string} * @private */ export function normalizeText(text) { // Parse out text if (text != null) text = `${text}`; return text; } /** * Normalize a cell config * * @this PDFTable * @memberOf PDFTable * @param {TableCellStyle} cell - The cell to mutate * @param {number} rowIndex - The cells row * @param {number} colIndex - The cells column * @returns {NormalizedTableCellStyle} * @private */ export function normalizeCell(cell, rowIndex, colIndex) { const colStyle = this._colStyle(colIndex); let rowStyle = this._rowStyle(rowIndex); const font = deepMerge({}, colStyle.font, rowStyle.font, cell.font); const customFont = Object.values(font).filter((v) => v != null).length > 0; const doc = this.document; // Initialize cell context const rollbackFont = doc._fontSource; const rollbackFontSize = doc._fontSize; const rollbackFontFamily = doc._fontFamily; if (customFont) { if (font.src) doc.font(font.src, font.family); if (font.size) doc.fontSize(font.size); // Refetch rowStyle to reflect font changes rowStyle = this._rowStyle(rowIndex); } cell.padding = normalizeSides(cell.padding); cell.border = normalizeSides(cell.border); cell.borderColor = normalizeSides(cell.borderColor); // Cell takes highest priority, then row, then column, then defaultConfig const config = deepMerge(this._defaultStyle, colStyle, rowStyle, cell); config.rowIndex = rowIndex; config.colIndex = colIndex; config.font = font ?? {}; config.customFont = customFont; // Normalize config config.text = normalizeText(config.text); config.rowSpan = config.rowSpan ?? 1; config.colSpan = config.colSpan ?? 1; config.padding = normalizeSides(config.padding, '0.25em', (x) => doc.sizeToPoint(x, '0.25em'), ); config.border = normalizeSides(config.border, 1, (x) => doc.sizeToPoint(x, 1), ); config.borderColor = normalizeSides( config.borderColor, 'black', (x) => x ?? 'black', ); config.align = normalizeAlignment(config.align); config.align.x = config.align.x ?? 'left'; config.align.y = config.align.y ?? 'top'; config.textStroke = doc.sizeToPoint(config.textStroke, 0); config.textStrokeColor = config.textStrokeColor ?? 'black'; config.textColor = config.textColor ?? 'black'; config.textOptions = config.textOptions ?? {}; // Accessibility settings config.id = new String(config.id ?? `${this._id}-${rowIndex}-${colIndex}`); config.type = config.type?.toUpperCase() === 'TH' ? 'TH' : 'TD'; if (config.scope) { config.scope = config.scope.toLowerCase(); if (config.scope === 'row') config.scope = 'Row'; else if (config.scope === 'both') config.scope = 'Both'; else if (config.scope === 'column') config.scope = 'Column'; } if (typeof this.opts.debug === 'boolean') config.debug = this.opts.debug; // Rollback font if (customFont) doc.font(rollbackFont, rollbackFontFamily, rollbackFontSize); return config; } /** * Normalize a row * * @this PDFTable * @memberOf PDFTable * @param {TableCell[]} row * @param {number} rowIndex * @returns {NormalizedTableCellStyle[]} * @private */ export function normalizeRow(row, rowIndex) { if (!this._cellClaim) this._cellClaim = new Set(); let colIndex = 0; return row.map((cell) => { // Ensure TableCell if (cell == null || typeof cell !== 'object') cell = { text: cell }; // Find the starting column of the cell // Skipping over the claimed cells while (this._cellClaim.has(`${rowIndex},${colIndex}`)) { colIndex++; } cell = normalizeCell.call(this, cell, rowIndex, colIndex); // Claim any spanning cells for (let i = 0; i < cell.rowSpan; i++) { for (let j = 0; j < cell.colSpan; j++) { this._cellClaim.add(`${rowIndex + i},${colIndex + j}`); } } colIndex += cell.colSpan; return cell; }); } ================================================ FILE: lib/table/render.js ================================================ import { accessibleCell, accessibleRow } from './accessibility'; /** * Render a cell * * @this PDFTable * @memberOf PDFTable * @param {SizedNormalizedTableCellStyle[]} row * @param {number} rowIndex * @private */ export function renderRow(row, rowIndex) { if (this._tableStruct) { accessibleRow.call(this, row, rowIndex, renderCell.bind(this)); } else { row.forEach((cell) => renderCell.call(this, cell)); } return this._rowYPos[rowIndex] + this._rowHeights[rowIndex]; } /** * Render a cell * * @this PDFTable * @memberOf PDFTable * @param {SizedNormalizedTableCellStyle} cell * @param {PDFStructureElement} rowStruct * @private */ function renderCell(cell, rowStruct) { const cellRenderer = () => { // Render cell background if (cell.backgroundColor != null) { this.document .save() .fillColor(cell.backgroundColor) .rect(cell.x, cell.y, cell.width, cell.height) .fill() .restore(); } // Render border renderBorder.call( this, cell.border, cell.borderColor, cell.x, cell.y, cell.width, cell.height, ); // Debug cell borders if (cell.debug) { this.document.save(); this.document.dash(1, { space: 1 }).lineWidth(1).strokeOpacity(0.3); // Debug cell bounds this.document .rect(cell.x, cell.y, cell.width, cell.height) .stroke('green'); this.document.restore(); } // Render text if (cell.text) renderCellText.call(this, cell); }; if (rowStruct) accessibleCell.call(this, cell, rowStruct, cellRenderer); else cellRenderer(); } /** * @this PDFTable * @memberOf PDFTable * @param {SizedNormalizedTableCellStyle} cell */ function renderCellText(cell) { const doc = this.document; // Configure fonts const rollbackFont = doc._fontSource; const rollbackFontSize = doc._fontSize; const rollbackFontFamily = doc._fontFamily; if (cell.customFont) { if (cell.font.src) doc.font(cell.font.src, cell.font.family); if (cell.font.size) doc.fontSize(cell.font.size); } const x = cell.textX; const y = cell.textY; const Ah = cell.textAllocatedHeight; const Aw = cell.textAllocatedWidth; const Cw = cell.textBounds.width; const Ch = cell.textBounds.height; const Ox = -cell.textBounds.x; const Oy = -cell.textBounds.y; const PxScale = cell.align.x === 'right' ? 1 : cell.align.x === 'center' ? 0.5 : 0; const Px = (Aw - Cw) * PxScale; const PyScale = cell.align.y === 'bottom' ? 1 : cell.align.y === 'center' ? 0.5 : 0; const Py = (Ah - Ch) * PyScale; const dx = Px + Ox; const dy = Py + Oy; if (cell.debug) { doc.save(); doc.dash(1, { space: 1 }).lineWidth(1).strokeOpacity(0.3); // Debug actual text bounds if (cell.text) { doc .moveTo(x + Px, y) .lineTo(x + Px, y + Ah) .moveTo(x + Px + Cw, y) .lineTo(x + Px + Cw, y + Ah) .stroke('blue') .moveTo(x, y + Py) .lineTo(x + Aw, y + Py) .moveTo(x, y + Py + Ch) .lineTo(x + Aw, y + Py + Ch) .stroke('green'); } // Debug allocated text bounds doc.rect(x, y, Aw, Ah).stroke('orange'); doc.restore(); } // Create text mask to cut off any overflowing text // Mask cuts off at the padding not the actual cell, this is intentional! doc.save().rect(x, y, Aw, Ah).clip(); doc.fillColor(cell.textColor).strokeColor(cell.textStrokeColor); if (cell.textStroke > 0) doc.lineWidth(cell.textStroke); // Render the text doc.text(cell.text, x + dx, y + dy, cell.textOptions); // Cleanup doc.restore(); if (cell.font) doc.font(rollbackFont, rollbackFontFamily, rollbackFontSize); } /** * @this PDFTable * @memberOf PDFTable * @param {ExpandedSideDefinition} border * @param {ExpandedSideDefinition} borderColor * @param {number} x * @param {number} y * @param {number} width * @param {number} height * @param {number[]} [mask] * @private */ function renderBorder(border, borderColor, x, y, width, height, mask) { border = Object.fromEntries( Object.entries(border).map(([k, v]) => [k, mask && !mask[k] ? 0 : v]), ); const doc = this.document; if ( [border.right, border.bottom, border.left].every( (val) => val === border.top, ) ) { if (border.top > 0) { doc .save() .lineWidth(border.top) .strokeColor(borderColor.top) .rect(x, y, width, height) .stroke() .restore(); } } else { // Top if (border.top > 0) { doc .save() .lineWidth(border.top) .moveTo(x, y) .strokeColor(borderColor.top) .lineTo(x + width, y) .stroke() .restore(); } // Right if (border.right > 0) { doc .save() .lineWidth(border.right) .moveTo(x + width, y) .strokeColor(borderColor.right) .lineTo(x + width, y + height) .stroke() .restore(); } // Bottom if (border.bottom > 0) { doc .save() .lineWidth(border.bottom) .moveTo(x + width, y + height) .strokeColor(borderColor.bottom) .lineTo(x, y + height) .stroke() .restore(); } // Left if (border.left > 0) { doc .save() .lineWidth(border.left) .moveTo(x, y + height) .strokeColor(borderColor.left) .lineTo(x, y) .stroke() .restore(); } } } ================================================ FILE: lib/table/size.js ================================================ import { cosine, sine } from '../utils'; /** * Compute the widths of the columns, ensuring to distribute the star widths * * @this PDFTable * @memberOf PDFTable * @param {NormalizedTableCellStyle[]} row * @private */ export function ensure(row) { // Width init /** @type number[] **/ this._columnWidths = []; ensureColumnWidths.call( this, row.reduce((a, cell) => a + cell.colSpan, 0), ); // Height init /** @type number[] **/ this._rowHeights = []; /** @type number[] **/ this._rowYPos = [this._position.y]; /** @type {Set} **/ this._rowBuffer = new Set(); } /** * Compute the widths of the columns, ensuring to distribute the star widths * * @this PDFTable * @memberOf PDFTable * @param {number} numCols * @private */ function ensureColumnWidths(numCols) { // Compute the widths let starColumnIndexes = []; let starMinAcc = 0; let unclaimedWidth = this._maxWidth; for (let i = 0; i < numCols; i++) { let col = this._colStyle(i); if (col.width === '*') { starColumnIndexes[i] = col; starMinAcc += col.minWidth; } else { unclaimedWidth -= col.width; this._columnWidths[i] = col.width; } } let starColCount = starColumnIndexes.reduce((x) => x + 1, 0); if (starMinAcc >= unclaimedWidth) { // case 1 - there's no way to fit all columns within available width // that's actually pretty bad situation with PDF as we have no horizontal scroll starColumnIndexes.forEach((cell, i) => { this._columnWidths[i] = cell.minWidth; }); } else if (starColCount > 0) { // Otherwise we distribute evenly factoring in the cell bounds starColumnIndexes.forEach((col, i) => { let starSize = unclaimedWidth / starColCount; this._columnWidths[i] = Math.max(starSize, col.minWidth); if (col.maxWidth > 0) { this._columnWidths[i] = Math.min(this._columnWidths[i], col.maxWidth); } unclaimedWidth -= this._columnWidths[i]; starColCount--; }); } let tempX = this._position.x; this._columnXPos = Array.from(this._columnWidths, (v) => { const t = tempX; tempX += v; return t; }); } /** * Compute the dimensions of the cells * * @this PDFTable * @memberOf PDFTable * @param {NormalizedTableCellStyle[]} row * @param {number} rowIndex * @returns {{newPage: boolean, toRender: SizedNormalizedTableCellStyle[]}} * @private */ export function measure(row, rowIndex) { // =================== // Add cells to buffer // =================== row.forEach((cell) => this._rowBuffer.add(cell)); if (rowIndex > 0) { this._rowYPos[rowIndex] = this._rowYPos[rowIndex - 1] + this._rowHeights[rowIndex - 1]; } const rowStyle = this._rowStyle(rowIndex); // ======================================================== // Find any cells which are to finish rendering on this row // ======================================================== /** @type {SizedNormalizedTableCellStyle[]} */ let toRender = []; this._rowBuffer.forEach((cell) => { if (cell.rowIndex + cell.rowSpan - 1 === rowIndex) { toRender.push(measureCell.call(this, cell, rowStyle.height)); this._rowBuffer.delete(cell); } }); // ===================================================== // Find the shared height for the row based on the cells // ===================================================== let rowHeight = rowStyle.height; if (rowHeight === 'auto') { // Compute remaining height on cells rowHeight = toRender.reduce((acc, cell) => { let minHeight = cell.textBounds.height + cell.padding.top + cell.padding.bottom; for (let i = 0; i < cell.rowSpan - 1; i++) { minHeight -= this._rowHeights[cell.rowIndex + i]; } return Math.max(acc, minHeight); }, 0); } rowHeight = Math.max(rowHeight, rowStyle.minHeight); if (rowStyle.maxHeight > 0) { rowHeight = Math.min(rowHeight, rowStyle.maxHeight); } this._rowHeights[rowIndex] = rowHeight; let newPage = false; if (rowHeight > this.document.page.contentHeight) { // We are unable to render this row on a single page, for now we log a warning and disable the newPage console.warn( new Error( `Row ${rowIndex} requested more than the safe page height, row has been clamped`, ).stack.slice(7), ); this._rowHeights[rowIndex] = this.document.page.maxY() - this._rowYPos[rowIndex]; } else if (this._rowYPos[rowIndex] + rowHeight >= this.document.page.maxY()) { // If row is going to go over the safe page height then move it over to new page this._rowYPos[rowIndex] = this.document.page.margins.top; newPage = true; } // ===================================================== // Re-measure the cells using the know known height // ===================================================== return { newPage, toRender: toRender.map((cell) => measureCell.call(this, cell, rowHeight)), }; } /** * Compute the dimensions of the cell and its text * * @this PDFTable * @memberOf PDFTable * @param {NormalizedTableCellStyle} cell * @param {number | 'auto'} rowHeight * @returns {SizedNormalizedTableCellStyle} * @private */ function measureCell(cell, rowHeight) { // ==================== // Calculate cell width // ==================== let cellWidth = 0; // Traverse all the columns of the cell for (let i = 0; i < cell.colSpan; i++) { cellWidth += this._columnWidths[cell.colIndex + i]; } // ===================== // Calculate cell height // ===================== let cellHeight = rowHeight; if (cellHeight === 'auto') { // The cells height is effectively infinite // (although we clamp it to the page content size) cellHeight = this.document.page.contentHeight; } else { // Add all the spanning rows heights to the cell for (let i = 0; i < cell.rowSpan - 1; i++) { cellHeight += this._rowHeights[cell.rowIndex + i]; } } // Allocated text space const textAllocatedWidth = cellWidth - cell.padding.left - cell.padding.right; const textAllocatedHeight = cellHeight - cell.padding.top - cell.padding.bottom; // Compute the text bounds const rotation = cell.textOptions.rotation ?? 0; const { width: textMaxWidth, height: textMaxHeight } = computeBounds( rotation, textAllocatedWidth, textAllocatedHeight, ); const textOptions = { // Alignment is handled internally align: cell.align.x, ellipsis: true, // Default make overflowing text ellipsis stroke: cell.textStroke > 0, fill: true, // To fix the stroke issue width: textMaxWidth, height: textMaxHeight, rotation, // Allow the user to define any custom fields ...cell.textOptions, }; // ======================== // Calculate text height // ======================== // Compute rendered bounds of the text given the constraints of the cell let textBounds = { x: 0, y: 0, width: 0, height: 0 }; if (cell.text) { const rollbackFont = this.document._fontSource; const rollbackFontSize = this.document._fontSize; const rollbackFontFamily = this.document._fontFamily; if (cell.font?.src) this.document.font(cell.font.src, cell.font?.family); if (cell.font?.size) this.document.fontSize(cell.font.size); // We first compute the un-rotated bounds so that we can calculate the width of the text const unRotatedTextBounds = this.document.boundsOfString(cell.text, 0, 0, { ...textOptions, rotation: 0, }); textOptions.width = unRotatedTextBounds.width; textOptions.height = unRotatedTextBounds.height; // Then compute the rendered bounds textBounds = this.document.boundsOfString(cell.text, 0, 0, textOptions); this.document.font(rollbackFont, rollbackFontFamily, rollbackFontSize); } return { ...cell, textOptions, x: this._columnXPos[cell.colIndex], y: this._rowYPos[cell.rowIndex], textX: this._columnXPos[cell.colIndex] + cell.padding.left, textY: this._rowYPos[cell.rowIndex] + cell.padding.top, width: cellWidth, height: cellHeight, textAllocatedHeight, textAllocatedWidth, textBounds, }; } /** * Compute the horizon-locked bounding box of a rect * * @param {number} rotation * @param {number} allocWidth * @param {number} allocHeight * * @returns {{width: number, height: number}} */ function computeBounds(rotation, allocWidth, allocHeight) { let textMaxWidth, textMaxHeight; // We use these a lot so pre-compute const cos = cosine(rotation); const sin = sine(rotation); // <---------------allocWidth----------------> // A════════════════════F════════════════════B // ║ ■■ ■ ║ // ║ ■■ ■ ║ // ║ ■■ ■ ║ // ║ ■■ ■ ║ // ║ ■■ ■ ║ // ║ ■■ ■ ║ // ║ ■■░░ ■ ║ // ║ ■■ ░ ■ ║ // ║ ■■ Θ ░ ■ ║ // ║■■ ░ ■ ║ // E- - - - - - - - - - - - - ■ - - - - - - -║ // ║■ ■ ║ // ║■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■ ║ // ║ ■ ■║ // ║ ■ ■║ // ║ ■ G // ║ ■ ■■║ // ║ ■ ■■ ║ // ║ ■ ■ ║ // ║ ■ ■■ ║ // ║ ■ ■ ║ // ║ ■ ■■ ║ // ║ ■ ■■ ║ // ║ ■ ■ ║ // ║ ■ ■■ ║ // ║ ■ ■ ║ // ║ ■ ■■ ║ // ║ ■ ■■ ║ // D════════════════════H════════════════════C // // Given a rectangle ABCD with a fixed side AB of width allocWidth. // Find the largest (by area) inscribed rectangle EFGH, // where the angle Θ is equal to rotation (between 0-90 degrees) // // From above we can infer // > AF = EF * cos(Θ) // > FB = AB - AF // > FB = FG * sin(Θ) // Rearrange // > FG = FB / sin(Θ) // Substitute // > FG = (AB - EF*cos(Θ)) / sin(Θ) // Area of a rectangle // > A = EF * FG // Substitute // > A = EF * (AB - EF*cos(Θ)) / sin(Θ) // > dA/dEF = (AB - 2*EF*cos(Θ)) / sin(Θ) // Find peak at dA/dEF = 0 // > 0 = (AB - 2*EF*cos(Θ)) / sin(Θ) // > EF = AB / (2*cos(Θ)) // Substitute // > FG = (AB - (AB*cos(Θ)) / (2*cos(Θ))) / sin(Θ) // > FG = AB / (2*sin(Θ)) // // Final outcome // Length EF = AB / (2*cos(Θ)) // Length FG = AB / (2*sin(Θ)) if (rotation === 0 || rotation === 180) { textMaxWidth = allocWidth; textMaxHeight = allocHeight; } else if (rotation === 90 || rotation === 270) { textMaxWidth = allocHeight; textMaxHeight = allocWidth; } else if (rotation < 90 || (rotation > 180 && rotation < 270)) { textMaxWidth = allocWidth / (2 * cos); textMaxHeight = allocWidth / (2 * sin); } else { textMaxHeight = allocWidth / (2 * cos); textMaxWidth = allocWidth / (2 * sin); } // If The bounding box of the text is beyond the allocHeight // then we need to clamp it and recompute the bounds // This time we are computing the sizes based on the outer box ABCD const EF = sin * textMaxWidth; const FG = cos * textMaxHeight; if (EF + FG > allocHeight) { // > AB = EF * cos(Θ) + FG * sin(Θ) // > BC = BG + GC // > BG = FG * cos(Θ) // > GC = EF * sin(Θ) // > BC = FG * cos(Θ) + EF * sin(Θ) // > AB = EF * cos(Θ) + FG * sin(Θ) // Substitution solve // > EF = (AB*cos(Θ) - BC*sin(Θ)) / (cos^2(Θ)-sin^2(Θ)) // > FG = (BC*cos(Θ) - AB*sin(Θ)) / (cos^2(Θ)-sin^2(Θ)) const denominator = cos * cos - sin * sin; if (rotation === 0 || rotation === 180) { textMaxWidth = allocWidth; textMaxHeight = allocHeight; } else if (rotation === 90 || rotation === 270) { textMaxWidth = allocHeight; textMaxHeight = allocWidth; } else if (rotation < 90 || (rotation > 180 && rotation < 270)) { textMaxWidth = (allocWidth * cos - allocHeight * sin) / denominator; textMaxHeight = (allocHeight * cos - allocWidth * sin) / denominator; } else { textMaxHeight = (allocWidth * cos - allocHeight * sin) / denominator; textMaxWidth = (allocHeight * cos - allocWidth * sin) / denominator; } } return { width: Math.abs(textMaxWidth), height: Math.abs(textMaxHeight) }; } ================================================ FILE: lib/table/style.js ================================================ import { COLUMN_FIELDS, deepMerge, ROW_FIELDS } from './utils'; import { normalizeSides } from '../utils'; /** * Normalize the row config * @note The context here is the cell not the document * * @param {DefaultTableCell} [defaultStyleInternal] * @returns {{ * defaultStyle: TableCellStyle, * defaultRowStyle: RowStyle, * defaultColStyle: ColumnStyle * }} * @private */ export function normalizedDefaultStyle(defaultStyleInternal) { let defaultStyle = defaultStyleInternal; // Force object form if (typeof defaultStyle !== 'object') defaultStyle = { text: defaultStyle }; const defaultRowStyle = Object.fromEntries( Object.entries(defaultStyle).filter(([k]) => ROW_FIELDS.includes(k)), ); const defaultColStyle = Object.fromEntries( Object.entries(defaultStyle).filter(([k]) => COLUMN_FIELDS.includes(k)), ); defaultStyle.padding = normalizeSides(defaultStyle.padding); defaultStyle.border = normalizeSides(defaultStyle.border); defaultStyle.borderColor = normalizeSides(defaultStyle.borderColor); defaultStyle.align = normalizeAlignment(defaultStyle.align); return { defaultStyle, defaultRowStyle, defaultColStyle }; } /** * Normalize the row config * * @note The context here is the cell not the document * * @this PDFTable * @memberOf PDFTable * @param {RowStyle} defaultRowStyle * @param {Dynamic} rowStyleInternal * @param {number} i The target row * @returns {NormalizedRowStyle} * @private */ export function normalizedRowStyle(defaultRowStyle, rowStyleInternal, i) { let rowStyle = rowStyleInternal(i); // Force object form if (rowStyle == null || typeof rowStyle !== 'object') { rowStyle = { height: rowStyle }; } // Normalize rowStyle.padding = normalizeSides(rowStyle.padding); rowStyle.border = normalizeSides(rowStyle.border); rowStyle.borderColor = normalizeSides(rowStyle.borderColor); rowStyle.align = normalizeAlignment(rowStyle.align); // Merge defaults rowStyle = deepMerge(defaultRowStyle, rowStyle); const document = this.document; const page = document.page; const contentHeight = page.contentHeight; if (rowStyle.height == null || rowStyle.height === 'auto') { rowStyle.height = 'auto'; } else { rowStyle.height = document.sizeToPoint( rowStyle.height, 0, page, contentHeight, ); } rowStyle.minHeight = document.sizeToPoint( rowStyle.minHeight, 0, page, contentHeight, ); rowStyle.maxHeight = document.sizeToPoint( rowStyle.maxHeight, 0, page, contentHeight, ); return rowStyle; } /** * Normalize the column config * * @note The context here is the document not the cell * * @param {ColumnStyle} defaultColStyle * @param {Dynamic} colStyleInternal * @param {number} i - The target column * @returns {NormalizedColumnStyle} * @private */ export function normalizedColumnStyle(defaultColStyle, colStyleInternal, i) { let colStyle = colStyleInternal(i); // Force object form if (colStyle == null || typeof colStyle !== 'object') { colStyle = { width: colStyle }; } // Normalize colStyle.padding = normalizeSides(colStyle.padding); colStyle.border = normalizeSides(colStyle.border); colStyle.borderColor = normalizeSides(colStyle.borderColor); colStyle.align = normalizeAlignment(colStyle.align); // Merge defaults colStyle = deepMerge(defaultColStyle, colStyle); if (colStyle.width == null || colStyle.width === '*') { colStyle.width = '*'; } else { colStyle.width = this.document.sizeToPoint( colStyle.width, 0, this.document.page, this._maxWidth, // Use table width here for percentage scaling ); } colStyle.minWidth = this.document.sizeToPoint( colStyle.minWidth, 0, this.document.page, this._maxWidth, // Use table width here for percentage scaling ); colStyle.maxWidth = this.document.sizeToPoint( colStyle.maxWidth, 0, this.document.page, this._maxWidth, // Use table width here for percentage scaling ); return colStyle; } export function normalizeAlignment(align) { return align == null || typeof align === 'string' ? { x: align, y: align } : align; } ================================================ FILE: lib/table/utils.js ================================================ /** * @template T * @typedef {function(number): T} Dynamic */ /** * @typedef {Object} Font * @property {PDFFontSource} [src] * The name of the font * * Defaults to the current document font source `doc._fontSrc` * @property {string} [family] * The font family of the font * * Defaults to the current document font family `doc._fontFamily` * @property {Size} [size] * The size of the font * * Defaults to the current document font size `doc._fontSize` */ /** * Measurement of how wide something is, false means 0 and true means 1 * * @typedef {Size | boolean} Wideness */ /** * The value of the text of a cell * @typedef {string | null | undefined} TableCellText */ /** @typedef {Object} TableCellStyle * * @property {TableCellText} [text] * The text of the table cell * @property {number} [rowSpan] * Number of rows the cell spans. * * Defaults to `1`. * @property {number} [colSpan] * Number of columns the cell spans. * * Defaults to `1`. * @property {SideDefinition} [padding] * Controls the padding of the cell text * * Defaults to `0.25em` * @property {SideDefinition} [border] * Controls the thickness of the cells borders. * * Defaults to `[1, 1, 1, 1]`. * @property {SideDefinition} [borderColor] * Color of the border on each side of the cell. * * Defaults to the border color defined by the given table layout, or `black` on all sides. * @property {Font} [font] * Font options for the cell * * Defaults to the documents current font * @property {PDFColor} [backgroundColor] * Set the background color of the cell * * Defaults to transparent * @property {'center' | ExpandedAlign} [align] * Sets the text alignment of the cells text * * Defaults to `{x: 'left', y: 'top'}` * @property {Size} [textStroke] * Sets the text stroke width of the cells text * * Defaults to `0` * @property {PDFColor} [textStrokeColor] * Sets the text stroke color of the cells text * * Defaults to `black` * @property {PDFColor} [textColor] * Sets the text color of the cells text * * Defaults to `black` * @property {'TH' | 'TD'} [type] * Sets the cell type (for accessibility) * * Defaults to `TD` * @property {Object} [textOptions] * Sets any advanced text options passed into the cell renderer * * Same as the options you pass to `doc.text()` * * Will override any defaults set by the cell if set * @property {string} [title] * Sets the accessible title for the cell * @property {'Column' | 'Row' | 'Both'} [scope] * Sets the accessible scope for the cell * @property {string} [id] * Sets the accessible id for the cell * * Defaults to `--` * @property {boolean} [debug] * Whether to show the debug lines for the cell * * Defaults to `false` */ /** @typedef {TableCellText | TableCellStyle} TableCell **/ /** * The width of the column * * - `*` distributes equally, filling the whole available space * - `%` computes the proportion of the max size * * Defaults to `*` * @typedef {Size | '*'} ColumnWidth */ /** * @typedef {Object} ColumnStyle * @extends TableCellStyle * * @property {ColumnWidth} [width] * @property {Size} [minWidth] * The minimum width of the column * * Defaults to `0` * @property {Size} [maxWidth] * The maximum width of the column * * Defaults to `undefined` meaning no max */ /** @typedef {ColumnStyle | ColumnWidth} Column **/ /** * @typedef {Object} NormalizedColumnStyle * @extends ColumnStyle * * @property {number | '*'} width * @property {number} minWidth * @property {number} maxWidth */ /** * The height of the row * * - A fixed value sets an absolute height for every row. * - `auto` sets the height based on the text. * * `%` values are based on page content height * * Defaults to `auto` * @typedef {Size | 'auto'} RowHeight */ /** * @typedef {Object} RowStyle * @extends TableCellStyle * * @property {RowHeight} [height] * @property {Size} [minHeight] * The minimum height of the row * * `%` values are based on page content height * * Defaults to `0` * @property {Size} [maxHeight] * The maximum height of the row * * `%` values are based on page content height * * Defaults to `undefined` meaning no max */ /** @typedef {RowStyle | RowHeight} Row **/ /** * @typedef {Object} NormalizedRowStyle * @extends RowStyle * * @property {number | 'auto'} height * @property {number} minHeight * @property {number} maxHeight */ /** @typedef {'left' | 'center' | 'right' | 'justify'} AlignX **/ /** @typedef {'top' | 'center' | 'bottom'} AlignY **/ /** * @typedef {Object} ExpandedAlign * @property {AlignX} [x] * @property {AlignY} [y] */ /** * @typedef {Object} DefaultTableCellStyle * * @extends ColumnStyle * @extends RowStyle * @extends TableCellStyle */ /** @typedef {TableCellText | DefaultTableCellStyle} DefaultTableCell **/ /** * @typedef {Object} NormalizedDefaultTableCellStyle * * @extends NormalizedColumnStyle * @extends NormalizedRowStyle * @extends TableCellStyle */ /** * @typedef {Object} NormalizedTableCellStyle * * @extends NormalizedColumnStyle * @extends NormalizedRowStyle * @extends TableCellStyle * * @property {number} rowIndex * @property {number} rowSpan * @property {number} colIndex * @property {number} colSpan * * @property {string} text * @property {Font} font * @property {boolean} customFont * @property {ExpandedSideDefinition} padding * @property {ExpandedSideDefinition} border * @property {ExpandedSideDefinition} borderColor * @property {ExpandedAlign} align * @property {number} textStroke * @property {PDFColor} textStrokeColor * @property {PDFColor} textColor * @property {number} minWidth * @property {number} maxWidth * @property {number} minHeight * @property {number} maxHeight * @property {Object} textOptions */ /** * @typedef {Object} SizedNormalizedTableCellStyle * * @extends {NormalizedTableCellStyle} * * @property {number} x * @property {number} y * @property {number} textX * @property {number} textY * @property {number} width * @property {number} height * @property {number} textAllocatedWidth * @property {number} textAllocatedHeight * @property {{x: number, y: number, width: number, height: number}} textBounds */ /** * @typedef {Object} Table * * @property {Position} [position] * The position of the table * * Defaults to the current document position `{x: doc.x, y: doc.y}` * @property {Size} [maxWidth] * The maximum width the table can expand to * * Defaults to the remaining content width (offset from the tables position) * @property {Column | Column[] | Dynamic} [columnStyles] * Column definitions of the table. * - A fixed value sets the config for every column * - Use an array or a callback function to control the column config for each column individually. * * Defaults to `auto` * @property {Row | Row[] | Dynamic} [rowStyles] * Row definitions of the table. * - A fixed value sets the config for every column * - Use an array or a callback function to control the row config of each row individually. * * The given values are ignored for rows whose text is higher. * * Defaults to `*`. * @property {DefaultTableCell} [defaultStyle] * Defaults to apply to every cell * @property {Iterable>} [data] * Two-dimensional iterable that defines the table's data. * * With the first dimension being the row, and the second being the column * * If provided the table will be automatically ended after the last row has been written, * Otherwise it is up to the user to call `table.end()` or `table.row([], true)` * @property {PDFStructureElement} [structParent] * The parent structure to mount to * * This will cause the entire table to be enclosed in a Table structure * with TR and TD/TH for cells * @property {string} [id] * Sets the accessible id for the table * * Defaults to `table-` * @property {boolean} [debug] * Whether to show the debug lines for all the cells * * Defaults to `false` */ /** * Fields exclusive to row styles * @type {string[]} */ export const ROW_FIELDS = ['height', 'minHeight', 'maxHeight']; /** * Fields exclusive to column styles * @type {string[]} */ export const COLUMN_FIELDS = ['width', 'minWidth', 'maxWidth']; export function memoize(fn, maxSize) { const cache = new Map(); return function (...args) { const key = args[0]; if (!cache.has(key)) { cache.set(key, fn(...args)); if (cache.size > maxSize) cache.delete(cache.keys().next()); } return cache.get(key); }; } /** * Simple object check. * @param item * @returns {boolean} */ function isObject(item) { return item && typeof item === 'object' && !Array.isArray(item); } /** * Deep merge two objects. * * @template T * @param {T} target * @param sources * @returns {T} */ export function deepMerge(target, ...sources) { if (!isObject(target)) return target; target = deepClone(target); for (const source of sources) { if (isObject(source)) { for (const key in source) { if (isObject(source[key])) { if (!(key in target)) target[key] = {}; target[key] = deepMerge(target[key], source[key]); } else if (source[key] !== undefined) { target[key] = deepClone(source[key]); } } } } return target; } function deepClone(obj) { let result = obj; if (obj && typeof obj == 'object') { result = Array.isArray(obj) ? [] : {}; for (const key in obj) result[key] = deepClone(obj[key]); } return result; } ================================================ FILE: lib/tree.js ================================================ /* PDFTree - abstract base class for name and number tree objects */ import PDFObject from './object'; class PDFTree { constructor(options = {}) { this._items = {}; // disable /Limits output for this tree this.limits = typeof options.limits === 'boolean' ? options.limits : true; } add(key, val) { return (this._items[key] = val); } get(key) { return this._items[key]; } toString() { // Needs to be sorted by key const sortedKeys = Object.keys(this._items).sort((a, b) => this._compareKeys(a, b), ); const out = ['<<']; if (this.limits && sortedKeys.length > 1) { const first = sortedKeys[0], last = sortedKeys[sortedKeys.length - 1]; out.push( ` /Limits ${PDFObject.convert([this._dataForKey(first), this._dataForKey(last)])}`, ); } out.push(` /${this._keysName()} [`); for (let key of sortedKeys) { out.push( ` ${PDFObject.convert(this._dataForKey(key))} ${PDFObject.convert( this._items[key], )}`, ); } out.push(']'); out.push('>>'); return out.join('\n'); } _compareKeys(/*a, b*/) { throw new Error('Must be implemented by subclasses'); } _keysName() { throw new Error('Must be implemented by subclasses'); } _dataForKey(/*k*/) { throw new Error('Must be implemented by subclasses'); } } export default PDFTree; ================================================ FILE: lib/utils.js ================================================ const fArray = new Float32Array(1); const uArray = new Uint32Array(fArray.buffer); export function PDFNumber(n) { // PDF numbers are strictly 32bit // so convert this number to a 32bit number // @see ISO 32000-1 Annex C.2 (real numbers) const rounded = Math.fround(n); if (rounded <= n) return rounded; // Will have to perform 32bit float truncation fArray[0] = n; // Get the 32-bit representation as integer and shift bits if (n <= 0) { uArray[0] += 1; } else { uArray[0] -= 1; } // Return the float value return fArray[0]; } /** * Measurement of size * * @typedef {number | `${number}` | `${number}${'em' | 'in' | 'px' | 'cm' | 'mm' | 'pc' | 'ex' | 'ch' | 'rem' | 'vw' | 'vmin' | 'vmax' | '%' | 'pt'}`} Size */ /** * @typedef {Array | string | Array} PDFColor */ /** @typedef {string | Buffer | Uint8Array | ArrayBuffer} PDFFontSource */ /** * Side definitions * - To define all sides, use a single value * - To define up-down left-right, use a `[Y, X]` array * - To define each side, use `[top, right, bottom, left]` array * - Or `{vertical: SideValue, horizontal: SideValue}` * - Or `{top: SideValue, right: SideValue, bottom: SideValue, left: SideValue}` * * @template T * @typedef {T | [T, T] | [T, T, T, T] | { vertical: T; horizontal: T } | ExpandedSideDefinition} SideDefinition **/ /** * @template T * @typedef {{ top: T; right: T; bottom: T; left: T }} ExpandedSideDefinition */ /** * Convert any side definition into a static structure * * @template S * @template D * @template O * @template {S | D} T * @param {SideDefinition} sides - The sides to convert * @param {SideDefinition} defaultDefinition - The value to use when no definition is provided * @param {function(T): O} transformer - The transformation to apply to the sides once normalized * @returns {ExpandedSideDefinition} */ export function normalizeSides( sides, defaultDefinition = undefined, transformer = (v) => v, ) { if ( sides == null || (typeof sides === 'object' && Object.keys(sides).length === 0) ) { sides = defaultDefinition; } if (sides == null || typeof sides !== 'object') { sides = { top: sides, right: sides, bottom: sides, left: sides }; } else if (Array.isArray(sides)) { if (sides.length === 2) { sides = { vertical: sides[0], horizontal: sides[1] }; } else { sides = { top: sides[0], right: sides[1], bottom: sides[2], left: sides[3], }; } } if ('vertical' in sides || 'horizontal' in sides) { sides = { top: sides.vertical, right: sides.horizontal, bottom: sides.vertical, left: sides.horizontal, }; } return { top: transformer(sides.top), right: transformer(sides.right), bottom: transformer(sides.bottom), left: transformer(sides.left), }; } export const MM_TO_CM = 1 / 10; // 1MM = 1CM export const CM_TO_IN = 1 / 2.54; // 1CM = 1/2.54 IN export const PX_TO_IN = 1 / 96; // 1 PX = 1/96 IN export const IN_TO_PT = 72; // 1 IN = 72 PT export const PC_TO_PT = 12; // 1 PC = 12 PT /** * Get cosine in degrees of a * * Rounding errors are handled * @param a * @returns {number} */ export function cosine(a) { if (a === 0) return 1; if (a === 90) return 0; if (a === 180) return -1; if (a === 270) return 0; return Math.cos((a * Math.PI) / 180); } /** * Get sine in degrees of a * * Rounding errors are handled * @param a * @returns {number} */ export function sine(a) { if (a === 0) return 0; if (a === 90) return 1; if (a === 180) return 0; if (a === 270) return -1; return Math.sin((a * Math.PI) / 180); } ================================================ FILE: lib/virtual-fs.js ================================================ class VirtualFileSystem { constructor() { this.fileData = {}; } readFileSync(fileName, options = {}) { const encoding = typeof options === 'string' ? options : options.encoding; const virtualFileName = normalizeFilename(fileName); const data = this.fileData[virtualFileName]; if (data == null) { throw new Error( `File '${virtualFileName}' not found in virtual file system`, ); } if (encoding) { // return a string return typeof data === 'string' ? data : data.toString(encoding); } return Buffer.from(data, typeof data === 'string' ? 'base64' : undefined); } writeFileSync(fileName, content) { this.fileData[normalizeFilename(fileName)] = content; } bindFileData(data = {}, options = {}) { if (options.reset) { this.fileData = data; } else { Object.assign(this.fileData, data); } } } function normalizeFilename(fileName) { if (fileName.indexOf(__dirname) === 0) { fileName = fileName.substring(__dirname.length); } if (fileName.indexOf('/') === 0) { fileName = fileName.substring(1); } return fileName; } export default new VirtualFileSystem(); ================================================ FILE: package.json ================================================ { "name": "pdfkit", "description": "A PDF generation library for Node.js", "keywords": [ "pdf", "pdf writer", "pdf generator", "graphics", "document", "vector" ], "version": "0.18.0", "homepage": "http://pdfkit.org/", "author": { "name": "Devon Govett", "email": "devongovett@gmail.com", "url": "http://badassjs.com/" }, "license": "MIT", "repository": { "type": "git", "url": "https://github.com/foliojs/pdfkit.git" }, "bugs": "https://github.com/foliojs/pdfkit/issues", "devDependencies": { "@babel/core": "^7.29.0", "@babel/plugin-external-helpers": "^7.27.1", "@babel/preset-env": "^7.29.0", "@eslint/js": "^9.17.0", "@rollup/plugin-babel": "^7.0.0", "blob-stream": "^0.1.3", "brace": "^0.11.1", "brfs": "~2.0.2", "browserify": "^17.0.1", "canvas": "^3.2.0", "codemirror": "~5.65.18", "eslint": "^9.17.0", "gh-pages": "^6.2.0", "globals": "^15.14.0", "jest-diff": "^30.3.0", "jest-image-snapshot": "^6.5.2", "markdown": "~0.5.0", "pdfjs-dist": "^5.5.207", "prettier": "3.4.2", "pug": "^3.0.3", "rollup": "^4.59.0", "rollup-plugin-copy": "^3.5.0", "vitest": "^4.1.0" }, "dependencies": { "@noble/ciphers": "^1.0.0", "@noble/hashes": "^1.6.0", "fontkit": "^2.0.4", "js-md5": "^0.8.3", "linebreak": "^1.1.0", "png-js": "^1.0.0" }, "scripts": { "prepublishOnly": "npm run build", "build": "rollup -c && npm run build-standalone", "build-standalone": "browserify --standalone PDFDocument --ignore crypto js/pdfkit.js > js/pdfkit.standalone.js", "browserify-example": "browserify examples/browserify/browser.js > examples/browserify/bundle.js", "pdf-guide": "node docs/generate.js", "website": "node docs/generate_website.js", "publish-website": "node docs/publish_website.js", "docs": "npm run pdf-guide && npm run website && npm run browserify-example", "lint": "eslint {lib,tests}/**/*.js", "prettier": "prettier --check lib tests docs", "test": "vitest --testTimeout 8000 run", "test:visual": "vitest --testTimeout 8000 run tests/visual", "test:unit": "vitest run tests/unit" }, "main": "js/pdfkit.js", "module": "js/pdfkit.es.js", "browserify": { "transform": [ "brfs" ] }, "engine": [ "node >= v20.0.0" ], "packageManager": "yarn@4.10.3" } ================================================ FILE: rollup.config.mjs ================================================ import pkg from './package.json' with { type: 'json' }; import { babel } from '@rollup/plugin-babel'; import copy from 'rollup-plugin-copy'; const external = [ 'stream', 'fs', 'zlib', 'fontkit', 'events', 'linebreak', 'png-js', 'js-md5', '@noble/hashes/utils', '@noble/hashes/sha256', '@noble/ciphers/aes', 'crypto', 'saslprep', ]; const supportedBrowsers = [ 'Firefox 115', // ESR from 2023 'iOS 16', // from 2022 'Safari 16', // from 2022 ]; export default [ // CommonJS build for Node { input: 'lib/document.js', external, output: { name: 'pdfkit', file: pkg.main, format: 'cjs', sourcemap: true, interop: 'default', }, plugins: [ babel({ babelHelpers: 'bundled', babelrc: false, presets: [ [ '@babel/preset-env', { modules: false, targets: { node: '20', }, }, ], ], comments: false, }), copy({ targets: [ { src: ['lib/font/data/*.afm', 'lib/mixins/data/*.icc'], dest: 'js/data', }, ], }), ], }, // ES for green browsers { input: 'lib/document.js', external, output: { name: 'pdfkit.es', file: pkg.module, format: 'es', sourcemap: true, }, plugins: [ babel({ babelHelpers: 'bundled', babelrc: false, presets: [ [ '@babel/preset-env', { modules: false, bugfixes: true, targets: { browsers: supportedBrowsers, }, }, ], ], comments: false, }), ], }, { input: 'lib/virtual-fs.js', external, output: { name: 'virtual-fs', file: 'js/virtual-fs.js', format: 'es', sourcemap: false, }, plugins: [ babel({ babelHelpers: 'bundled', babelrc: false, presets: [ [ '@babel/preset-env', { loose: true, modules: false, targets: { browsers: supportedBrowsers, }, }, ], ], }), ], }, ]; ================================================ FILE: tests/images/bee.js ================================================ var png = 'data:image/png;base64,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'; var jpeg = 'data:image/jpeg;base64,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'; module.exports = { png, jpeg }; ================================================ FILE: tests/unit/acroform.spec.js ================================================ import PDFDocument from '../../lib/document'; import PDFSecurity from '../../lib/security'; import { logData, joinTokens } from './helpers'; import PDFFontFactory from '../../lib/font_factory'; // manual mock for PDFSecurity to ensure stored id will be the same accross different systems PDFSecurity.generateFileID = () => { return Buffer.from('mocked-pdf-id'); }; describe('acroform', () => { let doc; beforeEach(() => { doc = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, }); }); test('named JavaScript', () => { const expected = [ '2 0 obj', // '<<\n/Dests <<\n/Names []\n>>\n/JavaScript <<\n/Names [\n(name1) <<\n/JS (my javascript goes here)\n/S /JavaScript\n>>\n]\n>>\n>>', joinTokens( '<<', '/Dests', '<<', '/Names', '[', ']', '>>', '/JavaScript', '<<', '/Names', '[', '(name1)', '<<', '/JS', '(my javascript goes here)', '/S', '/JavaScript', '>>', ']', '>>', '>>', ), 'endobj', ]; const docData = logData(doc); doc.addNamedJavaScript('name1', 'my javascript goes here'); expect(docData.length).toBe(0); doc.end(); expect(docData).toContainChunk(expected); }); test('init no fonts', () => { doc.addPage(); const docData = logData(doc); PDFFontFactory.open(doc, 'tests/fonts/Roboto-Regular.ttf'); doc.initForm(); expect(docData.length).toBe(0); }); test('init standard fonts', () => { const expected = [ '12 0 obj', joinTokens( '<<', '/FT', '/Tx', '/Ff', '4096', '/DR', '<<', '/Font', '<<', '/F3', '10 0 R', '>>', '>>', '/DA', '(/F3 0 Tf 0 g)', '/T', '(file0)', '/Subtype', '/Widget', '/F', '4', '/Type', '/Annot', '/Rect', '[10 292 602 692]', '/Border [0 0 0]', '/C [0 0 0]', '>>', ), 'endobj', ]; const docData = logData(doc); doc.registerFont('myfont1', 'tests/fonts/Roboto-Regular.ttf'); doc.font('Courier-Bold'); // establishes the default font doc.initForm(); doc .font('myfont1') .fontSize(25) .text('Test Doc', 0, 20, { width: 612, align: 'center' }); doc .font('Courier') .fontSize(16) .text('Courier subheading', 0, 50, { width: 612, align: 'center' }); doc .font('myfont1') .formText('file0', 10, 100, 592, 400, { multiline: true }); expect(docData.length).toBe(3); expect(docData).toContainChunk(expected); }); test('push button', () => { const expected = [ '10 0 obj', '<<\n/FT /Btn\n/Ff 65536\n/MK <<\n/CA (Test Button)\n/BG [1 1 0]\n>>\n/T (btn1)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [20 742 120 772]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', ]; doc.initForm(); const docData = logData(doc); let opts = { backgroundColor: 'yellow', label: 'Test Button', }; doc.formPushButton('btn1', 20, 20, 100, 30, opts); expect(docData.length).toBe(3); expect(docData[0]).toBe(expected[0]); expect(docData[1]).toBe(expected[1]); expect(docData[2]).toBe(expected[2]); }); describe('text format', () => { test('number', () => { const expected = [ '10 0 obj', '<<\n/FT /Tx\n/V 32.98\n/AA <<\n/K <<\n/S /JavaScript\n' + '/JS (AFNumber_Keystroke\\(2,1,"MinusBlack",null,"$",true\\);)\n>>\n' + '/F <<\n/S /JavaScript\n/JS (AFNumber_Format\\(2,1,"MinusBlack",null,"$",true\\);)\n>>\n>>\n' + '/T (dollars)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [20 752 70 772]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', ]; doc.initForm(); const docData = logData(doc); let opts = { value: 32.98, format: { type: 'number', nDec: 2, currency: '$', currencyPrepend: true, }, }; doc.formText('dollars', 20, 20, 50, 20, opts); expect(docData.length).toBe(3); expect(docData).toContainChunk(expected); }); test('date', () => { const expected = [ '10 0 obj', '<<\n/FT /Tx\n/V (1999-12-31)\n/AA <<\n/K <<\n/S /JavaScript\n' + '/JS (AFDate_KeystrokeEx\\(yyyy-mm-dd\\);)\n>>\n' + '/F <<\n/S /JavaScript\n/JS (AFDate_Format\\(yyyy-mm-dd\\);)\n>>\n>>\n' + '/T (date)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [20 752 70 772]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', ]; doc.initForm(); const docData = logData(doc); let opts = { value: '1999-12-31', format: { type: 'date', param: 'yyyy-mm-dd', }, }; doc.formText('date', 20, 20, 50, 20, opts); expect(docData.length).toBe(3); expect(docData).toContainChunk(expected); }); }); test('flags', () => { const expected = [ '10 0 obj', '<<\n/FT /Tx\n' + '/Ff 4206599\n/Q 1\n' + '/T (flags)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [20 752 70 772]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', ]; doc.initForm(); const docData = logData(doc); let opts = { required: true, noExport: true, readOnly: true, align: 'center', multiline: true, password: true, noSpell: true, }; doc.formText('flags', 20, 20, 50, 20, opts); expect(docData.length).toBe(3); expect(docData).toContainChunk(expected); }); test('false flags should be ignored', () => { const expectedDoc = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, }); expectedDoc.initForm(); const expectedDocData = logData(expectedDoc); let emptyOpts = { align: 'center', }; expectedDoc.formText('flags', 20, 20, 50, 20, emptyOpts); doc.initForm(); const docData = logData(doc); let opts = { required: false, noExport: false, readOnly: false, align: 'center', multiline: false, password: false, noSpell: false, }; doc.formText('flags', 20, 20, 50, 20, opts); expect(docData).toContainChunk(expectedDocData); }); test('font size', () => { const expected = [ '11 0 obj', '<<\n' + '/fontSize 16\n' + '/FT /Tx\n' + '/DR <<\n' + '/Font <<\n' + '/F2 10 0 R\n' + '>>\n' + '>>\n' + '/DA (/F2 16 Tf 0 g)\n' + '/T (text)\n' + '/Subtype /Widget\n' + '/F 4\n' + '/Type /Annot\n' + '/Rect [20 752 70 772]\n' + '/Border [0 0 0]\n' + '/C [0 0 0]\n' + '/FontSize 16\n' + '>>', 'endobj', ]; doc.registerFont('myfont1', 'tests/fonts/Roboto-Regular.ttf'); doc.initForm(); const docData = logData(doc); let opts = { fontSize: 16, }; doc.font('myfont1').formText('text', 20, 20, 50, 20, opts); expect(docData.length).toBe(3); expect(docData).toContainChunk(expected); }); test('field heirarchy', () => { const expected = [ '13 0 obj', '<<\n/Parent 11 0 R\n/FT /Tx\n/T (leaf1)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [10 742 210 782]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', '14 0 obj', '<<\n/Parent 11 0 R\n/FT /Tx\n/T (leaf2)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [10 692 210 732]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', '15 0 obj', '<<\n/Parent 12 0 R\n/FT /Tx\n/T (leaf3)\n/Subtype /Widget\n/F 4\n/Type /Annot\n/Rect [10 642 210 682]\n/Border [0 0 0]\n/C [0 0 0]\n>>', 'endobj', ]; const expected2 = [ '11 0 obj', '<<\n/Parent 10 0 R\n/T (child1Field)\n/Kids [13 0 R 14 0 R]\n>>', 'endobj', '12 0 obj', '<<\n/Parent 10 0 R\n/T (child2Field)\n/Kids [15 0 R]\n>>', 'endobj', '10 0 obj', '<<\n/T (rootField)\n/Kids [11 0 R 12 0 R]\n>>', 'endobj', '9 0 obj', '<<\n/Fields [10 0 R]\n/NeedAppearances true\n/DA (/F1 0 Tf 0 g)\n/DR <<\n/Font <<\n/F1 8 0 R\n>>\n>>\n>>', 'endobj', ]; const docData = logData(doc); doc.font('Helvetica'); // establishes the default font doc.initForm(); let rootField = doc.formField('rootField'); let child1Field = doc.formField('child1Field', { Parent: rootField }); let child2Field = doc.formField('child2Field', { Parent: rootField }); doc.formText('leaf1', 10, 10, 200, 40, { Parent: child1Field }); doc.formText('leaf2', 10, 60, 200, 40, { Parent: child1Field }); doc.formText('leaf3', 10, 110, 200, 40, { Parent: child2Field }); expect(docData.length).toBe(expected.length); for (let idx = 0; idx < expected.length; ++idx) { expect(docData[idx]).toBe(expected[idx]); } doc.end(); for (let idx = 0; idx < docData.length; ++idx) { if (docData[idx] === expected2[0]) { for (let jdx = 0; jdx < expected2.length; ++jdx) { expect(docData[idx + jdx]).toBe(expected2[jdx]); } } } }); }); ================================================ FILE: tests/unit/annotations.spec.js ================================================ import PDFDocument from '../../lib/document'; import PDFSecurity from '../../lib/security'; import { logData } from './helpers'; // manual mock for PDFSecurity to ensure stored id will be the same accross different systems PDFSecurity.generateFileID = () => { return Buffer.from('mocked-pdf-id'); }; describe('Annotations', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, }); }); describe('link', () => { test('using page index', () => { document.addPage(); const docData = logData(document); document.text('Go To First Page', { link: 0 }); expect(docData).toContainChunk([ `11 0 obj`, `<< /S /GoTo /D [7 0 R /XYZ null null null] >>`, ]); }); test('using url', () => { document.addPage(); const docData = logData(document); document.text('Go to url', { link: 'http://www.example.com' }); expect(docData).toContainChunk([ `11 0 obj`, `<< /S /URI /URI (http://www.example.com) >>`, ]); }); test('using url on continue', () => { document.addPage(); const docData = logData(document); document.text('Go to url', { link: 'http://www.example.com', continued: true, }); document.text('continued link'); expect(docData).toContainChunk([ `11 0 obj`, `<< /S /URI /URI (http://www.example.com) >>`, ]); expect(docData).toContainChunk([ `14 0 obj`, `<< /S /URI /URI (http://www.example.com) >>`, ]); }); test('using url on continue', () => { document.addPage(); const docData = logData(document); document.text('Go to url', { link: 'http://www.example.com', continued: true, }); document.text('no continued link', { link: null }); // console.log(docData); expect(docData).toContainChunk([ `11 0 obj`, `<< /S /URI /URI (http://www.example.com) >>`, ]); expect(docData).not.toContainChunk([`14 0 obj`]); }); }); describe('fileAnnotation', () => { test('creating a fileAnnotation', () => { const docData = logData(document); document.fileAnnotation(100, 100, 20, 20, { src: Buffer.from('example text'), name: 'file.txt', }); expect(docData).toContainChunk([ `10 0 obj`, `<< /Subtype /FileAttachment /FS 9 0 R /Type /Annot /Rect [100 672 120 692] /Border [0 0 0] /C [0 0 0] >>`, ]); }); test("using the file's description", () => { const docData = logData(document); document.fileAnnotation(100, 100, 20, 20, { src: Buffer.from('example text'), name: 'file.txt', description: 'file description', }); expect(docData).toContainChunk([ `10 0 obj`, `<< /Subtype /FileAttachment /FS 9 0 R /Contents (file description) /Type /Annot /Rect [100 672 120 692] /Border [0 0 0] /C [0 0 0] >>`, ]); }); test("overriding the file's description", () => { const docData = logData(document); document.fileAnnotation( 100, 100, 20, 20, { src: Buffer.from('example text'), name: 'file.txt', description: 'file description', }, { Contents: 'other description', }, ); expect(docData).toContainChunk([ `10 0 obj`, `<< /Contents (other description) /Subtype /FileAttachment /FS 9 0 R /Type /Annot /Rect [100 672 120 692] /Border [0 0 0] /C [0 0 0] >>`, ]); }); }); describe('annotations with structure parent', () => { test('should add structParent to link annotations', () => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, tagged: true, }); const docData = logData(document); const linkElement = document.struct('Link'); document.addStructure(linkElement); document.link(100, 100, 100, 20, 'http://example.com', { structParent: linkElement, }); linkElement.end(); document.end(); const dataStr = docData.join('\n'); expect(dataStr).toContain('/StructParent 0'); expect(dataStr).toContain('/Contents ()'); }); test('should work without structParent (backwards compatibility)', () => { const docData = logData(document); document.link(100, 100, 100, 20, 'http://example.com'); document.end(); const dataStr = docData.join('\n'); expect(dataStr).toContain('/Subtype /Link'); expect(dataStr).not.toContain('/StructParent'); }); }); }); ================================================ FILE: tests/unit/attachments.spec.js ================================================ import PDFDocument from '../../lib/document'; import PDFSecurity from '../../lib/security'; import { logData } from './helpers'; import { createHash } from 'crypto'; // manual mock for PDFSecurity to ensure stored id will be the same across different systems PDFSecurity.generateFileID = () => { return Buffer.from('mocked-pdf-id'); }; const date = new Date(Date.UTC(2018, 1, 1)); describe('file', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: date }, }); }); test('with name and type', () => { const docData = logData(document); document.file(Buffer.from('example text'), { name: 'file.txt', type: 'text/plain', creationDate: date, modifiedDate: date, }); document.end(); const md5 = createHash('md5').update('example text').digest('hex'); expect(docData).toContainChunk([ `8 0 obj`, `<< /Type /EmbeddedFile /Params << /CreationDate (D:20180201000000Z) /ModDate (D:20180201000000Z) /CheckSum (${md5}) /Size 12 >> /Subtype /text#2Fplain /Length 20 /Filter /FlateDecode >>`, ]); expect(docData).toContainChunk([ `9 0 obj`, `<< /Type /Filespec /AFRelationship /Unspecified /F (file.txt) /EF << /F 8 0 R >> /UF (file.txt) >>`, ]); expect(docData).toContainChunk([ `2 0 obj`, `<< /Dests << /Names [ ] >> /EmbeddedFiles << /Names [ (file.txt) 9 0 R ] >> >>`, ]); }); test('with description', () => { const docData = logData(document); document.file(Buffer.from('example text'), { name: 'file.txt', creationDate: date, modifiedDate: date, description: 'file description', }); document.end(); const md5 = createHash('md5').update('example text').digest('hex'); expect(docData).toContainChunk([ `8 0 obj`, `<< /Type /EmbeddedFile /Params << /CreationDate (D:20180201000000Z) /ModDate (D:20180201000000Z) /CheckSum (${md5}) /Size 12 >> /Length 20 /Filter /FlateDecode >>`, ]); expect(docData).toContainChunk([ `9 0 obj`, `<< /Type /Filespec /AFRelationship /Unspecified /F (file.txt) /EF << /F 8 0 R >> /UF (file.txt) /Desc (file description) >>`, ]); }); test('with hidden option', () => { const docData = logData(document); document.file(Buffer.from('example text'), { name: 'file.txt', creationDate: date, modifiedDate: date, hidden: true, }); document.end(); const md5 = createHash('md5').update('example text').digest('hex'); expect(docData).toContainChunk([ `8 0 obj`, `<< /Type /EmbeddedFile /Params << /CreationDate (D:20180201000000Z) /ModDate (D:20180201000000Z) /CheckSum (${md5}) /Size 12 >> /Length 20 /Filter /FlateDecode >>`, ]); // hidden: do not add to /EmbeddedFiles expect(docData).toContainChunk([ `2 0 obj`, `<< /Dests << /Names [ ] >> >>`, ]); }); test('attach multiple files', () => { const docData = logData(document); document.file(Buffer.from('example text'), { name: 'file1.txt', creationDate: date, modifiedDate: date, }); document.file(Buffer.from('example text'), { name: 'file2.txt', creationDate: date, modifiedDate: date, }); document.end(); expect(docData).toContainChunk([ `2 0 obj`, `<< /Dests << /Names [ ] >> /EmbeddedFiles << /Names [ (file1.txt) 9 0 R (file2.txt) 11 0 R ] >> >>`, ]); }); test('attach the same file multiple times', () => { const docData = logData(document); document.file(Buffer.from('example text'), { name: 'file1.txt', creationDate: date, modifiedDate: date, }); document.file(Buffer.from('example text'), { name: 'file1.txt', creationDate: new Date(date), modifiedDate: new Date(date), }); document.end(); const numFiles = docData.filter( (str) => typeof str === 'string' && str.startsWith('<<\n/Type /EmbeddedFile\n'), ); expect(numFiles.length).toEqual(1); expect(docData).toContainChunk([ `2 0 obj`, `<< /Dests << /Names [ ] >> /EmbeddedFiles << /Names [ (file1.txt) 10 0 R ] >> >>`, ]); }); }); ================================================ FILE: tests/unit/color.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('color', function () { test('normalize', function () { const doc = new PDFDocument(); expect(doc._normalizeColor('#FFF')).toEqual([1, 1, 1]); expect(doc._normalizeColor('#FFFFFF')).toEqual([1, 1, 1]); expect(doc._normalizeColor('#000')).toEqual([0, 0, 0]); expect(doc._normalizeColor('#000000')).toEqual([0, 0, 0]); expect(doc._normalizeColor('#6F6FEF')).toEqual([ 0.43529411764705883, 0.43529411764705883, 0.9372549019607843, ]); expect(doc._normalizeColor([255, 255, 255])).toEqual([1, 1, 1]); expect(doc._normalizeColor([255, 255, 255, 255])).toEqual([ 2.55, 2.55, 2.55, 2.55, ]); expect(doc._normalizeColor([0, 0, 0])).toEqual([0, 0, 0]); expect(doc._normalizeColor([0, 0, 0, 0])).toEqual([0, 0, 0, 0]); expect(doc._normalizeColor([128, 10, 18])).toEqual([ 0.5019607843137255, 0.0392156862745098, 0.07058823529411765, ]); expect(doc._normalizeColor([128, 10, 18, 100])).toEqual([ 1.28, 0.1, 0.18, 1, ]); }); test('normalize with spot color', function () { const doc = new PDFDocument(); doc.addSpotColor('PANTONE 123 C', 0.1, 0.2, 0.3, 0.4); const color = doc._normalizeColor('PANTONE 123 C'); expect(color.id).toEqual('CS0'); expect(color.values).toEqual([0.1, 0.2, 0.3, 0.4]); }); test('spot color', function () { const doc = new PDFDocument(); const data = logData(doc); doc.addSpotColor('PANTONE185C', 0, 100, 78, 9); doc.fillColor('PANTONE185C').text('This text uses spot color!'); doc.end(); expect(data).toContainChunk([ `6 0 obj`, '<<\n' + '/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\n' + '/ColorSpace <<\n' + '/CS0 8 0 R\n' + '>>\n' + '/Font <<\n' + '/F1 9 0 R\n' + '>>\n' + '>>', ]); }); }); ================================================ FILE: tests/unit/crypto.spec.js ================================================ import { md5Hash, md5Hex } from '../../lib/crypto/md5'; import sha256Hash from '../../lib/crypto/sha256'; import { aesCbcEncrypt, aesEcbEncrypt } from '../../lib/crypto/aes'; import rc4 from '../../lib/crypto/rc4'; import randomBytes from '../../lib/crypto/random'; describe('crypto/md5', () => { test('md5Hash returns correct hash for string', () => { const result = md5Hash('hello'); const hex = Array.from(result, (b) => b.toString(16).padStart(2, '0')).join( '', ); expect(hex).toBe('5d41402abc4b2a76b9719d911017c592'); }); test('md5Hash returns correct hash for Uint8Array', () => { const input = new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]); // "hello" const result = md5Hash(input); const hex = Array.from(result, (b) => b.toString(16).padStart(2, '0')).join( '', ); expect(hex).toBe('5d41402abc4b2a76b9719d911017c592'); }); test('md5Hex returns hex string', () => { expect(md5Hex('hello')).toBe('5d41402abc4b2a76b9719d911017c592'); }); test('md5Hash empty string', () => { const hex = md5Hex(''); expect(hex).toBe('d41d8cd98f00b204e9800998ecf8427e'); }); }); describe('crypto/sha256', () => { test('sha256Hash returns correct hash', () => { const input = new TextEncoder().encode('hello'); const result = sha256Hash(input); const hex = Array.from(result, (b) => b.toString(16).padStart(2, '0')).join( '', ); expect(hex).toBe( '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824', ); }); test('sha256Hash empty input', () => { const result = sha256Hash(new Uint8Array(0)); const hex = Array.from(result, (b) => b.toString(16).padStart(2, '0')).join( '', ); expect(hex).toBe( 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', ); }); }); describe('crypto/rc4', () => { test('rc4 encrypts correctly with known test vector', () => { // Test vector: Key = "Key", Plaintext = "Plaintext" const key = new TextEncoder().encode('Key'); const plaintext = new TextEncoder().encode('Plaintext'); const ciphertext = rc4(plaintext, key); expect(ciphertext).toEqual( new Uint8Array([0xbb, 0xf3, 0x16, 0xe8, 0xd9, 0x40, 0xaf, 0x0a, 0xd3]), ); }); test('rc4 is symmetric (encrypt then decrypt)', () => { const key = new TextEncoder().encode('secret'); const plaintext = new TextEncoder().encode('Hello, World!'); const encrypted = rc4(plaintext, key); const decrypted = rc4(encrypted, key); expect(decrypted).toEqual(plaintext); }); test('rc4 with different keys produces different output', () => { const key1 = new TextEncoder().encode('key1'); const key2 = new TextEncoder().encode('key2'); const plaintext = new TextEncoder().encode('test'); const result1 = rc4(plaintext, key1); const result2 = rc4(plaintext, key2); expect(result1).not.toEqual(result2); }); }); describe('crypto/aes', () => { test('aesCbcEncrypt with padding', () => { // AES-128-CBC test const key = new Uint8Array(16).fill(0); // 16 zero bytes const iv = new Uint8Array(16).fill(0); // 16 zero bytes const plaintext = new TextEncoder().encode('hello'); // 5 bytes const result = aesCbcEncrypt(plaintext, key, iv, true); expect(result).toBeInstanceOf(Uint8Array); // With PKCS7 padding: 5 bytes -> 16 bytes (padded with 11 bytes of 0x0b) expect(result.length).toBe(16); }); test('aesCbcEncrypt without padding', () => { const key = new Uint8Array(16).fill(0); const iv = new Uint8Array(16).fill(0); const plaintext = new Uint8Array(16).fill(0x41); // 16 'A's const result = aesCbcEncrypt(plaintext, key, iv, false); expect(result).toBeInstanceOf(Uint8Array); expect(result.length).toBe(16); }); test('aesCbcEncrypt with 256-bit key', () => { const key = new Uint8Array(32).fill(0); // 32 zero bytes (AES-256) const iv = new Uint8Array(16).fill(0); const plaintext = new TextEncoder().encode('test message'); // 12 bytes const result = aesCbcEncrypt(plaintext, key, iv, true); expect(result).toBeInstanceOf(Uint8Array); // With PKCS7 padding: 12 bytes -> 16 bytes expect(result.length).toBe(16); }); test('aesEcbEncrypt', () => { const key = new Uint8Array(16).fill(0); const plaintext = new Uint8Array(16).fill(0); const result = aesEcbEncrypt(plaintext, key); expect(result).toEqual( // AES-128-ECB with all zeros: known result new Uint8Array([ 0x66, 0xe9, 0x4b, 0xd4, 0xef, 0x8a, 0x2c, 0x3b, 0x88, 0x4c, 0xfa, 0x59, 0xca, 0x34, 0x2b, 0x2e, ]), ); }); }); describe('crypto/random', () => { test('randomBytes returns Uint8Array of correct length', () => { const result = randomBytes(16); expect(result).toBeInstanceOf(Uint8Array); expect(result.length).toBe(16); }); test('randomBytes returns different values each time', () => { const result1 = randomBytes(16); const result2 = randomBytes(16); // Very unlikely to be equal expect(result1).not.toEqual(result2); }); test('randomBytes with various lengths', () => { expect(randomBytes(0).length).toBe(0); expect(randomBytes(1).length).toBe(1); expect(randomBytes(32).length).toBe(32); expect(randomBytes(100).length).toBe(100); }); }); ================================================ FILE: tests/unit/document.spec.js ================================================ import { vi } from 'vitest'; import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('PDFDocument', () => { describe('font option', () => { let fontSpy; beforeEach(() => { fontSpy = vi.spyOn(PDFDocument.prototype, 'font').mockReturnThis(); }); afterEach(() => { fontSpy.mockRestore(); }); test('not defined', () => { new PDFDocument(); expect(fontSpy).toBeCalledWith('Helvetica', null); }); test('a string value', () => { new PDFDocument({ font: 'Roboto' }); expect(fontSpy).toBeCalledWith('Roboto', null); }); test('a falsy value', () => { new PDFDocument({ font: null }); new PDFDocument({ font: false }); new PDFDocument({ font: '' }); expect(fontSpy).not.toBeCalled(); }); }); describe('document info', () => { test('accepts properties with value undefined', () => { expect(() => new PDFDocument({ info: { Title: undefined } })).not.toThrow( new TypeError("Cannot read property 'toString' of undefined"), ); }); test('accepts properties with value null', () => { expect(() => new PDFDocument({ info: { Title: null } })).not.toThrow( new TypeError("Cannot read property 'toString' of null"), ); }); }); test('metadata is present for PDF 1.4', () => { let doc = new PDFDocument({ pdfVersion: '1.4' }); const data = logData(doc); doc.end(); let catalog = data[data.length - 28]; expect(catalog).toContain('/Metadata'); }); test('metadata is NOT present for PDF 1.3', () => { let doc = new PDFDocument({ pdfVersion: '1.3' }); const data = logData(doc); doc.end(); let catalog = data[data.length - 27]; expect(catalog).not.toContain('/Metadata'); }); describe('pageLayout', () => { test('sets PageLayout in catalog when provided', () => { const doc = new PDFDocument({ pageLayout: 'twoColumnLeft' }); expect(doc._root.data.PageLayout).toBe('TwoColumnLeft'); }); test('does not set PageLayout when not provided', () => { const doc = new PDFDocument(); expect(doc._root.data.PageLayout).toBeUndefined(); }); test.each([ ['singlePage', 'SinglePage'], ['oneColumn', 'OneColumn'], ['twoColumnLeft', 'TwoColumnLeft'], ['twoColumnRight', 'TwoColumnRight'], ['twoPageLeft', 'TwoPageLeft'], ['twoPageRight', 'TwoPageRight'], ])('converts %s to %s', (input, expected) => { const doc = new PDFDocument({ pageLayout: input }); expect(doc._root.data.PageLayout).toBe(expected); }); }); }); ================================================ FILE: tests/unit/font.spec.js ================================================ import { vi } from 'vitest'; import PDFDocument from '../../lib/document'; import PDFFontFactory from '../../lib/font_factory'; import { logData } from './helpers'; describe('EmbeddedFont', () => { test('no fontLayoutCache option', () => { const document = new PDFDocument(); const font = PDFFontFactory.open( document, 'tests/fonts/Roboto-Regular.ttf', ); const runSpy = vi.spyOn(font, 'layoutRun'); font.layout('test'); font.layout('test'); font.layout('test'); font.layout('test'); expect(runSpy).toBeCalledTimes(1); }); test('fontLayoutCache = false', () => { const document = new PDFDocument({ fontLayoutCache: false }); const font = PDFFontFactory.open( document, 'tests/fonts/Roboto-Regular.ttf', ); const runSpy = vi.spyOn(font, 'layoutRun'); font.layout('test'); font.layout('test'); font.layout('test'); font.layout('test'); expect(runSpy).toBeCalledTimes(4); }); describe('emebed', () => { test('sets BaseName based on font id and postscript name', () => { const document = new PDFDocument(); const font = PDFFontFactory.open( document, 'tests/fonts/Roboto-Regular.ttf', undefined, 'F1099', ); const dictionary = { end: () => {}, }; font.dictionary = dictionary; font.embed(); expect(dictionary.data.BaseFont).toBe('BAJJZZ+Roboto-Regular'); }); }); describe('toUnicodeMap', () => { test('bfrange lines should not cross highcode boundary', () => { const doc = new PDFDocument({ compress: false }); const font = PDFFontFactory.open( doc, 'tests/fonts/Roboto-Regular.ttf', undefined, 'F1099', ); // 398 different glyphs font.encode('ABCDEFGHIJKLMNOPQRSTUVWXYZ'); font.encode('abcdefghijklmnopqrstuvwxyz'); font.encode('ÁÀÂÄÅÃÆÇÐÉÈÊËÍÌÎÏÑÓÒÔÖÕØŒÞÚÙÛÜÝŸ'); font.encode('áàâäãåæçðéèêëíìîïıñóòôöõøœßþúùûüýÿ'); font.encode('ĀĂĄĆČĎĐĒĖĘĚĞĢĪĮİĶŁĹĻĽŃŅŇŌŐŔŖŘŠŚŞȘŢȚŤŪŮŰŲŽŹŻ'); font.encode('āăąćčďđēėęěğģīįķłĺļľńņňōőŕŗřšśşșţțťūůűųžźż'); font.encode('ΑΒΓ∆ΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΆΈΉΊΌΎΏΪΫ'); font.encode('αβγδεζηθικλµνξοπρςστυφχψωάέήίόύώϊϋΐΰ'); font.encode('АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'); font.encode('абвгдежзийклмнопрстуфхцчшщъыьэюя'); font.encode('ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏҐӁҒҖҚҢҮҰҲҶҺӘӢӨӮ'); font.encode('ѐёђѓєѕіїјљњћќѝўџґӂғҗқңүұҳҷһәӣөӯ'); const docData = logData(doc); font.toUnicodeCmap(); const text = docData.map((d) => d.toString('utf8')).join(''); let glyphs = 0; for (const block of text.matchAll( /beginbfrange\n((?:.|\n)*?)\nendbfrange/g, )) { for (const line of block[1].matchAll( /^<([0-9a-f]+)>\s+<([0-9a-f]+)>\s+\[/gim, )) { const low = parseInt(line[1], 16); const high = parseInt(line[2], 16); glyphs += high - low + 1; expect(high & 0xffffff00).toBe(low & 0xffffff00); } } expect(glyphs).toBe(398 + 1); }); test('beginbfrange count should match actual number of ranges', () => { const doc = new PDFDocument({ compress: false }); const font = PDFFontFactory.open( doc, 'tests/fonts/Roboto-Regular.ttf', undefined, 'F1099', ); // Generate more than 256 unique characters to trigger multiple bfrange entries // Each chunk is 256 characters, so we need >256 to get multiple ranges const chars = []; // Add ASCII characters (0-127) for (let i = 32; i < 127; i++) { chars.push(String.fromCharCode(i)); } // Add extended Latin characters (128-255) for (let i = 160; i < 256; i++) { chars.push(String.fromCharCode(i)); } // Add additional Unicode characters to exceed 256 const additionalChars = 'ÁÀÂÄÅÃÆÇÐÉÈÊËÍÌÎÏÑÓÒÔÖÕØŒÞÚÙÛÜÝŸáàâäãåæçðéèêëíìîïıñóòôöõøœßþúùûüýÿĀĂĄĆČĎĐĒĖĘĚĞĢĪĮİĶŁĹĻĽŃŅŇŌŐŔŖŘŠŚŞȘŢȚŤŪŮŰŲŽŹŻāăąćčďđēėęěğģīįķłĺļľńņňōőŕŗřšśşșţțťūůűųžźż'; const allChars = chars.join('') + additionalChars; font.encode(allChars); const docData = logData(doc); font.toUnicodeCmap(); const text = docData.map((d) => d.toString('utf8')).join(''); // Extract the count declaration from "N beginbfrange" const beginbfrangeMatch = text.match(/(\d+)\s+beginbfrange/); expect(beginbfrangeMatch).not.toBeNull(); const declaredCount = parseInt(beginbfrangeMatch[1], 10); // Count actual bfrange entries let actualRangeCount = 0; const bfrangeBlockMatch = text.match( /beginbfrange\n((?:.|\n)*?)\nendbfrange/, ); if (bfrangeBlockMatch) { const bfrangeContent = bfrangeBlockMatch[1]; // Match each bfrange line: [entries] const rangeMatches = bfrangeContent.matchAll( /^<([0-9a-f]+)>\s+<([0-9a-f]+)>\s+\[/gm, ); actualRangeCount = [...rangeMatches].length; } // The declared count must match the actual number of ranges expect(declaredCount).toBe(actualRangeCount); expect(actualRangeCount).toBeGreaterThan(1); // Should have multiple ranges when >256 chars }); test('beginbfrange count should be 1 for fonts with <=256 characters', () => { const doc = new PDFDocument({ compress: false }); const font = PDFFontFactory.open( doc, 'tests/fonts/Roboto-Regular.ttf', undefined, 'F1099', ); // Generate exactly 256 characters const chars = []; for (let i = 0; i < 256; i++) { chars.push(String.fromCharCode(i + 32)); // Start from space (32) to avoid control chars } font.encode(chars.join('')); const docData = logData(doc); font.toUnicodeCmap(); const text = docData.map((d) => d.toString('utf8')).join(''); // Extract the count declaration const beginbfrangeMatch = text.match(/(\d+)\s+beginbfrange/); expect(beginbfrangeMatch).not.toBeNull(); const declaredCount = parseInt(beginbfrangeMatch[1], 10); // Count actual bfrange entries let actualRangeCount = 0; const bfrangeBlockMatch = text.match( /beginbfrange\n((?:.|\n)*?)\nendbfrange/, ); if (bfrangeBlockMatch) { const bfrangeContent = bfrangeBlockMatch[1]; const rangeMatches = bfrangeContent.matchAll( /^<([0-9a-f]+)>\s+<([0-9a-f]+)>\s+\[/gm, ); actualRangeCount = [...rangeMatches].length; } // For <=256 characters, should have exactly 1 range expect(declaredCount).toBe(1); expect(actualRangeCount).toBe(1); expect(declaredCount).toBe(actualRangeCount); }); }); }); describe('sizeToPoint', () => { let doc; beforeEach(() => { doc = new PDFDocument({ font: 'Helvetica', fontSize: 12, size: [250, 500], margin: { top: 10, right: 5, bottom: 10, left: 5 }, }); }); test.each([ [1, 1], ['1', 1], [true, 1], [false, 0], ['1em', 12], ['1in', 72], ['1px', 0.75], ['1cm', 28.3465], ['1mm', 2.8346], ['1pc', 12], ['1ex', 11.1], ['1ch', 6.672], ['1vw', 2.5], ['1vh', 5], ['1vmin', 2.5], ['1vmax', 5], ['1%', 0.12], ['1pt', 1], ])('%o -> %s', (size, expected) => { expect(doc.sizeToPoint(size)).toBeCloseTo(expected, 4); }); test('1rem -> 12', () => { doc.fontSize(15); expect(doc.sizeToPoint('1em')).toEqual(15); expect(doc.sizeToPoint('1rem')).toEqual(12); }); }); ================================================ FILE: tests/unit/gradient.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('Gradient', function () { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, }); }); test('Multiple stops', () => { const docData = logData(document); const gradient = document.linearGradient(0, 0, 300, 0); gradient.stop(0, 'green').stop(0.5, 'red').stop(1, 'green'); document.rect(0, 0, 300, 300).fill(gradient); document.end(); expect(docData).toContainChunk([ '8 0 obj', `<< /FunctionType 2 /Domain [0 1] /C0 [0 0.501961 0] /C1 [1 0 0] /N 1 >>`, ]); expect(docData).toContainChunk([ '9 0 obj', `<< /FunctionType 2 /Domain [0 1] /C0 [1 0 0] /C1 [0 0.501961 0] /N 1 >>`, ]); expect(docData).toContainChunk([ '10 0 obj', `<< /FunctionType 3 /Domain [0 1] /Functions [8 0 R 9 0 R] /Bounds [0.5] /Encode [0 1 0 1] >>`, ]); expect(docData).toContainChunk([ '11 0 obj', `<< /ShadingType 2 /ColorSpace /DeviceRGB /Coords [0 0 300 0] /Function 10 0 R /Extend [true true] >>`, ]); expect(docData).toContainChunk([ '12 0 obj', `<< /Type /Pattern /PatternType 2 /Shading 11 0 R /Matrix [1 0 0 -1 0 792] >>`, ]); }); }); ================================================ FILE: tests/unit/helpers.js ================================================ /** * @import PDFDocument from '../../lib/document'; */ /** * @typedef {object} TextStream * @property {string} text * @property {string} font * @property {number} fontSize * @property {number} x * @property {number} y * * @typedef {string | Buffer} PDFDataItem * @typedef {Array} PDFData * * @typedef {object} PDFDataObject * @property {PDFDataItem[]} items */ /** * @param {PDFDocument} doc * @return {PDFData} */ function logData(doc) { const loggedData = []; const originalMethod = doc._write; doc._write = function (data) { loggedData.push(data); originalMethod.call(this, data); }; return loggedData; } function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string } function joinTokens(...args) { let a = args.map((i) => escapeRegExp(i)); let r = new RegExp('^' + a.join('\\s*') + '$'); return r; } /** * @description * Returns an array of objects from the PDF data. Object items are surrounded by /\d 0 obj/ and 'endobj'. * @param {PDFData} data * @return {Array} */ function getObjects(data) { const objects = []; let currentObject = null; for (const item of data) { if (item instanceof Buffer) { if (currentObject) { currentObject.items.push(item); } } else if (typeof item === 'string') { if (/^\d+\s0\sobj/.test(item)) { currentObject = { items: [] }; objects.push(currentObject); } else if (item === 'endobj') { currentObject = null; } else if (currentObject) { currentObject.items.push(item); } } } return objects; } /** * Parse all text objects (multiple TJ) in a decoded stream. * @param {string} decodedStream * @return {TextStream[]} */ function parseTextStreams(decodedStream) { const tjRegex = /\[([^\]]+)\]\s+TJ/g; const fontRegex = /\/([A-Za-z0-9]+)\s+(\d+(?:\.\d+)?)\s+Tf/g; const tmRegex = /([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+Tm/g; const cmRegex = /([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)\s+cm/g; /** @type {TextStream[]} */ const results = []; let tjMatch; while ((tjMatch = tjRegex.exec(decodedStream)) !== null) { const tjIndex = tjMatch.index; let fMatch; let lastFontName; let lastFontSize; fontRegex.lastIndex = 0; while ( (fMatch = fontRegex.exec(decodedStream)) !== null && fMatch.index < tjIndex ) { lastFontName = fMatch[1]; lastFontSize = parseFloat(fMatch[2]); } if (!lastFontName || !lastFontSize) continue; // Find the nearest preceding text matrix (Tm) and current transformation (cm) let tmMatch; let lastTm = undefined; tmRegex.lastIndex = 0; while ( (tmMatch = tmRegex.exec(decodedStream)) !== null && tmMatch.index < tjIndex ) { lastTm = tmMatch; } // Default to origin if no Tm found let tx = 0; let ty = 0; if (lastTm) { tx = parseFloat(lastTm[5]); ty = parseFloat(lastTm[6]); } // Find the nearest preceding cm (CTM) let cmMatch; let lastCm = undefined; cmRegex.lastIndex = 0; while ( (cmMatch = cmRegex.exec(decodedStream)) !== null && cmMatch.index < tjIndex ) { lastCm = cmMatch; } // Apply transform: [a b c d e f] to point (tx, ty) let x = tx; let y = ty; if (lastCm) { const a = parseFloat(lastCm[1]); const b = parseFloat(lastCm[2]); const c = parseFloat(lastCm[3]); const d = parseFloat(lastCm[4]); const e = parseFloat(lastCm[5]); const f = parseFloat(lastCm[6]); x = a * tx + c * ty + e; y = b * tx + d * ty + f; } const arrayContent = tjMatch[1]; let text = ''; const hexMatches = [...arrayContent.matchAll(/<([0-9a-fA-F]+)>/g)]; for (const m of hexMatches) { const hex = m[1]; for (let i = 0; i < hex.length; i += 2) { // this is a simplified version // the correct way is to retrieve the encoding from /Resources /Font dictionary and decode using it // https://stackoverflow.com/a/29468049/5724645 const code = parseInt(hex.substring(i, i + 2), 16); let char = String.fromCharCode(code); if (code === 0x0a) char = '\n'; else if (code === 0x0d) char = '\r'; else if (code === 0x85) char = '...'; text += char; } } results.push({ text, font: lastFontName, fontSize: lastFontSize, x, y }); } return results; } export { logData, joinTokens, parseTextStreams, getObjects }; ================================================ FILE: tests/unit/helpers.spec.js ================================================ import { parseTextStreams } from './helpers.js'; describe('parseTextStreams', () => { it('should parse stream with multiple text items', () => { const stream = `1 0 0 -1 0 792 cm 72 76.5 m 72 74.843146 73.343146 73.5 75 73.5 c 76.656854 73.5 78 74.843146 78 76.5 c 78 78.156854 76.656854 79.5 75 79.5 c 73.343146 79.5 72 78.156854 72 76.5 c h f q 1 0 0 -1 0 792 cm BT 1 0 0 1 87 711.384 Tm /F1 12 Tf [<6974656d2031> 0] TJ ET Q 72 90.372 m 72 88.715146 73.343146 87.372 75 87.372 c 76.656854 87.372 78 88.715146 78 90.372 c 78 92.028854 76.656854 93.372 75 93.372 c 73.343146 93.372 72 92.028854 72 90.372 c h f q 1 0 0 -1 0 792 cm BT 1 0 0 1 87 697.512 Tm /F1 12 Tf [<6974656d2032> 0] TJ ET Q 72 104.244 m 72 102.587146 73.343146 101.244 75 101.244 c 76.656854 101.244 78 102.587146 78 104.244 c 78 105.900854 76.656854 107.244 75 107.244 c 73.343146 107.244 72 105.900854 72 104.244 c h f q 1 0 0 -1 0 792 cm BT 1 0 0 1 87 683.64 Tm /F1 12 Tf [<6974656d2033> 0] TJ ET Q `; const result = parseTextStreams(stream); expect(result).toHaveLength(3); // Common fields expect(result[0].text).toBe('item 1'); expect(result[0].font).toBe('F1'); expect(result[0].fontSize).toBe(12); expect(result[1].text).toBe('item 2'); expect(result[1].font).toBe('F1'); expect(result[1].fontSize).toBe(12); expect(result[2].text).toBe('item 3'); expect(result[2].font).toBe('F1'); expect(result[2].fontSize).toBe(12); // Positions: x = 87, y from the Tm after Y-flip CTM (top-left origin) expect(result[0].x).toBeCloseTo(87, 3); expect(result[0].y).toBeCloseTo(80.616, 3); expect(result[1].x).toBeCloseTo(87, 3); expect(result[1].y).toBeCloseTo(94.488, 3); expect(result[2].x).toBeCloseTo(87, 3); expect(result[2].y).toBeCloseTo(108.36, 3); }); }); ================================================ FILE: tests/unit/image.spec.js ================================================ import PDFDocument from '../../lib/document'; import fs from 'fs'; import JPEG from '../../lib/image/jpeg'; describe('Image', function () { /** * @type {PDFDocument} */ let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, }); }); test('y position should be updated', () => { const originalY = document.y; const imageHeight = 400; document.image('./tests/images/bee.png'); expect(document.y).toBe(originalY + imageHeight); }); test('parse JPEG with null byte padding in EXIF (issue #1175)', () => { const data = fs.readFileSync('./tests/images/issue-1175.jpeg'); const jpeg = new JPEG(data, 'test'); expect(jpeg.width).toBe(375); expect(jpeg.height).toBe(500); expect(jpeg.orientation).toBe(1); }); }); ================================================ FILE: tests/unit/line_wrapper.spec.js ================================================ import PDFDocument from '../../lib/document'; import LineWrapper from '../../lib/line_wrapper'; describe('LineWrapper', () => { let document; beforeEach(() => { document = new PDFDocument({ compress: false, margin: 0, }); }); test('ellipsis is present only on last line of multiline text', () => { // There is a weird edge case where ellipsis occurs on lines // in the middle of text due to number rounding errors // // There is probably a simpler combination of values but this is one I found in the wild document.y = 402.1999999999999; document.fontSize(7.26643598615917); const wrapper = new LineWrapper(document, { width: 300, height: 50.399999999999864, ellipsis: true, }); let wrapperOutput = ''; wrapper.on('line', (buffer) => { wrapperOutput += buffer; document.y += document.currentLineHeight(true); }); wrapper.wrap('- A\n- B\n- C\n- D\n- E\n- F', {}); expect(wrapperOutput).toBe('- A\n- B\n- C\n- D\n- E\n- F'); }); test('line break is handled correctly when at weird heights', () => { // There is probably a simpler combination of values but this is one I found in the wild document.y = 1 / 3; document.fontSize(Math.fround(42.3 / 3)); let lineHeight = document.currentLineHeight(true); const wrapper = new LineWrapper(document, { width: 300, height: lineHeight * 3, }); let wrapperOutput = ''; wrapper.on('line', (buffer) => { wrapperOutput += buffer; document.y += lineHeight; }); // Limit to 3/4 lines wrapper.wrap('A\nB\nC\nD', {}); expect(wrapperOutput).toBe('A\nB\nC\n'); }); test('line break is handled correctly with ellipsis', () => { // There is probably a simpler combination of values but this is one I found in the wild document.y = 1 / 3; document.fontSize(Math.fround(42.3 / 3)); let lineHeight = document.currentLineHeight(true); const wrapper = new LineWrapper(document, { width: 300, height: lineHeight * 3, ellipsis: true, }); let wrapperOutput = ''; wrapper.on('line', (buffer) => { wrapperOutput += buffer; document.y += lineHeight; }); // Limit to 3/4 lines wrapper.wrap('A\nB\nC\nD', {}); expect(wrapperOutput).toBe('A\nB\nC…'); }); test('emits events in order for a single-line text', () => { const wrapper = new LineWrapper(document, { width: 300 }); const events = []; wrapper.on('sectionStart', () => events.push('sectionStart')); wrapper.on('firstLine', () => events.push('firstLine')); wrapper.on('lastLine', () => events.push('lastLine')); wrapper.on('line', () => events.push('line')); wrapper.on('sectionEnd', () => events.push('sectionEnd')); wrapper.wrap('Hello', {}); expect(events).toEqual([ 'sectionStart', 'firstLine', 'lastLine', 'line', 'sectionEnd', ]); }); test('emits events in order for a single-line text that triggers a page break', () => { const wrapper = new LineWrapper(document, { width: 300 }); const events = []; document.text('at the bottom of the page', 0, 770); wrapper.on('sectionStart', () => events.push('sectionStart')); wrapper.on('firstLine', () => events.push('firstLine')); wrapper.on('lastLine', () => events.push('lastLine')); wrapper.on('line', () => { events.push('line'); // mimic line height adjustment document.y += document.currentLineHeight(true); }); wrapper.on('sectionEnd', () => events.push('sectionEnd')); wrapper.wrap('Hello', {}); expect(events).toEqual([ 'sectionStart', 'firstLine', 'lastLine', 'line', 'sectionEnd', ]); }); test('emits nested events when content spans in multiple pages', () => { const wrapper = new LineWrapper(document, { width: 300 }); const events = []; document.text('near the bottom of the page', 0, 740); wrapper.on('sectionStart', () => events.push('sectionStart')); wrapper.on('firstLine', () => events.push('firstLine')); wrapper.on('lastLine', () => events.push('lastLine')); wrapper.on('line', () => { events.push('line'); // mimic line height adjustment document.y += document.currentLineHeight(true); }); wrapper.on('sectionEnd', () => events.push('sectionEnd')); wrapper.wrap( `multiple lines of text that should span across pages`.repeat(4), {}, ); expect(events).toEqual([ 'sectionStart', 'firstLine', 'line', 'line', 'sectionEnd', 'sectionStart', 'line', 'line', 'lastLine', 'line', 'sectionEnd', ]); }); test('emits columnBreak then pageBreak on overflow', () => { // Set near bottom so first line triggers a section change immediately const lh = document.currentLineHeight(true); document.y = document.page.maxY() - lh + 0.5; const wrapper = new LineWrapper(document, { width: 300, columns: 2 }); let columnBreaks = 0; let pageBreaks = 0; wrapper.on('columnBreak', () => columnBreaks++); wrapper.on('pageBreak', () => pageBreaks++); // First wrap should overflow to the next column wrapper.wrap('A', {}); expect(columnBreaks).toBeGreaterThanOrEqual(1); // Move near bottom again; second overflow should create a new page document.y = document.page.maxY() - lh + 0.5; wrapper.wrap('B', {}); expect(pageBreaks).toBeGreaterThanOrEqual(1); }); }); ================================================ FILE: tests/unit/list.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('List', () => { /** * @type {PDFDocument} */ let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, }); }); describe('list', () => { test('with simple content', () => { const docData = logData(document); document.list(['item 1', 'item 2', 'item 3']); document.end(); expect(docData).toContainText({ text: 'item 1' }); expect(docData).toContainText({ text: 'item 2' }); expect(docData).toContainText({ text: 'item 3' }); }); test('position after automatic new page - #1596', () => { const docData = logData(document); document.text('near the bottom of the page', 0, 680); document.list(['item 4', 'item 5', 'item 6']); document.end(); expect(docData).toContainText({ text: 'item 4', x: 15 }); expect(docData).toContainText({ text: 'item 5', x: 15 }); expect(docData).toContainText({ text: 'item 6', x: 15 }); }); }); }); ================================================ FILE: tests/unit/markings.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('Markings', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, }); }); describe('marked content', () => { test('non-structural', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /Span BMC EMC `, 'binary', ); document.markContent('Span'); document.endMarkedContent(); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); }); test('structural', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /Span << /MCID 0 >> BDC EMC /Span << /MCID 1 >> BDC EMC `, 'binary', ); const structureContent1 = document.markStructureContent('Span'); document.endMarkedContent(); const structureContent2 = document.markStructureContent('Span'); document.endMarkedContent(); document.end(); expect(structureContent1.refs.length).toEqual(1); expect(structureContent1.refs[0].pageRef.toString()).toEqual('7 0 R'); expect(structureContent1.refs[0].mcid).toEqual(0); expect(structureContent2.refs.length).toEqual(1); expect(structureContent2.refs[0].pageRef.toString()).toEqual('7 0 R'); expect(structureContent2.refs[0].mcid).toEqual(1); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); }); test('marked using closure', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /Span << /MCID 0 >> BDC EMC /Span << /MCID 1 >> BDC EMC `, 'binary', ); document.addStructure(document.struct('Span', () => {})); document.addStructure(document.struct('Span', () => {})); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); }); test('with options', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /Artifact << /Type /Pagination /BBox [40 722 570 742] /Attached [/Top] >> BDC EMC /Span << /Lang (en-AU) /Alt (Hi, earth! ) /E (Greetings, terrestrial sphere! ) /ActualText (Hello, world! ) >> BDC EMC `, 'binary', ); document.markContent('Artifact', { type: 'Pagination', bbox: [40, 50, 570, 70], attached: ['Top'], }); document.endMarkedContent(); document.markContent('Span', { lang: 'en-AU', alt: 'Hi, earth! ', actual: 'Hello, world! ', expanded: 'Greetings, terrestrial sphere! ', }); document.endMarkedContent(); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); }); test('automatically closed', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /Span BMC /P << /MCID 0 >> BDC /Span BMC EMC EMC /P << /MCID 1 >> BDC EMC /Artifact BMC EMC /Artifact BMC EMC /P << /MCID 2 >> BDC EMC /P << /MCID 3 >> BDC EMC EMC `, 'binary', ); document.markContent('Span'); document.markStructureContent('P'); document.markContent('Span'); document.markStructureContent('P'); document.markContent('Artifact'); document.markContent('Artifact'); document.markStructureContent('P'); document.markStructureContent('P'); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); }); test('continued on a new page', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /P << /MCID 0 >> BDC /Span BMC EMC EMC `, 'binary', ); const structureContent = document.markStructureContent('P'); document.markContent('Span'); document.text('on the first page'); document.continueOnNewPage(); document.end(); expect(structureContent.refs.length).toEqual(2); expect(structureContent.refs[0].pageRef.toString()).toEqual('7 0 R'); expect(structureContent.refs[0].mcid).toEqual(0); expect(structureContent.refs[1].pageRef.toString()).toEqual('13 0 R'); expect(structureContent.refs[1].mcid).toEqual(0); expect(docData).toContainChunk([ `11 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); }); }); describe('structure tree', () => { test('atomically constructed', () => { const docData = logData(document); const pContent1 = document.markStructureContent('P'); const linkContent = document.markStructureContent('Link'); const pContent2 = document.markStructureContent('P'); const pContent3 = document.markStructureContent('P'); document.markContent('Span'); const section1 = document.struct('Sect', [ document.struct('P', [ pContent1, document.struct('Link', linkContent), pContent2, ]), ]); const section2 = document.struct('Sect', [ document.struct('P', [pContent3]), ]); document.addStructure(section1).addStructure(section2); document.end(); expect(docData).toContainChunk([ `3 0 obj`, /\/StructTreeRoot 8 0 R/, `endobj`, ]); expect(docData).toContainChunk([`3 0 obj`, /\/MarkInfo 9 0 R/, `endobj`]); expect(docData).toContainChunk([ `8 0 obj`, `<< /Type /StructTreeRoot /ParentTree << /Nums [ 0 [11 0 R 10 0 R 11 0 R 13 0 R] ] >> /ParentTreeNextKey 1 /K [12 0 R 14 0 R] >>`, `endobj`, ]); expect(docData).toContainChunk([ `12 0 obj`, `<<\n/S /Sect\n/P 8 0 R\n/K [11 0 R]\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `11 0 obj`, `<<\n/S /P\n/P 12 0 R\n/K [0 10 0 R 2]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `10 0 obj`, `<<\n/S /Link\n/P 11 0 R\n/K [1]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `14 0 obj`, `<<\n/S /Sect\n/P 8 0 R\n/K [13 0 R]\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `13 0 obj`, `<<\n/S /P\n/P 14 0 R\n/K [3]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([`9 0 obj`, `<<\n>>`, `endobj`]); }); test('incrementally constructed', () => { const docData = logData(document); const pContent1 = document.markStructureContent('P'); const linkContent = document.markStructureContent('Link'); const pContent2 = document.markStructureContent('P'); const pContent3 = document.markStructureContent('P'); document.markContent('Span'); const section1 = document.struct('Sect'); document.addStructure(section1); const section2 = document.struct('Sect'); document.addStructure(section2); const link = document.struct('Link'); link.add(linkContent); const p1 = document.struct('P'); section1.add(p1); p1.add(pContent1).add(link).add(pContent2).end(); const p2 = document.struct('P'); p2.add(pContent3); section2.add(p2); document.end(); expect(docData).toContainChunk([ `3 0 obj`, /\/StructTreeRoot 8 0 R/, `endobj`, ]); expect(docData).toContainChunk([`3 0 obj`, /\/MarkInfo 9 0 R/, `endobj`]); expect(docData).toContainChunk([ `8 0 obj`, `<< /Type /StructTreeRoot /ParentTree << /Nums [ 0 [13 0 R 12 0 R 13 0 R 14 0 R] ] >> /ParentTreeNextKey 1 /K [10 0 R 11 0 R] >>`, `endobj`, ]); expect(docData).toContainChunk([ `10 0 obj`, `<<\n/S /Sect\n/P 8 0 R\n/K [13 0 R]\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `13 0 obj`, `<<\n/S /P\n/P 10 0 R\n/K [0 12 0 R 2]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `12 0 obj`, `<<\n/S /Link\n/P 13 0 R\n/K [1]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `11 0 obj`, `<<\n/S /Sect\n/P 8 0 R\n/K [14 0 R]\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `14 0 obj`, `<<\n/S /P\n/P 11 0 R\n/K [3]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([`9 0 obj`, `<<\n>>`, `endobj`]); }); test('constructed with closures', () => { const docData = logData(document); const section1 = document.struct('Sect'); document.addStructure(section1); const section2 = document.struct('Sect'); const link = document.struct('Link', () => {}); const p1 = document.struct('P'); section1.add(p1); p1.add(() => {}) .add(link) .add(() => {}) .end(); const p2 = document.struct('P', [() => {}]); section2.add(p2); document.addStructure(section2); document.end(); expect(docData).toContainChunk([ `3 0 obj`, /\/StructTreeRoot 9 0 R/, `endobj`, ]); expect(docData).toContainChunk([ `3 0 obj`, /\/MarkInfo 13 0 R/, `endobj`, ]); expect(docData).toContainChunk([ `9 0 obj`, `<< /Type /StructTreeRoot /ParentTree << /Nums [ 0 [12 0 R 11 0 R 12 0 R 14 0 R] ] >> /ParentTreeNextKey 1 /K [8 0 R 10 0 R] >>`, `endobj`, ]); expect(docData).toContainChunk([ `8 0 obj`, `<<\n/S /Sect\n/P 9 0 R\n/K [12 0 R]\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `12 0 obj`, `<<\n/S /P\n/P 8 0 R\n/K [0 11 0 R 2]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `11 0 obj`, `<<\n/S /Link\n/P 12 0 R\n/K [1]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `10 0 obj`, `<<\n/S /Sect\n/P 9 0 R\n/K [14 0 R]\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `14 0 obj`, `<<\n/S /P\n/P 10 0 R\n/K [3]\n/Pg 7 0 R\n>>`, `endobj`, ]); expect(docData).toContainChunk([`13 0 obj`, `<<\n>>`, `endobj`]); }); test('with options', () => { const docData = logData(document); document.addStructure( document.struct('P', { title: 'My Title', lang: 'en-AU', alt: 'My Alternative', expanded: 'My Expansion', actual: 'My Actual Text', }), ); document.end(); expect(docData).toContainChunk([ `8 0 obj`, `<< /S /P /T (My Title) /Lang (en-AU) /Alt (My Alternative) /E (My Expansion) /ActualText (My Actual Text) /P 9 0 R /K [] >>`, `endobj`, ]); }); test('validation', () => { let struct; struct = document.struct('Foo').end(); expect(() => { struct.add(document.struct('Bar')); }).toThrow(); struct = document.struct('Foo', []); expect(() => { struct.add(document.struct('Bar')); }).toThrow(); struct = document.struct('Foo'); let parent = document.struct('Bar').add(struct); expect(() => { parent.add(struct); }).toThrow(); expect(() => { document.struct('Foo', [1]); }).toThrow(); }); test('_currentStructureElement tracking with closures', () => { const section = document.struct('Sect'); document.addStructure(section); let capturedStructElement = null; const paragraph = document.struct('P', () => { capturedStructElement = document._currentStructureElement; }); section.add(paragraph); section.end(); document.end(); expect(capturedStructElement).toBe(paragraph); }); }); describe('accessible document', () => { test('identified as accessible', () => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)), Title: 'My Title', }, displayTitle: true, compress: false, pdfVersion: '1.5', tagged: true, lang: 'en-AU', }); const docData = logData(document); document.end(); expect(docData).toContainChunk([`3 0 obj`, /\/Lang \(en-AU\)/, `endobj`]); expect(docData).toContainChunk([`3 0 obj`, /\/MarkInfo 5 0 R/, `endobj`]); expect(docData).toContainChunk([ `5 0 obj`, `<<\n/Marked true\n>>`, `endobj`, ]); expect(docData).toContainChunk([ `3 0 obj`, /\/ViewerPreferences 7 0 R/, `endobj`, ]); expect(docData).toContainChunk([ `3 0 obj`, /\/StructTreeRoot 6 0 R/, `endobj`, ]); expect(docData).toContainChunk([ `6 0 obj`, `<< /Type /StructTreeRoot /ParentTree << /Nums [ ] >> /ParentTreeNextKey 0 >>`, `endobj`, ]); expect(docData).toContainChunk([ `7 0 obj`, /\/DisplayDocTitle true/, `endobj`, ]); expect(docData).toContainChunk([`trailer`, /\/Info 11 0 R/, `startxref`]); expect(docData).toContainChunk([`11 0 obj`, /\/Title 15 0 R/, `endobj`]); expect(docData).toContainChunk([`15 0 obj`, `(My Title)`, `endobj`]); expect(docData).toContainChunk([`10 0 obj`, /\/Tabs \/S/, `endobj`]); }); }); describe('untagged document', () => { test('taborder not set for unmarked content', () => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)), Title: 'My Title', }, displayTitle: true, compress: false, pdfVersion: '1.5', tagged: false, lang: 'en-AU', }); const docData = logData(document); document.end(); expect(docData).toContainChunk([`3 0 obj`, /\/Lang \(en-AU\)/, `endobj`]); expect(docData).not.toContainChunk([ `3 0 obj`, /\/MarkInfo 5 0 R/, `endobj`, ]); expect(docData).not.toContainChunk([`10 0 obj`, /\/Tabs \/S/, `endobj`]); }); }); describe('text integration', () => { test('adds paragraphs to structure', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /P << /MCID 0 >> BDC q 1 0 0 -1 0 792 cm BT 1 0 0 1 72 711.384 Tm /F1 12 Tf [<50> 40 <6172> 10 <6167> 10 <72> 10 <6170682031> 0] TJ ET Q EMC /P << /MCID 1 >> BDC q 1 0 0 -1 0 792 cm BT 1 0 0 1 72 697.512 Tm /F1 12 Tf [<50> 40 <6172> 10 <6167> 10 <72> 10 <6170682032> 0] TJ ET Q EMC `, 'binary', ); const section = document.struct('Sect'); document.addStructure(section); document.text('Paragraph 1\nParagraph 2', { structParent: section }); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); expect(docData).toContainChunk([ '11 0 obj', '<<\n/S /P\n/P 8 0 R\n/K [0]\n/Pg 7 0 R\n>>', 'endobj', ]); expect(docData).toContainChunk([ '13 0 obj', '<<\n/S /P\n/P 8 0 R\n/K [1]\n/Pg 7 0 R\n>>', 'endobj', ]); expect(docData).toContainChunk([ '8 0 obj', '<<\n/S /Sect\n/P 9 0 R\n/K [11 0 R 13 0 R]\n>>', 'endobj', ]); }); test('adds list items to structure', () => { const docData = logData(document); const stream = Buffer.from( `1 0 0 -1 0 792 cm /Lbl << /MCID 0 >> BDC 72 76.5 m 72 74.843146 73.343146 73.5 75 73.5 c 76.656854 73.5 78 74.843146 78 76.5 c 78 78.156854 76.656854 79.5 75 79.5 c 73.343146 79.5 72 78.156854 72 76.5 c h f EMC /LBody << /MCID 1 >> BDC q 1 0 0 -1 0 792 cm BT 1 0 0 1 87 711.384 Tm /F1 12 Tf [<4974656d2031> 0] TJ ET Q EMC /Lbl << /MCID 2 >> BDC 72 90.372 m 72 88.715146 73.343146 87.372 75 87.372 c 76.656854 87.372 78 88.715146 78 90.372 c 78 92.028854 76.656854 93.372 75 93.372 c 73.343146 93.372 72 92.028854 72 90.372 c h f EMC /LBody << /MCID 3 >> BDC q 1 0 0 -1 0 792 cm BT 1 0 0 1 87 697.512 Tm /F1 12 Tf [<4974656d2032> 0] TJ ET Q EMC `, 'binary', ); const list = document.struct('List'); document.addStructure(list); document.list(['Item 1', 'Item 2'], { structParent: list }); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length ${stream.length} >>`, `stream`, stream, `\nendstream`, `endobj`, ]); expect(docData).toContainChunk([ '12 0 obj', '<<\n/S /Lbl\n/P 10 0 R\n/K [0]\n/Pg 7 0 R\n>>', 'endobj', ]); expect(docData).toContainChunk([ '13 0 obj', '<<\n/S /LBody\n/P 10 0 R\n/K [1]\n/Pg 7 0 R\n>>', 'endobj', ]); expect(docData).toContainChunk([ '16 0 obj', '<<\n/S /Lbl\n/P 15 0 R\n/K [2]\n/Pg 7 0 R\n>>', 'endobj', ]); expect(docData).toContainChunk([ '17 0 obj', '<<\n/S /LBody\n/P 15 0 R\n/K [3]\n/Pg 7 0 R\n>>', 'endobj', ]); expect(docData).toContainChunk([ '10 0 obj', '<<\n/S /LI\n/P 8 0 R\n/K [12 0 R 13 0 R]\n>>', 'endobj', ]); expect(docData).toContainChunk([ '15 0 obj', '<<\n/S /LI\n/P 8 0 R\n/K [16 0 R 17 0 R]\n>>', 'endobj', ]); expect(docData).toContainChunk([ '8 0 obj', '<<\n/S /List\n/P 9 0 R\n/K [10 0 R 15 0 R]\n>>', 'endobj', ]); }); }); }); ================================================ FILE: tests/unit/metadata.spec.js ================================================ import PDFMetadata from '../../lib/metadata'; describe('PDFMetadata', () => { let metadata; beforeEach(() => { metadata = new PDFMetadata(); }); test('initialising metadata', () => { expect(metadata._metadata).toBeDefined(); expect(metadata.getLength()).toBeGreaterThan(0); expect(typeof metadata._metadata).toBe('string'); }); test('contains appended XML', () => { let xml = ` Test `; metadata.append(xml); expect(metadata.getXML()).toContain(xml); }); test('closing tags', () => { let length = metadata.getLength(); metadata.end(); expect(metadata.getLength()).toBeGreaterThan(length); }); }); ================================================ FILE: tests/unit/object.spec.js ================================================ import PDFObject from '../../lib/object'; describe('PDFObject', () => { describe('convert', () => { test('string literal', () => { expect(PDFObject.convert('test')).toEqual('/test'); }); test('string literal with unicode', () => { expect(PDFObject.convert('αβγδ')).toEqual('/αβγδ'); }); test('String object', () => { expect(PDFObject.convert(new String('test'))).toEqual('(test)'); }); test('String object with unicode', () => { const result = PDFObject.convert(new String('αβγδ')); expect(result.length).toEqual(12); expect(result).toMatchInlineSnapshot(`"(þÿ±²³´)"`); }); }); }); ================================================ FILE: tests/unit/outline.spec.js ================================================ import PDFDocument from '../../lib/document'; describe('PDFOutline', () => { describe('PageMode', () => { test('sets PageMode to UseOutlines when not already set', () => { const doc = new PDFDocument(); doc.outline.addItem('Test'); doc.end(); expect(doc._root.data.PageMode).toBe('UseOutlines'); }); test('preserves existing PageMode when already set', () => { const doc = new PDFDocument(); doc._root.data.PageMode = 'FullScreen'; doc.outline.addItem('Test'); doc.end(); expect(doc._root.data.PageMode).toBe('FullScreen'); }); }); describe('addItem', () => { test('creates outline item for current page by default', () => { const doc = new PDFDocument(); const outline = doc.outline; // Add first page content doc.text('Page 1'); // Add outline item (should point to page 1) const item = outline.addItem('Chapter 1'); expect(item.outlineData.Dest[0]).toBe(doc.page.dictionary); }); test('creates outline item for specific page when pageNumber is provided', () => { const doc = new PDFDocument(); const outline = doc.outline; // Create multiple pages doc.text('Page 1'); doc.addPage(); doc.text('Page 2'); doc.addPage(); doc.text('Page 3'); // Add outline item pointing to page 1 (index 0) const item1 = outline.addItem('Chapter 1', { pageNumber: 0 }); // Add outline item pointing to page 2 (index 1) const item2 = outline.addItem('Chapter 2', { pageNumber: 1 }); // Get page references const pages = doc._root.data.Pages.data.Kids; expect(item1.outlineData.Dest[0]).toBe(pages[0]); expect(item2.outlineData.Dest[0]).toBe(pages[1]); }); test('falls back to current page when pageNumber is null', () => { const doc = new PDFDocument(); const outline = doc.outline; doc.text('Page 1'); doc.addPage(); doc.text('Page 2'); // pageNumber: null should use current page (page 2) const item = outline.addItem('Current Page', { pageNumber: null }); expect(item.outlineData.Dest[0]).toBe(doc.page.dictionary); }); test('supports nested outline items with page numbers', () => { const doc = new PDFDocument(); const outline = doc.outline; doc.text('Page 1'); doc.addPage(); doc.text('Page 2'); doc.addPage(); doc.text('Page 3'); const pages = doc._root.data.Pages.data.Kids; // Create parent pointing to page 1 const parent = outline.addItem('Part 1', { pageNumber: 0 }); // Create child pointing to page 2 const child = parent.addItem('Chapter 1', { pageNumber: 1 }); expect(parent.outlineData.Dest[0]).toBe(pages[0]); expect(child.outlineData.Dest[0]).toBe(pages[1]); }); }); describe('destination type', () => { test('uses Fit destination by default', () => { const doc = new PDFDocument(); const outline = doc.outline; doc.text('Page 1'); const item = outline.addItem('Chapter 1'); expect(item.outlineData.Dest[1]).toBe('Fit'); }); test('uses XYZ destination with position and zoom options', () => { const doc = new PDFDocument(); const outline = doc.outline; doc.text('Page 1'); const item = outline.addItem('Chapter 1', { fit: false, top: 100, left: 50, zoom: 1.5, }); expect(item.outlineData.Dest[1]).toBe('XYZ'); // XYZ format: [page, 'XYZ', left, top, zoom] expect(item.outlineData.Dest[4]).toBe(1.5); // zoom }); test('uses Fit destination when fit option is true', () => { const doc = new PDFDocument(); const outline = doc.outline; doc.text('Page 1'); const item = outline.addItem('Chapter 1', { fit: true, top: 100, // should be ignored when fit is true }); expect(item.outlineData.Dest[1]).toBe('Fit'); expect(item.outlineData.Dest.length).toBe(2); }); test('calculates XYZ coordinates correctly', () => { const doc = new PDFDocument({ size: [612, 792] }); // Letter size const outline = doc.outline; doc.text('Page 1'); const item = outline.addItem('Chapter 1', { fit: false, top: 100, left: 50, zoom: 0, }); // XYZ format: [page, 'XYZ', left, top, zoom] // left = pageWidth - options.left = 612 - 50 = 562 // top = pageHeight - options.top = 792 - 100 = 692 expect(item.outlineData.Dest[2]).toBe(562); // left expect(item.outlineData.Dest[3]).toBe(692); // top expect(item.outlineData.Dest[4]).toBe(0); // zoom }); }); }); ================================================ FILE: tests/unit/page.spec.js ================================================ import PDFDocument from '../../lib/document'; describe('page', function () { describe('userUnit', function () { test('defaults to 1.0', function () { const doc = new PDFDocument(); expect(doc.page.userUnit).toBe(1.0); expect(doc.page.dictionary.data.UserUnit).toBe(1.0); }); test('can be set via page options', function () { const doc = new PDFDocument({ autoFirstPage: false }); doc.addPage({ userUnit: 2.5 }); expect(doc.page.userUnit).toBe(2.5); expect(doc.page.dictionary.data.UserUnit).toBe(2.5); }); }); test('cascade page options', function () { const doc = new PDFDocument({ autoFirstPage: false, bufferPages: true, }); doc.addPage({ size: [50, 50], margin: 0 }); doc.text(Array(10).fill('TEST').join('\n')); doc._pageBuffer.forEach((page) => { expect(page.size).toEqual([50, 50]); expect(page.margins).toEqual({ top: 0, right: 0, bottom: 0, left: 0 }); }); }); }); ================================================ FILE: tests/unit/path.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('SVG Path', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, }); }); describe('arc command flag parsing', () => { // Arc command flags (large-arc-flag and sweep-flag) can be chained without separator // This is valid per SVG spec and commonly produced by SVGO (SVG optimizer) // // Arc command: a rx ry rotation large-arc-flag sweep-flag x y // - large-arc-flag and sweep-flag are 0 or 1 // - They can be written without separator: "010" = 0, 1, 0 (flag, flag, x) test('parses arc with chained flags "a5 5 0 0110 10"', () => { // a5 5 0 0110 10 should parse as: // rx=5, ry=5, rotation=0, large-arc=0, sweep=1, x=10, y=10 // The "01" in "0110" are the two flags (0 and 1) // The "10" after is the x coordinate // This requires special handling because "0110" looks like one number const docData = logData(document); // This path should produce valid bezier curves for the arc // If parsing fails, the arc won't render correctly document.path('M0 0 a5 5 0 0110 10').stroke(); // same as "a 5 5 0 0 1 10 10" document.end(); const content = docData.join(''); // Arc is converted to bezier curves, so we should see 'c' (curveto) commands // PDF format: "x1 y1 x2 y2 x3 y3 c" expect(content).toContain('2.761424 -2.761424 7.238576 -2.761424 10 0 c'); expect(content).toContain( '12.761424 2.761424 12.761424 7.238576 10 10 c', ); }); test('parses arc with chained flags where flags touch x coordinate "a5 5 0 011-5"', () => { // a5 5 0 011-5 should parse as: // rx=5, ry=5, rotation=0, large-arc=0, sweep=1, x=1, y=-5 // The negative sign separates y from the previous number const docData = logData(document); document.path('M0 0 a5 5 0 011-5').stroke(); // same as "a 5 5 0 0 1 1 -5" document.end(); const content = docData.join(''); expect(content).toContain('-0.6054 -1.72418 -0.221977 -3.641295 1 -5 c'); }); }); describe('basic path commands', () => { test('parses moveto and lineto', () => { const docData = logData(document); document.path('M10 20 L30 40').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses relative moveto and lineto', () => { const docData = logData(document); document.path('m10 20 l30 40').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses cubic bezier', () => { const docData = logData(document); document.path('M10 10 C20 20 40 20 50 10').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses quadratic bezier', () => { const docData = logData(document); document.path('M10 10 Q30 30 50 10').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses closepath', () => { const docData = logData(document); document.path('M10 10 L50 10 L30 50 Z').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); }); describe('number formats', () => { test('parses negative numbers without separator', () => { const docData = logData(document); // -10-20 should be parsed as -10 and -20 document.path('M10 10 l-10-20').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses decimal numbers', () => { const docData = logData(document); document.path('M10.5 20.5 L30.5 40.5').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses chained decimals ".5.5"', () => { const docData = logData(document); // .5.5 should be parsed as 0.5 and 0.5 document.path('M10 10 l.5.5').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); test('parses scientific notation', () => { const docData = logData(document); document.path('M1e1 2e1 L3e1 4e1').stroke(); document.end(); expect(docData.length).toBeGreaterThan(0); }); }); }); ================================================ FILE: tests/unit/pattern.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('Pattern', function () { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, }); }); test('Uncolored tiling pattern', () => { const docData = logData(document); const patternStream = '1 w 0 1 m 4 5 l s 2 0 m 5 3 l s'; const binaryStream = Buffer.from(`${patternStream}\n`, 'binary'); const pattern = document.pattern([1, 1, 4, 4], 3, 3, patternStream); document.rect(0, 0, 100, 100).fill([pattern, 'blue']).end(); // empty resources expect(docData).toContainChunk(['10 0 obj', `<<\n>>`]); // pattern dictionary expect(docData).toContainChunk([ '11 0 obj', `<< /Type /Pattern /PatternType 1 /PaintType 2 /TilingType 2 /BBox [1 1 4 4] /XStep 3 /YStep 3 /Matrix [1 0 0 -1 0 792] /Resources 10 0 R /Length 32 >>`, 'stream', binaryStream, '\nendstream', ]); // page resource dictionary with color space and pattern expect(docData).toContainChunk([ '6 0 obj', `<< /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /ColorSpace << /CsPDeviceCMYK 8 0 R /CsPDeviceRGB 9 0 R >> /Pattern << /P1 11 0 R >> >>`, ]); // map to the underlying color space expect(docData).toContainChunk(['8 0 obj', `[/Pattern /DeviceCMYK]`]); expect(docData).toContainChunk(['9 0 obj', `[/Pattern /DeviceRGB]`]); // graphics const graphicsStream = Buffer.from( `1 0 0 -1 0 792 cm 0 0 100 100 re /CsPDeviceRGB cs 0 0 1 /P1 scn f\n`, 'binary', ); expect(docData).toContainChunk([ '5 0 obj', `<< /Length 66 >>`, 'stream', graphicsStream, '\nendstream', ]); }); test('Pattern naming', () => { const docData = logData(document); const pattern1 = document.pattern( [1, 1, 4, 4], 3, 3, '1 w 0 1 m 4 5 l s 2 0 m 5 3 l s', ); const pattern2 = document.pattern( [1, 1, 7, 7], 6, 6, '1 w 0 1 m 7 8 l s 5 0 m 8 3 l s', ); document.rect(0, 0, 100, 100).fill([pattern1, 'blue']); document.rect(0, 0, 100, 100).fill([pattern2, 'red']).end(); // patterns P1 and P2 expect(docData).toContainChunk([ '6 0 obj', `<< /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /ColorSpace << /CsPDeviceCMYK 8 0 R /CsPDeviceRGB 9 0 R >> /Pattern << /P1 11 0 R /P2 13 0 R >> >>`, ]); }); }); ================================================ FILE: tests/unit/pdfa1.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData, joinTokens } from './helpers'; describe('PDF/A-1', () => { test('metadata is present', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-1', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk([ `11 0 obj`, `<<\n/length 892\n/Type /Metadata\n/Subtype /XML\n/Length 894\n>>`, ]); }); test('color profile is present', () => { const expected = [ `10 0 obj`, joinTokens( '<<', '/Type /OutputIntent', '/S /GTS_PDFA1', '/Info (sRGB IEC61966-2.1)', '/OutputConditionIdentifier (sRGB IEC61966-2.1)', '/DestOutputProfile 9 0 R', '>>', ), ]; let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-1', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk(expected); }); test('metadata contains pdfaid part and conformance', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-1', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:part>1'); expect(metadata).toContain('pdfaid:conformance'); }); test('metadata pdfaid conformance B', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-1b', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:conformance>B'); }); test('metadata pdfaid conformance A', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-1a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:conformance>A'); }); test('font data contains CIDSet', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-1a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.addPage(); doc.registerFont('Roboto', 'tests/fonts/Roboto-Regular.ttf'); doc.font('Roboto'); doc.text('Text'); doc.end(); let fontDescriptor = data.find((v) => { return v.includes('/Type /FontDescriptor'); }); expect(fontDescriptor).not.toBeUndefined(); expect(fontDescriptor).toContain('/CIDSet'); }); test('metadata producer matches document info producer', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-1a', }; let doc = new PDFDocument(options); doc.info.Producer = 'Unit Test for PDFKit'; const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain( 'Unit Test for PDFKit', ); }); test('CIDSet correctly identifies all glyphs in the subset', () => { let options = { autoFirstPage: false, compress: false, pdfVersion: '1.4', subset: 'PDF/A-1a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.addPage(); doc.registerFont('Roboto', 'tests/fonts/Roboto-Regular.ttf'); doc.font('Roboto'); doc.text('Text'); const widths = doc._font.widths.slice(); doc.end(); const maxCID = widths.length - 1; const CIDSet = Buffer.alloc(Math.ceil((maxCID + 1) / 8), 0); for (let cid = 0; cid <= maxCID; cid++) { if (widths[cid] != null) { CIDSet[Math.floor(cid / 8)] |= 0x80 >> cid % 8; } } let found = false; for (let i = 0; i < data.length - 1; i++) { if (data[i] === 'stream' && data[i + 1] instanceof Buffer) { if (data[i + 1].equals(CIDSet)) { found = true; break; } } } expect(found).toBe(true); }); }); ================================================ FILE: tests/unit/pdfa2.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData, joinTokens } from './helpers'; describe('PDF/A-2', () => { test('metadata is present', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-2', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk([ `11 0 obj`, `<<\n/length 892\n/Type /Metadata\n/Subtype /XML\n/Length 894\n>>`, ]); }); test('color profile is present', () => { const expected = [ `10 0 obj`, joinTokens( '<<', '/Type /OutputIntent', '/S /GTS_PDFA1', '/Info (sRGB IEC61966-2.1)', '/OutputConditionIdentifier (sRGB IEC61966-2.1)', '/DestOutputProfile 9 0 R', '>>', ), ]; let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-2', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk(expected); }); test('metadata contains pdfaid part and conformance', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-2', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:part>2'); expect(metadata).toContain('pdfaid:conformance'); }); test('metadata pdfaid conformance B', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-2b', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:conformance>B'); }); test('metadata pdfaid conformance A', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-2a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:conformance>A'); }); test('font data NOT contains CIDSet', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-2a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.addPage(); doc.registerFont('Roboto', 'tests/fonts/Roboto-Regular.ttf'); doc.font('Roboto'); doc.text('Text'); doc.end(); let fontDescriptor = data.find((v) => { return v.includes('/Type /FontDescriptor'); }); expect(fontDescriptor).not.toBeUndefined(); expect(fontDescriptor).not.toContain('/CIDSet'); }); }); ================================================ FILE: tests/unit/pdfa3.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData, joinTokens } from './helpers'; describe('PDF/A-3', () => { test('metadata is present', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-3', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk([ `11 0 obj`, `<<\n/length 892\n/Type /Metadata\n/Subtype /XML\n/Length 894\n>>`, ]); }); test('color profile is present', () => { const expected = [ `10 0 obj`, joinTokens( '<<', '/Type /OutputIntent', '/S /GTS_PDFA1', '/Info (sRGB IEC61966-2.1)', '/OutputConditionIdentifier (sRGB IEC61966-2.1)', '/DestOutputProfile 9 0 R', '>>', ), ]; let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-3', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk(expected); }); test('metadata contains pdfaid part and conformance', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-3', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:part>3'); expect(metadata).toContain('pdfaid:conformance'); }); test('metadata pdfaid conformance B', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-3b', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:conformance>B'); }); test('metadata pdfaid conformance A', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/A-3a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[27]).toString(); expect(metadata).toContain('pdfaid:conformance>A'); }); test('font data NOT contains CIDSet', () => { let options = { autoFirstPage: false, pdfVersion: '1.4', subset: 'PDF/A-3a', }; let doc = new PDFDocument(options); const data = logData(doc); doc.addPage(); doc.registerFont('Roboto', 'tests/fonts/Roboto-Regular.ttf'); doc.font('Roboto'); doc.text('Text'); doc.end(); let fontDescriptor = data.find((v) => { return v.includes('/Type /FontDescriptor'); }); expect(fontDescriptor).not.toBeUndefined(); expect(fontDescriptor).not.toContain('/CIDSet'); }); }); ================================================ FILE: tests/unit/pdfua.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('PDF/UA', () => { test('metadata is present', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/UA', tagged: true, }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); expect(data).toContainChunk([ `11 0 obj`, `<<\n/length 841\n/Type /Metadata\n/Subtype /XML\n/Length 843\n>>`, ]); }); test('metadata constains pdfuaid part', () => { let options = { autoFirstPage: false, pdfVersion: '1.7', subset: 'PDF/UA', tagged: true, }; let doc = new PDFDocument(options); const data = logData(doc); doc.end(); let metadata = Buffer.from(data[24]).toString(); expect(metadata).toContain('pdfuaid:part>1'); }); }); ================================================ FILE: tests/unit/png.spec.js ================================================ import { vi } from 'vitest'; import PDFDocument from '../../lib/document'; import PDFReference from '../../lib/reference'; import PNGImage from '../../lib/image/png'; import fs from 'fs'; describe('PNGImage', () => { let document; const createImage = (fileName) => { const img = new PNGImage(fs.readFileSync(fileName), 'I1'); // noop data manipulation methods img.loadIndexedAlphaChannel = () => { if (img.image.transparency.indexed) { img.alphaChannel = {}; img.finalize(); } }; img.splitAlphaChannel = () => { if (img.image.hasAlphaChannel) { img.alphaChannel = {}; img.finalize(); } }; img.decodeData = () => { img.finalize(); }; const finalizeFn = img.finalize; vi.spyOn(img, 'finalize').mockImplementation(() => finalizeFn.call(img)); img.embed(document); return img; }; beforeEach(() => { document = new PDFDocument(); }); test('RGB', () => { // ImageWidth = 400 // ImageHeight = 533 // BitDepth = 8 // ColorType = 2 (RGB) // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage('./examples/images/test2.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 533, Length: 397011, Subtype: 'Image', Type: 'XObject', Width: 400, DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 8, Colors: 3, Columns: 400, Predictor: 15, }); }); test('RGB white transparent', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 16 // ColorType = 2 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage( './tests/images/pngsuite-rgb-transparent-white.png', ); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 16, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 32, Length: 1932, Subtype: 'Image', Type: 'XObject', Width: 32, Mask: [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 16, Colors: 3, Columns: 32, Predictor: 15, }); }); test('RGB (8bit) with Alpha', () => { // ImageWidth = 409 // ImageHeight = 400 // BitDepth = 8 // ColorType = 6 (RGB with Alpha) // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage('./tests/images/bee.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 400, Length: 47715, Subtype: 'Image', Type: 'XObject', Width: 409, SMask: expect.any(PDFReference), }); expect(img.obj.data.SMask.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Decode: [0, 1], Filter: 'FlateDecode', Height: 400, Length: 16, Subtype: 'Image', Type: 'XObject', Width: 409, }); }); test('RGB (16bit) with Alpha', () => { // ImageWidth = 175 // ImageHeight = 65 // BitDepth = 16 // ColorType = 6 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage('./tests/images/straight.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 65, Length: 28537, Subtype: 'Image', Type: 'XObject', Width: 175, SMask: expect.any(PDFReference), }); expect(img.obj.data.SMask.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Decode: [0, 1], Filter: 'FlateDecode', Height: 65, Length: 16, Subtype: 'Image', Type: 'XObject', Width: 175, }); }); test('Pallete', () => { // ImageWidth = 980 // ImageHeight = 540 // BitDepth = 8 // ColorType = 3 (Pallete) // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage('./examples/images/test3.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: ['Indexed', 'DeviceRGB', 255, expect.any(PDFReference)], Filter: 'FlateDecode', Height: 540, Length: 56682, Subtype: 'Image', Type: 'XObject', Width: 980, DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 8, Colors: 1, Columns: 980, Predictor: 15, }); }); test('Pallete indexed transparency 8bit', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 8 // ColorType = 3 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage( './tests/images/pngsuite-palette-transparent-white.png', ); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: ['Indexed', 'DeviceRGB', 244, expect.any(PDFReference)], Filter: 'FlateDecode', Height: 32, Length: 650, Subtype: 'Image', Type: 'XObject', Width: 32, DecodeParms: expect.any(PDFReference), SMask: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 8, Colors: 1, Columns: 32, Predictor: 15, }); expect(img.obj.data.SMask.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Decode: [0, 1], Filter: 'FlateDecode', Height: 32, Length: 16, Subtype: 'Image', Type: 'XObject', Width: 32, }); }); test('Pallete indexed transparency 1bit', () => { // ImageWidth = 290 // ImageHeight = 50 // BitDepth = 1 // ColorType = 3 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage( './tests/images/pallete-transparent-white-1bit.png', ); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 1, ColorSpace: ['Indexed', 'DeviceRGB', 1, expect.any(PDFReference)], Filter: 'FlateDecode', Height: 50, Length: 64, Subtype: 'Image', Type: 'XObject', Width: 290, DecodeParms: expect.any(PDFReference), SMask: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 1, Colors: 1, Columns: 290, Predictor: 15, }); expect(img.obj.data.SMask.data).toMatchObject({ BitsPerComponent: 8, // ???? ColorSpace: 'DeviceGray', Decode: [0, 1], Filter: 'FlateDecode', Height: 50, Length: 16, Subtype: 'Image', Type: 'XObject', Width: 290, }); }); test('Grayscale', () => { // ImageWidth = 428 // ImageHeight = 320 // BitDepth = 8 // ColorType = 0 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage('./tests/images/glassware-noisy.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Filter: 'FlateDecode', Height: 428, Length: 82633, Subtype: 'Image', Type: 'XObject', Width: 320, DecodeParms: expect.any(PDFReference), }); }); test('Grayscale black transparent', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 4 // ColorType = 0 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage( './tests/images/pngsuite-gray-transparent-black.png', ); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 4, ColorSpace: 'DeviceGray', Filter: 'FlateDecode', Height: 32, Length: 328, Subtype: 'Image', Type: 'XObject', Width: 32, Mask: [0, 0], DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 4, Colors: 1, Columns: 32, Predictor: 15, }); }); test('Grayscale white transparent', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 16 // ColorType = 0 // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage( './tests/images/pngsuite-gray-transparent-white.png', ); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 16, ColorSpace: 'DeviceGray', Filter: 'FlateDecode', Height: 32, Length: 1212, Subtype: 'Image', Type: 'XObject', Width: 32, Mask: [255, 255], DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 16, Colors: 1, Columns: 32, Predictor: 15, }); }); test('Grayscale with Alpha', () => { // ImageWidth = 112 // ImageHeight = 112 // BitDepth = 8 // ColorType = 4 (Grayscale with Alpha) // Compression = 0 // Filter = 0 // Interlace = 0 const img = createImage('./tests/images/fish.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Filter: 'FlateDecode', Height: 112, Length: 9922, Subtype: 'Image', Type: 'XObject', Width: 112, SMask: expect.any(PDFReference), }); expect(img.obj.data.SMask.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Decode: [0, 1], Filter: 'FlateDecode', Height: 112, Length: 16, Subtype: 'Image', Type: 'XObject', Width: 112, }); }); test('Interlaced grayscale', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 8 // ColorType = 0 // Compression = 0 // Filter = 0 // Interlace = 1 const img = createImage('./tests/images/interlaced-grayscale-8bit.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceGray', Filter: 'FlateDecode', Height: 32, Length: 181, Subtype: 'Image', Type: 'XObject', Width: 32, DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 8, Colors: 1, Columns: 32, Predictor: 1, }); }); test('Interlaced pallete', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 8 // ColorType = 3 // Compression = 0 // Filter = 0 // Interlace = 1 const img = createImage('./tests/images/interlaced-pallete-8bit.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: ['Indexed', 'DeviceRGB', 255, expect.any(PDFReference)], Filter: 'FlateDecode', Height: 32, Length: 674, Subtype: 'Image', Type: 'XObject', Width: 32, DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 8, Colors: 1, Columns: 32, Predictor: 1, }); }); test('Interlaced RGB (8bit)', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 8 // ColorType = 2 // Compression = 0 // Filter = 0 // Interlace = 1 const img = createImage('./tests/images/interlaced-rgb-8bit.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 32, Length: 242, Subtype: 'Image', Type: 'XObject', Width: 32, DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 8, Colors: 3, Columns: 32, Predictor: 1, }); }); test('Interlaced RGB (16bit)', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 16 // ColorType = 2 // Compression = 0 // Filter = 0 // Interlace = 1 const img = createImage('./tests/images/interlaced-rgb-16bit.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 16, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 32, Length: 522, Subtype: 'Image', Type: 'XObject', Width: 32, DecodeParms: expect.any(PDFReference), }); expect(img.obj.data.DecodeParms.data).toMatchObject({ BitsPerComponent: 16, Colors: 3, Columns: 32, Predictor: 1, }); }); test('Interlaced RGB with alpha', () => { // ImageWidth = 32 // ImageHeight = 32 // BitDepth = 8 // ColorType = 6 // Compression = 0 // Filter = 0 // Interlace = 1 const img = createImage('./tests/images/interlaced-rgb-alpha-8bit.png'); expect(img.finalize).toBeCalledTimes(1); expect(img.obj.data).toMatchObject({ BitsPerComponent: 8, ColorSpace: 'DeviceRGB', Filter: 'FlateDecode', Height: 32, Length: 288, Subtype: 'Image', Type: 'XObject', Width: 32, SMask: expect.any(PDFReference), }); }); }); ================================================ FILE: tests/unit/reference.spec.js ================================================ import PDFReference from '../../lib/reference'; import PDFDocument from '../../lib/document'; import zlib from 'zlib'; import { logData } from './helpers'; describe('PDFReference', () => { let document; beforeEach(() => { document = new PDFDocument(); }); test('instantiated without data', () => { const ref = new PDFReference(document, 1); expect(ref.id).toBeDefined(); expect(ref.data).toBeDefined(); expect(ref.data).toBeInstanceOf(Object); }); test('instantiated with data', () => { const refData = { Pages: 0 }; const ref = new PDFReference(document, 1, refData); expect(ref.id).toBe(1); expect(ref.data).toBe(refData); }); test('written data of empty reference', () => { const ref = new PDFReference(document, 1); const docData = logData(document); ref.finalize(); expect(docData).toContainChunk(['1 0 obj', '<<\n>>', 'endobj']); }); test('written data of reference with uncompressed data', () => { const docData = logData(document); const chunk = Buffer.from('test'); const ref = new PDFReference(document, 1); ref.compress = false; ref.write(chunk); ref.finalize(); expect(docData).toContainChunk([ '1 0 obj', `<< /Length ${chunk.length} >>`, 'stream', chunk, '\nendstream', 'endobj', ]); }); test('written data of reference with compressed data', () => { const docData = logData(document); const chunk = Buffer.from('test'); const compressed = zlib.deflateSync(chunk); const ref = new PDFReference(document, 1); ref.write(chunk); ref.finalize(); expect(docData).toContainChunk([ '1 0 obj', `<< /Length ${compressed.length} /Filter /FlateDecode >>`, 'stream', compressed, '\nendstream', 'endobj', ]); }); }); ================================================ FILE: tests/unit/saslprep.spec.js ================================================ import saslprep from '../../lib/saslprep'; const chr = String.fromCodePoint; test('should work with liatin letters', () => { const str = 'user'; expect(saslprep(str)).toEqual(str); }); test('should work be case preserved', () => { const str = 'USER'; expect(saslprep(str)).toEqual(str); }); test('should work with high code points (> U+FFFF)', () => { const str = '\uD83D\uDE00'; expect(saslprep(str, { allowUnassigned: true })).toEqual(str); }); test('should remove `mapped to nothing` characters', () => { expect(saslprep('I\u00ADX')).toEqual('IX'); }); test('should replace `Non-ASCII space characters` with space', () => { expect(saslprep('a\u00A0b')).toEqual('a\u0020b'); }); test('should normalize as NFKC', () => { expect(saslprep('\u00AA')).toEqual('a'); expect(saslprep('\u2168')).toEqual('IX'); }); test('should throws when prohibited characters', () => { // C.2.1 ASCII control characters expect(() => saslprep('a\u007Fb')).toThrow(); // C.2.2 Non-ASCII control characters expect(() => saslprep('a\u06DDb')).toThrow(); // C.3 Private use expect(() => saslprep('a\uE000b')).toThrow(); // C.4 Non-character code points expect(() => saslprep(`a${chr(0x1fffe)}b`)).toThrow(); // C.5 Surrogate codes expect(() => saslprep('a\uD800b')).toThrow(); // C.6 Inappropriate for plain text expect(() => saslprep('a\uFFF9b')).toThrow(); // C.7 Inappropriate for canonical representation expect(() => saslprep('a\u2FF0b')).toThrow(); // C.8 Change display properties or are deprecated expect(() => saslprep('a\u200Eb')).toThrow(); // C.9 Tagging characters expect(() => saslprep(`a${chr(0xe0001)}b`)).toThrow(); }); test('should not containt RandALCat and LCat bidi', () => { expect(() => saslprep('a\u06DD\u00AAb')).toThrow(); }); test('RandALCat should be first and last', () => { expect(() => saslprep('\u0627\u0031\u0628')).not.toThrow(); expect(() => saslprep('\u0627\u0031')).toThrow(); }); test('should handle unassigned code points', () => { expect(() => saslprep('a\u0487')).toThrow(); expect(() => saslprep('a\u0487', { allowUnassigned: true })).not.toThrow(); }); ================================================ FILE: tests/unit/security.spec.js ================================================ import { vi } from 'vitest'; import PDFSecurity from '../../lib/security'; // Mock document object function createMockDocument(id = null) { const mockId = id || new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]); return { _id: mockId, ref: (obj) => ({ data: obj, end: vi.fn(), }), }; } describe('PDFSecurity', () => { describe('generateFileID', () => { test('returns 16-byte Buffer', () => { const info = { CreationDate: new Date('2024-01-01T00:00:00Z'), Title: 'Test', }; const result = PDFSecurity.generateFileID(info); expect(Buffer.isBuffer(result)).toBe(true); expect(result.length).toBe(16); }); test('same input produces same output', () => { const info = { CreationDate: new Date('2024-01-01T00:00:00Z'), Title: 'Test', }; const result1 = PDFSecurity.generateFileID(info); const result2 = PDFSecurity.generateFileID(info); expect(result1).toEqual(result2); }); test('different input produces different output', () => { const info1 = { CreationDate: new Date('2024-01-01T00:00:00Z'), Title: 'Test1', }; const info2 = { CreationDate: new Date('2024-01-01T00:00:00Z'), Title: 'Test2', }; const result1 = PDFSecurity.generateFileID(info1); const result2 = PDFSecurity.generateFileID(info2); expect(result1).not.toEqual(result2); }); }); describe('generateRandomWordArray', () => { test('returns Uint8Array of correct length', () => { const result = PDFSecurity.generateRandomWordArray(16); expect(result).toBeInstanceOf(Uint8Array); expect(result.length).toBe(16); }); test('returns different values each time', () => { const result1 = PDFSecurity.generateRandomWordArray(16); const result2 = PDFSecurity.generateRandomWordArray(16); expect(result1).not.toEqual(result2); }); }); describe('create', () => { test('returns null when no password provided', () => { const doc = createMockDocument(); const result = PDFSecurity.create(doc, {}); expect(result).toBeNull(); }); test('returns PDFSecurity instance when password provided', () => { const doc = createMockDocument(); const result = PDFSecurity.create(doc, { userPassword: 'test' }); expect(result).toBeInstanceOf(PDFSecurity); }); }); describe('constructor', () => { test('throws when no password provided', () => { const doc = createMockDocument(); expect(() => new PDFSecurity(doc, {})).toThrow( 'None of owner password and user password is defined.', ); }); }); describe('Version 1 (PDF 1.3, 40-bit RC4)', () => { test('sets correct encryption parameters', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', ownerPassword: 'owner', pdfVersion: '1.3', }); expect(security.version).toBe(1); expect(security.keyBits).toBe(40); expect(security.dictionary.data.V).toBe(1); expect(security.dictionary.data.R).toBe(2); }); test('generates O and U entries', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', ownerPassword: 'owner', pdfVersion: '1.3', }); expect(Buffer.isBuffer(security.dictionary.data.O)).toBe(true); expect(Buffer.isBuffer(security.dictionary.data.U)).toBe(true); expect(security.dictionary.data.O.length).toBe(32); expect(security.dictionary.data.U.length).toBe(32); }); test('getEncryptFn returns function that encrypts data', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.3', }); const encryptFn = security.getEncryptFn(1, 0); expect(typeof encryptFn).toBe('function'); const plaintext = Buffer.from('Hello, World!'); const encrypted = encryptFn(plaintext); expect(Buffer.isBuffer(encrypted)).toBe(true); expect(encrypted.length).toBe(plaintext.length); expect(encrypted).not.toEqual(plaintext); }); }); describe('Version 2 (PDF 1.4/1.5, 128-bit RC4)', () => { test('sets correct encryption parameters for PDF 1.4', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', pdfVersion: '1.4', }); expect(security.version).toBe(2); expect(security.keyBits).toBe(128); expect(security.dictionary.data.V).toBe(2); expect(security.dictionary.data.R).toBe(3); expect(security.dictionary.data.Length).toBe(128); }); test('sets correct encryption parameters for PDF 1.5', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', pdfVersion: '1.5', }); expect(security.version).toBe(2); expect(security.keyBits).toBe(128); }); test('getEncryptFn returns function that encrypts data', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.4', }); const encryptFn = security.getEncryptFn(1, 0); const plaintext = Buffer.from('Test data'); const encrypted = encryptFn(plaintext); expect(Buffer.isBuffer(encrypted)).toBe(true); expect(encrypted).not.toEqual(plaintext); }); }); describe('Version 4 (PDF 1.6/1.7, 128-bit AES)', () => { test('sets correct encryption parameters for PDF 1.6', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', pdfVersion: '1.6', }); expect(security.version).toBe(4); expect(security.keyBits).toBe(128); expect(security.dictionary.data.V).toBe(4); expect(security.dictionary.data.R).toBe(4); expect(security.dictionary.data.CF.StdCF.CFM).toBe('AESV2'); }); test('sets correct encryption parameters for PDF 1.7', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', pdfVersion: '1.7', }); expect(security.version).toBe(4); expect(security.dictionary.data.StmF).toBe('StdCF'); expect(security.dictionary.data.StrF).toBe('StdCF'); }); test('getEncryptFn returns function that encrypts with AES', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.6', }); const encryptFn = security.getEncryptFn(1, 0); const plaintext = Buffer.from('Test data for AES'); const encrypted = encryptFn(plaintext); expect(Buffer.isBuffer(encrypted)).toBe(true); // AES output includes 16-byte IV prefix expect(encrypted.length).toBeGreaterThan(plaintext.length); // First 16 bytes are IV expect(encrypted.length).toBe(16 + 32); // IV + padded ciphertext }); }); describe('Version 5 (PDF 1.7ext3, 256-bit AES)', () => { test('sets correct encryption parameters', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', ownerPassword: 'owner', pdfVersion: '1.7ext3', }); expect(security.version).toBe(5); expect(security.keyBits).toBe(256); expect(security.dictionary.data.V).toBe(5); expect(security.dictionary.data.R).toBe(5); expect(security.dictionary.data.CF.StdCF.CFM).toBe('AESV3'); }); test('generates all required entries', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'user', ownerPassword: 'owner', pdfVersion: '1.7ext3', }); expect(Buffer.isBuffer(security.dictionary.data.O)).toBe(true); expect(Buffer.isBuffer(security.dictionary.data.U)).toBe(true); expect(Buffer.isBuffer(security.dictionary.data.OE)).toBe(true); expect(Buffer.isBuffer(security.dictionary.data.UE)).toBe(true); expect(Buffer.isBuffer(security.dictionary.data.Perms)).toBe(true); expect(security.dictionary.data.O.length).toBe(48); expect(security.dictionary.data.U.length).toBe(48); expect(security.dictionary.data.OE.length).toBe(32); expect(security.dictionary.data.UE.length).toBe(32); expect(security.dictionary.data.Perms.length).toBe(16); }); test('getEncryptFn returns function that encrypts with AES-256', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.7ext3', }); const encryptFn = security.getEncryptFn(1, 0); const plaintext = Buffer.from('Test data for AES-256'); const encrypted = encryptFn(plaintext); expect(Buffer.isBuffer(encrypted)).toBe(true); expect(encrypted.length).toBeGreaterThan(plaintext.length); }); }); describe('Permissions', () => { test('R2 permissions (PDF 1.3)', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.3', permissions: { printing: true, modifying: true, copying: true, annotating: true, }, }); const p = security.dictionary.data.P; expect(p & 0b000000000100).toBeTruthy(); // printing expect(p & 0b000000001000).toBeTruthy(); // modifying expect(p & 0b000000010000).toBeTruthy(); // copying expect(p & 0b000000100000).toBeTruthy(); // annotating }); test('R3 permissions (PDF 1.4+)', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.4', permissions: { printing: 'highResolution', modifying: true, copying: true, annotating: true, fillingForms: true, contentAccessibility: true, documentAssembly: true, }, }); const p = security.dictionary.data.P; expect(p & 0b100000000100).toBeTruthy(); // high res printing expect(p & 0b000000001000).toBeTruthy(); // modifying expect(p & 0b000100000000).toBeTruthy(); // fillingForms expect(p & 0b001000000000).toBeTruthy(); // contentAccessibility expect(p & 0b010000000000).toBeTruthy(); // documentAssembly }); test('low resolution printing', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.4', permissions: { printing: 'lowResolution', }, }); const p = security.dictionary.data.P; expect(p & 0b000000000100).toBeTruthy(); // printing allowed expect(p & 0b100000000000).toBeFalsy(); // but not high res }); }); describe('Password handling', () => { test('user password only', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'userpass', pdfVersion: '1.4', }); expect(security.dictionary.data.O).toBeDefined(); expect(security.dictionary.data.U).toBeDefined(); }); test('owner password only', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { ownerPassword: 'ownerpass', pdfVersion: '1.4', }); expect(security.dictionary.data.O).toBeDefined(); expect(security.dictionary.data.U).toBeDefined(); }); test('both passwords', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'userpass', ownerPassword: 'ownerpass', pdfVersion: '1.4', }); expect(security.dictionary.data.O).toBeDefined(); expect(security.dictionary.data.U).toBeDefined(); }); test('invalid password character throws', () => { const doc = createMockDocument(); expect(() => { new PDFSecurity(doc, { userPassword: 'password\u0100', // Character > 0xFF pdfVersion: '1.3', }); }).toThrow('Password contains one or more invalid characters.'); }); test('unicode password in R5', () => { const doc = createMockDocument(); // R5 supports Unicode via SASLprep expect(() => { new PDFSecurity(doc, { userPassword: 'пароль', // Russian word for "password" pdfVersion: '1.7ext3', }); }).not.toThrow(); }); }); describe('Encryption consistency', () => { test('same password produces same encryption key', () => { const doc1 = createMockDocument(); const doc2 = createMockDocument(); const security1 = new PDFSecurity(doc1, { userPassword: 'test', pdfVersion: '1.4', }); const security2 = new PDFSecurity(doc2, { userPassword: 'test', pdfVersion: '1.4', }); expect(security1.encryptionKey).toEqual(security2.encryptionKey); }); test('different object numbers produce different encrypted output', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.4', }); const encryptFn1 = security.getEncryptFn(1, 0); const encryptFn2 = security.getEncryptFn(2, 0); const plaintext = Buffer.from('Same content'); const encrypted1 = encryptFn1(plaintext); const encrypted2 = encryptFn2(plaintext); expect(encrypted1).not.toEqual(encrypted2); }); }); describe('end', () => { test('calls dictionary.end', () => { const doc = createMockDocument(); const security = new PDFSecurity(doc, { userPassword: 'test', pdfVersion: '1.4', }); security.end(); expect(security.dictionary.end).toHaveBeenCalled(); }); }); }); ================================================ FILE: tests/unit/setupTests.js ================================================ import toContainChunk from './toContainChunk'; import toContainText from './toContainText'; import { toMatchImageSnapshot } from 'jest-image-snapshot'; expect.extend(toContainChunk); expect.extend(toContainText); expect.extend({ toMatchImageSnapshot }); ================================================ FILE: tests/unit/structure_annotation.spec.js ================================================ import PDFDocument from '../../lib/document'; import PDFAnnotationReference from '../../lib/structure_annotation'; import { logData } from './helpers'; describe('PDFAnnotationReference', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, tagged: true, }); }); test('should add annotation reference to structure element with StructParent', () => { const docData = logData(document); const linkElement = document.struct('Link'); document.addStructure(linkElement); const annotRef = document.ref({ Type: 'Annot', Subtype: 'Link', Rect: [100, 100, 200, 120], }); linkElement.add(new PDFAnnotationReference(annotRef)); linkElement.end(); annotRef.end(); document.end(); const dataStr = docData.join('\n'); expect(dataStr).toContain('/Type /OBJR'); expect(dataStr).toContain('/StructParent 0'); }); test('should handle multiple annotations with different StructParent values', () => { const docData = logData(document); const section = document.struct('Sect'); document.addStructure(section); const link1 = document.struct('Link'); const link2 = document.struct('Link'); section.add(link1); section.add(link2); const annotRef1 = document.ref({ Type: 'Annot', Subtype: 'Link' }); const annotRef2 = document.ref({ Type: 'Annot', Subtype: 'Link' }); link1.add(new PDFAnnotationReference(annotRef1)); link2.add(new PDFAnnotationReference(annotRef2)); link1.end(); link2.end(); section.end(); annotRef1.end(); annotRef2.end(); document.end(); const dataStr = docData.join('\n'); expect(dataStr).toContain('/StructParent 0'); expect(dataStr).toContain('/StructParent 1'); }); }); ================================================ FILE: tests/unit/table.spec.js ================================================ import PDFDocument from '../../lib/document'; import PDFTable from '../../lib/table'; import { deepMerge } from '../../lib/table/utils'; describe('table', () => { test('created', () => { const document = new PDFDocument(); expect(document.table()).toBeInstanceOf(PDFTable); expect(document.table({ data: [] })).toBe(document); }); test('row', () => { const document = new PDFDocument(); const table = document.table(); table.row(['A', 'B', 'C']); expect(table._columnWidths.length).toBe(3); }); }); describe('utils', () => { describe('deepMerge', () => { test.each([ [{ a: 'hello' }, { b: 'world' }, { a: 'hello', b: 'world' }], [{ a: 'hello' }, { a: 'world' }, { a: 'world' }], [{}, { a: 'hello' }, { a: 'hello' }], [{ a: 'hello' }, undefined, { a: 'hello' }], [undefined, null, undefined], [1, 2, 1], [1, {}, 1], [{ a: 'hello' }, { a: {} }, { a: 'hello' }], [{ a: { b: 'hello' } }, { a: { b: 'world' } }, { a: { b: 'world' } }], ])('%o -> %o', function () { const opts = Array.from(arguments); const expected = opts.splice(-1, 1)[0]; expect(deepMerge(...opts)).toEqual(expected); }); }); }); ================================================ FILE: tests/unit/text.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('Text', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, }); }); describe('text', () => { test('with simple content', () => { const docData = logData(document); document.text('simple text'); document.end(); expect(docData).toContainText({ text: 'simple text' }); }); test('with destination', () => { // just check that there is no exception document.text('simple text', { destination: 'anchor' }); }); test('with content ending after page right margin', () => { const docData = logData(document); const textStream = Buffer.from( `1 0 0 -1 0 792 cm q 1 0 0 -1 0 792 cm BT 1 0 0 1 600 763.384 Tm /F1 12 Tf [<73696d706c65207465> 30 <7874> 0] TJ ET Q `, 'binary', ); document.text('simple text', 600, 20); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length 117 >>`, `stream`, textStream, `\nendstream`, `endobj`, ]); }); test('with line too thin to contain a single character', () => { const docData = logData(document); const text = 'simple text'; const textStream = Buffer.from( `1 0 0 -1 0 792 cm q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 773.384 Tm /F1 12 Tf [<73> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 759.512 Tm /F1 12 Tf [<69> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 745.64 Tm /F1 12 Tf [<6d> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 731.768 Tm /F1 12 Tf [<70> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 717.896 Tm /F1 12 Tf [<6c> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 704.024 Tm /F1 12 Tf [<65> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 690.152 Tm /F1 12 Tf [<2074> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 676.28 Tm /F1 12 Tf [<65> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 662.408 Tm /F1 12 Tf [<78> 0] TJ ET Q q 1 0 0 -1 0 792 cm BT 1 0 0 1 10 648.536 Tm /F1 12 Tf [<74> 0] TJ ET Q `, 'binary', ); // before this test, this case used to make the code run into an infinite loop. // To handle regression gracefully and avoid sticking this test into an infinite loop, // we look out for a side effect of this infinite loop, witch is adding an infinite number of pages. // Normally, there should not be any page added to the document. document.on('pageAdded', () => { const pageRange = document.bufferedPageRange(); const newPageIndex = pageRange.start + pageRange.count; // We try restrict the fail condition to only infinite loop, so we wait for several pages to be added. if (newPageIndex > 10) { throw new Error('Infinite loop detected'); } }); document.text(text, 10, 10, { width: 2 }); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length 738 >>`, `stream`, textStream, `\nendstream`, `endobj`, ]); }); test('bounded text precision - issue #1611', () => { const docData = logData(document); const text = 'New york'; const bounds = document.boundsOfString(text); // Draw text which is constrained to the bounds document.text(text, { ellipsis: true, width: bounds.width, height: bounds.height, }); document.end(); expect(docData).toContainText({ text }); }); test('with null x coordinate', () => { const docData = logData(document); document.text('text with null x', null, 50); document.end(); expect(docData).toContainText({ text: 'text with null x' }); }); }); describe('text with structure parent links', () => { beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, tagged: true, }); }); test('should auto-link text inside Link structure element', () => { const docData = logData(document); const linkElement = document.struct('Link', () => { document.text('Click here', 100, 100, { link: 'http://example.com', }); }); document.addStructure(linkElement); linkElement.end(); document.end(); const dataStr = docData.join('\n'); expect(dataStr).toContain('/S /Link'); expect(dataStr).toContain('/StructParent'); }); test('should not add StructParent outside Link structure', () => { const docData = logData(document); document.text('Click here', 100, 100, { link: 'http://example.com', }); document.end(); const dataStr = docData.join('\n'); expect(dataStr).toContain('/Subtype /Link'); expect(dataStr).not.toContain('/StructParent'); }); test('should not leak link options to subsequent structure elements with continued text', () => { const docData = logData(document); const paragraph = document.struct('P'); document.addStructure(paragraph); paragraph.add( document.struct('Span', () => { document.text('This is some text before ', 100, 100, { continued: true, }); }), ); paragraph.add( document.struct('Link', () => { document.text('Here is a link!', { link: 'http://google.com/', underline: true, continued: true, }); }), ); paragraph.add( document.struct('Span', () => { document.text(' and this is text after the link.'); }), ); paragraph.end(); document.end(); const dataStr = docData.join('\n'); // Count how many link annotations exist - should be exactly 1 const linkMatches = dataStr.match(/\/Subtype \/Link/g); expect(linkMatches).toBeTruthy(); expect(linkMatches.length).toBe(1); expect(dataStr).toContain('/S /Span'); expect(dataStr).toContain('/S /Link'); }); }); }); ================================================ FILE: tests/unit/toContainChunk/index.js ================================================ import { diff } from 'jest-diff'; const buildMessage = (utils, data, chunk, headIndex) => { let message; if (headIndex !== -1) { const received = data.slice(headIndex, headIndex + chunk.length); const difference = diff(chunk, received); message = `Difference:\n\n${difference}`; } else { message = 'Expected data to contain chunk:\n' + ` ${utils.printExpected(chunk)}\n`; } return message; }; const passMessage = (utils, data, chunk, headIndex) => () => { return ( utils.matcherHint('.not.toContainChunk', 'data', 'chunk') + '\n\n' + buildMessage(utils, data, chunk, headIndex) ); }; const failMessage = (utils, data, chunk, headIndex) => () => { return ( utils.matcherHint('.toContainChunk', 'data', 'chunk') + '\n\n' + buildMessage(utils, data, chunk, headIndex) ); }; export default { toContainChunk(data, chunk) { const headIndex = data.indexOf(chunk[0]); let pass = headIndex !== -1; if (pass) { for (let i = 1; i < chunk.length; ++i) { if (chunk[i] instanceof RegExp) { pass = pass && chunk[i].test(data[headIndex + i]); } else { pass = pass && this.equals(data[headIndex + i], chunk[i]); } } } if (pass) { return { pass: true, message: passMessage(this.utils, data, chunk, headIndex), }; } return { pass: false, message: failMessage(this.utils, data, chunk, headIndex), }; }, }; ================================================ FILE: tests/unit/toContainText/index.js ================================================ import { getObjects, parseTextStreams } from '../helpers.js'; /** * @import { TextStream, PDFDataObject } from '../helpers.js'; * @import JestMatchedUtils from 'jest-matcher-utils'; */ /** * @typedef {Partial & Pick, 'text'>} TextStreamMatcher */ /** * @param {JestMatchedUtils} utils * @param {TextStreamMatcher} argument * @return {string} */ const passMessage = (utils, argument) => () => { return ( utils.matcherHint('.not.toContainText', 'data', 'textStream') + '\n\n' + `Expected data not to contain text:\n\n${utils.printExpected(argument)}` ); }; /** * @param {JestMatchedUtils} utils * @param {TextStream[]} received * @param {TextStream} argument * @return {string} */ const failMessage = (utils, received, argument) => () => { return ( utils.matcherHint('.toContainText', 'data', 'textStream') + '\n\n' + `Expected data to contain text:\n\n${utils.printExpected(argument)}\n\nFound:\n\n${utils.printReceived(received)}` ); }; // Compare position if provided, using Jest's toBeCloseTo-like logic const isNumber = (v) => typeof v === 'number' && Number.isFinite(v); const toBeClose = (received, expected, precision = 2) => { if (!isNumber(received) || !isNumber(expected)) return false; const tolerance = Math.pow(10, -precision) / 2; return Math.abs(received - expected) < tolerance; }; /** * @param {TextStreamMatcher} expected * @param {TextStream} actual * @return {boolean} */ function textStreamMatches(expected, actual) { if (expected.text !== actual.text) { return false; } if (expected.font && expected.font !== actual.font) { return false; } if (expected.fontSize && expected.fontSize !== actual.fontSize) { return false; } if (isNumber(expected.x)) { if (!toBeClose(actual.x, expected.x)) return false; } if (isNumber(expected.y)) { if (!toBeClose(actual.y, expected.y)) return false; } return true; } /** * @param {TextStreamMatcher} expected * @param {TextStream[]} list * @return {boolean} */ function containsTextStream(expected, list) { return list.some((actual) => textStreamMatches(expected, actual)); } /** * @param {PDFDataObject} object * @return {TextStream[] | undefined} */ function getTextStreams(object) { // text stream objects have 4 items // first item is a string containing the Length of the stream // second item 'stream' // third item is the stream content Buffer // fourth item is 'endstream' if (object.items.length !== 4) { return; } if (typeof object.items[0] !== 'string') { return; } if (object.items[1] !== 'stream') { return; } if (!(object.items[2] instanceof Buffer)) { return; } if (!/endstream/.test(object.items[3])) { return; } const decodedStream = object.items[2].toString('utf8'); return parseTextStreams(decodedStream); } export default { /** * * @param {(string | Buffer)[]} data * @param {TextStreamMatcher} expected * @returns */ toContainText(data, expected) { const objects = getObjects(data); /** * @type {TextStream[]} */ const foundTextStreams = []; let pass = false; for (const object of objects) { const textStreamObjects = getTextStreams(object); if (!textStreamObjects) { continue; } foundTextStreams.push(...textStreamObjects); if (containsTextStream(expected, textStreamObjects)) { pass = true; break; } } if (pass) { return { pass: true, message: passMessage(this.utils, expected), }; } return { pass: false, message: failMessage(this.utils, foundTextStreams, expected), }; }, }; ================================================ FILE: tests/unit/trailer.spec.js ================================================ import PDFDocument from '../../lib/document'; import PDFSecurity from '../../lib/security'; import { logData } from './helpers'; // manual mock for PDFSecurity to ensure stored id will be the same accross different systems PDFSecurity.generateFileID = () => { return Buffer.from('mocked-pdf-id'); }; describe('Document trailer', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, }); }); test('', () => { const docData = logData(document); document.end(); expect(docData).toContainChunk([ '8 0 obj', '<<\n/Producer 9 0 R\n/Creator 10 0 R\n/CreationDate 11 0 R\n>>', ]); expect(docData).toContainChunk(['9 0 obj', '(PDFKit)']); expect(docData).toContainChunk(['10 0 obj', '(PDFKit)']); expect(docData).toContainChunk(['11 0 obj', '(D:20180201000000Z)']); expect(docData).toContainChunk([ 'trailer', `<<\n/Size 12\n/Root 3 0 R\n/Info 8 0 R\n/ID [<6d6f636b65642d7064662d6964> <6d6f636b65642d7064662d6964>]\n>>`, ]); }); test('written empty data of destinations', () => { const docData = logData(document); document.end(); expect(docData).toContainChunk([ '2 0 obj', '<<\n/Dests <<\n /Names [\n]\n>>\n>>', ]); }); test('written data of destinations', () => { const docData = logData(document); document.addNamedDestination('LINK1'); document.addNamedDestination('LINK2', 'FitH', 100); document.addNamedDestination('LINK3', 'XYZ', 36, 36, 50); document.goTo(10, 10, 100, 20, 'LINK1'); document.end(); expect(docData).toContainChunk([ '2 0 obj', `<< /Dests << /Limits [(LINK1) (LINK3)] /Names [ (LINK1) [7 0 R /XYZ null null null] (LINK2) [7 0 R /FitH 100] (LINK3) [7 0 R /XYZ 36 756 50] ] >> >>`, ]); expect(docData).toContainChunk([ '7 0 obj', `<< /Type /Page /Parent 1 0 R /MediaBox [0 0 612 792] /Contents 5 0 R /Resources 6 0 R /UserUnit 1 /Annots [9 0 R] >>`, ]); }); }); ================================================ FILE: tests/unit/utils.spec.js ================================================ import { normalizeSides, PDFNumber } from '../../lib/utils'; describe('normalizeSides', () => { test.each([ [1, { top: 1, right: 1, bottom: 1, left: 1 }], [[1, 2], { top: 1, right: 2, bottom: 1, left: 2 }], [ { vertical: 1, horizontal: 2 }, { top: 1, right: 2, bottom: 1, left: 2 }, ], [[1, 2, 3, 4], { top: 1, right: 2, bottom: 3, left: 4 }], [ { top: 1, right: 2, bottom: 3, left: 4 }, { top: 1, right: 2, bottom: 3, left: 4 }, ], [ { a: 'hi' }, { top: undefined, right: undefined, bottom: undefined, left: undefined }, ], [ { vertical: 'hi' }, { top: 'hi', right: undefined, bottom: 'hi', left: undefined }, ], [ { top: undefined }, { top: undefined, right: undefined, bottom: undefined, left: undefined }, ], [ null, { top: undefined, right: undefined, bottom: undefined, left: undefined }, ], [ undefined, { top: undefined, right: undefined, bottom: undefined, left: undefined }, ], [true, { top: true, right: true, bottom: true, left: true }], [false, { top: false, right: false, bottom: false, left: false }], ])('%s -> %s', (size, expected) => { expect(normalizeSides(size)).toEqual(expected); }); test('with transformer', () => { expect( normalizeSides( undefined, { top: '1', right: '2', bottom: '3', left: '4' }, Number, ), ).toEqual({ top: 1, right: 2, bottom: 3, left: 4, }); }); }); describe('PDFNumber', () => { test.each([ [0, 0], [0.04999999701976776], //float32 rounded down [0.05], [0.05000000074505806], //float32 rounded up [1], [-1], [-5.05], [5.05], ])('PDFNumber(%f) -> %f', (n) => { expect(PDFNumber(n)).toBeLessThanOrEqual(n); expect(PDFNumber(n, false)).toBeLessThanOrEqual(n); }); }); ================================================ FILE: tests/unit/vector.spec.js ================================================ import PDFDocument from '../../lib/document'; import { logData } from './helpers'; describe('Vector Graphics', () => { let document; beforeEach(() => { document = new PDFDocument({ info: { CreationDate: new Date(Date.UTC(2018, 1, 1)) }, compress: false, }); }); describe('dash', () => { test('with numeric length argument', () => { const docData = logData(document); const vectorStream = Buffer.from( '1 0 0 -1 0 792 cm\n50 20 m\n[2 2] 0 d\nS\n', 'binary', ); document.moveTo(50, 20).dash(2).stroke(); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length 38 >>`, `stream`, vectorStream, `\nendstream`, `endobj`, ]); }); test('with array length argument', () => { const docData = logData(document); const vectorStream = Buffer.from( '1 0 0 -1 0 792 cm\n50 20 m\n[1 2] 0 d\nS\n', 'binary', ); document.moveTo(50, 20).dash([1, 2]).stroke(); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length 38 >>`, `stream`, vectorStream, `\nendstream`, `endobj`, ]); }); test('with space option', () => { const docData = logData(document); const vectorStream = Buffer.from( '1 0 0 -1 0 792 cm\n50 20 m\n[2 10] 0 d\nS\n', 'binary', ); document.moveTo(50, 20).dash(2, { space: 10 }).stroke(); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length 39 >>`, `stream`, vectorStream, `\nendstream`, `endobj`, ]); }); test('with phase option', () => { const docData = logData(document); const vectorStream = Buffer.from( '1 0 0 -1 0 792 cm\n50 20 m\n[2 2] 8 d\nS\n', 'binary', ); document.moveTo(50, 20).dash(2, { phase: 8 }).stroke(); document.end(); expect(docData).toContainChunk([ `5 0 obj`, `<< /Length 38 >>`, `stream`, vectorStream, `\nendstream`, `endobj`, ]); }); describe('validation', () => { test('length 1', () => { const doc = new PDFDocument(); expect(() => doc.dash(1)).not.toThrow(); }); test('length 1.5', () => { const doc = new PDFDocument(); expect(() => doc.dash(1.5)).not.toThrow(); }); test('length 0 throws', () => { const doc = new PDFDocument(); expect(() => doc.dash(0)).toThrow( 'dash(0, {}) invalid, lengths must be numeric and greater than zero', ); }); test('length -1 throws', () => { const doc = new PDFDocument(); expect(() => doc.dash(-1)).toThrow( 'dash(-1, {}) invalid, lengths must be numeric and greater than zero', ); }); test('length null throws', () => { const doc = new PDFDocument(); expect(() => doc.dash(null)).toThrow( 'dash(null, {}) invalid, lengths must be numeric and greater than zero', ); }); test('length array', () => { const doc = new PDFDocument(); expect(() => doc.dash([2, 3])).not.toThrow(); }); test('length array containing zeros throws', () => { const doc = new PDFDocument(); expect(() => doc.dash([2, 0, 3])).toThrow( 'dash([2,0,3], {}) invalid, lengths must be numeric and greater than zero', ); }); }); }); describe('translate', () => { test('identity transform is ignored', () => { const docData = logData(document); const vectorStream = Buffer.from( `1 0 0 -1 0 792 cm\n1 0 0 1 0 0 cm\n`, 'binary', ); document.translate(0, 0); document.end(); expect(docData).not.toContainChunk([ `5 0 obj`, `<< /Length 33 >>`, `stream`, vectorStream, `\nendstream`, `endobj`, ]); }); }); }); ================================================ FILE: tests/unit/virtual-fs.spec.js ================================================ import fs from '../../lib/virtual-fs'; function checkMissingFiles(files) { for (let file of files) { expect(() => fs.readFileSync(`files/${file}`)).toThrow( `File 'files/${file}' not found in virtual file system`, ); } } describe('virtual-fs', function () { beforeEach(() => { fs.fileData = {}; }); test('readFileSync', function () { checkMissingFiles(['encoded', 'raw', 'binary']); fs.bindFileData({ 'files/binary': Buffer.from('Buffer content'), }); const base64Data = fs.readFileSync('files/binary', 'base64'); expect(base64Data).toEqual('QnVmZmVyIGNvbnRlbnQ='); }); test('writeFileSync', function () { checkMissingFiles(['encoded', 'raw', 'binary']); fs.writeFileSync( 'files/encoded', Buffer.from('File content').toString('base64'), ); fs.writeFileSync('files/raw', 'File content'); fs.writeFileSync('files/binary', new Uint8Array([4, 3, 1, 2])); const encodedData = fs.readFileSync('files/encoded'); expect(encodedData).toBeInstanceOf(Buffer); expect(encodedData.toString('utf8')).toEqual('File content'); const rawData = fs.readFileSync('files/raw', 'utf8'); expect(rawData).toEqual('File content'); const binaryData = fs.readFileSync('files/binary'); expect(binaryData).toBeInstanceOf(Buffer); expect(binaryData.toJSON()).toEqual({ data: [4, 3, 1, 2], type: 'Buffer' }); }); test('bindFileData', function () { checkMissingFiles(['encoded', 'raw', 'binary']); fs.bindFileData({ 'files/encoded': Buffer.from('File content').toString('base64'), }); fs.bindFileData({ 'files/raw': 'File content', 'files/binary': new Uint8Array([4, 3, 1, 2]), }); const encodedData = fs.readFileSync('files/encoded'); expect(encodedData).toBeInstanceOf(Buffer); expect(encodedData.toString('utf8')).toEqual('File content'); let rawData = fs.readFileSync('files/raw', 'utf8'); expect(rawData).toEqual('File content'); let binaryData = fs.readFileSync('files/binary'); expect(binaryData).toBeInstanceOf(Buffer); expect(binaryData.toJSON()).toEqual({ data: [4, 3, 1, 2], type: 'Buffer' }); // reset option fs.bindFileData( { 'files/raw': 'New File content', 'files/binary2': new Uint8Array([4, 3, 1, 2]), }, { reset: true }, ); checkMissingFiles(['encoded', 'binary']); rawData = fs.readFileSync('files/raw', 'utf8'); expect(rawData).toEqual('New File content'); binaryData = fs.readFileSync('files/binary2'); expect(binaryData).toBeInstanceOf(Buffer); expect(binaryData.toJSON()).toEqual({ data: [4, 3, 1, 2], type: 'Buffer' }); }); }); ================================================ FILE: tests/visual/fonts.spec.js ================================================ import { runDocTest } from './helpers'; const characters = `Latin ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz Latin 1 (Western) ÁÀÂÄÅÃÆÇÐÉÈÊËÍÌÎÏÑÓÒÔÖÕØŒÞÚÙÛÜÝŸ áàâäãåæçðéèêëíìîïıñóòôöõøœßþúùûüýÿ Latin 2 (Eastern) ĀĂĄĆČĎĐĒĖĘĚĞĢĪĮİĶŁĹĻĽŃŅŇŌŐŔŖŘŠŚŞȘŢȚŤŪŮŰŲŽŹŻ āăąćčďđēėęěğģīįķłĺļľńņňōőŕŗřšśşșţțťūůűųžźż Greek (Modern) ΑΒΓ∆ΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΆΈΉΊΌΎΏΪΫ αβγδεζηθικλµνξοπρςστυφχψωάέήίόύώϊϋΐΰ Cyrillic 1 (Russian) АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ абвгдежзийклмнопрстуфхцчшщъыьэюя Cyrillic 2 (Extended) ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏҐӁҒҖҚҢҮҰҲҶҺӘӢӨӮ ѐёђѓєѕіїјљњћќѝўџґӂғҗқңүұҳҷһәӣөӯ`; describe('fonts', function () { test('default (Helvetica)', function () { return runDocTest(function (doc) { doc.text(characters, 10, 10); }); }); test('Helvetica Bold', function () { return runDocTest(function (doc) { doc.font('Helvetica-Bold'); doc.text(characters, 10, 10); }); }); test('Roboto', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.text(characters, 10, 10); }); }); test('Roboto Bold', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Medium.ttf'); doc.text(characters, 10, 10); }); }); }); ================================================ FILE: tests/visual/helpers.js ================================================ import PDFDocument from '../../lib/document'; import { pdf2png } from './pdf2png.js'; function runDocTest(options, fn) { if (typeof options === 'function') { fn = options; options = {}; } if (!options.info) { options.info = {}; } return new Promise((resolve, reject) => { const doc = new PDFDocument(options); const buffers = []; (async () => { await fn(doc); })() .then(() => { doc.on('error', (err) => reject(err)); doc.on('data', buffers.push.bind(buffers)); doc.on('end', async () => { try { const pdfData = Buffer.concat(buffers); const images = await pdf2png(pdfData); for (let image of images) { expect(image).toMatchImageSnapshot({ failureThresholdType: 'percent', failureThreshold: options.failureThreshold || 0.01, }); } resolve(); } catch (err) { reject(err); } }); doc.end(); }) .catch((err) => reject(err)); }); } export { runDocTest }; ================================================ FILE: tests/visual/images.spec.js ================================================ import { runDocTest } from './helpers'; describe('images', function () { test('orientation', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text( 'EXIF orientation data may be present on some JPEG images.There are 8 exif orientation values:', 40, 10, { lineBreak: false, }, ); doc.text('1 - No orientation needed', 40, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 40, 44.0625, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 320, 44.0625, { height: 80, }); doc.text('2 - Flip horizonatal', 40, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 40, 138.125, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 320, 138.125, { height: 80, }); doc.text('3 - Rotate 180 degrees', 40, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 40, 232.1875, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 320, 232.1875, { height: 80, }); doc.text('4 - Flip vertically', 40, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 40, 326.25, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 320, 326.25, { height: 80, }); doc.text('5 - Flip horizontally and rotate 270 degrees CW', 40, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 40, 420.3125, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 320, 420.3125, { height: 80, }); doc.text('6 - Rotate 90 degrees CW', 40, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 40, 514.375, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 320, 514.375, { height: 80, }); doc.text('7 - Flip horizontally and rotate 90 degrees CW', 40, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 40, 608.4375, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 320, 608.4375, { height: 80, }); doc.text('8 - Rotate 270 degrees CW', 40, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 40, 702.5, { height: 80, ignoreOrientation: true, }); doc.text('(output)', 320, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 320, 702.5, { height: 80, }); }); }); test('orientation - with cover and alignment', function () { return runDocTest(function (doc) { let options = { align: 'center', cover: [60, 60], valign: 'center', }; doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text( 'Images with EXIF orientation should properly align with fit/cover options:', 40, 10, { lineBreak: false, }, ); // Orientation 1 doc.text('1 - No orientation needed', 40, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 40, 44.0625, { ...options, ignoreOrientation: true, }); doc.rect(40, 44.0625, 60, 60).stroke('red'); doc.text('(output)', 320, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 320, 44.0625, options); doc.rect(320, 44.0625, 60, 60).stroke('red'); // Orientation 2 doc.text('2 - Flip horizonatal', 40, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 40, 138.125, { ...options, ignoreOrientation: true, }); doc.rect(40, 138.125, 60, 60).stroke('red'); doc.text('(output)', 320, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 320, 138.125, options); doc.rect(320, 138.125, 60, 60).stroke('red'); // Orientation 3 doc.text('3 - Rotate 180 degrees', 40, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 40, 232.1875, { ...options, ignoreOrientation: true, }); doc.rect(40, 232.1875, 60, 60).stroke('red'); doc.text('(output)', 320, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 320, 232.1875, options); doc.rect(320, 232.1875, 60, 60).stroke('red'); // Orientation 4 doc.text('4 - Flip vertically', 40, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 40, 326.25, { ...options, ignoreOrientation: true, }); doc.rect(40, 326.25, 60, 60).stroke('red'); doc.text('(output)', 320, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 320, 326.25, options); doc.rect(320, 326.25, 60, 60).stroke('red'); // Orientation 5 doc.text('5 - Flip horizontally and rotate 270 degrees CW', 40, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 40, 420.3125, { ...options, ignoreOrientation: true, }); doc.rect(40, 420.3125, 60, 60).stroke('red'); doc.text('(output)', 320, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 320, 420.3125, options); doc.rect(320, 420.3125, 60, 60).stroke('red'); // Orientation 6 doc.text('6 - Rotate 90 degrees CW', 40, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 40, 514.375, { ...options, ignoreOrientation: true, }); doc.rect(40, 514.375, 60, 60).stroke('red'); doc.text('(output)', 320, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 320, 514.375, options); doc.rect(320, 514.375, 60, 60).stroke('red'); // Orientation 7 doc.text('7 - Flip horizontally and rotate 90 degrees CW', 40, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 40, 608.4375, { ...options, ignoreOrientation: true, }); doc.rect(40, 608.4375, 60, 60).stroke('red'); doc.text('(output)', 320, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 320, 608.4375, options); doc.rect(320, 608.4375, 60, 60).stroke('red'); // Orientation 8 doc.text('8 - Rotate 270 degrees CW', 40, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 40, 702.5, { ...options, ignoreOrientation: true, }); doc.rect(40, 702.5, 60, 60).stroke('red'); doc.text('(output)', 320, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 320, 702.5, options); doc.rect(320, 702.5, 60, 60).stroke('red'); }); }); test('orientation - with fit and alignment', function () { return runDocTest(function (doc) { let options = { align: 'center', fit: [80, 80], valign: 'center', }; doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text( 'Images with EXIF orientation should properly align with fit/cover options:', 40, 10, { lineBreak: false, }, ); // Orientation 1 doc.text('1 - No orientation needed', 40, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 40, 44.0625, { ...options, ignoreOrientation: true, }); doc.rect(40, 44.0625, 80, 80).stroke('red'); doc.text('(output)', 320, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 320, 44.0625, options); doc.rect(320, 44.0625, 80, 80).stroke('red'); // Orientation 2 doc.text('2 - Flip horizonatal', 40, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 40, 138.125, { ...options, ignoreOrientation: true, }); doc.rect(40, 138.125, 80, 80).stroke('red'); doc.text('(output)', 320, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 320, 138.125, options); doc.rect(320, 138.125, 80, 80).stroke('red'); // Orientation 3 doc.text('3 - Rotate 180 degrees', 40, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 40, 232.1875, { ...options, ignoreOrientation: true, }); doc.rect(40, 232.1875, 80, 80).stroke('red'); doc.text('(output)', 320, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 320, 232.1875, options); doc.rect(320, 232.1875, 80, 80).stroke('red'); // Orientation 4 doc.text('4 - Flip vertically', 40, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 40, 326.25, { ...options, ignoreOrientation: true, }); doc.rect(40, 326.25, 80, 80).stroke('red'); doc.text('(output)', 320, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 320, 326.25, options); doc.rect(320, 326.25, 80, 80).stroke('red'); // Orientation 5 doc.text('5 - Flip horizontally and rotate 270 degrees CW', 40, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 40, 420.3125, { ...options, ignoreOrientation: true, }); doc.rect(40, 420.3125, 80, 80).stroke('red'); doc.text('(output)', 320, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 320, 420.3125, options); doc.rect(320, 420.3125, 80, 80).stroke('red'); // Orientation 6 doc.text('6 - Rotate 90 degrees CW', 40, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 40, 514.375, { ...options, ignoreOrientation: true, }); doc.rect(40, 514.375, 80, 80).stroke('red'); doc.text('(output)', 320, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 320, 514.375, options); doc.rect(320, 514.375, 80, 80).stroke('red'); // Orientation 7 doc.text('7 - Flip horizontally and rotate 90 degrees CW', 40, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 40, 608.4375, { ...options, ignoreOrientation: true, }); doc.rect(40, 608.4375, 80, 80).stroke('red'); doc.text('(output)', 320, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 320, 608.4375, options); doc.rect(320, 608.4375, 80, 80).stroke('red'); // Orientation 8 doc.text('8 - Rotate 270 degrees CW', 40, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 40, 702.5, { ...options, ignoreOrientation: true, }); doc.rect(40, 702.5, 80, 80).stroke('red'); doc.text('(output)', 320, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 320, 702.5, options); doc.rect(320, 702.5, 80, 80).stroke('red'); }); }); test('orientation - document option', function () { let options = { ignoreOrientation: true, }; return runDocTest(options, function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text( 'EXIF orientation support can be enabled on the entire PDFDocument:', 40, 10, { lineBreak: false, }, ); doc.text('1 - No orientation needed', 40, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 40, 44.0625, { height: 80, }); doc.text('(output)', 320, 30, { lineBreak: false, }); doc.image('tests/images/orientation-1.jpeg', 320, 44.0625, { height: 80, ignoreOrientation: false, }); doc.text('2 - Flip horizonatal', 40, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 40, 138.125, { height: 80, }); doc.text('(output)', 320, 124.0625, { lineBreak: false, }); doc.image('tests/images/orientation-2.jpeg', 320, 138.125, { height: 80, ignoreOrientation: false, }); doc.text('3 - Rotate 180 degrees', 40, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 40, 232.1875, { height: 80, }); doc.text('(output)', 320, 218.125, { lineBreak: false, }); doc.image('tests/images/orientation-3.jpeg', 320, 232.1875, { height: 80, ignoreOrientation: false, }); doc.text('4 - Flip vertically', 40, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 40, 326.25, { height: 80, }); doc.text('(output)', 320, 312.1875, { lineBreak: false, }); doc.image('tests/images/orientation-4.jpeg', 320, 326.25, { height: 80, ignoreOrientation: false, }); doc.text('5 - Flip horizontally and rotate 270 degrees CW', 40, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 40, 420.3125, { height: 80, }); doc.text('(output)', 320, 406.25, { lineBreak: false, }); doc.image('tests/images/orientation-5.jpeg', 320, 420.3125, { height: 80, ignoreOrientation: false, }); doc.text('6 - Rotate 90 degrees CW', 40, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 40, 514.375, { height: 80, }); doc.text('(output)', 320, 500.3125, { lineBreak: false, }); doc.image('tests/images/orientation-6.jpeg', 320, 514.375, { height: 80, ignoreOrientation: false, }); doc.text('7 - Flip horizontally and rotate 90 degrees CW', 40, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 40, 608.4375, { height: 80, }); doc.text('(output)', 320, 594.375, { lineBreak: false, }); doc.image('tests/images/orientation-7.jpeg', 320, 608.4375, { height: 80, ignoreOrientation: false, }); doc.text('8 - Rotate 270 degrees CW', 40, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 40, 702.5, { height: 80, }); doc.text('(output)', 320, 688.4375, { lineBreak: false, }); doc.image('tests/images/orientation-8.jpeg', 320, 702.5, { height: 80, ignoreOrientation: false, }); }); }); }); ================================================ FILE: tests/visual/interlaced-png.spec.js ================================================ import { runDocTest } from './helpers'; describe('interlaced PNG (Adam7)', function () { test('interlaced grayscale renders correctly', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fontSize(12); doc.text('Interlaced Grayscale PNG (Adam7)', 50, 30); doc.image('tests/images/interlaced-grayscale-8bit.png', 50, 50, { width: 100, }); }); }); test('interlaced RGB renders correctly', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fontSize(12); doc.text('Interlaced RGB PNG (Adam7)', 50, 30); doc.image('tests/images/interlaced-rgb-8bit.png', 50, 50, { width: 100, }); }); }); test('interlaced RGB 16bit renders correctly', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fontSize(12); doc.text('Interlaced RGB 16-bit PNG (Adam7)', 50, 30); doc.image('tests/images/interlaced-rgb-16bit.png', 50, 50, { width: 100, }); }); }); test('interlaced palette renders correctly', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fontSize(12); doc.text('Interlaced Palette PNG (Adam7)', 50, 30); doc.image('tests/images/interlaced-pallete-8bit.png', 50, 50, { width: 100, }); }); }); test('interlaced RGBA renders correctly', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fontSize(12); doc.text('Interlaced RGBA PNG (Adam7)', 50, 30); doc.image('tests/images/interlaced-rgb-alpha-8bit.png', 50, 50, { width: 100, }); }); }); // https://github.com/foliojs/pdfkit/issues/414 test('issue #414 - interlaced palette PNG renders correctly', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fontSize(12); doc.text('Issue #414: Interlaced Palette PNG', 50, 30); doc.image('tests/images/issue-414-interlaced.png', 50, 50, { width: 300, }); }); }); }); ================================================ FILE: tests/visual/pdf2png.js ================================================ // adapted from https://github.com/mozilla/pdf.js/tree/master/examples/node/pdf2png import path from 'path'; import { fileURLToPath } from 'url'; import { getDocument } from 'pdfjs-dist/legacy/build/pdf.mjs'; async function pdf2png(data) { // Load the PDF file. const loadingTask = getDocument({ data: new Uint8Array(data), useSystemFonts: false, standardFontDataUrl: path.join( path.dirname(fileURLToPath(import.meta.url)), '../../node_modules/pdfjs-dist/standard_fonts/', ), }); const pdfDocument = await loadingTask.promise; const canvasFactory = pdfDocument.canvasFactory; const pageCount = pdfDocument.numPages; const images = []; for (let i = 1; i <= pageCount; i++) { const page = await pdfDocument.getPage(i); // Render the page on a Node canvas with 100% scale. const viewport = page.getViewport({ scale: 2.0 }); const canvasAndContext = canvasFactory.create( viewport.width, viewport.height, ); const renderContext = { canvasContext: canvasAndContext.context, viewport, }; const renderTask = page.render(renderContext); await renderTask.promise; // Convert the canvas to an image buffer. const image = canvasAndContext.canvas.toBuffer('image/png'); images.push(image); page.cleanup(); } return images; } export { pdf2png }; ================================================ FILE: tests/visual/pdfmake/absolute.spec.js ================================================ import { runDocTest } from '../helpers'; import { jpeg as bee } from '../../images/bee'; describe('pdfmake', function() { // somehow the generated pdf changes at each run test('absolute', function() { return runDocTest(function(doc) { const images = { bee: bee }; doc.font('tests/fonts/Roboto-Italic.ttf'); doc.image(images['bee'], 100, 100, { width: 50, height: 50 }); doc.save(); doc.restore(); doc.image(images['bee'], 150, 150, { width: 50, height: 50 }); doc.save(); doc.restore(); doc.image(images['bee'], 200, 200, { width: 50, height: 50 }); doc.save(); doc.restore(); doc.image(images['bee'], 250, 150, { width: 50, height: 50 }); doc.save(); doc.restore(); doc.image(images['bee'], 300, 100, { width: 50, height: 50 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('You ', 40, 40, { lineBreak: false, textWidth: 23.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 63.255859375, 40, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('put ', 85.65625, 40, { lineBreak: false, textWidth: 20.23828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('images ', 105.89453125, 40, { lineBreak: false, textWidth: 42.205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 148.099609375, 40, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('any ', 161.517578125, 40, { lineBreak: false, textWidth: 21.796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('position', 183.314453125, 40, { lineBreak: false, textWidth: 42.97265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('As', 100, 100, { lineBreak: false, textWidth: 14.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('well', 150, 150, { lineBreak: false, textWidth: 21.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as', 200, 200, { lineBreak: false, textWidth: 12.71484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text', 250, 150, { lineBreak: false, textWidth: 20.14453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('!!!', 300, 100, { lineBreak: false, textWidth: 9.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('And ', 40, 40, { lineBreak: false, textWidth: 24.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 64.1875, 40, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 86.787109375, 40, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 98.857421875, 40, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 108.35546875, 40, { lineBreak: false, textWidth: 29.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 137.775390625, 40, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('top ', 154.2109375, 40, { lineBreak: false, textWidth: 20.349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 174.560546875, 40, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 188.541015625, 40, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('image ', 204.66015625, 40, { lineBreak: false, textWidth: 36.017578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 240.677734375, 40, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('x:100 ', 254.095703125, 40, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('y:100', 286.134765625, 40, { lineBreak: false, textWidth: 28.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image(images['bee'], 100, 100, { width: 100, height: 100 }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(100, 100.5); doc.lineTo(473.5185546875, 100.5); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 105, 103, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 149.291015625, 103, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 247.5, 103, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 291.791015625, 103, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 357.4140625, 103, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 401.705078125, 103, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(100.5, 100); doc.lineTo(100.5, 120.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(243, 100); doc.lineTo(243, 120.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(352.9140625, 100); doc.lineTo(352.9140625, 120.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(474.0185546875, 100); doc.lineTo(474.0185546875, 120.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(100, 119.5625); doc.lineTo(473.5185546875, 119.5625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text(`Let's `, 105, 122.0625, { lineBreak: false, textWidth: 27.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('try ', 132.515625, 122.0625, { lineBreak: false, textWidth: 16.734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 149.25, 122.0625, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('unordered ', 165.369140625, 122.0625, { lineBreak: false, textWidth: 57.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('list', 222.568359375, 122.0625, { lineBreak: false, textWidth: 15.931640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 117.8671875, 136.125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 144.544921875, 136.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(107, 143.2578125, 2, 2); doc.moveTo(105, 143.2578125); doc.bezierCurveTo( 105, 142.15324300033842, 105.8954305003384, 141.2578125, 107, 141.2578125 ); doc.bezierCurveTo( 108.1045694996616, 141.2578125, 109, 142.15324300033842, 109, 143.2578125 ); doc.bezierCurveTo( 109, 144.36238199966158, 108.1045694996616, 145.2578125, 107, 145.2578125 ); doc.bezierCurveTo( 105.8954305003384, 145.2578125, 105, 144.36238199966158, 105, 143.2578125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 117.8671875, 150.1875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 144.544921875, 150.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(107, 157.3203125, 2, 2); doc.moveTo(105, 157.3203125); doc.bezierCurveTo( 105, 156.21574300033842, 105.8954305003384, 155.3203125, 107, 155.3203125 ); doc.bezierCurveTo( 108.1045694996616, 155.3203125, 109, 156.21574300033842, 109, 157.3203125 ); doc.bezierCurveTo( 109, 158.42488199966158, 108.1045694996616, 159.3203125, 107, 159.3203125 ); doc.bezierCurveTo( 105.8954305003384, 159.3203125, 105, 158.42488199966158, 105, 157.3203125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('or ', 247.5, 122.0625, { lineBreak: false, textWidth: 13.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 261.375, 122.0625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nested ', 270.873046875, 122.0625, { lineBreak: false, textWidth: 39.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table', 310.0546875, 122.0625, { lineBreak: false, textWidth: 26.44921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(247.5, 136.625); doc.lineTo(347.4140625, 136.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Col1', 252.5, 139.125, { lineBreak: false, textWidth: 24.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Col2', 285.8046875, 139.125, { lineBreak: false, textWidth: 24.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Col3', 319.109375, 139.125, { lineBreak: false, textWidth: 24.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(248, 136.125); doc.lineTo(248, 156.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(281.3046875, 136.125); doc.lineTo(281.3046875, 156.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(314.609375, 136.125); doc.lineTo(314.609375, 156.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(347.9140625, 136.125); doc.lineTo(347.9140625, 156.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(247.5, 155.6875); doc.lineTo(347.4140625, 155.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 252.5, 158.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 285.8046875, 158.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 319.109375, 158.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(248, 155.1875); doc.lineTo(248, 175.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(281.3046875, 155.1875); doc.lineTo(281.3046875, 175.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(314.609375, 155.1875); doc.lineTo(314.609375, 175.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(347.9140625, 155.1875); doc.lineTo(347.9140625, 175.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(247.5, 174.75); doc.lineTo(347.4140625, 174.75); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 252.5, 177.25, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 285.8046875, 177.25, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 319.109375, 177.25, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(248, 174.25); doc.lineTo(248, 194.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(281.3046875, 174.25); doc.lineTo(281.3046875, 194.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(314.609375, 174.25); doc.lineTo(314.609375, 194.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(347.9140625, 174.25); doc.lineTo(347.9140625, 194.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(247.5, 193.8125); doc.lineTo(347.4140625, 193.8125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Inlines ', 357.4140625, 122.0625, { lineBreak: false, textWidth: 37.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 395.259765625, 122.0625, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 417.66015625, 122.0625, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styled', 433.720703125, 122.0625, { lineBreak: false, textWidth: 31.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('easily ', 357.4140625, 136.125, { lineBreak: false, textWidth: 27.9541015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('as ', 385.3681640625, 136.125, { lineBreak: false, textWidth: 13.0712890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('everywhere ', 398.439453125, 136.125, { lineBreak: false, textWidth: 52.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('else', 451.33984375, 136.125, { lineBreak: false, textWidth: 18.1787109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(100.5, 119.0625); doc.lineTo(100.5, 197.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(243, 119.0625); doc.lineTo(243, 197.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(352.9140625, 119.0625); doc.lineTo(352.9140625, 197.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(474.0185546875, 119.0625); doc.lineTo(474.0185546875, 197.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(100, 196.8125); doc.lineTo(473.5185546875, 196.8125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); }); }); }); ================================================ FILE: tests/visual/pdfmake/background.spec.js ================================================ import { runDocTest } from '../helpers'; import { jpeg as bee } from '../../images/bee'; describe('pdfmake', function() { // somehow the generated pdf changes at each run test('background', function() { return runDocTest(function(doc) { const images = { bee: bee }; doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Background ', 0, 0, { lineBreak: false, textWidth: 66.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph ', 66.73828125, 0, { lineBreak: false, textWidth: 57.01171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 123.75, 0, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page ', 140.185546875, 0, { lineBreak: false, textWidth: 29.3203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 169.505859375, 0, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 0, 14.0625, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('background ', 45.2109375, 14.0625, { lineBreak: false, textWidth: 66, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph, ', 111.2109375, 14.0625, { lineBreak: false, textWidth: 59.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 170.578125, 14.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('time ', 193.177734375, 14.0625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 219.85546875, 14.0625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('little ', 229.353515625, 14.0625, { lineBreak: false, textWidth: 25.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('bit ', 255.2578125, 14.0625, { lineBreak: false, textWidth: 16.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('longer ', 271.79296875, 14.0625, { lineBreak: false, textWidth: 36.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 308.291015625, 14.0625, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 321.908203125, 14.0625, { lineBreak: false, textWidth: 32.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure, ', 354.24609375, 14.0625, { lineBreak: false, textWidth: 28.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 382.681640625, 14.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 405.28125, 14.0625, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 427.0546875, 14.0625, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 447.779296875, 14.0625, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divided ', 463.83984375, 14.0625, { lineBreak: false, textWidth: 41.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 505.107421875, 14.0625, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 528.2578125, 14.0625, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('least ', 541.67578125, 14.0625, { lineBreak: false, textWidth: 28.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('two ', 570.55078125, 14.0625, { lineBreak: false, textWidth: 22.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lines', 0, 28.125, { lineBreak: false, textWidth: 24.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image(images['bee'], 0, 42.1875, { width: 200, height: 195.59902200488997 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('First ', 40, 40, { lineBreak: false, textWidth: 26.68359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph', 66.68359375, 40, { lineBreak: false, textWidth: 54.041015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 40, 54.0625, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph, ', 85.2109375, 54.0625, { lineBreak: false, textWidth: 59.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 144.578125, 54.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('time ', 167.177734375, 54.0625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 193.85546875, 54.0625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('little ', 203.353515625, 54.0625, { lineBreak: false, textWidth: 25.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('bit ', 229.2578125, 54.0625, { lineBreak: false, textWidth: 16.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('longer ', 245.79296875, 54.0625, { lineBreak: false, textWidth: 36.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 282.291015625, 54.0625, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 295.908203125, 54.0625, { lineBreak: false, textWidth: 32.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure, ', 328.24609375, 54.0625, { lineBreak: false, textWidth: 28.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 356.681640625, 54.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 379.28125, 54.0625, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 401.0546875, 54.0625, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 421.779296875, 54.0625, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divided ', 437.83984375, 54.0625, { lineBreak: false, textWidth: 41.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 479.107421875, 54.0625, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 502.2578125, 54.0625, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('least ', 515.67578125, 54.0625, { lineBreak: false, textWidth: 28.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('two ', 40, 68.125, { lineBreak: false, textWidth: 22.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lines', 62.751953125, 68.125, { lineBreak: false, textWidth: 24.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 82.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 96.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 110.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 124.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 138.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 152.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 166.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 180.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 194.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 208.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 222.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 236.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 250.9375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 265, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 279.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 293.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 307.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 321.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 335.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 349.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 363.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 377.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 391.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 405.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 419.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 433.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 447.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 461.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 475.9375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 490, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 504.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 518.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 532.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 546.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 560.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 574.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 588.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 602.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 616.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 630.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 644.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 658.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 672.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 686.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 700.9375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 715, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 729.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 743.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 757.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 771.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 785.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 40, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 54.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 40, 68.125, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Page', 85.2109375, 68.125, { lineBreak: false, textWidth: 27.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 82.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 96.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 110.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 124.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 138.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 152.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 166.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 180.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 194.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 208.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 222.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 236.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 250.9375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 265, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 279.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 293.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 307.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 321.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 335.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 349.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 363.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 377.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 391.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 405.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 419.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 433.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 447.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 461.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 475.9375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 490, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 504.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 518.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 532.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 546.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 560.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 574.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 588.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 602.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 616.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 630.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 644.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 658.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 672.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 686.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 700.9375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 715, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 729.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 743.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 757.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 771.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 785.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Background ', 0, 0, { lineBreak: false, textWidth: 66.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph ', 66.73828125, 0, { lineBreak: false, textWidth: 57.01171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 123.75, 0, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page ', 140.185546875, 0, { lineBreak: false, textWidth: 29.3203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 169.505859375, 0, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 0, 14.0625, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('background ', 45.2109375, 14.0625, { lineBreak: false, textWidth: 66, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph, ', 111.2109375, 14.0625, { lineBreak: false, textWidth: 59.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 170.578125, 14.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('time ', 193.177734375, 14.0625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 219.85546875, 14.0625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('little ', 229.353515625, 14.0625, { lineBreak: false, textWidth: 25.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('bit ', 255.2578125, 14.0625, { lineBreak: false, textWidth: 16.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('longer ', 271.79296875, 14.0625, { lineBreak: false, textWidth: 36.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 308.291015625, 14.0625, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 321.908203125, 14.0625, { lineBreak: false, textWidth: 32.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure, ', 354.24609375, 14.0625, { lineBreak: false, textWidth: 28.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 382.681640625, 14.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 405.28125, 14.0625, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 427.0546875, 14.0625, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 447.779296875, 14.0625, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divided ', 463.83984375, 14.0625, { lineBreak: false, textWidth: 41.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 505.107421875, 14.0625, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 528.2578125, 14.0625, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('least ', 541.67578125, 14.0625, { lineBreak: false, textWidth: 28.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('two ', 570.55078125, 14.0625, { lineBreak: false, textWidth: 22.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lines', 0, 28.125, { lineBreak: false, textWidth: 24.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image(images['bee'], 0, 42.1875, { width: 200, height: 195.59902200488997 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 40, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 54.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 40, 68.125, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Page', 85.2109375, 68.125, { lineBreak: false, textWidth: 27.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/basics.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('basics', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('First ', 40, 40, { lineBreak: false, textWidth: 26.68359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph', 66.68359375, 40, { lineBreak: false, textWidth: 54.041015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 40, 54.0625, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph, ', 85.2109375, 54.0625, { lineBreak: false, textWidth: 59.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 144.578125, 54.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('time ', 167.177734375, 54.0625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 193.85546875, 54.0625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('little ', 203.353515625, 54.0625, { lineBreak: false, textWidth: 25.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('bit ', 229.2578125, 54.0625, { lineBreak: false, textWidth: 16.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('longer ', 245.79296875, 54.0625, { lineBreak: false, textWidth: 36.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 282.291015625, 54.0625, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 295.908203125, 54.0625, { lineBreak: false, textWidth: 32.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure, ', 328.24609375, 54.0625, { lineBreak: false, textWidth: 28.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 356.681640625, 54.0625, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 379.28125, 54.0625, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 401.0546875, 54.0625, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 421.779296875, 54.0625, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divided ', 437.83984375, 54.0625, { lineBreak: false, textWidth: 41.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 479.107421875, 54.0625, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 502.2578125, 54.0625, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('least ', 515.67578125, 54.0625, { lineBreak: false, textWidth: 28.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('two ', 40, 68.125, { lineBreak: false, textWidth: 22.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lines', 62.751953125, 68.125, { lineBreak: false, textWidth: 24.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/columns_simple.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('columns_simple', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-MediumItalic.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('By ', 40, 40, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('default ', 56.119140625, 40, { lineBreak: false, textWidth: 40.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraphs ', 96.35546875, 40, { lineBreak: false, textWidth: 63.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('are ', 159.5546875, 40, { lineBreak: false, textWidth: 19.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stacked ', 179.359375, 40, { lineBreak: false, textWidth: 44.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one ', 224.3359375, 40, { lineBreak: false, textWidth: 22.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 247.12890625, 40, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('top ', 263.564453125, 40, { lineBreak: false, textWidth: 20.349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 283.9140625, 40, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(or ', 297.89453125, 40, { lineBreak: false, textWidth: 17.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('actually ', 315.87109375, 40, { lineBreak: false, textWidth: 44.34375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 360.21484375, 40, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('below) ', 366.49609375, 40, { lineBreak: false, textWidth: 39.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('another. ', 405.501953125, 40, { lineBreak: false, textWidth: 46.34765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("It's ", 40, 54.0625, { lineBreak: false, textWidth: 17.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('possible ', 57.96484375, 54.0625, { lineBreak: false, textWidth: 47.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('however ', 105.80078125, 54.0625, { lineBreak: false, textWidth: 47.876953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 153.677734375, 54.0625, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('split ', 167.294921875, 54.0625, { lineBreak: false, textWidth: 25.634765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('any ', 192.9296875, 54.0625, { lineBreak: false, textWidth: 21.796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph ', 214.7265625, 54.0625, { lineBreak: false, textWidth: 57.01171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(or ', 271.73828125, 54.0625, { lineBreak: false, textWidth: 17.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('even ', 289.71484375, 54.0625, { lineBreak: false, textWidth: 27.966796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 317.681640625, 54.0625, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('whole ', 337.5390625, 54.0625, { lineBreak: false, textWidth: 34.7109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document) ', 372.25, 54.0625, { lineBreak: false, textWidth: 61.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 433.31640625, 54.0625, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns.', 456.466796875, 54.0625, { lineBreak: false, textWidth: 49.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 68.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Here ', 40, 82.1875, { lineBreak: false, textWidth: 28.189453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('we ', 68.189453125, 82.1875, { lineBreak: false, textWidth: 18.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('go ', 86.53515625, 82.1875, { lineBreak: false, textWidth: 16.546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 103.08203125, 82.1875, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2 ', 128.51171875, 82.1875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 138.220703125, 82.1875, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 162.2265625, 82.1875, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns, ', 193.275390625, 82.1875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 244.580078125, 82.1875, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('justified ', 270.009765625, 82.1875, { lineBreak: false, textWidth: 45.240234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 315.25, 82.1875, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 338.365234375, 82.1875, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gap ', 361.251953125, 82.1875, { lineBreak: false, textWidth: 22.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 384.21484375, 82.1875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 403.650390625, 82.1875, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('20:', 417.267578125, 82.1875, { lineBreak: false, textWidth: 16.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 96.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 110.3125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 83.52096875, 110.3125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.88178124999999, 110.3125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 162.705484375, 110.3125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 185.12098437499998, 110.3125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 224.1946875, 110.3125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 40, 124.375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 100.73112499999999, 124.375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 123.22396875, 124.375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 153.20509375, 124.375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 201.06903125, 124.375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 247.766953125, 124.375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 40, 138.4375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 91.46712890625, 138.4375, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 140.0045703125, 138.4375, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 179.08498046875, 138.4375, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 236.6634375, 138.4375, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 40, 152.5, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 106.47298828125, 152.5, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 162.1178515625, 152.5, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 190.82130859375, 152.5, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 247.4446875, 152.5, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 40, 166.5625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 83.58182291666665, 166.5625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 148.5796614583333, 166.5625, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 217.227890625, 166.5625, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 40, 180.625, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 92.02376953125, 180.625, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 122.5260546875, 180.625, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 167.79396484375, 180.625, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 236.528671875, 180.625, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 40, 194.6875, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 96.88998046875, 194.6875, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 135.0241015625, 194.6875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 208.05080078125, 194.6875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 252.63609375, 194.6875, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 40, 208.75, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 100.9983125, 208.75, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 140.7388125, 208.75, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 168.239078125, 208.75, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 208.20809375, 208.75, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 234.759140625, 208.75, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 40, 222.8125, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 90.99013020833334, 222.8125, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 134.71463541666668, 222.8125, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 150.724296875, 222.8125, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 206.56598958333333, 222.8125, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 227.42135416666665, 222.8125, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 269.153671875, 222.8125, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 40, 236.875, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 105.2527734375, 236.875, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 165.935234375, 236.875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 197.3794140625, 236.875, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 236.681015625, 236.875, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 40, 250.9375, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 95.35526041666665, 250.9375, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 145.7769270833333, 250.9375, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 242.32359375, 250.9375, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 40, 265, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 100.3601953125, 265, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 156.4371875, 265, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 198.3520703125, 265, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 257.880234375, 265, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 40, 279.0625, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 78.9858125, 279.0625, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 114.78998437499999, 279.0625, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 149.5043125, 279.0625, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 205.22449999999998, 279.0625, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 254.780625, 279.0625, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 40, 293.125, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 126.57596354166667, 293.125, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 180.96052083333333, 293.125, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 228.231796875, 293.125, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 40, 307.1875, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 103.26736979166665, 307.1875, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 178.04255208333333, 307.1875, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 254.97984375, 307.1875, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 40, 321.25, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 94.556640625, 321.25, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 114.923828125, 321.25, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 307.64, 110.3125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 351.16096875, 110.3125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 393.52178125, 110.3125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 430.34548437499996, 110.3125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 452.76098437499996, 110.3125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 491.8346875, 110.3125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 307.64, 124.375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 368.371125, 124.375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 390.86396874999997, 124.375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 420.84509375, 124.375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 468.70903124999995, 124.375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 515.406953125, 124.375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 307.64, 138.4375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 359.10712890624995, 138.4375, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 407.6445703125, 138.4375, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 446.72498046875, 138.4375, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 504.3034375, 138.4375, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 307.64, 152.5, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 374.11298828124995, 152.5, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 429.7578515625, 152.5, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 458.46130859375, 152.5, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 515.0846875, 152.5, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 307.64, 166.5625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 351.22182291666667, 166.5625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 416.2196614583333, 166.5625, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 484.867890625, 166.5625, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 307.64, 180.625, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 359.66376953124995, 180.625, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 390.1660546875, 180.625, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 435.43396484375, 180.625, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 504.168671875, 180.625, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 307.64, 194.6875, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 364.52998046874995, 194.6875, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 402.6641015625, 194.6875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 475.69080078125, 194.6875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 520.27609375, 194.6875, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 307.64, 208.75, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 368.6383125, 208.75, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 408.3788125, 208.75, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 435.879078125, 208.75, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 475.84809375, 208.75, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 502.399140625, 208.75, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 307.64, 222.8125, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 358.6301302083333, 222.8125, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 402.35463541666667, 222.8125, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 418.364296875, 222.8125, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 474.20598958333335, 222.8125, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 495.06135416666666, 222.8125, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 536.793671875, 222.8125, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 307.64, 236.875, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 372.89277343749995, 236.875, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 433.575234375, 236.875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 465.0194140625, 236.875, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 504.321015625, 236.875, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 307.64, 250.9375, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 362.99526041666667, 250.9375, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 413.4169270833333, 250.9375, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 509.96359375, 250.9375, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 307.64, 265, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 368.00019531249995, 265, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 424.0771875, 265, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 465.9920703125, 265, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 525.520234375, 265, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 307.64, 279.0625, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 346.6258125, 279.0625, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 382.429984375, 279.0625, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 417.14431249999996, 279.0625, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 472.86449999999996, 279.0625, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 522.420625, 279.0625, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 307.64, 293.125, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 394.21596354166667, 293.125, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 448.60052083333335, 293.125, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 495.871796875, 293.125, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 307.64, 307.1875, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 370.90736979166667, 307.1875, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 445.68255208333335, 307.1875, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 522.61984375, 307.1875, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 307.64, 321.25, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 362.196640625, 321.25, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 382.563828125, 321.25, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 335.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Star-', 40, 349.375, { lineBreak: false, textWidth: 24.9375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 64.9375, 349.375, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns ', 95.986328125, 349.375, { lineBreak: false, textWidth: 48.94921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('have ', 144.935546875, 349.375, { lineBreak: false, textWidth: 28.11328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('always ', 173.048828125, 349.375, { lineBreak: false, textWidth: 39.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('equal ', 212.78125, 349.375, { lineBreak: false, textWidth: 32.203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('widths, ', 244.984375, 349.375, { lineBreak: false, textWidth: 40.740234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('so ', 285.724609375, 349.375, { lineBreak: false, textWidth: 16.001953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('if ', 301.7265625, 349.375, { lineBreak: false, textWidth: 10.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('we ', 311.775390625, 349.375, { lineBreak: false, textWidth: 18.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('define ', 330.12109375, 349.375, { lineBreak: false, textWidth: 35.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 365.83984375, 349.375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 375.548828125, 349.375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('those, ', 389.529296875, 349.375, { lineBreak: false, textWidth: 35.244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("it'll ", 424.7734375, 349.375, { lineBreak: false, textWidth: 17.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('look ', 442.4921875, 349.375, { lineBreak: false, textWidth: 25.65234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('like ', 468.14453125, 349.375, { lineBreak: false, textWidth: 21.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 489.26171875, 349.375, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(make ', 511.861328125, 349.375, { lineBreak: false, textWidth: 36.439453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure ', 40, 363.4375, { lineBreak: false, textWidth: 26.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 66.080078125, 363.4375, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scroll ', 79.697265625, 363.4375, { lineBreak: false, textWidth: 32.05078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 111.748046875, 363.4375, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 125.365234375, 363.4375, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('next ', 145.22265625, 363.4375, { lineBreak: false, textWidth: 25.81640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page, ', 171.0390625, 363.4375, { lineBreak: false, textWidth: 31.67578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as ', 202.71484375, 363.4375, { lineBreak: false, textWidth: 15.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('we ', 218.400390625, 363.4375, { lineBreak: false, textWidth: 18.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('have ', 236.74609375, 363.4375, { lineBreak: false, textWidth: 28.11328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 264.859375, 363.4375, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('couple ', 274.357421875, 363.4375, { lineBreak: false, textWidth: 38.712890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 313.0703125, 363.4375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('more ', 327.05078125, 363.4375, { lineBreak: false, textWidth: 30.638671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('examples):', 357.689453125, 363.4375, { lineBreak: false, textWidth: 58.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 377.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 391.5625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 391.5625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 391.5625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 391.5625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 391.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 40, 405.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 106.416015625, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 166.884765625, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 40, 419.6875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 69.71875, 419.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 117.3203125, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 433.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 82.84375, 433.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 134.1484375, 433.75, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 40, 447.8125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 78.91796875, 447.8125, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 136.333984375, 447.8125, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 40, 461.875, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 99.619140625, 461.875, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 148.41015625, 461.875, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 40, 475.9375, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 89.76953125, 475.9375, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 132.935546875, 475.9375, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 40, 490, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 104.93359375, 490, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 40, 504.0625, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 113.3828125, 504.0625, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 160.1875, 504.0625, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 40, 518.125, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 80.048828125, 518.125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 143.564453125, 518.125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 40, 532.1875, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 83.822265625, 532.1875, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 108.888671875, 532.1875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 168.84765625, 532.1875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 40, 546.25, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 77.974609375, 546.25, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 135.267578125, 546.25, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 171.302734375, 546.25, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 40, 560.3125, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 76.263671875, 560.3125, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 99.109375, 560.3125, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 40, 574.375, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 90.255859375, 574.375, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 133.24609375, 574.375, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 40, 588.4375, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 95.107421875, 588.4375, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 115.228515625, 588.4375, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 156.2265625, 588.4375, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 40, 602.5, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 102.015625, 602.5, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 159.4609375, 602.5, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 40, 616.5625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 76.064453125, 616.5625, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 129.994140625, 616.5625, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 40, 630.625, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 82.169921875, 630.625, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 40, 644.6875, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 88.287109375, 644.6875, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 143.11328125, 644.6875, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 40, 658.75, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 76.380859375, 658.75, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 130.375, 658.75, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 40, 672.8125, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 78.96484375, 672.8125, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 114.748046875, 672.8125, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 40, 686.875, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 95.69921875, 686.875, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 145.234375, 686.875, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 40, 700.9375, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 112.169921875, 700.9375, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 152.1484375, 700.9375, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 40, 715, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 102.37890625, 715, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 40, 729.0625, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 101.177734375, 729.0625, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 164.517578125, 729.0625, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 40, 743.125, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 94.556640625, 743.125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 114.923828125, 743.125, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 218.42666666666665, 391.5625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 255.52236979166665, 391.5625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 291.4579166666666, 391.5625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 321.8563541666666, 391.5625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 337.8465885416666, 391.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 218.42666666666665, 405.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 284.8426822916666, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 345.3114322916666, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 218.42666666666665, 419.6875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 248.14541666666665, 419.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 295.7469791666666, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 218.42666666666665, 433.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 261.2704166666666, 433.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 312.5751041666666, 433.75, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 218.42666666666665, 447.8125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 257.3446354166666, 447.8125, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 314.7606510416666, 447.8125, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 218.42666666666665, 461.875, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 278.0458072916666, 461.875, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 326.8368229166666, 461.875, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 218.42666666666665, 475.9375, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 268.1961979166666, 475.9375, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 311.3622135416666, 475.9375, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 218.42666666666665, 490, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 283.3602604166666, 490, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 218.42666666666665, 504.0625, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 291.8094791666666, 504.0625, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 338.6141666666666, 504.0625, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 218.42666666666665, 518.125, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 258.4754947916666, 518.125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 321.9911197916666, 518.125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 218.42666666666665, 532.1875, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 262.2489322916666, 532.1875, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 287.3153385416666, 532.1875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 347.2743229166666, 532.1875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 218.42666666666665, 546.25, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 256.4012760416666, 546.25, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 313.6942447916666, 546.25, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 349.7294010416666, 546.25, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 218.42666666666665, 560.3125, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 254.69033854166665, 560.3125, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 277.5360416666666, 560.3125, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 218.42666666666665, 574.375, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 268.6825260416666, 574.375, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 311.6727604166666, 574.375, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 218.42666666666665, 588.4375, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 273.5340885416666, 588.4375, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 293.6551822916666, 588.4375, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 334.6532291666666, 588.4375, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 218.42666666666665, 602.5, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 280.4422916666666, 602.5, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 337.8876041666666, 602.5, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 218.42666666666665, 616.5625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 254.49111979166665, 616.5625, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 308.4208072916666, 616.5625, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 218.42666666666665, 630.625, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 260.5965885416666, 630.625, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 218.42666666666665, 644.6875, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 266.7137760416666, 644.6875, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 321.5399479166666, 644.6875, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 218.42666666666665, 658.75, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 254.80752604166665, 658.75, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 308.8016666666666, 658.75, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 218.42666666666665, 672.8125, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 257.3915104166666, 672.8125, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 293.1747135416666, 672.8125, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 218.42666666666665, 686.875, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 274.1258854166666, 686.875, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 323.6610416666666, 686.875, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 218.42666666666665, 700.9375, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 290.5965885416666, 700.9375, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 330.5751041666666, 700.9375, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 218.42666666666665, 715, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 280.8055729166666, 715, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 218.42666666666665, 729.0625, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 279.6044010416666, 729.0625, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 342.9442447916666, 729.0625, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 218.42666666666665, 743.125, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 272.9833072916666, 743.125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 293.3504947916666, 743.125, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 396.8533333333333, 391.5625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 433.9490364583333, 391.5625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 469.8845833333333, 391.5625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 500.2830208333333, 391.5625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 516.2732552083332, 391.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 396.8533333333333, 405.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 463.2693489583333, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 523.7380989583332, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 396.8533333333333, 419.6875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 426.5720833333333, 419.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 474.1736458333333, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 396.8533333333333, 433.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 439.6970833333333, 433.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 491.0017708333333, 433.75, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 396.8533333333333, 447.8125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 435.7713020833333, 447.8125, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 493.1873177083333, 447.8125, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 396.8533333333333, 461.875, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 456.4724739583333, 461.875, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 505.2634895833333, 461.875, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 396.8533333333333, 475.9375, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 446.6228645833333, 475.9375, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 489.7888802083333, 475.9375, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 396.8533333333333, 490, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 461.7869270833333, 490, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 396.8533333333333, 504.0625, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 470.2361458333333, 504.0625, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 517.0408333333332, 504.0625, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 396.8533333333333, 518.125, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 436.9021614583333, 518.125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 500.4177864583333, 518.125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 396.8533333333333, 532.1875, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 440.6755989583333, 532.1875, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 465.7420052083333, 532.1875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 525.7009895833332, 532.1875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 396.8533333333333, 546.25, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 434.8279427083333, 546.25, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 492.1209114583333, 546.25, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 528.1560677083332, 546.25, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 396.8533333333333, 560.3125, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 433.1170052083333, 560.3125, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 455.9627083333333, 560.3125, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 396.8533333333333, 574.375, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 447.1091927083333, 574.375, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 490.0994270833333, 574.375, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 396.8533333333333, 588.4375, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 451.9607552083333, 588.4375, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 472.0818489583333, 588.4375, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 513.0798958333332, 588.4375, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 396.8533333333333, 602.5, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 458.8689583333333, 602.5, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 516.3142708333332, 602.5, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 396.8533333333333, 616.5625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 432.9177864583333, 616.5625, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 486.8474739583333, 616.5625, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 396.8533333333333, 630.625, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 439.0232552083333, 630.625, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 396.8533333333333, 644.6875, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 445.1404427083333, 644.6875, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 499.9666145833333, 644.6875, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 396.8533333333333, 658.75, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 433.2341927083333, 658.75, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 487.2283333333333, 658.75, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 396.8533333333333, 672.8125, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 435.8181770833333, 672.8125, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 471.6013802083333, 672.8125, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 396.8533333333333, 686.875, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 452.5525520833333, 686.875, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 502.0877083333333, 686.875, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 396.8533333333333, 700.9375, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 469.0232552083333, 700.9375, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 509.0017708333333, 700.9375, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 396.8533333333333, 715, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 459.2322395833333, 715, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 396.8533333333333, 729.0625, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 458.0310677083333, 729.0625, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 521.3709114583332, 729.0625, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 396.8533333333333, 743.125, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 451.4099739583333, 743.125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 471.7771614583333, 743.125, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 757.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('You ', 40, 771.25, { lineBreak: false, textWidth: 23.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 63.255859375, 771.25, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('also ', 85.65625, 771.25, { lineBreak: false, textWidth: 25.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specify ', 111.09765625, 771.25, { lineBreak: false, textWidth: 41.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('accurate ', 152.3828125, 771.25, { lineBreak: false, textWidth: 49.306640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('widths ', 201.689453125, 771.25, { lineBreak: false, textWidth: 38.384765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('for ', 240.07421875, 771.25, { lineBreak: false, textWidth: 18.041015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('some ', 258.115234375, 771.25, { lineBreak: false, textWidth: 32.876953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(or ', 290.9921875, 771.25, { lineBreak: false, textWidth: 17.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 308.96875, 771.25, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns). ', 324.291015625, 771.25, { lineBreak: false, textWidth: 56.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("Let's ", 380.5703125, 771.25, { lineBreak: false, textWidth: 27.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 408.0859375, 771.25, { lineBreak: false, textWidth: 32.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 440.423828125, 771.25, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('first ', 460.28125, 771.25, { lineBreak: false, textWidth: 23.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 484.064453125, 771.25, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 526.826171875, 771.25, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 40, 785.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('last ', 59.857421875, 785.3125, { lineBreak: false, textWidth: 22.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one ', 82.375, 785.3125, { lineBreak: false, textWidth: 22.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('narrow ', 105.16796875, 785.3125, { lineBreak: false, textWidth: 39.984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 145.15234375, 785.3125, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('let ', 168.0390625, 785.3125, { lineBreak: false, textWidth: 16.16015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 184.19921875, 785.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('layout ', 204.056640625, 785.3125, { lineBreak: false, textWidth: 35.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('engine ', 239.34765625, 785.3125, { lineBreak: false, textWidth: 38.572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divide ', 277.919921875, 785.3125, { lineBreak: false, textWidth: 34.5, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('remaining ', 312.419921875, 785.3125, { lineBreak: false, textWidth: 56.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('space ', 368.541015625, 785.3125, { lineBreak: false, textWidth: 35.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('equally ', 403.59765625, 785.3125, { lineBreak: false, textWidth: 40.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('between ', 444.390625, 785.3125, { lineBreak: false, textWidth: 48.333984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('other ', 492.724609375, 785.3125, { lineBreak: false, textWidth: 30.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 523.486328125, 785.3125, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns:', 40, 40, { lineBreak: false, textWidth: 48.884765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 54.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 40, 82.1875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 70.3984375, 82.1875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 86.388671875, 82.1875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 40, 96.25, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 40, 110.3125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 100.46875, 110.3125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 40, 124.375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 69.71875, 124.375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 40, 138.4375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 86.435546875, 138.4375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 40, 152.5, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 40, 166.5625, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 88.375, 166.5625, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 40, 180.625, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 40, 194.6875, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 40, 208.75, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 40, 222.8125, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 88.791015625, 222.8125, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 40, 236.875, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 89.76953125, 236.875, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 40, 250.9375, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 40, 265, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 40, 279.0625, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 40, 293.125, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 40, 307.1875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 86.8046875, 307.1875, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 40, 321.25, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 40, 335.3125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 40, 349.375, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 40, 363.4375, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 83.822265625, 363.4375, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 40, 377.5, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 99.958984375, 377.5, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 40, 391.5625, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 40, 405.625, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 40, 419.6875, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 76.03515625, 419.6875, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 40, 433.75, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 76.263671875, 433.75, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 40, 447.8125, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 40, 461.875, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 40, 475.9375, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 82.990234375, 475.9375, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 40, 490, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 95.107421875, 490, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 40, 504.0625, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 80.998046875, 504.0625, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 40, 518.125, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 40, 532.1875, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 97.4453125, 532.1875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 40, 546.25, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 76.064453125, 546.25, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 40, 560.3125, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 87.103515625, 560.3125, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 40, 574.375, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 40, 588.4375, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 40, 602.5, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 40, 616.5625, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 90.54296875, 616.5625, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 40, 630.625, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 93.994140625, 630.625, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 40, 644.6875, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 78.96484375, 644.6875, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 40, 658.75, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 74.693359375, 658.75, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 40, 672.8125, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 89.53515625, 672.8125, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 40, 686.875, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 40, 700.9375, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 79.978515625, 700.9375, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 40, 715, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 40, 729.0625, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 40, 743.125, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 40, 757.1875, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 40, 771.25, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 75.630859375, 771.25, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 40, 785.3125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 150, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 187.095703125, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 223.03125, 68.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 253.4296875, 68.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 150, 82.1875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 182.6484375, 82.1875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 150, 96.25, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 210.46875, 96.25, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 232.69921875, 96.25, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 150, 110.3125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 197.6015625, 110.3125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 244.037109375, 110.3125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 150, 124.375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 201.3046875, 124.375, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 249.6796875, 124.375, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 150, 138.4375, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 207.416015625, 138.4375, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 150, 152.5, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 209.619140625, 152.5, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 258.41015625, 152.5, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 150, 166.5625, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 199.76953125, 166.5625, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 242.935546875, 166.5625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 150, 180.625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 214.93359375, 180.625, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 150, 194.6875, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 223.3828125, 194.6875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 150, 208.75, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 175.283203125, 208.75, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 215.33203125, 208.75, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 150, 222.8125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 204.08203125, 222.8125, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 247.904296875, 222.8125, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 150, 236.875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 209.958984375, 236.875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 241.4765625, 236.875, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 150, 250.9375, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 207.29296875, 250.9375, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 243.328125, 250.9375, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 150, 265, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 186.263671875, 265, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 209.109375, 265, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 150, 279.0625, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 200.255859375, 279.0625, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 243.24609375, 279.0625, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 150, 293.125, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 205.107421875, 293.125, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 225.228515625, 293.125, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 266.2265625, 293.125, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 150, 307.1875, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 212.015625, 307.1875, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 150, 321.25, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 178.20703125, 321.25, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 214.271484375, 321.25, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 150, 335.3125, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 197.103515625, 335.3125, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 150, 349.375, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 238.294921875, 349.375, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 150, 363.4375, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 204.826171875, 363.4375, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 150, 377.5, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 186.380859375, 377.5, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 240.375, 377.5, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 150, 391.5625, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 188.96484375, 391.5625, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 224.748046875, 391.5625, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 150, 405.625, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 205.69921875, 405.625, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 150, 419.6875, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 185.830078125, 419.6875, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 150, 433.75, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 189.978515625, 433.75, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 222.84375, 433.75, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 150, 447.8125, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 199.669921875, 447.8125, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 150, 461.875, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 213.33984375, 461.875, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 150, 475.9375, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 204.556640625, 475.9375, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 150, 490, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 307.64, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 344.735703125, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 380.67125, 68.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 411.0696875, 68.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 307.64, 82.1875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 340.2884375, 82.1875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 307.64, 96.25, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 368.10875, 96.25, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 390.33921875, 96.25, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 307.64, 110.3125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 355.2415625, 110.3125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 401.677109375, 110.3125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 307.64, 124.375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 358.9446875, 124.375, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 407.3196875, 124.375, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 307.64, 138.4375, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 365.056015625, 138.4375, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 307.64, 152.5, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 367.259140625, 152.5, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 416.05015625, 152.5, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 307.64, 166.5625, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 357.40953125, 166.5625, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 400.575546875, 166.5625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 307.64, 180.625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 372.57359375, 180.625, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 307.64, 194.6875, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 381.0228125, 194.6875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 307.64, 208.75, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 332.923203125, 208.75, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 372.97203125, 208.75, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 307.64, 222.8125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 361.72203125, 222.8125, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 405.544296875, 222.8125, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 307.64, 236.875, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 367.598984375, 236.875, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 399.1165625, 236.875, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 307.64, 250.9375, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 364.93296875, 250.9375, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 400.968125, 250.9375, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 307.64, 265, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 343.903671875, 265, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 366.749375, 265, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 307.64, 279.0625, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 357.895859375, 279.0625, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 400.88609375, 279.0625, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 307.64, 293.125, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 362.747421875, 293.125, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 382.868515625, 293.125, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 423.8665625, 293.125, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 307.64, 307.1875, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 369.655625, 307.1875, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 307.64, 321.25, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 335.84703125, 321.25, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 371.911484375, 321.25, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 307.64, 335.3125, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 354.743515625, 335.3125, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 307.64, 349.375, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 395.934921875, 349.375, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 307.64, 363.4375, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 362.466171875, 363.4375, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 307.64, 377.5, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 344.020859375, 377.5, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 398.015, 377.5, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 307.64, 391.5625, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 346.60484375, 391.5625, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 382.388046875, 391.5625, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 307.64, 405.625, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 363.33921875, 405.625, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 307.64, 419.6875, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 343.470078125, 419.6875, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 307.64, 433.75, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 347.618515625, 433.75, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 380.48375, 433.75, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 307.64, 447.8125, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 357.309921875, 447.8125, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 307.64, 461.875, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 370.97984375, 461.875, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 307.64, 475.9375, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 362.196640625, 475.9375, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 307.64, 490, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 465.28, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 502.375703125, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 465.28, 82.1875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 495.6784375, 82.1875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 511.668671875, 82.1875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 465.28, 96.25, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 465.28, 110.3125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 525.74875, 110.3125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 465.28, 124.375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 494.99875, 124.375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 465.28, 138.4375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 511.715546875, 138.4375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 465.28, 152.5, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 465.28, 166.5625, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 513.655, 166.5625, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 465.28, 180.625, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 465.28, 194.6875, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 465.28, 208.75, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 465.28, 222.8125, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 514.071015625, 222.8125, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 465.28, 236.875, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 515.04953125, 236.875, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 465.28, 250.9375, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 465.28, 265, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 465.28, 279.0625, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 465.28, 293.125, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 465.28, 307.1875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 512.0846875, 307.1875, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 465.28, 321.25, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 465.28, 335.3125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 465.28, 349.375, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 465.28, 363.4375, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 509.102265625, 363.4375, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 465.28, 377.5, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 525.238984375, 377.5, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 465.28, 391.5625, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 465.28, 405.625, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 465.28, 419.6875, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 501.31515625, 419.6875, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 465.28, 433.75, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 501.543671875, 433.75, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 465.28, 447.8125, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 465.28, 461.875, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 465.28, 475.9375, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 508.270234375, 475.9375, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 465.28, 490, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 520.387421875, 490, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 465.28, 504.0625, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 506.278046875, 504.0625, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 465.28, 518.125, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 465.28, 532.1875, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 522.7253125, 532.1875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 465.28, 546.25, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 501.344453125, 546.25, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 465.28, 560.3125, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 512.383515625, 560.3125, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 465.28, 574.375, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 465.28, 588.4375, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 465.28, 602.5, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 465.28, 616.5625, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 515.82296875, 616.5625, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 465.28, 630.625, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 519.274140625, 630.625, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 465.28, 644.6875, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 504.24484375, 644.6875, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 465.28, 658.75, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 499.973359375, 658.75, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 465.28, 672.8125, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 514.81515625, 672.8125, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 465.28, 686.875, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 465.28, 700.9375, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 505.258515625, 700.9375, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 465.28, 715, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 465.28, 729.0625, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 465.28, 743.125, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 465.28, 757.1875, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 465.28, 771.25, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 500.910859375, 771.25, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 465.28, 785.3125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 40, 40, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 465.28, 40, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 54.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('We ', 40, 68.125, { lineBreak: false, textWidth: 19.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('also ', 59.79296875, 68.125, { lineBreak: false, textWidth: 25.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('support ', 85.234375, 68.125, { lineBreak: false, textWidth: 44.35546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto ', 129.58984375, 68.125, { lineBreak: false, textWidth: 26.759765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns. ', 156.349609375, 68.125, { lineBreak: false, textWidth: 52.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('They ', 208.45703125, 68.125, { lineBreak: false, textWidth: 28.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 237.15625, 68.125, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('their ', 256.591796875, 68.125, { lineBreak: false, textWidth: 26.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('widths ', 283.421875, 68.125, { lineBreak: false, textWidth: 38.384765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('based ', 321.806640625, 68.125, { lineBreak: false, textWidth: 35.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 357.349609375, 68.125, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 373.78515625, 68.125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('content:', 393.642578125, 68.125, { lineBreak: false, textWidth: 43.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 82.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto ', 40, 96.25, { lineBreak: false, textWidth: 26.759765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column', 40, 110.3125, { lineBreak: false, textWidth: 39.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 104.38607871562212, 96.25, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 130.22592246562212, 96.25, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 142.29623496562212, 96.25, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 151.79428184062212, 96.25, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 175.80014121562212, 96.25, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column. ', 104.38607871562212, 110.3125, { lineBreak: false, textWidth: 45.919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('It ', 150.30600059062212, 110.3125, { lineBreak: false, textWidth: 10.154296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('should ', 160.46029746562212, 110.3125, { lineBreak: false, textWidth: 38.90625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('get ', 199.36654746562212, 110.3125, { lineBreak: false, textWidth: 19.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 219.34701621562212, 110.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('remaining ', 104.38607871562212, 124.375, { lineBreak: false, textWidth: 56.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('space ', 160.50717246562212, 124.375, { lineBreak: false, textWidth: 35.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divided ', 195.56381309062212, 124.375, { lineBreak: false, textWidth: 41.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('by ', 104.38607871562212, 138.4375, { lineBreak: false, textWidth: 15.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 119.70248496562212, 138.4375, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('number ', 139.55990684062212, 138.4375, { lineBreak: false, textWidth: 43.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 183.43490684062212, 138.4375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 197.41537559062212, 138.4375, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 212.73764121562212, 138.4375, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 104.38607871562212, 152.5, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns.', 135.43490684062212, 152.5, { lineBreak: false, textWidth: 49.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 268.39435904336983, 96.25, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one ', 290.99396841836983, 96.25, { lineBreak: false, textWidth: 22.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('has ', 268.39435904336983, 110.3125, { lineBreak: false, textWidth: 22.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specific ', 268.39435904336983, 124.375, { lineBreak: false, textWidth: 44.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width ', 268.39435904336983, 138.4375, { lineBreak: false, textWidth: 32.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 300.59162466836983, 138.4375, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 268.39435904336983, 152.5, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('50', 282.01154654336983, 152.5, { lineBreak: false, textWidth: 13.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('another ', 338.39435904336983, 96.25, { lineBreak: false, textWidth: 43.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto ', 338.39435904336983, 110.3125, { lineBreak: false, textWidth: 26.759765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column', 338.39435904336983, 124.375, { lineBreak: false, textWidth: 39.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 411.27171967225235, 96.25, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 437.11156342225235, 96.25, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 449.18187592225235, 96.25, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 458.67992279725235, 96.25, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 482.68578217225235, 96.25, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column. ', 411.27171967225235, 110.3125, { lineBreak: false, textWidth: 45.919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('It ', 457.19164154725235, 110.3125, { lineBreak: false, textWidth: 10.154296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('should ', 467.34593842225235, 110.3125, { lineBreak: false, textWidth: 38.90625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('get ', 506.25218842225235, 110.3125, { lineBreak: false, textWidth: 19.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 526.2326571722524, 110.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('remaining ', 411.27171967225235, 124.375, { lineBreak: false, textWidth: 56.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('space ', 467.39281342225235, 124.375, { lineBreak: false, textWidth: 35.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divided ', 502.44945404725235, 124.375, { lineBreak: false, textWidth: 41.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('by ', 411.27171967225235, 138.4375, { lineBreak: false, textWidth: 15.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 426.58812592225235, 138.4375, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('number ', 446.44554779725235, 138.4375, { lineBreak: false, textWidth: 43.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 490.32054779725235, 138.4375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 504.30101654725235, 138.4375, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 519.6232821722524, 138.4375, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 411.27171967225235, 152.5, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns.', 442.32054779725235, 152.5, { lineBreak: false, textWidth: 49.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 166.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('If ', 40, 180.625, { lineBreak: false, textWidth: 10.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 50.400390625, 180.625, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto ', 65.72265625, 180.625, { lineBreak: false, textWidth: 26.759765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns ', 92.482421875, 180.625, { lineBreak: false, textWidth: 48.94921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fit ', 141.431640625, 180.625, { lineBreak: false, textWidth: 13.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('within ', 154.966796875, 180.625, { lineBreak: false, textWidth: 34.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('available ', 189.9296875, 180.625, { lineBreak: false, textWidth: 50.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width, ', 239.9453125, 180.625, { lineBreak: false, textWidth: 34.552734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 274.498046875, 180.625, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 294.35546875, 180.625, { lineBreak: false, textWidth: 29.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('does ', 323.775390625, 180.625, { lineBreak: false, textWidth: 29.126953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('not ', 352.90234375, 180.625, { lineBreak: false, textWidth: 20.35546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occupy ', 373.2578125, 180.625, { lineBreak: false, textWidth: 41.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('whole ', 414.595703125, 180.625, { lineBreak: false, textWidth: 34.7109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('space:', 449.306640625, 180.625, { lineBreak: false, textWidth: 34.9921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 194.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('val1', 40, 208.75, { lineBreak: false, textWidth: 21.90234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('val2', 81.90234375, 208.75, { lineBreak: false, textWidth: 21.90234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value3', 123.8046875, 208.75, { lineBreak: false, textWidth: 34.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 178.6796875, 208.75, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 209.787109375, 208.75, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 222.8125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 40, 236.875, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cool ', 85.2109375, 236.875, { lineBreak: false, textWidth: 25.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('feature ', 111.0625, 236.875, { lineBreak: false, textWidth: 40.72265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 151.78515625, 236.875, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfmake ', 165.765625, 236.875, { lineBreak: false, textWidth: 50.00390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 215.76953125, 236.875, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 227.83984375, 236.875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ability ', 247.697265625, 236.875, { lineBreak: false, textWidth: 34.564453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 282.26171875, 236.875, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('have ', 295.87890625, 236.875, { lineBreak: false, textWidth: 28.11328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nested ', 323.9921875, 236.875, { lineBreak: false, textWidth: 39.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elements. ', 363.173828125, 236.875, { lineBreak: false, textWidth: 55.359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Each ', 418.533203125, 236.875, { lineBreak: false, textWidth: 29.208984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 447.7421875, 236.875, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 490.50390625, 236.875, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('actually ', 502.57421875, 236.875, { lineBreak: false, textWidth: 44.34375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quite ', 40, 250.9375, { lineBreak: false, textWidth: 29.595703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('similar ', 69.595703125, 250.9375, { lineBreak: false, textWidth: 39, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 108.595703125, 250.9375, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 122.212890625, 250.9375, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('whole ', 142.0703125, 250.9375, { lineBreak: false, textWidth: 34.7109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document, ', 176.78125, 250.9375, { lineBreak: false, textWidth: 59.25, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('so ', 236.03125, 250.9375, { lineBreak: false, textWidth: 16.001953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('we ', 252.033203125, 250.9375, { lineBreak: false, textWidth: 18.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 270.37890625, 250.9375, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('have ', 292.779296875, 250.9375, { lineBreak: false, textWidth: 28.11328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inner ', 320.892578125, 250.9375, { lineBreak: false, textWidth: 29.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraphs ', 350.435546875, 250.9375, { lineBreak: false, textWidth: 63.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 413.634765625, 250.9375, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('further ', 436.521484375, 250.9375, { lineBreak: false, textWidth: 39.052734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divisions, ', 475.57421875, 250.9375, { lineBreak: false, textWidth: 52.482421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('like ', 528.056640625, 250.9375, { lineBreak: false, textWidth: 21.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 40, 265, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 52.50390625, 265, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('following ', 72.361328125, 265, { lineBreak: false, textWidth: 51.931640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('example:', 124.29296875, 265, { lineBreak: false, textWidth: 48.2578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 279.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('Lorem ', 40, 293.125, { lineBreak: false, textWidth: 27.821777343749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('ipsum ', 67.82177734375, 293.125, { lineBreak: false, textWidth: 26.951660156249996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('dolor ', 94.7734375, 293.125, { lineBreak: false, textWidth: 22.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('sit ', 117.572265625, 293.125, { lineBreak: false, textWidth: 11.992675781249998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('amet, ', 40, 303.671875, { lineBreak: false, textWidth: 24.486328124999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('consectetur ', 64.486328125, 303.671875, { lineBreak: false, textWidth: 49.81201171874999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('adipisicing ', 40, 314.21875, { lineBreak: false, textWidth: 45.3515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('elit. ', 85.3515625, 314.21875, { lineBreak: false, textWidth: 16.6728515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('Conveniunt ', 40, 324.765625, { lineBreak: false, textWidth: 47.27197265624999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('quieti ', 87.27197265625, 324.765625, { lineBreak: false, textWidth: 24.380859374999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('extremum ', 40, 335.3125, { lineBreak: false, textWidth: 42.8642578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('severitatem ', 82.8642578125, 335.3125, { lineBreak: false, textWidth: 49.31103515624999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('disseretur ', 40, 345.859375, { lineBreak: false, textWidth: 42.2138671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('virtute ', 82.2138671875, 345.859375, { lineBreak: false, textWidth: 27.645996093749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('locum ', 109.85986328125, 345.859375, { lineBreak: false, textWidth: 27.105468749999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('virtus ', 40, 356.40625, { lineBreak: false, textWidth: 24.578613281249996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('declarant. ', 64.57861328125, 356.40625, { lineBreak: false, textWidth: 41.90185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('Greges ', 106.48046875, 356.40625, { lineBreak: false, textWidth: 30.546386718749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('telos ', 40, 366.953125, { lineBreak: false, textWidth: 21.8935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('detrimenti ', 61.8935546875, 366.953125, { lineBreak: false, textWidth: 42.9873046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('persius ', 104.880859375, 366.953125, { lineBreak: false, textWidth: 31.517578124999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('possint ', 40, 377.5, { lineBreak: false, textWidth: 31.781249999999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('eripuit ', 71.78125, 377.5, { lineBreak: false, textWidth: 27.360351562499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('appellat ', 99.1416015625, 377.5, { lineBreak: false, textWidth: 34.19384765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('democrito ', 40, 388.046875, { lineBreak: false, textWidth: 43.01806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('suscipere ', 83.01806640625, 388.046875, { lineBreak: false, textWidth: 40.9130859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('existimant. ', 40, 398.59375, { lineBreak: false, textWidth: 46.46337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('Facere ', 86.46337890625, 398.59375, { lineBreak: false, textWidth: 29.157714843749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('usus ', 115.62109375, 398.59375, { lineBreak: false, textWidth: 21.43212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('levitatibus ', 40, 409.140625, { lineBreak: false, textWidth: 43.27734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('confirmavit, ', 83.27734375, 409.140625, { lineBreak: false, textWidth: 49.03417968749999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('provincia ', 40, 419.6875, { lineBreak: false, textWidth: 38.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('rutilius ', 78.6015625, 419.6875, { lineBreak: false, textWidth: 29.329101562499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('libris ', 107.9306640625, 419.6875, { lineBreak: false, textWidth: 21.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('accommodare ', 40, 430.234375, { lineBreak: false, textWidth: 60.28857421874999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('valetudinis ', 40, 440.78125, { lineBreak: false, textWidth: 45.32080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('ignota ', 85.32080078125, 440.78125, { lineBreak: false, textWidth: 27.395507812499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('fugienda ', 40, 451.328125, { lineBreak: false, textWidth: 37.25244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('arbitramur ', 77.25244140625, 451.328125, { lineBreak: false, textWidth: 44.00244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('falsarum ', 40, 461.875, { lineBreak: false, textWidth: 37.86328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('commodius. ', 77.86328125, 461.875, { lineBreak: false, textWidth: 52.21142578124999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('Voluptas ', 40, 472.421875, { lineBreak: false, textWidth: 37.5556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('summis ', 77.5556640625, 472.421875, { lineBreak: false, textWidth: 34.43115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('arbitrarer ', 40, 482.96875, { lineBreak: false, textWidth: 38.8828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('cognitio ', 78.8828125, 482.96875, { lineBreak: false, textWidth: 34.52783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('temperantiamque, ', 40, 493.515625, { lineBreak: false, textWidth: 74.8916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('fuit ', 114.8916015625, 493.515625, { lineBreak: false, textWidth: 15.437988281249998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('posidonium ', 40, 504.0625, { lineBreak: false, textWidth: 49.44287109374999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('pro ', 89.44287109375, 504.0625, { lineBreak: false, textWidth: 15.367675781249998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('assueverit ', 40, 514.609375, { lineBreak: false, textWidth: 43.31689453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('animos ', 83.31689453125, 514.609375, { lineBreak: false, textWidth: 31.935058593749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('inferiorem, ', 40, 525.15625, { lineBreak: false, textWidth: 44.912109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('affecti ', 84.912109375, 525.15625, { lineBreak: false, textWidth: 27.870117187499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('honestum ', 40, 535.703125, { lineBreak: false, textWidth: 42.48193359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('ferreum ', 82.48193359375, 535.703125, { lineBreak: false, textWidth: 33.64013671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('cum ', 116.1220703125, 535.703125, { lineBreak: false, textWidth: 19.78857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('tot ', 40, 546.25, { lineBreak: false, textWidth: 13.152832031249998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('nemo ', 53.15283203125, 546.25, { lineBreak: false, textWidth: 24.982910156249996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('ius ', 78.1357421875, 546.25, { lineBreak: false, textWidth: 14.014160156249998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('partes ', 92.14990234375, 546.25, { lineBreak: false, textWidth: 27.786621093749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('dissensio ', 40, 556.796875, { lineBreak: false, textWidth: 40.46044921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('opinor, ', 80.46044921875, 556.796875, { lineBreak: false, textWidth: 28.964355468749996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('tuum ', 109.4248046875, 556.796875, { lineBreak: false, textWidth: 22.97900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('intellegunt ', 40, 567.34375, { lineBreak: false, textWidth: 44.138671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('numeris ', 84.138671875, 567.34375, { lineBreak: false, textWidth: 34.681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('ignorant, ', 40, 577.890625, { lineBreak: false, textWidth: 36.99755859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('odia ', 76.99755859375, 577.890625, { lineBreak: false, textWidth: 19.51611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('diligenter ', 96.513671875, 577.890625, { lineBreak: false, textWidth: 39.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('licet, ', 40, 588.4375, { lineBreak: false, textWidth: 20.78173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('sublatum ', 60.78173828125, 588.4375, { lineBreak: false, textWidth: 39.74853515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('repellere, ', 100.5302734375, 588.4375, { lineBreak: false, textWidth: 38.408203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('maior ', 40, 598.984375, { lineBreak: false, textWidth: 25.374023437499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('ficta ', 65.3740234375, 598.984375, { lineBreak: false, textWidth: 19.7578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('severa ', 85.1318359375, 598.984375, { lineBreak: false, textWidth: 28.415039062499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('quantum ', 40, 609.53125, { lineBreak: false, textWidth: 37.95556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('mortem. ', 77.95556640625, 609.53125, { lineBreak: false, textWidth: 36.47900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('Aut ', 114.4345703125, 609.53125, { lineBreak: false, textWidth: 15.952148437499998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('evertitur ', 40, 620.078125, { lineBreak: false, textWidth: 35.34521484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('impediri ', 75.34521484375, 620.078125, { lineBreak: false, textWidth: 34.60693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(9); doc.text('vivamus.', 40, 630.625, { lineBreak: false, textWidth: 35.59130859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('As ', 160, 293.125, { lineBreak: false, textWidth: 16.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('you ', 176.986328125, 293.125, { lineBreak: false, textWidth: 22.01953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 199.005859375, 293.125, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('see ', 221.40625, 293.125, { lineBreak: false, textWidth: 21.873046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 243.279296875, 293.125, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 255.783203125, 293.125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document ', 275.640625, 293.125, { lineBreak: false, textWidth: 56.89453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('definition ', 332.53515625, 293.125, { lineBreak: false, textWidth: 52.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 385.10546875, 293.125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 391.38671875, 293.125, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 413.986328125, 293.125, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 456.748046875, 293.125, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('not ', 468.818359375, 293.125, { lineBreak: false, textWidth: 20.35546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('defined ', 489.173828125, 293.125, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 531.66015625, 293.125, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 160, 307.1875, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('object, ', 176.119140625, 307.1875, { lineBreak: false, textWidth: 38.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('but ', 214.4453125, 307.1875, { lineBreak: false, textWidth: 20.23828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 234.68359375, 307.1875, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('array, ', 250.802734375, 307.1875, { lineBreak: false, textWidth: 31.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('which ', 282.033203125, 307.1875, { lineBreak: false, textWidth: 34.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('means ', 316.43359375, 307.1875, { lineBreak: false, textWidth: 39.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("it's ", 355.615234375, 307.1875, { lineBreak: false, textWidth: 17.61328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('treated ', 373.228515625, 307.1875, { lineBreak: false, textWidth: 40.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as ', 413.998046875, 307.1875, { lineBreak: false, textWidth: 15.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 429.68359375, 307.1875, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('array ', 445.802734375, 307.1875, { lineBreak: false, textWidth: 29.501953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 475.3046875, 307.1875, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraphs ', 489.28515625, 307.1875, { lineBreak: false, textWidth: 63.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rendered ', 160, 321.25, { lineBreak: false, textWidth: 50.09765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one ', 210.09765625, 321.25, { lineBreak: false, textWidth: 22.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('below ', 232.890625, 321.25, { lineBreak: false, textWidth: 34.833984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('another.', 267.724609375, 321.25, { lineBreak: false, textWidth: 43.376953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Just ', 160, 335.3125, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('like ', 186.314453125, 335.3125, { lineBreak: false, textWidth: 21.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 207.431640625, 335.3125, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 223.8671875, 335.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('top-', 243.724609375, 335.3125, { lineBreak: false, textWidth: 20.689453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('level ', 264.4140625, 335.3125, { lineBreak: false, textWidth: 27.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 291.583984375, 335.3125, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 305.564453125, 335.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document. ', 325.421875, 335.3125, { lineBreak: false, textWidth: 60.052734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("Let's ", 385.474609375, 335.3125, { lineBreak: false, textWidth: 27.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('try ', 412.990234375, 335.3125, { lineBreak: false, textWidth: 16.734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 429.724609375, 335.3125, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divide ', 443.341796875, 335.3125, { lineBreak: false, textWidth: 34.5, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 477.841796875, 335.3125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('remaing ', 497.69921875, 335.3125, { lineBreak: false, textWidth: 46.587890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('space ', 160, 349.375, { lineBreak: false, textWidth: 35.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 195.056640625, 349.375, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 218.20703125, 349.375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 227.916015625, 349.375, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 251.921875, 349.375, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns:', 282.970703125, 349.375, { lineBreak: false, textWidth: 48.884765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 160, 363.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 160, 377.5, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 197.095703125, 377.5, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 233.03125, 377.5, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 263.4296875, 377.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 160, 391.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.6484375, 391.5625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 160, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 220.46875, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 242.69921875, 405.625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 160, 419.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 207.6015625, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 160, 433.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 202.84375, 433.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 160, 447.8125, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 208.375, 447.8125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 160, 461.875, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 217.416015625, 461.875, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 160, 475.9375, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 219.619140625, 475.9375, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 160, 490, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 181.849609375, 490, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 231.619140625, 490, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 160, 504.0625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 203.517578125, 504.0625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 160, 518.125, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 160, 532.1875, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 233.3828125, 532.1875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 160, 546.25, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 185.283203125, 546.25, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 160, 560.3125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 223.515625, 560.3125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 160, 574.375, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 203.822265625, 574.375, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 160, 588.4375, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 219.958984375, 588.4375, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 160, 602.5, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 197.974609375, 602.5, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 160, 616.5625, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 196.03515625, 616.5625, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 219.830078125, 616.5625, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 256.09375, 616.5625, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 160, 630.625, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 215.8515625, 630.625, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 160, 644.6875, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 202.990234375, 644.6875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 218.265625, 644.6875, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 160, 658.75, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 180.12109375, 658.75, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 221.119140625, 658.75, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 160, 672.8125, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 222.015625, 672.8125, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 160, 686.875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 188.20703125, 686.875, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 224.271484375, 686.875, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 160, 700.9375, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 207.103515625, 700.9375, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 160, 715, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 160, 729.0625, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 208.287109375, 729.0625, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 160, 743.125, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 210.54296875, 743.125, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 160, 757.1875, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 213.994140625, 757.1875, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 160, 771.25, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 198.96484375, 771.25, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 234.748046875, 771.25, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 160, 785.3125, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 215.69921875, 785.3125, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 298.4266666666667, 377.5, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 335.5223697916667, 377.5, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 371.4579166666667, 377.5, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 401.8563541666667, 377.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 298.4266666666667, 391.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 331.0751041666667, 391.5625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 298.4266666666667, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 358.8954166666667, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 381.1258854166667, 405.625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 298.4266666666667, 419.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 346.0282291666667, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 298.4266666666667, 433.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 341.2704166666667, 433.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 298.4266666666667, 447.8125, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 346.8016666666667, 447.8125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 298.4266666666667, 461.875, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 355.8426822916667, 461.875, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 298.4266666666667, 475.9375, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 358.0458072916667, 475.9375, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 298.4266666666667, 490, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 320.2762760416667, 490, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 370.0458072916667, 490, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 298.4266666666667, 504.0625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 341.9442447916667, 504.0625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 298.4266666666667, 518.125, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 298.4266666666667, 532.1875, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 371.8094791666667, 532.1875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 298.4266666666667, 546.25, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 323.7098697916667, 546.25, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 298.4266666666667, 560.3125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 361.9422916666667, 560.3125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 298.4266666666667, 574.375, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 342.2489322916667, 574.375, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 298.4266666666667, 588.4375, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 358.3856510416667, 588.4375, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 298.4266666666667, 602.5, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 336.4012760416667, 602.5, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 298.4266666666667, 616.5625, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 334.4618229166667, 616.5625, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 358.2567447916667, 616.5625, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 394.5204166666667, 616.5625, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 298.4266666666667, 630.625, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 354.2782291666667, 630.625, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 298.4266666666667, 644.6875, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 341.4169010416667, 644.6875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 356.6922916666667, 644.6875, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 298.4266666666667, 658.75, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 318.5477604166667, 658.75, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 359.5458072916667, 658.75, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 298.4266666666667, 672.8125, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 360.4422916666667, 672.8125, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 298.4266666666667, 686.875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 326.6336979166667, 686.875, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 362.6981510416667, 686.875, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 298.4266666666667, 700.9375, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 345.5301822916667, 700.9375, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 298.4266666666667, 715, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 298.4266666666667, 729.0625, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 346.7137760416667, 729.0625, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 298.4266666666667, 743.125, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 348.9696354166667, 743.125, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 298.4266666666667, 757.1875, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 352.4208072916667, 757.1875, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 298.4266666666667, 771.25, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 337.3915104166667, 771.25, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 373.1747135416667, 771.25, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 298.4266666666667, 785.3125, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 354.1258854166667, 785.3125, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 436.85333333333335, 377.5, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 473.94903645833335, 377.5, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 509.88458333333335, 377.5, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 540.2830208333334, 377.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 436.85333333333335, 391.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 469.50177083333335, 391.5625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 436.85333333333335, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 497.32208333333335, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 519.5525520833334, 405.625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 436.85333333333335, 419.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 484.45489583333335, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 436.85333333333335, 433.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 479.69708333333335, 433.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit, ', 436.85333333333335, 447.8125, { lineBreak: false, textWidth: 48.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officiis ', 485.22833333333335, 447.8125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('viveremus ', 436.85333333333335, 461.875, { lineBreak: false, textWidth: 57.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aeternum ', 494.26934895833335, 461.875, { lineBreak: false, textWidth: 53.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('superstitio ', 436.85333333333335, 475.9375, { lineBreak: false, textWidth: 59.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suspicor ', 496.47247395833335, 475.9375, { lineBreak: false, textWidth: 48.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alia ', 436.85333333333335, 490, { lineBreak: false, textWidth: 21.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostram, ', 458.70294270833335, 490, { lineBreak: false, textWidth: 49.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quando ', 508.47247395833335, 490, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostros ', 436.85333333333335, 504.0625, { lineBreak: false, textWidth: 43.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('congressus ', 480.37091145833335, 504.0625, { lineBreak: false, textWidth: 64.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('susceperant ', 436.85333333333335, 518.125, { lineBreak: false, textWidth: 68.583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur ', 436.85333333333335, 532.1875, { lineBreak: false, textWidth: 73.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leguntur ', 510.23614583333335, 532.1875, { lineBreak: false, textWidth: 46.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iam, ', 436.85333333333335, 546.25, { lineBreak: false, textWidth: 25.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vigiliae ', 462.13653645833335, 546.25, { lineBreak: false, textWidth: 40.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('democritea ', 436.85333333333335, 560.3125, { lineBreak: false, textWidth: 63.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tantopere ', 500.36895833333335, 560.3125, { lineBreak: false, textWidth: 54.08203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('causae, ', 436.85333333333335, 574.375, { lineBreak: false, textWidth: 43.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('atilii ', 480.67559895833335, 574.375, { lineBreak: false, textWidth: 25.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerumque ', 436.85333333333335, 588.4375, { lineBreak: false, textWidth: 59.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsas ', 496.81231770833335, 588.4375, { lineBreak: false, textWidth: 31.517578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('potitur ', 436.85333333333335, 602.5, { lineBreak: false, textWidth: 37.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pertineant ', 474.82794270833335, 602.5, { lineBreak: false, textWidth: 57.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multis ', 436.85333333333335, 616.5625, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rem ', 472.88848958333335, 616.5625, { lineBreak: false, textWidth: 23.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quaeri ', 496.68341145833335, 616.5625, { lineBreak: false, textWidth: 36.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pro, ', 532.9470833333334, 616.5625, { lineBreak: false, textWidth: 22.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legendum ', 436.85333333333335, 630.625, { lineBreak: false, textWidth: 55.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('didicisse ', 492.70489583333335, 630.625, { lineBreak: false, textWidth: 50.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('credere ', 436.85333333333335, 644.6875, { lineBreak: false, textWidth: 42.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 479.84356770833335, 644.6875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maluisset ', 495.11895833333335, 644.6875, { lineBreak: false, textWidth: 55.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('per ', 436.85333333333335, 658.75, { lineBreak: false, textWidth: 20.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('videtis. ', 456.97442708333335, 658.75, { lineBreak: false, textWidth: 40.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cur ', 497.97247395833335, 658.75, { lineBreak: false, textWidth: 21.45703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('discordans ', 436.85333333333335, 672.8125, { lineBreak: false, textWidth: 62.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetereat ', 498.86895833333335, 672.8125, { lineBreak: false, textWidth: 57.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliae ', 436.85333333333335, 686.875, { lineBreak: false, textWidth: 28.20703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ruinae ', 465.06036458333335, 686.875, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dirigentur ', 501.12481770833335, 686.875, { lineBreak: false, textWidth: 53.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('orestem ', 436.85333333333335, 700.9375, { lineBreak: false, textWidth: 47.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eodem, ', 483.95684895833335, 700.9375, { lineBreak: false, textWidth: 42.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('praetermittenda ', 436.85333333333335, 715, { lineBreak: false, textWidth: 88.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('divinum. ', 436.85333333333335, 729.0625, { lineBreak: false, textWidth: 48.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Collegisti, ', 485.14044270833335, 729.0625, { lineBreak: false, textWidth: 54.826171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deteriora ', 436.85333333333335, 743.125, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('malint ', 487.39630208333335, 743.125, { lineBreak: false, textWidth: 36.380859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('loquuntur ', 436.85333333333335, 757.1875, { lineBreak: false, textWidth: 53.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officii ', 490.84747395833335, 757.1875, { lineBreak: false, textWidth: 32.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cotidie ', 436.85333333333335, 771.25, { lineBreak: false, textWidth: 38.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finitas ', 475.81817708333335, 771.25, { lineBreak: false, textWidth: 35.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referri ', 511.60138020833335, 771.25, { lineBreak: false, textWidth: 34.693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('doleamus ', 436.85333333333335, 785.3125, { lineBreak: false, textWidth: 55.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ambigua ', 492.55255208333335, 785.3125, { lineBreak: false, textWidth: 49.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 160, 40, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 195.830078125, 40, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 160, 54.0625, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 199.978515625, 54.0625, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 160, 68.125, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 222.37890625, 68.125, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 160, 82.1875, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 160, 96.25, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 223.33984375, 96.25, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 160, 110.3125, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 214.556640625, 110.3125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 160, 124.375, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 298.4266666666667, 40, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 334.2567447916667, 40, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 298.4266666666667, 54.0625, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 338.4051822916667, 54.0625, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 298.4266666666667, 68.125, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 360.8055729166667, 68.125, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 298.4266666666667, 82.1875, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 298.4266666666667, 96.25, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 361.7665104166667, 96.25, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 298.4266666666667, 110.3125, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 352.9833072916667, 110.3125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 298.4266666666667, 124.375, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('acute. ', 436.85333333333335, 40, { lineBreak: false, textWidth: 35.830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Adhaesiones ', 472.68341145833335, 40, { lineBreak: false, textWidth: 72.169921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ratione ', 436.85333333333335, 54.0625, { lineBreak: false, textWidth: 39.978515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('beate ', 476.83184895833335, 54.0625, { lineBreak: false, textWidth: 32.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arbitraretur ', 436.85333333333335, 68.125, { lineBreak: false, textWidth: 62.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('detractis ', 499.23223958333335, 68.125, { lineBreak: false, textWidth: 49.669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perdiscere, ', 436.85333333333335, 82.1875, { lineBreak: false, textWidth: 61.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('constituant ', 436.85333333333335, 96.25, { lineBreak: false, textWidth: 63.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('hostis ', 500.19317708333335, 96.25, { lineBreak: false, textWidth: 35.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('polyaeno. ', 436.85333333333335, 110.3125, { lineBreak: false, textWidth: 54.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Diu ', 491.40997395833335, 110.3125, { lineBreak: false, textWidth: 20.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('concederetur.', 436.85333333333335, 124.375, { lineBreak: false, textWidth: 72.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 138.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 152.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Oh, ', 40, 166.5625, { lineBreak: false, textWidth: 20.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("don't ", 60.185546875, 166.5625, { lineBreak: false, textWidth: 28.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('forget, ', 88.791015625, 166.5625, { lineBreak: false, textWidth: 37.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('we ', 126.0859375, 166.5625, { lineBreak: false, textWidth: 18.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 144.431640625, 166.5625, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('use ', 166.83203125, 166.5625, { lineBreak: false, textWidth: 22.130859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('everything ', 188.962890625, 166.5625, { lineBreak: false, textWidth: 57.984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('from ', 246.947265625, 166.5625, { lineBreak: false, textWidth: 28.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styling ', 275.388671875, 166.5625, { lineBreak: false, textWidth: 37.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('examples ', 313.322265625, 166.5625, { lineBreak: false, textWidth: 54.509765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(named ', 367.83203125, 166.5625, { lineBreak: false, textWidth: 43.86328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styles, ', 411.6953125, 166.5625, { lineBreak: false, textWidth: 36.568359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('custom ', 448.263671875, 166.5625, { lineBreak: false, textWidth: 43.21875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('overrides) ', 491.482421875, 166.5625, { lineBreak: false, textWidth: 56.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here ', 40, 180.625, { lineBreak: false, textWidth: 26.244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as ', 66.244140625, 180.625, { lineBreak: false, textWidth: 15.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('well.', 81.9296875, 180.625, { lineBreak: false, textWidth: 24.357421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 194.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('For ', 40, 208.75, { lineBreak: false, textWidth: 20.384765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instance ', 60.384765625, 208.75, { lineBreak: false, textWidth: 48.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 108.783203125, 208.75, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('our ', 115.064453125, 208.75, { lineBreak: false, textWidth: 20.490234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('next ', 135.5546875, 208.75, { lineBreak: false, textWidth: 25.81640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paragraph ', 161.37109375, 208.75, { lineBreak: false, textWidth: 57.01171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 218.3828125, 208.75, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('use ', 239.107421875, 208.75, { lineBreak: false, textWidth: 22.130859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 261.23828125, 208.75, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("'bigger' ", 281.095703125, 208.75, { lineBreak: false, textWidth: 40.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style ', 321.87109375, 208.75, { lineBreak: false, textWidth: 28.025390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(with ', 349.896484375, 208.75, { lineBreak: false, textWidth: 29.53125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fontSize ', 379.427734375, 208.75, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 426.19140625, 208.75, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 445.626953125, 208.75, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('15 ', 459.244140625, 208.75, { lineBreak: false, textWidth: 16.447265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 475.69140625, 208.75, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('italics ', 498.578125, 208.75, { lineBreak: false, textWidth: 34.623046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 533.201171875, 208.75, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true). ', 40, 222.8125, { lineBreak: false, textWidth: 31.25390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("We'll ", 71.25390625, 222.8125, { lineBreak: false, textWidth: 27.626953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('split ', 98.880859375, 222.8125, { lineBreak: false, textWidth: 25.634765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('it ', 124.515625, 222.8125, { lineBreak: false, textWidth: 9.802734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('into ', 134.318359375, 222.8125, { lineBreak: false, textWidth: 23.150390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('three ', 157.46875, 222.8125, { lineBreak: false, textWidth: 30.1640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns ', 187.6328125, 222.8125, { lineBreak: false, textWidth: 48.94921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 236.58203125, 222.8125, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 259.46875, 222.8125, { lineBreak: false, textWidth: 32.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure ', 291.806640625, 222.8125, { lineBreak: false, textWidth: 26.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('they ', 317.88671875, 222.8125, { lineBreak: false, textWidth: 25.458984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inherit ', 343.345703125, 222.8125, { lineBreak: false, textWidth: 36.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 379.708984375, 222.8125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style:', 399.56640625, 222.8125, { lineBreak: false, textWidth: 27.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 236.875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('First ', 40, 250.9375, { lineBreak: false, textWidth: 32.79052734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('column ', 72.79052734375, 250.9375, { lineBreak: false, textWidth: 52.36083984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('(BTW ', 125.1513671875, 250.9375, { lineBreak: false, textWidth: 39.49951171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 164.65087890625, 250.9375, { lineBreak: false, textWidth: 7.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text("it's ", 172.41455078125, 250.9375, { lineBreak: false, textWidth: 21.70166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('defined ', 40, 268.515625, { lineBreak: false, textWidth: 52.0166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('as ', 92.0166015625, 268.515625, { lineBreak: false, textWidth: 19.24072265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('a ', 111.25732421875, 268.515625, { lineBreak: false, textWidth: 11.66748046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('single ', 122.9248046875, 268.515625, { lineBreak: false, textWidth: 42.57568359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('string ', 40, 286.09375, { lineBreak: false, textWidth: 41.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('value. ', 81.015625, 286.09375, { lineBreak: false, textWidth: 42.0556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('pdfmake ', 123.0712890625, 286.09375, { lineBreak: false, textWidth: 61.2158203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('will ', 40, 303.671875, { lineBreak: false, textWidth: 25.49560546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('turn ', 65.49560546875, 303.671875, { lineBreak: false, textWidth: 29.6923828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('it ', 95.18798828125, 303.671875, { lineBreak: false, textWidth: 12.10693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('into ', 107.294921875, 303.671875, { lineBreak: false, textWidth: 28.4326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('appropriate ', 40, 321.25, { lineBreak: false, textWidth: 78.80126953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('structure ', 118.80126953125, 321.25, { lineBreak: false, textWidth: 62.40966796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('automatically ', 40, 338.828125, { lineBreak: false, textWidth: 91.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('and ', 131.904296875, 338.828125, { lineBreak: false, textWidth: 28.04443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('make ', 159.94873046875, 338.828125, { lineBreak: false, textWidth: 39.57275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('sure ', 40, 356.40625, { lineBreak: false, textWidth: 31.9775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('it ', 71.9775390625, 356.40625, { lineBreak: false, textWidth: 12.10693359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('inherits ', 84.08447265625, 356.40625, { lineBreak: false, textWidth: 52.24365234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('the ', 136.328125, 356.40625, { lineBreak: false, textWidth: 24.36767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('styles', 40, 373.984375, { lineBreak: false, textWidth: 38.31298828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('In ', 218.42666666666665, 250.9375, { lineBreak: false, textWidth: 21.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('this ', 239.50088541666665, 250.9375, { lineBreak: false, textWidth: 37.021484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('column, ', 276.5223697916666, 250.9375, { lineBreak: false, textWidth: 73.720703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text("we've ", 218.42666666666665, 274.375, { lineBreak: false, textWidth: 53.02734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('overriden ', 271.4540104166666, 274.375, { lineBreak: false, textWidth: 85.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('fontSize ', 218.42666666666665, 297.8125, { lineBreak: false, textWidth: 76.484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('to ', 294.9110416666666, 297.8125, { lineBreak: false, textWidth: 22.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('20. ', 317.2157291666666, 297.8125, { lineBreak: false, textWidth: 32.099609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('It ', 349.3153385416666, 297.8125, { lineBreak: false, textWidth: 16.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('means ', 218.42666666666665, 321.25, { lineBreak: false, textWidth: 63.92578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('the ', 282.3524479166666, 321.25, { lineBreak: false, textWidth: 32.490234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('content ', 218.42666666666665, 344.6875, { lineBreak: false, textWidth: 71.162109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('should ', 289.5887760416666, 344.6875, { lineBreak: false, textWidth: 63.57421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('have ', 218.42666666666665, 368.125, { lineBreak: false, textWidth: 45.927734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('italics=true ', 264.3544010416666, 368.125, { lineBreak: false, textWidth: 101.7578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('(inherited ', 218.42666666666665, 391.5625, { lineBreak: false, textWidth: 87.6953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('from ', 306.1219791666666, 391.5625, { lineBreak: false, textWidth: 46.46484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('the ', 218.42666666666665, 415, { lineBreak: false, textWidth: 32.490234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('style) ', 250.91690104166665, 415, { lineBreak: false, textWidth: 52.734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('and ', 303.6512760416666, 415, { lineBreak: false, textWidth: 37.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('be ', 341.0438541666666, 415, { lineBreak: false, textWidth: 26.259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('a ', 218.42666666666665, 438.4375, { lineBreak: false, textWidth: 15.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('little ', 233.98330729166665, 438.4375, { lineBreak: false, textWidth: 42.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('bit ', 276.5419010416666, 438.4375, { lineBreak: false, textWidth: 27.12890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(20); doc.text('bigger', 303.6708072916666, 438.4375, { lineBreak: false, textWidth: 54.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('Last ', 396.8533333333333, 250.9375, { lineBreak: false, textWidth: 38.5048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('column ', 435.3582161458333, 250.9375, { lineBreak: false, textWidth: 63.11425781249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('does ', 498.4724739583333, 250.9375, { lineBreak: false, textWidth: 42.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('not ', 396.8533333333333, 272.03125, { lineBreak: false, textWidth: 30.164062499999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('override ', 427.0173958333333, 272.03125, { lineBreak: false, textWidth: 68.7919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('any ', 495.8093880208333, 272.03125, { lineBreak: false, textWidth: 32.361328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('styling ', 396.8533333333333, 293.125, { lineBreak: false, textWidth: 56.89160156249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('properties, ', 453.7449348958333, 293.125, { lineBreak: false, textWidth: 89.244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('but ', 396.8533333333333, 314.21875, { lineBreak: false, textWidth: 30.041015624999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('applies ', 426.8943489583333, 314.21875, { lineBreak: false, textWidth: 61.44433593749999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('a ', 488.3386848958333, 314.21875, { lineBreak: false, textWidth: 13.974609374999998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('new ', 502.3132942708333, 314.21875, { lineBreak: false, textWidth: 36.755859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('style ', 396.8533333333333, 335.3125, { lineBreak: false, textWidth: 42.0205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('(header) ', 438.8738411458333, 335.3125, { lineBreak: false, textWidth: 71.2529296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('to ', 510.1267708333333, 335.3125, { lineBreak: false, textWidth: 20.1005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('itself. ', 396.8533333333333, 356.40625, { lineBreak: false, textWidth: 49.21874999999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('Eventually ', 446.0720833333333, 356.40625, { lineBreak: false, textWidth: 84.9375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('- ', 531.0095833333332, 356.40625, { lineBreak: false, textWidth: 10.2568359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('texts ', 396.8533333333333, 377.5, { lineBreak: false, textWidth: 43.6552734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('here ', 440.5086067708333, 377.5, { lineBreak: false, textWidth: 39.1904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('have ', 479.6990364583333, 377.5, { lineBreak: false, textWidth: 41.6953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('italics=true ', 396.8533333333333, 398.59375, { lineBreak: false, textWidth: 93.05859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('(from ', 489.9119270833333, 398.59375, { lineBreak: false, textWidth: 48.11132812499999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('bigger) ', 396.8533333333333, 419.6875, { lineBreak: false, textWidth: 60.78515624999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('and ', 457.6384895833333, 419.6875, { lineBreak: false, textWidth: 33.71484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('derive ', 491.3533333333333, 419.6875, { lineBreak: false, textWidth: 52.67285156249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('fontSize ', 396.8533333333333, 440.78125, { lineBreak: false, textWidth: 69.7939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('from ', 466.6472786458333, 440.78125, { lineBreak: false, textWidth: 41.9326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('the ', 508.5798958333333, 440.78125, { lineBreak: false, textWidth: 29.575195312499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('style. ', 396.8533333333333, 461.875, { lineBreak: false, textWidth: 46.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('OK, ', 443.8396614583333, 461.875, { lineBreak: false, textWidth: 31.605468749999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('but ', 475.4451302083333, 461.875, { lineBreak: false, textWidth: 30.041015624999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('which ', 505.4861458333333, 461.875, { lineBreak: false, textWidth: 50.83593749999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('one? ', 396.8533333333333, 482.96875, { lineBreak: false, textWidth: 42.3017578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('Both ', 439.1550911458333, 482.96875, { lineBreak: false, textWidth: 41.2470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('styles ', 480.4021614583333, 482.96875, { lineBreak: false, textWidth: 51.11718749999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('define ', 396.8533333333333, 504.0625, { lineBreak: false, textWidth: 53.34082031249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('it. ', 450.1941536458333, 504.0625, { lineBreak: false, textWidth: 19.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('As ', 470.0398567708333, 504.0625, { lineBreak: false, textWidth: 25.242187499999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('we ', 495.2820442708333, 504.0625, { lineBreak: false, textWidth: 26.956054687499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('already ', 396.8533333333333, 525.15625, { lineBreak: false, textWidth: 62.09472656249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('know ', 458.9480598958333, 525.15625, { lineBreak: false, textWidth: 46.529296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('from ', 505.4773567708333, 525.15625, { lineBreak: false, textWidth: 41.9326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('our ', 396.8533333333333, 546.25, { lineBreak: false, textWidth: 30.480468749999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('styling ', 427.3338020833333, 546.25, { lineBreak: false, textWidth: 56.89160156249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('examples, ', 396.8533333333333, 567.34375, { lineBreak: false, textWidth: 84.5244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('multiple ', 481.3777473958333, 567.34375, { lineBreak: false, textWidth: 68.4140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('styles ', 396.8533333333333, 588.4375, { lineBreak: false, textWidth: 51.11718749999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('can ', 447.9705208333333, 588.4375, { lineBreak: false, textWidth: 33.0029296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('be ', 480.9734505208333, 588.4375, { lineBreak: false, textWidth: 23.809570312499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('applied ', 396.8533333333333, 609.53125, { lineBreak: false, textWidth: 62.28808593749999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('to ', 459.1414192708333, 609.53125, { lineBreak: false, textWidth: 20.1005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('the ', 479.2420052083333, 609.53125, { lineBreak: false, textWidth: 29.575195312499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('element ', 396.8533333333333, 630.625, { lineBreak: false, textWidth: 68.3349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('and ', 465.1882942708333, 630.625, { lineBreak: false, textWidth: 33.71484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('their ', 498.9031380208333, 630.625, { lineBreak: false, textWidth: 40.341796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('order ', 396.8533333333333, 651.71875, { lineBreak: false, textWidth: 46.142578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('is ', 442.9959114583333, 651.71875, { lineBreak: false, textWidth: 18.0791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('important. ', 461.0750130208333, 651.71875, { lineBreak: false, textWidth: 86.9677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('Because ', 396.8533333333333, 672.8125, { lineBreak: false, textWidth: 72.10546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text("'header' ", 468.9588020833333, 672.8125, { lineBreak: false, textWidth: 65.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('style ', 396.8533333333333, 693.90625, { lineBreak: false, textWidth: 42.0205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('has ', 438.8738411458333, 693.90625, { lineBreak: false, textWidth: 32.853515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('been ', 471.7273567708333, 693.90625, { lineBreak: false, textWidth: 43.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('set ', 514.7937630208332, 693.90625, { lineBreak: false, textWidth: 28.889648437499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('after ', 396.8533333333333, 715, { lineBreak: false, textWidth: 41.8271484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text("'bigger' ", 438.6804817708333, 715, { lineBreak: false, textWidth: 60.76757812499999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('its ', 499.4480598958333, 715, { lineBreak: false, textWidth: 23.976562499999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('fontSize ', 396.8533333333333, 736.09375, { lineBreak: false, textWidth: 69.7939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('takes ', 466.6472786458333, 736.09375, { lineBreak: false, textWidth: 47.45214843749999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('precedence ', 396.8533333333333, 757.1875, { lineBreak: false, textWidth: 96.43359374999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('over ', 493.2869270833333, 757.1875, { lineBreak: false, textWidth: 38.6279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('the ', 396.8533333333333, 778.28125, { lineBreak: false, textWidth: 29.575195312499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('fontSize ', 426.4285286458333, 778.28125, { lineBreak: false, textWidth: 69.7939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('from ', 496.2224739583333, 778.28125, { lineBreak: false, textWidth: 41.9326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text("'bigger'. ", 396.8533333333333, 40, { lineBreak: false, textWidth: 65.7333984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('This ', 462.5867317708333, 40, { lineBreak: false, textWidth: 38.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('is ', 501.1355598958333, 40, { lineBreak: false, textWidth: 18.0791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('how ', 519.2146614583332, 40, { lineBreak: false, textWidth: 37.3095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('it ', 396.8533333333333, 61.09375, { lineBreak: false, textWidth: 14.879882812499998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('works. ', 411.7332161458333, 61.09375, { lineBreak: false, textWidth: 57.01464843749999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('You ', 468.7478645833333, 61.09375, { lineBreak: false, textWidth: 34.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('will ', 503.1658333333333, 61.09375, { lineBreak: false, textWidth: 31.130859374999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('find ', 396.8533333333333, 82.1875, { lineBreak: false, textWidth: 34.4267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('more ', 431.2800911458333, 82.1875, { lineBreak: false, textWidth: 45.263671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('examples ', 476.5437630208333, 82.1875, { lineBreak: false, textWidth: 80.595703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('in ', 396.8533333333333, 103.28125, { lineBreak: false, textWidth: 18.7822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('the ', 415.6355598958333, 103.28125, { lineBreak: false, textWidth: 29.575195312499996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('unit ', 445.2107552083333, 103.28125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('tests.', 479.6814583333333, 103.28125, { lineBreak: false, textWidth: 44.4111328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 124.375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 138.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Wow, ', 40, 152.5, { lineBreak: false, textWidth: 30.92578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("you've ", 70.92578125, 152.5, { lineBreak: false, textWidth: 36.205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('read ', 107.130859375, 152.5, { lineBreak: false, textWidth: 26.572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 133.703125, 152.5, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('whole ', 153.560546875, 152.5, { lineBreak: false, textWidth: 34.7109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document! ', 188.271484375, 152.5, { lineBreak: false, textWidth: 59.982421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Congratulations :D', 248.25390625, 152.5, { lineBreak: false, textWidth: 98.56640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/images.spec.js ================================================ import { runDocTest } from '../helpers'; import { jpeg as bee } from '../../images/bee'; describe('pdfmake', function() { test('images', function() { return runDocTest(function(doc) { const images = { bee: bee }; doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfmake ', 40, 40, { lineBreak: false, textWidth: 50.00390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(since ', 90.00390625, 40, { lineBreak: false, textWidth: 35.431640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("it's ", 125.435546875, 40, { lineBreak: false, textWidth: 17.61328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('based ', 143.048828125, 40, { lineBreak: false, textWidth: 35.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 178.591796875, 40, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfkit) ', 195.02734375, 40, { lineBreak: false, textWidth: 37.72265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('supports ', 232.75, 40, { lineBreak: false, textWidth: 50.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('JPEG ', 283.29296875, 40, { lineBreak: false, textWidth: 32.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 315.44921875, 40, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('PNG ', 338.3359375, 40, { lineBreak: false, textWidth: 27.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('format', 365.60546875, 40, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('If ', 40, 54.0625, { lineBreak: false, textWidth: 10.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('no ', 50.400390625, 54.0625, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width/', 66.8359375, 54.0625, { lineBreak: false, textWidth: 34.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height/', 101.0078125, 54.0625, { lineBreak: false, textWidth: 38.0859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fit ', 139.09375, 54.0625, { lineBreak: false, textWidth: 13.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 152.62890625, 54.0625, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('provided, ', 164.69921875, 54.0625, { lineBreak: false, textWidth: 51.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('image ', 216.07421875, 54.0625, { lineBreak: false, textWidth: 36.017578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('original ', 252.091796875, 54.0625, { lineBreak: false, textWidth: 42.4921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('size ', 294.583984375, 54.0625, { lineBreak: false, textWidth: 24.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 318.865234375, 54.0625, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 339.58984375, 54.0625, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('used', 355.650390625, 54.0625, { lineBreak: false, textWidth: 25.927734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image('tests/images/sampleImage.jpg', 40, 68.125, { width: 695, height: 310 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('If ', 40, 378.125, { lineBreak: false, textWidth: 10.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('you ', 50.400390625, 378.125, { lineBreak: false, textWidth: 22.01953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specify ', 72.419921875, 378.125, { lineBreak: false, textWidth: 41.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width, ', 113.705078125, 378.125, { lineBreak: false, textWidth: 34.552734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('image ', 148.2578125, 378.125, { lineBreak: false, textWidth: 36.017578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 184.275390625, 378.125, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scale ', 205, 378.125, { lineBreak: false, textWidth: 31.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proportionally', 236.236328125, 378.125, { lineBreak: false, textWidth: 73.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image('tests/images/sampleImage.jpg', 40, 392.1875, { width: 150, height: 66.90647482014388 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('If ', 40, 459.0939748201439, { lineBreak: false, textWidth: 10.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('you ', 50.400390625, 459.0939748201439, { lineBreak: false, textWidth: 22.01953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specify ', 72.419921875, 459.0939748201439, { lineBreak: false, textWidth: 41.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('both ', 113.705078125, 459.0939748201439, { lineBreak: false, textWidth: 27.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width ', 140.78125, 459.0939748201439, { lineBreak: false, textWidth: 32.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 172.978515625, 459.0939748201439, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height ', 195.865234375, 459.0939748201439, { lineBreak: false, textWidth: 36.111328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 231.9765625, 459.0939748201439, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('image ', 238.2578125, 459.0939748201439, { lineBreak: false, textWidth: 36.017578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 274.275390625, 459.0939748201439, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 295, 459.0939748201439, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stretched', 311.060546875, 459.0939748201439, { lineBreak: false, textWidth: 50.349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image('tests/images/sampleImage.jpg', 40, 473.1564748201439, { width: 150, height: 150 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('You ', 40, 623.1564748201439, { lineBreak: false, textWidth: 23.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 63.255859375, 623.1564748201439, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('also ', 85.65625, 623.1564748201439, { lineBreak: false, textWidth: 25.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fit ', 111.09765625, 623.1564748201439, { lineBreak: false, textWidth: 13.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 124.6328125, 623.1564748201439, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('image ', 144.490234375, 623.1564748201439, { lineBreak: false, textWidth: 36.017578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inside ', 180.5078125, 623.1564748201439, { lineBreak: false, textWidth: 34.728515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 215.236328125, 623.1564748201439, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rectangle', 224.734375, 623.1564748201439, { lineBreak: false, textWidth: 49.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image('tests/images/sampleImage.jpg', 40, 637.2189748201439, { width: 100, height: 44.60431654676259 }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Images ', 40, 40, { lineBreak: false, textWidth: 42.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 82.556640625, 40, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 104.95703125, 40, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('also ', 121.017578125, 40, { lineBreak: false, textWidth: 25.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('provided ', 146.458984375, 40, { lineBreak: false, textWidth: 49.01953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 195.478515625, 40, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dataURL ', 207.982421875, 40, { lineBreak: false, textWidth: 48.33984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('format', 256.322265625, 40, { lineBreak: false, textWidth: 36.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(the ', 40, 54.0625, { lineBreak: false, textWidth: 23.958984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one ', 63.958984375, 54.0625, { lineBreak: false, textWidth: 22.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('below ', 86.751953125, 54.0625, { lineBreak: false, textWidth: 34.833984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('was ', 121.5859375, 54.0625, { lineBreak: false, textWidth: 24.703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('taken ', 146.2890625, 54.0625, { lineBreak: false, textWidth: 32.361328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('from ', 178.650390625, 54.0625, { lineBreak: false, textWidth: 28.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('http://', 207.091796875, 54.0625, { lineBreak: false, textWidth: 32.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('www.clipartbest.com/', 239.7578125, 54.0625, { lineBreak: false, textWidth: 118.06640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clipart-', 357.82421875, 54.0625, { lineBreak: false, textWidth: 36.94921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dT7zx5rT9)', 394.7734375, 54.0625, { lineBreak: false, textWidth: 61.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image(images['bee'], 40, 68.125, { width: 200, height: 195.59902200488997 }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('or ', 40, 263.72402200489, { lineBreak: false, textWidth: 13.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 53.875, 263.72402200489, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('defined ', 69.935546875, 263.72402200489, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 112.421875, 263.72402200489, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 124.92578125, 263.72402200489, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('"images" ', 144.783203125, 263.72402200489, { lineBreak: false, textWidth: 49.880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dictionary, ', 194.6640625, 263.72402200489, { lineBreak: false, textWidth: 57.328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('which ', 251.9921875, 263.72402200489, { lineBreak: false, textWidth: 34.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 286.392578125, 263.72402200489, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 308.79296875, 263.72402200489, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referenced ', 324.853515625, 263.72402200489, { lineBreak: false, textWidth: 59.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('by ', 384.84765625, 263.72402200489, { lineBreak: false, textWidth: 15.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('name:', 400.1640625, 263.72402200489, { lineBreak: false, textWidth: 32.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.image(images['bee'], 40, 277.78652200489, { width: 200, height: 195.59902200488997 }); doc.save(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/lists.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('lists', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 40, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list', 113.6962890625, 40, { lineBreak: false, textWidth: 20.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 57.578125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 57.578125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 64.7109375, 2, 2); doc.moveTo(40, 64.7109375); doc.bezierCurveTo( 40, 63.60636800033841, 40.89543050033841, 62.7109375, 42, 62.7109375 ); doc.bezierCurveTo( 43.10456949966159, 62.7109375, 44, 63.60636800033841, 44, 64.7109375 ); doc.bezierCurveTo( 44, 65.8155069996616, 43.10456949966159, 66.7109375, 42, 66.7109375 ); doc.bezierCurveTo( 40.89543050033841, 66.7109375, 40, 65.8155069996616, 40, 64.7109375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 71.640625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 71.640625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 78.7734375, 2, 2); doc.moveTo(40, 78.7734375); doc.bezierCurveTo( 40, 77.6688680003384, 40.89543050033841, 76.7734375, 42, 76.7734375 ); doc.bezierCurveTo( 43.10456949966159, 76.7734375, 44, 77.6688680003384, 44, 78.7734375 ); doc.bezierCurveTo( 44, 79.8780069996616, 43.10456949966159, 80.7734375, 42, 80.7734375 ); doc.bezierCurveTo( 40.89543050033841, 80.7734375, 40, 79.8780069996616, 40, 78.7734375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 85.703125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 85.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 92.8359375, 2, 2); doc.moveTo(40, 92.8359375); doc.bezierCurveTo( 40, 91.7313680003384, 40.89543050033841, 90.8359375, 42, 90.8359375 ); doc.bezierCurveTo( 43.10456949966159, 90.8359375, 44, 91.7313680003384, 44, 92.8359375 ); doc.bezierCurveTo( 44, 93.9405069996616, 43.10456949966159, 94.8359375, 42, 94.8359375 ); doc.bezierCurveTo( 40.89543050033841, 94.8359375, 40, 93.9405069996616, 40, 92.8359375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 99.765625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 117.34375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 134.921875, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 113.6962890625, 134.921875, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 137.822265625, 134.921875, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('longer ', 169.85107421875, 134.921875, { lineBreak: false, textWidth: 46.2744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lines', 216.12548828125, 134.921875, { lineBreak: false, textWidth: 31.79443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 152.5, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 152.5, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 159.6328125, 2, 2); doc.moveTo(40, 159.6328125); doc.bezierCurveTo( 40, 158.52824300033842, 40.89543050033841, 157.6328125, 42, 157.6328125 ); doc.bezierCurveTo( 43.10456949966159, 157.6328125, 44, 158.52824300033842, 44, 159.6328125 ); doc.bezierCurveTo( 44, 160.73738199966158, 43.10456949966159, 161.6328125, 42, 161.6328125 ); doc.bezierCurveTo( 40.89543050033841, 161.6328125, 40, 160.73738199966158, 40, 159.6328125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 166.5625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 166.5625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 166.5625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 166.5625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 166.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 166.5625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 271.3515625, 166.5625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 331.8203125, 166.5625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 354.05078125, 166.5625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 383.76953125, 166.5625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 431.37109375, 166.5625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 477.806640625, 166.5625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 173.6953125, 2, 2); doc.moveTo(40, 173.6953125); doc.bezierCurveTo( 40, 172.59074300033842, 40.89543050033841, 171.6953125, 42, 171.6953125 ); doc.bezierCurveTo( 43.10456949966159, 171.6953125, 44, 172.59074300033842, 44, 173.6953125 ); doc.bezierCurveTo( 44, 174.79988199966158, 43.10456949966159, 175.6953125, 42, 175.6953125 ); doc.bezierCurveTo( 40.89543050033841, 175.6953125, 40, 174.79988199966158, 40, 173.6953125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 52.8671875, 180.625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 104.171875, 180.625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 194.6875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 194.6875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 201.8203125, 2, 2); doc.moveTo(40, 201.8203125); doc.bezierCurveTo( 40, 200.71574300033842, 40.89543050033841, 199.8203125, 42, 199.8203125 ); doc.bezierCurveTo( 43.10456949966159, 199.8203125, 44, 200.71574300033842, 44, 201.8203125 ); doc.bezierCurveTo( 44, 202.92488199966158, 43.10456949966159, 203.8203125, 42, 203.8203125 ); doc.bezierCurveTo( 40.89543050033841, 203.8203125, 40, 202.92488199966158, 40, 201.8203125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 208.75, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 226.328125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 243.90625, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list', 97.392578125, 243.90625, { lineBreak: false, textWidth: 20.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 261.484375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 261.484375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 261.484375, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 275.546875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 275.546875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 275.546875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 289.609375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 289.609375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 40, 289.609375, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 303.671875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 321.25, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 338.828125, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 338.828125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 121.5185546875, 338.828125, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('longer ', 153.54736328125, 338.828125, { lineBreak: false, textWidth: 46.2744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lines', 199.82177734375, 338.828125, { lineBreak: false, textWidth: 31.79443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 356.40625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 356.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 356.40625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 370.46875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 370.46875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 370.46875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 370.46875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 370.46875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 370.46875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 271.3515625, 370.46875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 331.8203125, 370.46875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 354.05078125, 370.46875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 383.76953125, 370.46875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 431.37109375, 370.46875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 477.806640625, 370.46875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 370.46875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 52.8671875, 384.53125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 104.171875, 384.53125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 398.59375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 398.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 40, 398.59375, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 412.65625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 430.234375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 447.8125, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 447.8125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('should ', 121.5185546875, 447.8125, { lineBreak: false, textWidth: 48.97705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('be ', 170.49560546875, 447.8125, { lineBreak: false, textWidth: 20.2294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('descending', 190.72509765625, 447.8125, { lineBreak: false, textWidth: 77.64404296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 465.390625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 465.390625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 40, 465.390625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 479.453125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 479.453125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 479.453125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 493.515625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 493.515625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 493.515625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 507.578125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 525.15625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 542.734375, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 542.734375, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 121.5185546875, 542.734375, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('start ', 153.54736328125, 542.734375, { lineBreak: false, textWidth: 35.20751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('value', 188.7548828125, 542.734375, { lineBreak: false, textWidth: 35.6396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 560.3125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 86.283203125, 560.3125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('50. ', 40, 560.3125, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 574.375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 86.283203125, 574.375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('51. ', 40, 574.375, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 588.4375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 86.283203125, 588.4375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('52. ', 40, 588.4375, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 602.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 620.078125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 637.65625, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 637.65625, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 121.5185546875, 637.65625, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 153.54736328125, 637.65625, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('values', 185.3125, 637.65625, { lineBreak: false, textWidth: 43.38134765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 655.234375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 86.283203125, 655.234375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('10. ', 40, 655.234375, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 669.296875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 86.283203125, 669.296875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('20. ', 40, 669.296875, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 683.359375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 86.283203125, 683.359375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('30. ', 40, 683.359375, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 59.60546875, 697.421875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4 ', 86.283203125, 697.421875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('without ', 95.9921875, 697.421875, { lineBreak: false, textWidth: 42.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('own ', 138.80078125, 697.421875, { lineBreak: false, textWidth: 25.453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value', 164.25390625, 697.421875, { lineBreak: false, textWidth: 28.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4. ', 40, 697.421875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 711.484375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 729.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Nested ', 40, 746.640625, { lineBreak: false, textWidth: 51.6796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lists ', 91.6796875, 746.640625, { lineBreak: false, textWidth: 31.86767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('(ordered)', 123.54736328125, 746.640625, { lineBreak: false, textWidth: 62.3583984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 764.21875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 764.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 764.21875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 778.28125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 778.28125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 778.28125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 778.28125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 778.28125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 778.28125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 271.3515625, 778.28125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 331.8203125, 778.28125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 354.05078125, 778.28125, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 383.76953125, 778.28125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 431.37109375, 778.28125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 477.806640625, 778.28125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 778.28125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 52.8671875, 40, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 104.171875, 40, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 54.0625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 118.685546875, 54.0625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 52.8671875, 54.0625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 68.125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 118.685546875, 68.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 52.8671875, 68.125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 82.1875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 82.1875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 82.1875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 82.1875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 82.1875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 82.1875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 82.1875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 82.1875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 82.1875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 82.1875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 82.1875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 82.1875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 82.1875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 52.8671875, 82.1875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 96.25, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 96.25, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 96.25, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 96.25, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 110.3125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 110.3125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 110.3125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 110.3125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 110.3125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 110.3125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 110.3125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 110.3125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 110.3125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 110.3125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 110.3125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 110.3125, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 110.3125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4. ', 52.8671875, 110.3125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 124.375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 124.375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 124.375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 124.375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 138.4375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 138.4375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 138.4375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 138.4375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 138.4375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 138.4375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 138.4375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 138.4375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 138.4375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 138.4375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 138.4375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 138.4375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 138.4375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5. ', 52.8671875, 138.4375, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 152.5, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 152.5, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 152.5, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 152.5, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 166.5625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 166.5625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 166.5625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 166.5625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 166.5625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 166.5625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 166.5625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 166.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 166.5625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 166.5625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 166.5625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 166.5625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 166.5625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('6. ', 52.8671875, 166.5625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 180.625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 180.625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 180.625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 180.625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 256.10546875, 180.625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 302.318359375, 180.625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 312.02734375, 180.625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 318.30859375, 180.625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 355.404296875, 180.625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 391.33984375, 180.625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 421.73828125, 180.625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 437.728515625, 180.625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 470.376953125, 180.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 72.47265625, 194.6875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 132.94140625, 194.6875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 155.171875, 194.6875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 184.890625, 194.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 232.4921875, 194.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 278.927734375, 194.6875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 321.771484375, 194.6875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 373.076171875, 194.6875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 416.125, 194.6875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 462.337890625, 194.6875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 472.046875, 194.6875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 478.328125, 194.6875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 515.423828125, 194.6875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 72.47265625, 208.75, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 102.87109375, 208.75, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 118.861328125, 208.75, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 151.509765625, 208.75, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 217.92578125, 208.75, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 278.39453125, 208.75, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 300.625, 208.75, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 330.34375, 208.75, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 377.9453125, 208.75, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 424.380859375, 208.75, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 467.224609375, 208.75, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 72.47265625, 222.8125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 115.521484375, 222.8125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 161.734375, 222.8125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 171.443359375, 222.8125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 177.724609375, 222.8125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 214.8203125, 222.8125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 250.755859375, 222.8125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 281.154296875, 222.8125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 297.14453125, 222.8125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 329.79296875, 222.8125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 396.208984375, 222.8125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 456.677734375, 222.8125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 478.908203125, 222.8125, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 508.626953125, 222.8125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 236.875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 236.875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 236.875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 236.875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 256.10546875, 236.875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 302.318359375, 236.875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 312.02734375, 236.875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 318.30859375, 236.875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 355.404296875, 236.875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 391.33984375, 236.875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 421.73828125, 236.875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 437.728515625, 236.875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 470.376953125, 236.875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 72.47265625, 250.9375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 132.94140625, 250.9375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 155.171875, 250.9375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 184.890625, 250.9375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 232.4921875, 250.9375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 278.927734375, 250.9375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 321.771484375, 250.9375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 373.076171875, 250.9375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 416.125, 250.9375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 462.337890625, 250.9375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 472.046875, 250.9375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 478.328125, 250.9375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 515.423828125, 250.9375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 72.47265625, 265, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 102.87109375, 265, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 118.861328125, 265, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 151.509765625, 265, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 217.92578125, 265, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 278.39453125, 265, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 300.625, 265, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 330.34375, 265, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 377.9453125, 265, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 424.380859375, 265, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 467.224609375, 265, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 72.47265625, 279.0625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 115.521484375, 279.0625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 161.734375, 279.0625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 171.443359375, 279.0625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 177.724609375, 279.0625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 214.8203125, 279.0625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 250.755859375, 279.0625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 281.154296875, 279.0625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 297.14453125, 279.0625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 329.79296875, 279.0625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 396.208984375, 279.0625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 456.677734375, 279.0625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 478.908203125, 279.0625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 508.626953125, 279.0625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 293.125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 293.125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 293.125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 293.125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 256.10546875, 293.125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 302.318359375, 293.125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 312.02734375, 293.125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 318.30859375, 293.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 355.404296875, 293.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 391.33984375, 293.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 421.73828125, 293.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 437.728515625, 293.125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 470.376953125, 293.125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 72.47265625, 307.1875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 132.94140625, 307.1875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 155.171875, 307.1875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 184.890625, 307.1875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 232.4921875, 307.1875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 278.927734375, 307.1875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 321.771484375, 307.1875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 373.076171875, 307.1875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 321.25, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 321.25, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 321.25, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 321.25, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 321.25, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 321.25, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 321.25, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 321.25, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 321.25, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 321.25, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 321.25, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 321.25, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 321.25, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('7. ', 52.8671875, 321.25, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 335.3125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 335.3125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 335.3125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 335.3125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 349.375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 349.375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 349.375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 349.375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 349.375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 349.375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 349.375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 349.375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 349.375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 349.375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 349.375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 349.375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 349.375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('8. ', 52.8671875, 349.375, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 363.4375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 363.4375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 363.4375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 363.4375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 377.5, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 377.5, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 377.5, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 377.5, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 377.5, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 377.5, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 377.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 377.5, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 377.5, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 377.5, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 377.5, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 377.5, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 377.5, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('9. ', 52.8671875, 377.5, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 391.5625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 391.5625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 391.5625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 391.5625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 405.625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 405.625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 405.625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 405.625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 405.625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 405.625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 405.625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 405.625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 405.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 405.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 405.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 405.625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 405.625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('10. ', 52.8671875, 405.625, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 419.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 419.6875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 419.6875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 419.6875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 433.75, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 118.685546875, 433.75, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('11. ', 52.8671875, 433.75, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 447.8125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5', 118.685546875, 447.8125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('12. ', 52.8671875, 447.8125, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 461.875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 461.875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 40, 461.875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('second ', 52.8671875, 475.9375, { lineBreak: false, textWidth: 42.029296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 94.896484375, 475.9375, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 116.669921875, 475.9375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item3', 130.650390625, 475.9375, { lineBreak: false, textWidth: 30.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 490, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 507.578125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Nested ', 40, 525.15625, { lineBreak: false, textWidth: 51.6796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lists ', 91.6796875, 525.15625, { lineBreak: false, textWidth: 31.86767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('(unordered)', 123.54736328125, 525.15625, { lineBreak: false, textWidth: 79.03564453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 542.734375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 542.734375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 542.734375, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 556.796875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 556.796875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 556.796875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 556.796875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 556.796875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 556.796875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 271.3515625, 556.796875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 331.8203125, 556.796875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 354.05078125, 556.796875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 383.76953125, 556.796875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 431.37109375, 556.796875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 477.806640625, 556.796875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 556.796875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 52.8671875, 570.859375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 104.171875, 570.859375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 584.921875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 111.947265625, 584.921875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 592.0546875, 2, 2); doc.moveTo(52.8671875, 592.0546875); doc.bezierCurveTo( 52.8671875, 590.9501180003384, 53.76261800033841, 590.0546875, 54.8671875, 590.0546875 ); doc.bezierCurveTo( 55.97175699966159, 590.0546875, 56.8671875, 590.9501180003384, 56.8671875, 592.0546875 ); doc.bezierCurveTo( 56.8671875, 593.1592569996616, 55.97175699966159, 594.0546875, 54.8671875, 594.0546875 ); doc.bezierCurveTo( 53.76261800033841, 594.0546875, 52.8671875, 593.1592569996616, 52.8671875, 592.0546875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 598.984375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 111.947265625, 598.984375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 606.1171875, 2, 2); doc.moveTo(52.8671875, 606.1171875); doc.bezierCurveTo( 52.8671875, 605.0126180003384, 53.76261800033841, 604.1171875, 54.8671875, 604.1171875 ); doc.bezierCurveTo( 55.97175699966159, 604.1171875, 56.8671875, 605.0126180003384, 56.8671875, 606.1171875 ); doc.bezierCurveTo( 56.8671875, 607.2217569996616, 55.97175699966159, 608.1171875, 54.8671875, 608.1171875 ); doc.bezierCurveTo( 53.76261800033841, 608.1171875, 52.8671875, 607.2217569996616, 52.8671875, 606.1171875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 613.046875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 613.046875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 613.046875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 613.046875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 613.046875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 613.046875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 613.046875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 613.046875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 613.046875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 613.046875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 613.046875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 613.046875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 613.046875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 613.046875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 620.1796875, 2, 2); doc.moveTo(52.8671875, 620.1796875); doc.bezierCurveTo( 52.8671875, 619.0751180003384, 53.76261800033841, 618.1796875, 54.8671875, 618.1796875 ); doc.bezierCurveTo( 55.97175699966159, 618.1796875, 56.8671875, 619.0751180003384, 56.8671875, 620.1796875 ); doc.bezierCurveTo( 56.8671875, 621.2842569996616, 55.97175699966159, 622.1796875, 54.8671875, 622.1796875 ); doc.bezierCurveTo( 53.76261800033841, 622.1796875, 52.8671875, 621.2842569996616, 52.8671875, 620.1796875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 627.109375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 627.109375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 627.109375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 641.171875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 641.171875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 641.171875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 641.171875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 641.171875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 641.171875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 641.171875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 641.171875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 641.171875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 641.171875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 641.171875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 641.171875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 641.171875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 641.171875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 648.3046875, 2, 2); doc.moveTo(52.8671875, 648.3046875); doc.bezierCurveTo( 52.8671875, 647.2001180003384, 53.76261800033841, 646.3046875, 54.8671875, 646.3046875 ); doc.bezierCurveTo( 55.97175699966159, 646.3046875, 56.8671875, 647.2001180003384, 56.8671875, 648.3046875 ); doc.bezierCurveTo( 56.8671875, 649.4092569996616, 55.97175699966159, 650.3046875, 54.8671875, 650.3046875 ); doc.bezierCurveTo( 53.76261800033841, 650.3046875, 52.8671875, 649.4092569996616, 52.8671875, 648.3046875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 655.234375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 655.234375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 655.234375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 669.296875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 669.296875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 669.296875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 669.296875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 669.296875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 669.296875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 669.296875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 669.296875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 669.296875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 669.296875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 669.296875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 669.296875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 669.296875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 669.296875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 676.4296875, 2, 2); doc.moveTo(52.8671875, 676.4296875); doc.bezierCurveTo( 52.8671875, 675.3251180003384, 53.76261800033841, 674.4296875, 54.8671875, 674.4296875 ); doc.bezierCurveTo( 55.97175699966159, 674.4296875, 56.8671875, 675.3251180003384, 56.8671875, 676.4296875 ); doc.bezierCurveTo( 56.8671875, 677.5342569996616, 55.97175699966159, 678.4296875, 54.8671875, 678.4296875 ); doc.bezierCurveTo( 53.76261800033841, 678.4296875, 52.8671875, 677.5342569996616, 52.8671875, 676.4296875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 683.359375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 683.359375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 683.359375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 697.421875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 697.421875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 697.421875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 697.421875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 697.421875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 697.421875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 697.421875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 697.421875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 697.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 697.421875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 697.421875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 697.421875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 697.421875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 697.421875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 704.5546875, 2, 2); doc.moveTo(52.8671875, 704.5546875); doc.bezierCurveTo( 52.8671875, 703.4501180003384, 53.76261800033841, 702.5546875, 54.8671875, 702.5546875 ); doc.bezierCurveTo( 55.97175699966159, 702.5546875, 56.8671875, 703.4501180003384, 56.8671875, 704.5546875 ); doc.bezierCurveTo( 56.8671875, 705.6592569996616, 55.97175699966159, 706.5546875, 54.8671875, 706.5546875 ); doc.bezierCurveTo( 53.76261800033841, 706.5546875, 52.8671875, 705.6592569996616, 52.8671875, 704.5546875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 711.484375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 711.484375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 711.484375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 202.931640625, 711.484375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 249.14453125, 711.484375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 258.853515625, 711.484375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 265.134765625, 711.484375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 302.23046875, 711.484375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 338.166015625, 711.484375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 368.564453125, 711.484375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 384.5546875, 711.484375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 417.203125, 711.484375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 483.619140625, 711.484375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 65.734375, 725.546875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 87.96484375, 725.546875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 117.68359375, 725.546875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 165.28515625, 725.546875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 211.720703125, 725.546875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 254.564453125, 725.546875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 305.869140625, 725.546875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 348.91796875, 725.546875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 395.130859375, 725.546875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 404.83984375, 725.546875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 411.12109375, 725.546875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 448.216796875, 725.546875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 484.15234375, 725.546875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 514.55078125, 725.546875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 65.734375, 739.609375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 98.3828125, 739.609375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 164.798828125, 739.609375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 225.267578125, 739.609375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 247.498046875, 739.609375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 277.216796875, 739.609375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 324.818359375, 739.609375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 371.25390625, 739.609375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 414.09765625, 739.609375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 465.40234375, 739.609375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 508.451171875, 739.609375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 65.734375, 753.671875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 75.443359375, 753.671875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 81.724609375, 753.671875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 118.8203125, 753.671875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 154.755859375, 753.671875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 185.154296875, 753.671875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 201.14453125, 753.671875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 233.79296875, 753.671875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 300.208984375, 753.671875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 360.677734375, 753.671875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 382.908203125, 753.671875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 412.626953125, 753.671875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 460.228515625, 753.671875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 506.6640625, 753.671875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 65.734375, 767.734375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 117.0390625, 767.734375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 160.087890625, 767.734375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 206.30078125, 767.734375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 216.009765625, 767.734375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 222.291015625, 767.734375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 259.38671875, 767.734375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 295.322265625, 767.734375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 325.720703125, 767.734375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 341.7109375, 767.734375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 374.359375, 767.734375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 440.775390625, 767.734375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 501.244140625, 767.734375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 523.474609375, 767.734375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 65.734375, 781.796875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 113.3359375, 781.796875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 159.771484375, 781.796875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 202.615234375, 781.796875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 253.919921875, 781.796875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 296.96875, 781.796875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 343.181640625, 781.796875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 352.890625, 781.796875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 359.171875, 781.796875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 396.267578125, 781.796875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 432.203125, 781.796875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 462.6015625, 781.796875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 478.591796875, 781.796875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 65.734375, 40, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 132.150390625, 40, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 192.619140625, 40, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 214.849609375, 40, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 244.568359375, 40, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 292.169921875, 40, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 338.60546875, 40, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 381.44921875, 40, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 432.75390625, 40, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 475.802734375, 40, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 522.015625, 40, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 531.724609375, 40, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 65.734375, 54.0625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 102.830078125, 54.0625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 138.765625, 54.0625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 169.1640625, 54.0625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 185.154296875, 54.0625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 217.802734375, 54.0625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 284.21875, 54.0625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 344.6875, 54.0625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 366.91796875, 54.0625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 396.63671875, 54.0625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 444.23828125, 54.0625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 490.673828125, 54.0625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 65.734375, 68.125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 117.0390625, 68.125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 160.087890625, 68.125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 206.30078125, 68.125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 216.009765625, 68.125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 222.291015625, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 259.38671875, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 295.322265625, 68.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 325.720703125, 68.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 341.7109375, 68.125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 374.359375, 68.125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 440.775390625, 68.125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 501.244140625, 68.125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 523.474609375, 68.125, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 65.734375, 82.1875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 113.3359375, 82.1875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 159.771484375, 82.1875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 202.615234375, 82.1875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 253.919921875, 82.1875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 96.25, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 96.25, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 96.25, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 96.25, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 96.25, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 96.25, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 96.25, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 96.25, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 96.25, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 96.25, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 96.25, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 96.25, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 96.25, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 96.25, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 103.3828125, 2, 2); doc.moveTo(52.8671875, 103.3828125); doc.bezierCurveTo( 52.8671875, 102.2782430003384, 53.76261800033841, 101.3828125, 54.8671875, 101.3828125 ); doc.bezierCurveTo( 55.97175699966159, 101.3828125, 56.8671875, 102.2782430003384, 56.8671875, 103.3828125 ); doc.bezierCurveTo( 56.8671875, 104.4873819996616, 55.97175699966159, 105.3828125, 54.8671875, 105.3828125 ); doc.bezierCurveTo( 53.76261800033841, 105.3828125, 52.8671875, 104.4873819996616, 52.8671875, 103.3828125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 110.3125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 110.3125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 110.3125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 124.375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 124.375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 124.375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 124.375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 124.375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 124.375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 124.375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 124.375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 124.375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 124.375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 124.375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 124.375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 124.375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 124.375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 131.5078125, 2, 2); doc.moveTo(52.8671875, 131.5078125); doc.bezierCurveTo( 52.8671875, 130.40324300033842, 53.76261800033841, 129.5078125, 54.8671875, 129.5078125 ); doc.bezierCurveTo( 55.97175699966159, 129.5078125, 56.8671875, 130.40324300033842, 56.8671875, 131.5078125 ); doc.bezierCurveTo( 56.8671875, 132.61238199966158, 55.97175699966159, 133.5078125, 54.8671875, 133.5078125 ); doc.bezierCurveTo( 53.76261800033841, 133.5078125, 52.8671875, 132.61238199966158, 52.8671875, 131.5078125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 138.4375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 138.4375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 138.4375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 152.5, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 152.5, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 152.5, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 152.5, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 152.5, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 152.5, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 152.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 152.5, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 152.5, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 152.5, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 152.5, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 152.5, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 152.5, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 152.5, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 159.6328125, 2, 2); doc.moveTo(52.8671875, 159.6328125); doc.bezierCurveTo( 52.8671875, 158.52824300033842, 53.76261800033841, 157.6328125, 54.8671875, 157.6328125 ); doc.bezierCurveTo( 55.97175699966159, 157.6328125, 56.8671875, 158.52824300033842, 56.8671875, 159.6328125 ); doc.bezierCurveTo( 56.8671875, 160.73738199966158, 55.97175699966159, 161.6328125, 54.8671875, 161.6328125 ); doc.bezierCurveTo( 53.76261800033841, 161.6328125, 52.8671875, 160.73738199966158, 52.8671875, 159.6328125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 166.5625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 166.5625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 166.5625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 180.625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 111.947265625, 180.625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 121.65625, 180.625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 127.9375, 180.625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 165.033203125, 180.625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 200.96875, 180.625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 231.3671875, 180.625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 247.357421875, 180.625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 280.005859375, 180.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 346.421875, 180.625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 406.890625, 180.625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 429.12109375, 180.625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 458.83984375, 180.625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 506.44140625, 180.625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 187.7578125, 2, 2); doc.moveTo(52.8671875, 187.7578125); doc.bezierCurveTo( 52.8671875, 186.65324300033842, 53.76261800033841, 185.7578125, 54.8671875, 185.7578125 ); doc.bezierCurveTo( 55.97175699966159, 185.7578125, 56.8671875, 186.65324300033842, 56.8671875, 187.7578125 ); doc.bezierCurveTo( 56.8671875, 188.86238199966158, 55.97175699966159, 189.7578125, 54.8671875, 189.7578125 ); doc.bezierCurveTo( 53.76261800033841, 189.7578125, 52.8671875, 188.86238199966158, 52.8671875, 187.7578125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 65.734375, 194.6875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 108.578125, 194.6875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 159.8828125, 194.6875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 208.75, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 111.947265625, 208.75, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 215.8828125, 2, 2); doc.moveTo(52.8671875, 215.8828125); doc.bezierCurveTo( 52.8671875, 214.77824300033842, 53.76261800033841, 213.8828125, 54.8671875, 213.8828125 ); doc.bezierCurveTo( 55.97175699966159, 213.8828125, 56.8671875, 214.77824300033842, 56.8671875, 215.8828125 ); doc.bezierCurveTo( 56.8671875, 216.98738199966158, 55.97175699966159, 217.8828125, 54.8671875, 217.8828125 ); doc.bezierCurveTo( 53.76261800033841, 217.8828125, 52.8671875, 216.98738199966158, 52.8671875, 215.8828125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 65.734375, 222.8125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5', 111.947265625, 222.8125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(54.8671875, 229.9453125, 2, 2); doc.moveTo(52.8671875, 229.9453125); doc.bezierCurveTo( 52.8671875, 228.84074300033842, 53.76261800033841, 227.9453125, 54.8671875, 227.9453125 ); doc.bezierCurveTo( 55.97175699966159, 227.9453125, 56.8671875, 228.84074300033842, 56.8671875, 229.9453125 ); doc.bezierCurveTo( 56.8671875, 231.04988199966158, 55.97175699966159, 231.9453125, 54.8671875, 231.9453125 ); doc.bezierCurveTo( 53.76261800033841, 231.9453125, 52.8671875, 231.04988199966158, 52.8671875, 229.9453125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 236.875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 236.875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4. ', 40, 236.875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('second ', 52.8671875, 250.9375, { lineBreak: false, textWidth: 42.029296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 94.896484375, 250.9375, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 116.669921875, 250.9375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item3', 130.650390625, 250.9375, { lineBreak: false, textWidth: 30.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 265, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 282.578125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 300.15625, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lists ', 113.6962890625, 300.15625, { lineBreak: false, textWidth: 31.86767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('inside ', 145.56396484375, 300.15625, { lineBreak: false, textWidth: 43.99658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('columns', 189.560546875, 300.15625, { lineBreak: false, textWidth: 57.69287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 317.734375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 317.734375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 324.8671875, 2, 2); doc.moveTo(40, 324.8671875); doc.bezierCurveTo( 40, 323.7626180003384, 40.89543050033841, 322.8671875, 42, 322.8671875 ); doc.bezierCurveTo( 43.10456949966159, 322.8671875, 44, 323.7626180003384, 44, 324.8671875 ); doc.bezierCurveTo( 44, 325.9717569996616, 43.10456949966159, 326.8671875, 42, 326.8671875 ); doc.bezierCurveTo( 40.89543050033841, 326.8671875, 40, 325.9717569996616, 40, 324.8671875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 331.796875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 331.796875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 331.796875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 331.796875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 331.796875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 331.796875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 338.9296875, 2, 2); doc.moveTo(40, 338.9296875); doc.bezierCurveTo( 40, 337.8251180003384, 40.89543050033841, 336.9296875, 42, 336.9296875 ); doc.bezierCurveTo( 43.10456949966159, 336.9296875, 44, 337.8251180003384, 44, 338.9296875 ); doc.bezierCurveTo( 44, 340.0342569996616, 43.10456949966159, 340.9296875, 42, 340.9296875 ); doc.bezierCurveTo( 40.89543050033841, 340.9296875, 40, 340.0342569996616, 40, 338.9296875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 52.8671875, 345.859375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 113.3359375, 345.859375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 135.56640625, 345.859375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 165.28515625, 345.859375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 212.88671875, 345.859375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 52.8671875, 359.921875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 95.7109375, 359.921875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 147.015625, 359.921875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 310.5071875, 317.734375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 337.184921875, 317.734375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(299.64, 324.8671875, 2, 2); doc.moveTo(297.64, 324.8671875); doc.bezierCurveTo( 297.64, 323.7626180003384, 298.5354305003384, 322.8671875, 299.64, 322.8671875 ); doc.bezierCurveTo( 300.74456949966157, 322.8671875, 301.64, 323.7626180003384, 301.64, 324.8671875 ); doc.bezierCurveTo( 301.64, 325.9717569996616, 300.74456949966157, 326.8671875, 299.64, 326.8671875 ); doc.bezierCurveTo( 298.5354305003384, 326.8671875, 297.64, 325.9717569996616, 297.64, 324.8671875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 310.5071875, 331.796875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 347.602890625, 331.796875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 383.5384375, 331.796875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 413.936875, 331.796875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 429.927109375, 331.796875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 462.575546875, 331.796875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(299.64, 338.9296875, 2, 2); doc.moveTo(297.64, 338.9296875); doc.bezierCurveTo( 297.64, 337.8251180003384, 298.5354305003384, 336.9296875, 299.64, 336.9296875 ); doc.bezierCurveTo( 300.74456949966157, 336.9296875, 301.64, 337.8251180003384, 301.64, 338.9296875 ); doc.bezierCurveTo( 301.64, 340.0342569996616, 300.74456949966157, 340.9296875, 299.64, 340.9296875 ); doc.bezierCurveTo( 298.5354305003384, 340.9296875, 297.64, 340.0342569996616, 297.64, 338.9296875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 310.5071875, 345.859375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 370.9759375, 345.859375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 393.20640625, 345.859375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 422.92515625, 345.859375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 470.52671875, 345.859375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 310.5071875, 359.921875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 353.3509375, 359.921875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 404.655625, 359.921875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 373.984375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 391.5625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 409.140625, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lists ', 97.392578125, 409.140625, { lineBreak: false, textWidth: 31.86767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('inside ', 129.26025390625, 409.140625, { lineBreak: false, textWidth: 43.99658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('columns', 173.2568359375, 409.140625, { lineBreak: false, textWidth: 57.69287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 426.71875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 426.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 426.71875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 440.78125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 440.78125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 440.78125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 440.78125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 440.78125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 440.78125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 440.78125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 52.8671875, 454.84375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 113.3359375, 454.84375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 135.56640625, 454.84375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 165.28515625, 454.84375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 212.88671875, 454.84375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 52.8671875, 468.90625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 95.7109375, 468.90625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 147.015625, 468.90625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 310.5071875, 426.71875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 337.184921875, 426.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 297.64, 426.71875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 310.5071875, 440.78125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 347.602890625, 440.78125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 383.5384375, 440.78125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 413.936875, 440.78125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 429.927109375, 440.78125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 462.575546875, 440.78125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 297.64, 440.78125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 310.5071875, 454.84375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 370.9759375, 454.84375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 393.20640625, 454.84375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 422.92515625, 454.84375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 470.52671875, 454.84375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 310.5071875, 468.90625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 353.3509375, 468.90625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 404.655625, 468.90625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 482.96875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 500.546875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Nested ', 40, 518.125, { lineBreak: false, textWidth: 51.6796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lists ', 91.6796875, 518.125, { lineBreak: false, textWidth: 31.86767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('width ', 123.54736328125, 518.125, { lineBreak: false, textWidth: 40.49560546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('columns', 164.04296875, 518.125, { lineBreak: false, textWidth: 57.69287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 535.703125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 535.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 542.8359375, 2, 2); doc.moveTo(40, 542.8359375); doc.bezierCurveTo( 40, 541.7313680003384, 40.89543050033841, 540.8359375, 42, 540.8359375 ); doc.bezierCurveTo( 43.10456949966159, 540.8359375, 44, 541.7313680003384, 44, 542.8359375 ); doc.bezierCurveTo( 44, 543.9405069996616, 43.10456949966159, 544.8359375, 42, 544.8359375 ); doc.bezierCurveTo( 40.89543050033841, 544.8359375, 40, 543.9405069996616, 40, 542.8359375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 52.8671875, 549.765625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 89.962890625, 549.765625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 125.8984375, 549.765625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.296875, 549.765625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 172.287109375, 549.765625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 204.935546875, 549.765625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 271.3515625, 549.765625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 331.8203125, 549.765625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 354.05078125, 549.765625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 383.76953125, 549.765625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 431.37109375, 549.765625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 477.806640625, 549.765625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 556.8984375, 2, 2); doc.moveTo(40, 556.8984375); doc.bezierCurveTo( 40, 555.7938680003384, 40.89543050033841, 554.8984375, 42, 554.8984375 ); doc.bezierCurveTo( 43.10456949966159, 554.8984375, 44, 555.7938680003384, 44, 556.8984375 ); doc.bezierCurveTo( 44, 558.0030069996616, 43.10456949966159, 558.8984375, 42, 558.8984375 ); doc.bezierCurveTo( 40.89543050033841, 558.8984375, 40, 558.0030069996616, 40, 556.8984375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 52.8671875, 563.828125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 104.171875, 563.828125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 72.47265625, 577.890625, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 115.234375, 577.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 52.8671875, 577.890625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 193.1744921875, 577.890625, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 235.9362109375, 577.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 206.0416796875, 591.953125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 232.7194140625, 591.953125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(195.1744921875, 599.0859375, 2, 2); doc.moveTo(193.1744921875, 599.0859375); doc.bezierCurveTo( 193.1744921875, 597.9813680003384, 194.0699226878384, 597.0859375, 195.1744921875, 597.0859375 ); doc.bezierCurveTo( 196.27906168716157, 597.0859375, 197.1744921875, 597.9813680003384, 197.1744921875, 599.0859375 ); doc.bezierCurveTo( 197.1744921875, 600.1905069996616, 196.27906168716157, 601.0859375, 195.1744921875, 601.0859375 ); doc.bezierCurveTo( 194.0699226878384, 601.0859375, 193.1744921875, 600.1905069996616, 193.1744921875, 599.0859375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 206.0416796875, 606.015625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 232.7194140625, 606.015625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(195.1744921875, 613.1484375, 2, 2); doc.moveTo(193.1744921875, 613.1484375); doc.bezierCurveTo( 193.1744921875, 612.0438680003384, 194.0699226878384, 611.1484375, 195.1744921875, 611.1484375 ); doc.bezierCurveTo( 196.27906168716157, 611.1484375, 197.1744921875, 612.0438680003384, 197.1744921875, 613.1484375 ); doc.bezierCurveTo( 197.1744921875, 614.2530069996616, 196.27906168716157, 615.1484375, 195.1744921875, 615.1484375 ); doc.bezierCurveTo( 194.0699226878384, 615.1484375, 193.1744921875, 614.2530069996616, 193.1744921875, 613.1484375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item', 218.9088671875, 620.078125, { lineBreak: false, textWidth: 23.70703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(208.0416796875, 627.2109375, 2, 2); doc.moveTo(206.0416796875, 627.2109375); doc.bezierCurveTo( 206.0416796875, 626.1063680003384, 206.9371101878384, 625.2109375, 208.0416796875, 625.2109375 ); doc.bezierCurveTo( 209.14624918716157, 625.2109375, 210.0416796875, 626.1063680003384, 210.0416796875, 627.2109375 ); doc.bezierCurveTo( 210.0416796875, 628.3155069996616, 209.14624918716157, 629.2109375, 208.0416796875, 629.2109375 ); doc.bezierCurveTo( 206.9371101878384, 629.2109375, 206.0416796875, 628.3155069996616, 206.0416796875, 627.2109375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item', 218.9088671875, 634.140625, { lineBreak: false, textWidth: 23.70703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(208.0416796875, 641.2734375, 2, 2); doc.moveTo(206.0416796875, 641.2734375); doc.bezierCurveTo( 206.0416796875, 640.1688680003384, 206.9371101878384, 639.2734375, 208.0416796875, 639.2734375 ); doc.bezierCurveTo( 209.14624918716157, 639.2734375, 210.0416796875, 640.1688680003384, 210.0416796875, 641.2734375 ); doc.bezierCurveTo( 210.0416796875, 642.3780069996616, 209.14624918716157, 643.2734375, 208.0416796875, 643.2734375 ); doc.bezierCurveTo( 206.9371101878384, 643.2734375, 206.0416796875, 642.3780069996616, 206.0416796875, 641.2734375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item', 218.9088671875, 648.203125, { lineBreak: false, textWidth: 23.70703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(208.0416796875, 655.3359375, 2, 2); doc.moveTo(206.0416796875, 655.3359375); doc.bezierCurveTo( 206.0416796875, 654.2313680003384, 206.9371101878384, 653.3359375, 208.0416796875, 653.3359375 ); doc.bezierCurveTo( 209.14624918716157, 653.3359375, 210.0416796875, 654.2313680003384, 210.0416796875, 655.3359375 ); doc.bezierCurveTo( 210.0416796875, 656.4405069996616, 209.14624918716157, 657.3359375, 208.0416796875, 657.3359375 ); doc.bezierCurveTo( 206.9371101878384, 657.3359375, 206.0416796875, 656.4405069996616, 206.0416796875, 655.3359375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 206.0416796875, 662.265625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 232.7194140625, 662.265625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(195.1744921875, 669.3984375, 2, 2); doc.moveTo(193.1744921875, 669.3984375); doc.bezierCurveTo( 193.1744921875, 668.2938680003384, 194.0699226878384, 667.3984375, 195.1744921875, 667.3984375 ); doc.bezierCurveTo( 196.27906168716157, 667.3984375, 197.1744921875, 668.2938680003384, 197.1744921875, 669.3984375 ); doc.bezierCurveTo( 197.1744921875, 670.5030069996616, 196.27906168716157, 671.3984375, 195.1744921875, 671.3984375 ); doc.bezierCurveTo( 194.0699226878384, 671.3984375, 193.1744921875, 670.5030069996616, 193.1744921875, 669.3984375 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 313.876328125, 577.890625, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 356.638046875, 577.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 434.5781640625, 577.890625, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 477.3398828125, 577.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 676.328125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1 ', 118.685546875, 676.328125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 128.39453125, 676.328125, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 140.8984375, 676.328125, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vertical ', 150.396484375, 676.328125, { lineBreak: false, textWidth: 41.970703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('container', 192.3671875, 676.328125, { lineBreak: false, textWidth: 50.14453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 690.390625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2 ', 118.685546875, 690.390625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 128.39453125, 690.390625, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 140.8984375, 690.390625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vertical ', 150.396484375, 690.390625, { lineBreak: false, textWidth: 41.970703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('container', 192.3671875, 690.390625, { lineBreak: false, textWidth: 50.14453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 704.453125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 118.685546875, 704.453125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 52.8671875, 704.453125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 718.515625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 718.515625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 718.515625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 718.515625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 718.515625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 718.515625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 718.515625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 718.515625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 718.515625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 718.515625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 718.515625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 718.515625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 718.515625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 52.8671875, 718.515625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 732.578125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 732.578125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 732.578125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 732.578125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 746.640625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 746.640625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 746.640625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 746.640625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 746.640625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 746.640625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 746.640625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 746.640625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 746.640625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 746.640625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 746.640625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 746.640625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 746.640625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4. ', 52.8671875, 746.640625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 760.703125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 760.703125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 760.703125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 760.703125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 774.765625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 774.765625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 774.765625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 774.765625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 774.765625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 774.765625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 774.765625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 774.765625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 774.765625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 774.765625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 774.765625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 774.765625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 774.765625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5. ', 52.8671875, 774.765625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 40, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 40, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 40, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 40, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 54.0625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 54.0625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 54.0625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 54.0625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 54.0625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 54.0625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 54.0625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 54.0625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 54.0625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 54.0625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 54.0625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 54.0625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 54.0625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('6. ', 52.8671875, 54.0625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 68.125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 68.125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 68.125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 68.125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 256.10546875, 68.125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 302.318359375, 68.125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 312.02734375, 68.125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 318.30859375, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 355.404296875, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 391.33984375, 68.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 421.73828125, 68.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 437.728515625, 68.125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 470.376953125, 68.125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 72.47265625, 82.1875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 132.94140625, 82.1875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 155.171875, 82.1875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 184.890625, 82.1875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 232.4921875, 82.1875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 278.927734375, 82.1875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 321.771484375, 82.1875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 373.076171875, 82.1875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 416.125, 82.1875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 462.337890625, 82.1875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 472.046875, 82.1875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 478.328125, 82.1875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 515.423828125, 82.1875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 72.47265625, 96.25, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 102.87109375, 96.25, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 118.861328125, 96.25, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 151.509765625, 96.25, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 217.92578125, 96.25, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 278.39453125, 96.25, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 300.625, 96.25, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 330.34375, 96.25, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 377.9453125, 96.25, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 424.380859375, 96.25, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 467.224609375, 96.25, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 72.47265625, 110.3125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 115.521484375, 110.3125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 161.734375, 110.3125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 171.443359375, 110.3125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 177.724609375, 110.3125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 214.8203125, 110.3125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 250.755859375, 110.3125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 281.154296875, 110.3125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 297.14453125, 110.3125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 329.79296875, 110.3125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 396.208984375, 110.3125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 456.677734375, 110.3125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 478.908203125, 110.3125, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 508.626953125, 110.3125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 124.375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 124.375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 124.375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 124.375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 256.10546875, 124.375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 302.318359375, 124.375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 312.02734375, 124.375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 318.30859375, 124.375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 355.404296875, 124.375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 391.33984375, 124.375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 421.73828125, 124.375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 437.728515625, 124.375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 470.376953125, 124.375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 72.47265625, 138.4375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 132.94140625, 138.4375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 155.171875, 138.4375, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 184.890625, 138.4375, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 232.4921875, 138.4375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 278.927734375, 138.4375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 321.771484375, 138.4375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 373.076171875, 138.4375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 416.125, 138.4375, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 462.337890625, 138.4375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 472.046875, 138.4375, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 478.328125, 138.4375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 515.423828125, 138.4375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 72.47265625, 152.5, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 102.87109375, 152.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 118.861328125, 152.5, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 151.509765625, 152.5, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 217.92578125, 152.5, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 278.39453125, 152.5, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 300.625, 152.5, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 330.34375, 152.5, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 377.9453125, 152.5, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 424.380859375, 152.5, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 467.224609375, 152.5, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 72.47265625, 166.5625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 115.521484375, 166.5625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 161.734375, 166.5625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 171.443359375, 166.5625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 177.724609375, 166.5625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 214.8203125, 166.5625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 250.755859375, 166.5625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 281.154296875, 166.5625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 297.14453125, 166.5625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 329.79296875, 166.5625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 396.208984375, 166.5625, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 456.677734375, 166.5625, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 478.908203125, 166.5625, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 508.626953125, 166.5625, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 180.625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 180.625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 180.625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 180.625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 256.10546875, 180.625, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 302.318359375, 180.625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 312.02734375, 180.625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 318.30859375, 180.625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 355.404296875, 180.625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 391.33984375, 180.625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 421.73828125, 180.625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 437.728515625, 180.625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 470.376953125, 180.625, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 72.47265625, 194.6875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 132.94140625, 194.6875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 155.171875, 194.6875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 184.890625, 194.6875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 232.4921875, 194.6875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 278.927734375, 194.6875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 321.771484375, 194.6875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 373.076171875, 194.6875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 208.75, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 208.75, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 208.75, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 208.75, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 208.75, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 208.75, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 208.75, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 208.75, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 208.75, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 208.75, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 208.75, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 208.75, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 208.75, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('7. ', 52.8671875, 208.75, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 222.8125, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 222.8125, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 222.8125, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 222.8125, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 236.875, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 236.875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 236.875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 236.875, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 236.875, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 236.875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 236.875, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 236.875, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 236.875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 236.875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 236.875, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 236.875, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 236.875, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('8. ', 52.8671875, 236.875, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 250.9375, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 250.9375, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 250.9375, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 250.9375, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 265, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 265, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 265, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 265, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 265, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 265, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 265, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 265, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 265, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 265, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 265, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 265, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 265, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('9. ', 52.8671875, 265, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 279.0625, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 279.0625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 279.0625, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 279.0625, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 293.125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 118.685546875, 293.125, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 128.39453125, 293.125, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 134.67578125, 293.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 171.771484375, 293.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 207.70703125, 293.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 238.10546875, 293.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 254.095703125, 293.125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 286.744140625, 293.125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 353.16015625, 293.125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 413.62890625, 293.125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Malit ', 435.859375, 293.125, { lineBreak: false, textWidth: 29.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('profecta ', 465.578125, 293.125, { lineBreak: false, textWidth: 47.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('10. ', 52.8671875, 293.125, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('versatur ', 72.47265625, 307.1875, { lineBreak: false, textWidth: 46.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 118.908203125, 307.1875, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ocurreret ', 161.751953125, 307.1875, { lineBreak: false, textWidth: 51.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('multavit', 213.056640625, 307.1875, { lineBreak: false, textWidth: 43.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 321.25, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 118.685546875, 321.25, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('11. ', 52.8671875, 321.25, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subitem ', 72.47265625, 335.3125, { lineBreak: false, textWidth: 46.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5', 118.685546875, 335.3125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('12. ', 52.8671875, 335.3125, { lineBreak: false, textWidth: 19.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 349.375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 349.375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 356.5078125, 2, 2); doc.moveTo(40, 356.5078125); doc.bezierCurveTo( 40, 355.4032430003384, 40.89543050033841, 354.5078125, 42, 354.5078125 ); doc.bezierCurveTo( 43.10456949966159, 354.5078125, 44, 355.4032430003384, 44, 356.5078125 ); doc.bezierCurveTo( 44, 357.6123819996616, 43.10456949966159, 358.5078125, 42, 358.5078125 ); doc.bezierCurveTo( 40.89543050033841, 358.5078125, 40, 357.6123819996616, 40, 356.5078125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('second ', 52.8671875, 363.4375, { lineBreak: false, textWidth: 42.029296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 94.896484375, 363.4375, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 116.669921875, 363.4375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item3', 130.650390625, 363.4375, { lineBreak: false, textWidth: 30.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 377.5, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 395.078125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 412.65625, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 113.6962890625, 412.65625, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 137.822265625, 412.65625, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('square ', 169.85107421875, 412.65625, { lineBreak: false, textWidth: 49.62890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('marker ', 219.47998046875, 412.65625, { lineBreak: false, textWidth: 51.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type', 270.66162109375, 412.65625, { lineBreak: false, textWidth: 28.7841796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 430.234375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 430.234375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 435.3671875, 4, 4); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 444.296875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 444.296875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 449.4296875, 4, 4); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 458.359375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 458.359375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 463.4921875, 4, 4); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 472.421875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 490, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 507.578125, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 113.6962890625, 507.578125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 137.822265625, 507.578125, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('circle ', 169.85107421875, 507.578125, { lineBreak: false, textWidth: 40.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('marker ', 210.13427734375, 507.578125, { lineBreak: false, textWidth: 51.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type', 261.31591796875, 507.578125, { lineBreak: false, textWidth: 28.7841796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 525.15625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 525.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 532.2890625, 2, 2); doc.moveTo(40, 532.2890625); doc.bezierCurveTo( 40, 531.1844930003384, 40.89543050033841, 530.2890625, 42, 530.2890625 ); doc.bezierCurveTo( 43.10456949966159, 530.2890625, 44, 531.1844930003384, 44, 532.2890625 ); doc.bezierCurveTo( 44, 533.3936319996616, 43.10456949966159, 534.2890625, 42, 534.2890625 ); doc.bezierCurveTo( 40.89543050033841, 534.2890625, 40, 533.3936319996616, 40, 532.2890625 ); doc.closePath(); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 539.21875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 539.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 546.3515625, 2, 2); doc.moveTo(40, 546.3515625); doc.bezierCurveTo( 40, 545.2469930003384, 40.89543050033841, 544.3515625, 42, 544.3515625 ); doc.bezierCurveTo( 43.10456949966159, 544.3515625, 44, 545.2469930003384, 44, 546.3515625 ); doc.bezierCurveTo( 44, 547.4561319996616, 43.10456949966159, 548.3515625, 42, 548.3515625 ); doc.bezierCurveTo( 40.89543050033841, 548.3515625, 40, 547.4561319996616, 40, 546.3515625 ); doc.closePath(); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 553.28125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 553.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 560.4140625, 2, 2); doc.moveTo(40, 560.4140625); doc.bezierCurveTo( 40, 559.3094930003384, 40.89543050033841, 558.4140625, 42, 558.4140625 ); doc.bezierCurveTo( 43.10456949966159, 558.4140625, 44, 559.3094930003384, 44, 560.4140625 ); doc.bezierCurveTo( 44, 561.5186319996616, 43.10456949966159, 562.4140625, 42, 562.4140625 ); doc.bezierCurveTo( 40.89543050033841, 562.4140625, 40, 561.5186319996616, 40, 560.4140625 ); doc.closePath(); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 567.34375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 584.921875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Colored ', 40, 602.5, { lineBreak: false, textWidth: 56.0888671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('unordered ', 96.0888671875, 602.5, { lineBreak: false, textWidth: 72.25341796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list', 168.34228515625, 602.5, { lineBreak: false, textWidth: 20.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 620.078125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 620.078125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 627.2109375, 2, 2); doc.moveTo(40, 627.2109375); doc.bezierCurveTo( 40, 626.1063680003384, 40.89543050033841, 625.2109375, 42, 625.2109375 ); doc.bezierCurveTo( 43.10456949966159, 625.2109375, 44, 626.1063680003384, 44, 627.2109375 ); doc.bezierCurveTo( 44, 628.3155069996616, 43.10456949966159, 629.2109375, 42, 629.2109375 ); doc.bezierCurveTo( 40.89543050033841, 629.2109375, 40, 628.3155069996616, 40, 627.2109375 ); doc.closePath(); doc.fillColor('blue', 1); doc.fillOpacity(1); doc.fill(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 634.140625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 634.140625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 641.2734375, 2, 2); doc.moveTo(40, 641.2734375); doc.bezierCurveTo( 40, 640.1688680003384, 40.89543050033841, 639.2734375, 42, 639.2734375 ); doc.bezierCurveTo( 43.10456949966159, 639.2734375, 44, 640.1688680003384, 44, 641.2734375 ); doc.bezierCurveTo( 44, 642.3780069996616, 43.10456949966159, 643.2734375, 42, 643.2734375 ); doc.bezierCurveTo( 40.89543050033841, 643.2734375, 40, 642.3780069996616, 40, 641.2734375 ); doc.closePath(); doc.fillColor('blue', 1); doc.fillOpacity(1); doc.fill(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 648.203125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 648.203125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 655.3359375, 2, 2); doc.moveTo(40, 655.3359375); doc.bezierCurveTo( 40, 654.2313680003384, 40.89543050033841, 653.3359375, 42, 653.3359375 ); doc.bezierCurveTo( 43.10456949966159, 653.3359375, 44, 654.2313680003384, 44, 655.3359375 ); doc.bezierCurveTo( 44, 656.4405069996616, 43.10456949966159, 657.3359375, 42, 657.3359375 ); doc.bezierCurveTo( 40.89543050033841, 657.3359375, 40, 656.4405069996616, 40, 655.3359375 ); doc.closePath(); doc.fillColor('blue', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 662.265625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 679.84375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Colored ', 40, 697.421875, { lineBreak: false, textWidth: 56.0888671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('unordered ', 96.0888671875, 697.421875, { lineBreak: false, textWidth: 72.25341796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 168.34228515625, 697.421875, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 192.46826171875, 697.421875, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 224.4970703125, 697.421875, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('marker ', 256.26220703125, 697.421875, { lineBreak: false, textWidth: 51.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('color', 307.44384765625, 697.421875, { lineBreak: false, textWidth: 34.03564453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 715, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 715, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 722.1328125, 2, 2); doc.moveTo(40, 722.1328125); doc.bezierCurveTo( 40, 721.0282430003384, 40.89543050033841, 720.1328125, 42, 720.1328125 ); doc.bezierCurveTo( 43.10456949966159, 720.1328125, 44, 721.0282430003384, 44, 722.1328125 ); doc.bezierCurveTo( 44, 723.2373819996616, 43.10456949966159, 724.1328125, 42, 724.1328125 ); doc.bezierCurveTo( 40.89543050033841, 724.1328125, 40, 723.2373819996616, 40, 722.1328125 ); doc.closePath(); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 729.0625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 729.0625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 736.1953125, 2, 2); doc.moveTo(40, 736.1953125); doc.bezierCurveTo( 40, 735.0907430003384, 40.89543050033841, 734.1953125, 42, 734.1953125 ); doc.bezierCurveTo( 43.10456949966159, 734.1953125, 44, 735.0907430003384, 44, 736.1953125 ); doc.bezierCurveTo( 44, 737.2998819996616, 43.10456949966159, 738.1953125, 42, 738.1953125 ); doc.bezierCurveTo( 40.89543050033841, 738.1953125, 40, 737.2998819996616, 40, 736.1953125 ); doc.closePath(); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 743.125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 743.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 750.2578125, 2, 2); doc.moveTo(40, 750.2578125); doc.bezierCurveTo( 40, 749.1532430003384, 40.89543050033841, 748.2578125, 42, 748.2578125 ); doc.bezierCurveTo( 43.10456949966159, 748.2578125, 44, 749.1532430003384, 44, 750.2578125 ); doc.bezierCurveTo( 44, 751.3623819996616, 43.10456949966159, 752.2578125, 42, 752.2578125 ); doc.bezierCurveTo( 40.89543050033841, 752.2578125, 40, 751.3623819996616, 40, 750.2578125 ); doc.closePath(); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 757.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 774.765625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Colored ', 40, 40, { lineBreak: false, textWidth: 56.0888671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('ordered ', 96.0888671875, 40, { lineBreak: false, textWidth: 55.576171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list', 151.6650390625, 40, { lineBreak: false, textWidth: 20.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 57.578125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 57.578125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 57.578125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 71.640625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 71.640625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 71.640625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 85.703125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 85.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 40, 85.703125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 99.765625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 117.34375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Colored ', 40, 134.921875, { lineBreak: false, textWidth: 56.0888671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('ordered ', 96.0888671875, 134.921875, { lineBreak: false, textWidth: 55.576171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 151.6650390625, 134.921875, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 175.791015625, 134.921875, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 207.81982421875, 134.921875, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('marker ', 239.5849609375, 134.921875, { lineBreak: false, textWidth: 51.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('color', 290.7666015625, 134.921875, { lineBreak: false, textWidth: 34.03564453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 152.5, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 152.5, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('red'); doc.fillColor('red'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 152.5, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 166.5625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 166.5625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('red'); doc.fillColor('red'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2. ', 40, 166.5625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 180.625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 180.625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('red'); doc.fillColor('red'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3. ', 40, 180.625, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 194.6875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 212.265625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 229.84375, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 229.84375, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 121.5185546875, 229.84375, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type: ', 130.17578125, 229.84375, { lineBreak: false, textWidth: 36.49658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lower-', 166.67236328125, 229.84375, { lineBreak: false, textWidth: 41.7626953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('alpha', 208.43505859375, 229.84375, { lineBreak: false, textWidth: 36.83349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 247.421875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 247.421875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a. ', 40, 247.421875, { lineBreak: false, textWidth: 12.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 261.484375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 261.484375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('b. ', 40, 261.484375, { lineBreak: false, textWidth: 12.861328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 275.546875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 275.546875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('c. ', 40, 275.546875, { lineBreak: false, textWidth: 12.41015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 289.609375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 307.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 324.765625, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 324.765625, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 121.5185546875, 324.765625, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type: ', 130.17578125, 324.765625, { lineBreak: false, textWidth: 36.49658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('upper-', 166.67236328125, 324.765625, { lineBreak: false, textWidth: 43.46923828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('alpha', 210.1416015625, 324.765625, { lineBreak: false, textWidth: 36.83349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 53.95703125, 342.34375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 80.634765625, 342.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('A. ', 40, 342.34375, { lineBreak: false, textWidth: 13.95703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 53.95703125, 356.40625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 80.634765625, 356.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B. ', 40, 356.40625, { lineBreak: false, textWidth: 13.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 53.95703125, 370.46875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 80.634765625, 370.46875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('C. ', 40, 370.46875, { lineBreak: false, textWidth: 13.939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 384.53125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 402.109375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 419.6875, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 419.6875, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 121.5185546875, 419.6875, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type: ', 130.17578125, 419.6875, { lineBreak: false, textWidth: 36.49658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('upper-', 166.67236328125, 419.6875, { lineBreak: false, textWidth: 43.46923828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('roman', 210.1416015625, 419.6875, { lineBreak: false, textWidth: 43.05908203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 437.265625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 82.59765625, 437.265625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('I. ', 40, 437.265625, { lineBreak: false, textWidth: 9.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 451.328125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 82.59765625, 451.328125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('II. ', 40, 451.328125, { lineBreak: false, textWidth: 12.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 465.390625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 82.59765625, 465.390625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('III. ', 40, 465.390625, { lineBreak: false, textWidth: 15.919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 479.453125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 82.59765625, 479.453125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('IV. ', 40, 479.453125, { lineBreak: false, textWidth: 15.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 493.515625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5', 82.59765625, 493.515625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('V. ', 40, 493.515625, { lineBreak: false, textWidth: 12.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 507.578125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 525.15625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 542.734375, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 542.734375, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 121.5185546875, 542.734375, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type: ', 130.17578125, 542.734375, { lineBreak: false, textWidth: 36.49658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('lower-', 166.67236328125, 542.734375, { lineBreak: false, textWidth: 41.7626953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('roman', 208.43505859375, 542.734375, { lineBreak: false, textWidth: 43.05908203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 54.865234375, 560.3125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 81.54296875, 560.3125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('i. ', 40, 560.3125, { lineBreak: false, textWidth: 9.041015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 54.865234375, 574.375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 81.54296875, 574.375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ii. ', 40, 574.375, { lineBreak: false, textWidth: 11.953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 54.865234375, 588.4375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 81.54296875, 588.4375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iii. ', 40, 588.4375, { lineBreak: false, textWidth: 14.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 54.865234375, 602.5, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 81.54296875, 602.5, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iv. ', 40, 602.5, { lineBreak: false, textWidth: 14.2265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 54.865234375, 616.5625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5', 81.54296875, 616.5625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('v. ', 40, 616.5625, { lineBreak: false, textWidth: 11.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 630.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 648.203125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 665.78125, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 665.78125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 121.5185546875, 665.78125, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type: ', 130.17578125, 665.78125, { lineBreak: false, textWidth: 36.49658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('none', 166.67236328125, 665.78125, { lineBreak: false, textWidth: 33.27392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 683.359375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 683.359375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 697.421875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 697.421875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 711.484375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 711.484375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 725.546875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 743.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 760.703125, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 113.6962890625, 760.703125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 137.822265625, 760.703125, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type: ', 146.4794921875, 760.703125, { lineBreak: false, textWidth: 36.49658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('none', 182.97607421875, 760.703125, { lineBreak: false, textWidth: 33.27392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 778.28125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 778.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 40, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 40, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 54.0625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 54.0625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 68.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 85.703125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 103.28125, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 103.28125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 121.5185546875, 103.28125, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 153.54736328125, 103.28125, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('separator', 185.3125, 103.28125, { lineBreak: false, textWidth: 64.1015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 53.880859375, 120.859375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 80.55859375, 120.859375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1) ', 40, 120.859375, { lineBreak: false, textWidth: 13.880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 53.880859375, 134.921875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 80.55859375, 134.921875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2) ', 40, 134.921875, { lineBreak: false, textWidth: 13.880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 53.880859375, 148.984375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 80.55859375, 148.984375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3) ', 40, 148.984375, { lineBreak: false, textWidth: 13.880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 163.046875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 180.625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 198.203125, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 198.203125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 121.5185546875, 198.203125, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 153.54736328125, 198.203125, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('complex ', 185.3125, 198.203125, { lineBreak: false, textWidth: 61.04736328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('separator', 246.35986328125, 198.203125, { lineBreak: false, textWidth: 64.1015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 57.982421875, 215.78125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 84.66015625, 215.78125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(1) ', 40, 215.78125, { lineBreak: false, textWidth: 17.982421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 57.982421875, 229.84375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 84.66015625, 229.84375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(2) ', 40, 229.84375, { lineBreak: false, textWidth: 17.982421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 57.982421875, 243.90625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 84.66015625, 243.90625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(3) ', 40, 243.90625, { lineBreak: false, textWidth: 17.982421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 257.96875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 275.546875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Ordered ', 40, 293.125, { lineBreak: false, textWidth: 57.392578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 97.392578125, 293.125, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 121.5185546875, 293.125, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 153.54736328125, 293.125, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('items ', 185.3125, 293.125, { lineBreak: false, textWidth: 41.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type', 226.708984375, 293.125, { lineBreak: false, textWidth: 28.7841796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 310.703125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 82.59765625, 310.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1. ', 40, 310.703125, { lineBreak: false, textWidth: 12.8671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 324.765625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 82.59765625, 324.765625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 55.919921875, 338.828125, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 82.59765625, 338.828125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('III. ', 40, 338.828125, { lineBreak: false, textWidth: 15.919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 352.890625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('', 40, 370.46875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Unordered ', 40, 388.046875, { lineBreak: false, textWidth: 73.6962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('list ', 113.6962890625, 388.046875, { lineBreak: false, textWidth: 24.1259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('with ', 137.822265625, 388.046875, { lineBreak: false, textWidth: 32.02880859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('own ', 169.85107421875, 388.046875, { lineBreak: false, textWidth: 31.76513671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('items ', 201.6162109375, 388.046875, { lineBreak: false, textWidth: 41.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('type', 243.0126953125, 388.046875, { lineBreak: false, textWidth: 28.7841796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 405.625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 79.544921875, 405.625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 412.7578125, 2, 2); doc.moveTo(40, 412.7578125); doc.bezierCurveTo( 40, 411.6532430003384, 40.89543050033841, 410.7578125, 42, 410.7578125 ); doc.bezierCurveTo( 43.10456949966159, 410.7578125, 44, 411.6532430003384, 44, 412.7578125 ); doc.bezierCurveTo( 44, 413.8623819996616, 43.10456949966159, 414.7578125, 42, 414.7578125 ); doc.bezierCurveTo( 40.89543050033841, 414.7578125, 40, 413.8623819996616, 40, 412.7578125 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 419.6875, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 79.544921875, 419.6875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 52.8671875, 433.75, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 79.544921875, 433.75, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 440.8828125, 2, 2); doc.moveTo(40, 440.8828125); doc.bezierCurveTo( 40, 439.7782430003384, 40.89543050033841, 438.8828125, 42, 438.8828125 ); doc.bezierCurveTo( 43.10456949966159, 438.8828125, 44, 439.7782430003384, 44, 440.8828125 ); doc.bezierCurveTo( 44, 441.9873819996616, 43.10456949966159, 442.8828125, 42, 442.8828125 ); doc.bezierCurveTo( 40.89543050033841, 442.8828125, 40, 441.9873819996616, 40, 440.8828125 ); doc.closePath(); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); }); }); }); ================================================ FILE: tests/visual/pdfmake/page_references.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('page references', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 40, 40, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 65.83984375, 40, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 77.91015625, 40, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page ', 87.408203125, 40, { lineBreak: false, textWidth: 29.3203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reference ', 116.728515625, 40, { lineBreak: false, textWidth: 53.2265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('example. ', 169.955078125, 40, { lineBreak: false, textWidth: 51.48046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Page ', 221.435546875, 40, { lineBreak: false, textWidth: 30.09375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('number ', 251.529296875, 40, { lineBreak: false, textWidth: 43.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 295.404296875, 40, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 309.384765625, 40, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('element ', 332.5, 40, { lineBreak: false, textWidth: 46.013671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('marked ', 378.513671875, 40, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 421.6796875, 40, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('property ', 434.330078125, 40, { lineBreak: false, textWidth: 47.53125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 481.861328125, 40, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 502.5859375, 40, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('located ', 40, 54.0625, { lineBreak: false, textWidth: 42.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 82.580078125, 54.0625, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pageReference ', 95.083984375, 54.0625, { lineBreak: false, textWidth: 83.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('element. ', 178.099609375, 54.0625, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('See ', 227.271484375, 54.0625, { lineBreak: false, textWidth: 22.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('below.', 250.076171875, 54.0625, { lineBreak: false, textWidth: 34.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 68.125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 82.6875); doc.lineTo(174.7421875, 82.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page ', 45, 85.1875, { lineBreak: false, textWidth: 29.478515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('#', 74.478515625, 85.1875, { lineBreak: false, textWidth: 7.32421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('title', 90.802734375, 85.1875, { lineBreak: false, textWidth: 20.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 82.1875); doc.lineTo(40.5, 102.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 82.1875); doc.lineTo(86.302734375, 102.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.2421875, 82.1875); doc.lineTo(175.2421875, 102.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 101.75); doc.lineTo(174.7421875, 101.75); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 75.064453125, 104.25, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(75.064453125, 104.25, 6.73828125, 14.0625, { Subtype: 'Link', Dest: [1, 'XYZ', null, null, null], Type: 'Annot', Rect: [75.064453125, 723.5775, 81.802734375, 737.64], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Header ', 90.802734375, 104.25, { lineBreak: false, textWidth: 41.595703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one', 132.3984375, 104.25, { lineBreak: false, textWidth: 19.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 101.25); doc.lineTo(40.5, 121.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 101.25); doc.lineTo(86.302734375, 121.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.2421875, 101.25); doc.lineTo(175.2421875, 121.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 120.8125); doc.lineTo(174.7421875, 120.8125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 75.064453125, 123.3125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(75.064453125, 123.3125, 6.73828125, 14.0625, { Subtype: 'Link', Dest: [2, 'XYZ', null, null, null], Type: 'Annot', Rect: [75.064453125, 704.515, 81.802734375, 718.5775], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Subheader ', 90.802734375, 123.3125, { lineBreak: false, textWidth: 60.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one', 150.919921875, 123.3125, { lineBreak: false, textWidth: 19.822265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 120.3125); doc.lineTo(40.5, 140.375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 120.3125); doc.lineTo(86.302734375, 140.375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.2421875, 120.3125); doc.lineTo(175.2421875, 140.375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 139.875); doc.lineTo(174.7421875, 139.875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 75.064453125, 142.375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(75.064453125, 142.375, 6.73828125, 14.0625, { Subtype: 'Link', Dest: [3, 'XYZ', null, null, null], Type: 'Annot', Rect: [75.064453125, 685.4525, 81.802734375, 699.515], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Subheader ', 90.802734375, 142.375, { lineBreak: false, textWidth: 60.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('two', 150.919921875, 142.375, { lineBreak: false, textWidth: 19.78125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 139.375); doc.lineTo(40.5, 159.4375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 139.375); doc.lineTo(86.302734375, 159.4375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.2421875, 139.375); doc.lineTo(175.2421875, 159.4375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 158.9375); doc.lineTo(174.7421875, 158.9375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 159.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('And ', 40, 173.5, { lineBreak: false, textWidth: 24.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 64.1875, 173.5, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 87.302734375, 173.5, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 109.703125, 173.5, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('referenced ', 125.763671875, 173.5, { lineBreak: false, textWidth: 59.994140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('by ', 185.7578125, 173.5, { lineBreak: false, textWidth: 15.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('textReference:', 201.07421875, 173.5, { lineBreak: false, textWidth: 76.74609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 188.0625); doc.lineTo(287.189453125, 188.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page ', 45, 190.5625, { lineBreak: false, textWidth: 29.478515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('#', 74.478515625, 190.5625, { lineBreak: false, textWidth: 7.32421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('title', 90.802734375, 190.5625, { lineBreak: false, textWidth: 20.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 187.5625); doc.lineTo(40.5, 207.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 187.5625); doc.lineTo(86.302734375, 207.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.689453125, 187.5625); doc.lineTo(287.689453125, 207.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 207.125); doc.lineTo(287.189453125, 207.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 75.064453125, 209.625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(75.064453125, 209.625, 6.73828125, 14.0625, { Subtype: 'Link', Dest: [1, 'XYZ', null, null, null], Type: 'Annot', Rect: [75.064453125, 618.2025, 81.802734375, 632.265], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 90.802734375, 209.625, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 116.642578125, 209.625, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 128.712890625, 209.625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('header, ', 138.2109375, 209.625, { lineBreak: false, textWidth: 41.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('using ', 179.49609375, 209.625, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('header ', 211.53515625, 209.625, { lineBreak: false, textWidth: 39.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 251.185546875, 209.625, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 206.625); doc.lineTo(40.5, 226.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 206.625); doc.lineTo(86.302734375, 226.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.689453125, 206.625); doc.lineTo(287.689453125, 226.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 226.1875); doc.lineTo(287.189453125, 226.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 75.064453125, 228.6875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(75.064453125, 228.6875, 6.73828125, 14.0625, { Subtype: 'Link', Dest: [2, 'XYZ', null, null, null], Type: 'Annot', Rect: [75.064453125, 599.14, 81.802734375, 613.2025], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Subheader ', 90.802734375, 228.6875, { lineBreak: false, textWidth: 60.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1 ', 150.919921875, 228.6875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 160.62890625, 228.6875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('using ', 166.91015625, 228.6875, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subheader ', 198.94921875, 228.6875, { lineBreak: false, textWidth: 59.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 258.134765625, 228.6875, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 225.6875); doc.lineTo(40.5, 245.75); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 225.6875); doc.lineTo(86.302734375, 245.75); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.689453125, 225.6875); doc.lineTo(287.689453125, 245.75); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 245.25); doc.lineTo(287.189453125, 245.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 75.064453125, 247.75, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(75.064453125, 247.75, 6.73828125, 14.0625, { Subtype: 'Link', Dest: [3, 'XYZ', null, null, null], Type: 'Annot', Rect: [75.064453125, 580.0775, 81.802734375, 594.14], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Subheader ', 90.802734375, 247.75, { lineBreak: false, textWidth: 60.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2 ', 150.919921875, 247.75, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 160.62890625, 247.75, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('using ', 166.91015625, 247.75, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subheader ', 198.94921875, 247.75, { lineBreak: false, textWidth: 59.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 258.134765625, 247.75, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 244.75); doc.lineTo(40.5, 264.8125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(86.302734375, 244.75); doc.lineTo(86.302734375, 264.8125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.689453125, 244.75); doc.lineTo(287.689453125, 264.8125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 264.3125); doc.lineTo(287.189453125, 264.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('This ', 40, 40, { lineBreak: false, textWidth: 39.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('is ', 79.287109375, 40, { lineBreak: false, textWidth: 18.369140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('a ', 97.65625, 40, { lineBreak: false, textWidth: 14.220703124999998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('header, ', 111.876953125, 40, { lineBreak: false, textWidth: 62.45507812499999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('using ', 174.33203125, 40, { lineBreak: false, textWidth: 48.58593749999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('header ', 222.91796875, 40, { lineBreak: false, textWidth: 60.02050781249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('style', 282.9384765625, 40, { lineBreak: false, textWidth: 38.2939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 61.09375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 61.09375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 61.09375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 61.09375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 61.09375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 61.09375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 61.09375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 61.09375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 61.09375, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 61.09375, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 61.09375, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 61.09375, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 75.15625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 75.15625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 75.15625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 75.15625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 75.15625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 75.15625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam.', 289.55078125, 75.15625, { lineBreak: false, textWidth: 47.712890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 89.21875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Subheader ', 40, 40, { lineBreak: false, textWidth: 75.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('1 ', 115.849609375, 40, { lineBreak: false, textWidth: 12.2607421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 128.1103515625, 40, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('using ', 136.767578125, 40, { lineBreak: false, textWidth: 40.48828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('subheader ', 177.255859375, 40, { lineBreak: false, textWidth: 74.53857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('style', 251.79443359375, 40, { lineBreak: false, textWidth: 31.91162109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 57.578125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 57.578125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 57.578125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 57.578125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 57.578125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 57.578125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 57.578125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 57.578125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 57.578125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 57.578125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 57.578125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 57.578125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 71.640625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 71.640625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 71.640625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 71.640625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 71.640625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 71.640625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 71.640625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 71.640625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 71.640625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 71.640625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 71.640625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 71.640625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 85.703125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 85.703125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 85.703125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 85.703125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 85.703125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 85.703125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 85.703125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 85.703125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 85.703125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 85.703125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 99.765625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 99.765625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 99.765625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 99.765625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 99.765625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 99.765625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 99.765625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 99.765625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 99.765625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 99.765625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 99.765625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 113.828125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 113.828125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 113.828125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 113.828125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 113.828125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 113.828125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 113.828125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 113.828125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 113.828125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 113.828125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 127.890625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 127.890625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 127.890625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 127.890625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 127.890625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 127.890625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 127.890625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 127.890625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 127.890625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 127.890625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 127.890625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 141.953125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 141.953125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 141.953125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 141.953125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 141.953125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 141.953125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 141.953125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 141.953125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 141.953125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 141.953125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 141.953125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 156.015625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 156.015625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 156.015625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 170.078125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 170.078125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 170.078125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 170.078125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 170.078125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 170.078125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 170.078125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 170.078125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 170.078125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 170.078125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 170.078125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 170.078125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 184.140625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 184.140625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 184.140625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 184.140625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 184.140625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 184.140625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 184.140625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 184.140625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 184.140625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 184.140625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 184.140625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 184.140625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 198.203125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 198.203125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 198.203125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 198.203125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 198.203125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 198.203125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 198.203125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 198.203125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 198.203125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 198.203125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 212.265625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 212.265625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 212.265625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 212.265625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 212.265625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 212.265625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 212.265625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 212.265625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 212.265625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 212.265625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 212.265625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 226.328125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 226.328125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 226.328125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 226.328125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 226.328125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 226.328125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 226.328125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 226.328125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 226.328125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 226.328125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 240.390625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 240.390625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 240.390625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 240.390625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 240.390625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 240.390625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 240.390625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 240.390625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 240.390625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 240.390625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 240.390625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 254.453125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 254.453125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 254.453125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 254.453125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 254.453125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 254.453125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 254.453125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 254.453125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 254.453125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 254.453125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 254.453125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 268.515625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 268.515625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 268.515625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 282.578125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 282.578125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 282.578125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 282.578125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 282.578125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 282.578125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 282.578125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 282.578125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 282.578125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 282.578125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 282.578125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 282.578125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 296.640625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 296.640625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 296.640625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 296.640625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 296.640625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 296.640625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 296.640625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 296.640625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 296.640625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 296.640625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 296.640625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 296.640625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 310.703125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 310.703125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 310.703125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 310.703125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 310.703125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 310.703125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 310.703125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 310.703125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 310.703125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 310.703125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 324.765625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 324.765625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 324.765625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 324.765625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 324.765625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 324.765625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 324.765625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 324.765625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 324.765625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 324.765625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 324.765625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 338.828125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 338.828125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 338.828125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 338.828125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 338.828125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 338.828125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 338.828125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 338.828125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 338.828125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 338.828125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 352.890625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 352.890625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 352.890625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 352.890625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 352.890625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 352.890625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 352.890625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 352.890625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 352.890625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 352.890625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 352.890625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 366.953125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 366.953125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 366.953125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 366.953125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 366.953125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 366.953125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 366.953125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 366.953125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 366.953125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 366.953125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 366.953125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 381.015625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 381.015625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 381.015625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 395.078125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Subheader ', 40, 40, { lineBreak: false, textWidth: 75.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('2 ', 115.849609375, 40, { lineBreak: false, textWidth: 12.2607421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 128.1103515625, 40, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('using ', 136.767578125, 40, { lineBreak: false, textWidth: 40.48828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('subheader ', 177.255859375, 40, { lineBreak: false, textWidth: 74.53857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('style', 251.79443359375, 40, { lineBreak: false, textWidth: 31.91162109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 57.578125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 57.578125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 57.578125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 57.578125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 57.578125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 57.578125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 57.578125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 57.578125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 57.578125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 57.578125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 57.578125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 57.578125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 71.640625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 71.640625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 71.640625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 71.640625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 71.640625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 71.640625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 71.640625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 71.640625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 71.640625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 71.640625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 71.640625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 71.640625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 85.703125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 85.703125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 85.703125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 85.703125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 85.703125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 85.703125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 85.703125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 85.703125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 85.703125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 85.703125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 99.765625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 99.765625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 99.765625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 99.765625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 99.765625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 99.765625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 99.765625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 99.765625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 99.765625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 99.765625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 99.765625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 113.828125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 113.828125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 113.828125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 113.828125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 113.828125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 113.828125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 113.828125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 113.828125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 113.828125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 113.828125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 127.890625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 127.890625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 127.890625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 127.890625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 127.890625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 127.890625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 127.890625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 127.890625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 127.890625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 127.890625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 127.890625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 141.953125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 141.953125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 141.953125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 141.953125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 141.953125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 141.953125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 141.953125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 141.953125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 141.953125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 141.953125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 141.953125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 156.015625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 156.015625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 156.015625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 170.078125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 170.078125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 170.078125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 170.078125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 170.078125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 170.078125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 170.078125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 170.078125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 170.078125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 170.078125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 170.078125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 170.078125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 184.140625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 184.140625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 184.140625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 184.140625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 184.140625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 184.140625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 184.140625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 184.140625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 184.140625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 184.140625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 184.140625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 184.140625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 198.203125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 198.203125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 198.203125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 198.203125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 198.203125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 198.203125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 198.203125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 198.203125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 198.203125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 198.203125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 212.265625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 212.265625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 212.265625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 212.265625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 212.265625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 212.265625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 212.265625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 212.265625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 212.265625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 212.265625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 212.265625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 226.328125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 226.328125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 226.328125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 226.328125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 226.328125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 226.328125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 226.328125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 226.328125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 226.328125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 226.328125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 240.390625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 240.390625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 240.390625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 240.390625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 240.390625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 240.390625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 240.390625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 240.390625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 240.390625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 240.390625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 240.390625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 254.453125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 254.453125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 254.453125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 254.453125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 254.453125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 254.453125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 254.453125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 254.453125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 254.453125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 254.453125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 254.453125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 268.515625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 268.515625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 268.515625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 282.578125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('It ', 40, 296.640625, { lineBreak: false, textWidth: 6.68359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('is ', 46.68359375, 296.640625, { lineBreak: false, textWidth: 7.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('possible ', 54.60546875, 296.640625, { lineBreak: false, textWidth: 31.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('to ', 85.890625, 296.640625, { lineBreak: false, textWidth: 8.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('apply ', 94.8125, 296.640625, { lineBreak: false, textWidth: 20.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('multiple ', 115.45703125, 296.640625, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('styles, ', 145.45703125, 296.640625, { lineBreak: false, textWidth: 23.95703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('by ', 169.4140625, 296.640625, { lineBreak: false, textWidth: 10.0234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('passing ', 179.4375, 296.640625, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('an ', 208.76953125, 296.640625, { lineBreak: false, textWidth: 10.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('array. ', 219.3125, 296.640625, { lineBreak: false, textWidth: 20.97265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('This ', 240.28515625, 296.640625, { lineBreak: false, textWidth: 16.90234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('paragraph ', 257.1875, 296.640625, { lineBreak: false, textWidth: 37.2578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('uses ', 294.4453125, 296.640625, { lineBreak: false, textWidth: 18.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('two ', 312.94921875, 296.640625, { lineBreak: false, textWidth: 14.87109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('styles: ', 327.8203125, 296.640625, { lineBreak: false, textWidth: 24.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('quote ', 352.1328125, 296.640625, { lineBreak: false, textWidth: 21.9140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('and ', 374.046875, 296.640625, { lineBreak: false, textWidth: 14.95703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('small. ', 389.00390625, 296.640625, { lineBreak: false, textWidth: 23.02734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('When ', 412.03125, 296.640625, { lineBreak: false, textWidth: 21.6640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('multiple ', 433.6953125, 296.640625, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('styles ', 463.6953125, 296.640625, { lineBreak: false, textWidth: 22.39453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('are ', 486.08984375, 296.640625, { lineBreak: false, textWidth: 12.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('provided, ', 499.05078125, 296.640625, { lineBreak: false, textWidth: 33.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('they ', 532.65625, 296.640625, { lineBreak: false, textWidth: 16.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('are ', 40, 306.015625, { lineBreak: false, textWidth: 12.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('evaluated ', 52.9609375, 306.015625, { lineBreak: false, textWidth: 35.6953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('in ', 88.65625, 306.015625, { lineBreak: false, textWidth: 8.203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('the ', 96.859375, 306.015625, { lineBreak: false, textWidth: 12.99609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('specified ', 109.85546875, 306.015625, { lineBreak: false, textWidth: 33.46484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('order ', 143.3203125, 306.015625, { lineBreak: false, textWidth: 20.2421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('which ', 163.5625, 306.015625, { lineBreak: false, textWidth: 22.48046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('is ', 186.04296875, 306.015625, { lineBreak: false, textWidth: 7.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('important ', 193.96484375, 306.015625, { lineBreak: false, textWidth: 36.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('in ', 230.13671875, 306.015625, { lineBreak: false, textWidth: 8.203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('case ', 238.33984375, 306.015625, { lineBreak: false, textWidth: 18.51171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('they ', 256.8515625, 306.015625, { lineBreak: false, textWidth: 16.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('define ', 273.5078125, 306.015625, { lineBreak: false, textWidth: 23.328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('the ', 296.8359375, 306.015625, { lineBreak: false, textWidth: 12.99609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('same ', 309.83203125, 306.015625, { lineBreak: false, textWidth: 21.25, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('properties', 331.08203125, 306.015625, { lineBreak: false, textWidth: 35.53125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/qrcode.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('qrcode', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Can ', 10, 10, { lineBreak: false, textWidth: 23.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('you ', 33.9296875, 10, { lineBreak: false, textWidth: 22.01953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('see ', 55.94921875, 10, { lineBreak: false, textWidth: 21.873046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('me', 77.822265625, 10, { lineBreak: false, textWidth: 16.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 24.0625, 105, 105); doc.fillColor('#fff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 24.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 29.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 29.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 29.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 29.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 29.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 29.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 34.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 39.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 44.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 49.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 54.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 59.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 59.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 59.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 64.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 69.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 74.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 79.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 84.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 89.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 89.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 89.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 94.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 99.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 104.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 109.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 114.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 119.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 124.0625, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 10, 129.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Colored ', 10, 143.125, { lineBreak: false, textWidth: 44.455078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('QR', 54.455078125, 143.125, { lineBreak: false, textWidth: 15.638671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 157.1875, 105, 105); doc.fillColor('yellow', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 157.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 162.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 162.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 162.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 162.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 162.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 162.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 167.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 172.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 177.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 182.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 187.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 192.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 192.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 192.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 197.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 202.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 207.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 212.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 217.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 222.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 222.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 222.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 227.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 232.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 237.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 242.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 247.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 252.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 257.1875, 5, 5); doc.fillColor('red', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 10, 262.1875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('http://', 10, 276.25, { lineBreak: false, textWidth: 32.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfmake.org', 42.666015625, 276.25, { lineBreak: false, textWidth: 67.716796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 290.3125, 125, 125); doc.fillColor('#fff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 290.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 295.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 295.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 295.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 295.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 295.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 295.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 300.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 305.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 310.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 315.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 320.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 325.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 325.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 325.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 325.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 325.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 325.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 330.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 335.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 340.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 345.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 350.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 355.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 360.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 365.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 370.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 375.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 375.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 375.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 375.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 375.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 375.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 380.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 385.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 390.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 395.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 400.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 405.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 410.3125, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 10, 415.3125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('A ', 10, 429.375, { lineBreak: false, textWidth: 10.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('very ', 20.798828125, 429.375, { lineBreak: false, textWidth: 24.908203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('long ', 45.70703125, 429.375, { lineBreak: false, textWidth: 26.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 71.787109375, 429.375, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(306 ', 94.90234375, 429.375, { lineBreak: false, textWidth: 27.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('chars)', 122.189453125, 429.375, { lineBreak: false, textWidth: 33.837890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 443.4375, 305, 305); doc.fillColor('#fff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 443.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 448.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 453.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 458.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 463.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 468.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 473.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 478.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 483.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 488.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 493.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 498.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 503.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 508.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 513.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 518.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 523.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 528.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 533.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 538.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 543.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 548.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 553.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 558.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 563.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 568.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 573.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 578.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 583.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 588.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 593.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 598.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 603.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 608.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 613.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 618.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 623.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 628.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 633.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 638.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 643.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 648.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 653.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 658.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 663.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 668.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 673.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 678.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 683.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 688.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 693.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 698.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(45, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 703.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 708.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 713.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 718.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(60, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(165, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 723.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(185, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(270, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 728.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(55, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(80, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(115, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(135, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(140, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(205, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(235, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(255, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(260, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 733.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(95, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(120, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(125, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(150, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(180, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(195, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(200, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(210, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(230, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(275, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(280, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(285, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(290, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 738.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(10, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(15, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(20, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(25, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(30, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(35, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(50, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(65, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(70, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(75, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(85, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(90, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(100, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(105, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(110, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(145, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(155, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(160, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(175, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(190, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(215, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(225, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(240, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(245, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(250, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(265, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(295, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(300, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(305, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(310, 743.4375, 5, 5); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 10, 748.4375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('same ', 10, 762.5, { lineBreak: false, textWidth: 32.560546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('long ', 42.560546875, 762.5, { lineBreak: false, textWidth: 26.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 68.640625, 762.5, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 91.755859375, 762.5, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fit ', 117.185546875, 762.5, { lineBreak: false, textWidth: 13.53515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('= ', 130.720703125, 762.5, { lineBreak: false, textWidth: 9.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('100 ', 140.27734375, 762.5, { lineBreak: false, textWidth: 23.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 163.462890625, 762.5, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('alignment ', 186.349609375, 762.5, { lineBreak: false, textWidth: 56.091796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('= ', 242.44140625, 762.5, { lineBreak: false, textWidth: 9.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('right', 251.998046875, 762.5, { lineBreak: false, textWidth: 24.234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 10, 122, 122); doc.fillColor('#fff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 10, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 12, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 14, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 16, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 18, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 20, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 22, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 24, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 26, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 28, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 30, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 32, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 34, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 36, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 38, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 40, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 42, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 44, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 46, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 48, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 50, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 52, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 54, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 56, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 58, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 60, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 62, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 64, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 66, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 68, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 70, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 72, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 74, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 76, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 78, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 80, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 82, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 84, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 86, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 88, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 90, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 92, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 94, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 96, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 98, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 100, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 102, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 104, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 106, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 108, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 110, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 112, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(477.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 114, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 116, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 118, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 120, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(483.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(525.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 122, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(533.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(567.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 124, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(481.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(491.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(505.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(513.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(515.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(541.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(553.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(561.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(563.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 126, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(497.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(507.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(509.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(511.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(519.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(527.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(531.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(537.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(539.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(543.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(551.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(569.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(571.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(573.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(575.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 128, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(463.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(465.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(467.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(469.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(471.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(473.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(475.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(479.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(485.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(487.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(489.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(493.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(495.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(499.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(501.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(503.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(517.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(521.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(523.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(529.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(535.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(545.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(547.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(549.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(555.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(557.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(559.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(565.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(577.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(579.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(581.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(583.28, 130, 2, 2); doc.fillColor('#000', 1); doc.fillOpacity(1); doc.fill(); }); }); }); ================================================ FILE: tests/visual/pdfmake/tables.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('tables', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('Tables', 40, 40, { lineBreak: false, textWidth: 52.86621093749999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Official ', 40, 71.09375, { lineBreak: false, textWidth: 40.6640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('documentation ', 80.6640625, 71.09375, { lineBreak: false, textWidth: 83.71875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 164.3828125, 71.09375, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 176.453125, 71.09375, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('progress, ', 188.95703125, 71.09375, { lineBreak: false, textWidth: 52.259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 241.216796875, 71.09375, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document ', 263.81640625, 71.09375, { lineBreak: false, textWidth: 56.89453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 320.7109375, 71.09375, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('just ', 332.78125, 71.09375, { lineBreak: false, textWidth: 22.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 355.33984375, 71.09375, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('glimpse ', 364.837890625, 71.09375, { lineBreak: false, textWidth: 45.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 410.16015625, 71.09375, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('what ', 424.140625, 71.09375, { lineBreak: false, textWidth: 29.044921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 453.185546875, 71.09375, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('possible ', 465.255859375, 71.09375, { lineBreak: false, textWidth: 47.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 513.091796875, 71.09375, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfmake ', 40, 85.15625, { lineBreak: false, textWidth: 50.00390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 90.00390625, 85.15625, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('its ', 112.890625, 85.15625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('layout ', 128.880859375, 85.15625, { lineBreak: false, textWidth: 35.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('engine.', 164.171875, 85.15625, { lineBreak: false, textWidth: 38.759765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('A ', 40, 109.21875, { lineBreak: false, textWidth: 14.6328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('simple ', 54.6328125, 109.21875, { lineBreak: false, textWidth: 51.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('table ', 106.5625, 109.21875, { lineBreak: false, textWidth: 39.640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('(no ', 146.203125, 109.21875, { lineBreak: false, textWidth: 27.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('headers, ', 173.7734375, 109.21875, { lineBreak: false, textWidth: 65.125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('no ', 238.8984375, 109.21875, { lineBreak: false, textWidth: 21.9921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('width ', 260.890625, 109.21875, { lineBreak: false, textWidth: 43.1953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('specified, ', 304.0859375, 109.21875, { lineBreak: false, textWidth: 72.7421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('no ', 376.828125, 109.21875, { lineBreak: false, textWidth: 21.9921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('spans, ', 398.8203125, 109.21875, { lineBreak: false, textWidth: 50.578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('no ', 449.3984375, 109.21875, { lineBreak: false, textWidth: 21.9921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('styling)', 471.390625, 109.21875, { lineBreak: false, textWidth: 53.1484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('The ', 40, 132.96875, { lineBreak: false, textWidth: 23.09765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('following ', 63.09765625, 132.96875, { lineBreak: false, textWidth: 51.931640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 115.029296875, 132.96875, { lineBreak: false, textWidth: 29.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('has ', 144.44921875, 132.96875, { lineBreak: false, textWidth: 22.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nothing ', 166.744140625, 132.96875, { lineBreak: false, textWidth: 43.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('more ', 209.974609375, 132.96875, { lineBreak: false, textWidth: 30.638671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('than ', 240.61328125, 132.96875, { lineBreak: false, textWidth: 26.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 267.26171875, 132.96875, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('body ', 276.759765625, 132.96875, { lineBreak: false, textWidth: 28.9921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('array', 305.751953125, 132.96875, { lineBreak: false, textWidth: 26.53125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 152.53125); doc.lineTo(316.978515625, 152.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 45, 155.03125, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 89.291015625, 155.03125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 161.671875, 155.03125, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 205.962890625, 155.03125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 261.94921875, 155.03125, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 306.240234375, 155.03125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 152.03125); doc.lineTo(40.5, 172.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(157.171875, 152.03125); doc.lineTo(157.171875, 172.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(257.44921875, 152.03125); doc.lineTo(257.44921875, 172.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(317.478515625, 152.03125); doc.lineTo(317.478515625, 172.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 171.59375); doc.lineTo(316.978515625, 171.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('One ', 45, 174.09375, { lineBreak: false, textWidth: 24.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 69.19921875, 174.09375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('goes ', 100.306640625, 174.09375, { lineBreak: false, textWidth: 29.091796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here', 129.3984375, 174.09375, { lineBreak: false, textWidth: 23.2734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Another ', 161.671875, 174.09375, { lineBreak: false, textWidth: 45.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one ', 206.8828125, 174.09375, { lineBreak: false, textWidth: 22.79296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here', 229.67578125, 174.09375, { lineBreak: false, textWidth: 23.2734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('OK?', 261.94921875, 174.09375, { lineBreak: false, textWidth: 21.439453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 171.09375); doc.lineTo(40.5, 191.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(157.171875, 171.09375); doc.lineTo(157.171875, 191.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(257.44921875, 171.09375); doc.lineTo(257.44921875, 191.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(317.478515625, 171.09375); doc.lineTo(317.478515625, 191.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 190.65625); doc.lineTo(316.978515625, 190.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('A ', 40, 216.15625, { lineBreak: false, textWidth: 14.6328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('simple ', 54.6328125, 216.15625, { lineBreak: false, textWidth: 51.9296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('table ', 106.5625, 216.15625, { lineBreak: false, textWidth: 39.640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('with ', 146.203125, 216.15625, { lineBreak: false, textWidth: 34.1640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('nested ', 180.3671875, 216.15625, { lineBreak: false, textWidth: 52.6640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('elements', 233.03125, 216.15625, { lineBreak: false, textWidth: 66.2421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('It ', 40, 239.90625, { lineBreak: false, textWidth: 10.154296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 50.154296875, 239.90625, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 62.224609375, 239.90625, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('course ', 76.205078125, 239.90625, { lineBreak: false, textWidth: 39.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('possible ', 115.521484375, 239.90625, { lineBreak: false, textWidth: 47.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 163.357421875, 239.90625, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nest ', 176.974609375, 239.90625, { lineBreak: false, textWidth: 26.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('any ', 203.03125, 239.90625, { lineBreak: false, textWidth: 21.796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('other ', 224.828125, 239.90625, { lineBreak: false, textWidth: 30.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('type ', 255.58984375, 239.90625, { lineBreak: false, textWidth: 25.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 281.248046875, 239.90625, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nodes ', 295.228515625, 239.90625, { lineBreak: false, textWidth: 35.748046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('available ', 330.9765625, 239.90625, { lineBreak: false, textWidth: 50.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 380.9921875, 239.90625, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfmake ', 393.49609375, 239.90625, { lineBreak: false, textWidth: 50.00390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inside ', 443.5, 239.90625, { lineBreak: false, textWidth: 34.728515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 478.228515625, 239.90625, { lineBreak: false, textWidth: 29.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cells', 507.6484375, 239.90625, { lineBreak: false, textWidth: 24.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 259.46875); doc.lineTo(413.5185546875, 259.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 45, 261.96875, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 89.291015625, 261.96875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 187.5, 261.96875, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 231.791015625, 261.96875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Column ', 297.4140625, 261.96875, { lineBreak: false, textWidth: 44.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 341.705078125, 261.96875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 258.96875); doc.lineTo(40.5, 279.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(183, 258.96875); doc.lineTo(183, 279.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(292.9140625, 258.96875); doc.lineTo(292.9140625, 279.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(414.0185546875, 258.96875); doc.lineTo(414.0185546875, 279.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 278.53125); doc.lineTo(413.5185546875, 278.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("Let's ", 45, 281.03125, { lineBreak: false, textWidth: 27.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('try ', 72.515625, 281.03125, { lineBreak: false, textWidth: 16.734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 89.25, 281.03125, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('unordered ', 105.369140625, 281.03125, { lineBreak: false, textWidth: 57.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('list', 162.568359375, 281.03125, { lineBreak: false, textWidth: 15.931640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 57.8671875, 295.09375, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 84.544921875, 295.09375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(47, 302.2265625, 2, 2); doc.moveTo(45, 302.2265625); doc.bezierCurveTo( 45, 301.1219930003384, 45.89543050033841, 300.2265625, 47, 300.2265625 ); doc.bezierCurveTo( 48.10456949966159, 300.2265625, 49, 301.1219930003384, 49, 302.2265625 ); doc.bezierCurveTo( 49, 303.3311319996616, 48.10456949966159, 304.2265625, 47, 304.2265625 ); doc.bezierCurveTo( 45.89543050033841, 304.2265625, 45, 303.3311319996616, 45, 302.2265625 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('item ', 57.8671875, 309.15625, { lineBreak: false, textWidth: 26.677734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 84.544921875, 309.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(47, 316.2890625, 2, 2); doc.moveTo(45, 316.2890625); doc.bezierCurveTo( 45, 315.1844930003384, 45.89543050033841, 314.2890625, 47, 314.2890625 ); doc.bezierCurveTo( 48.10456949966159, 314.2890625, 49, 315.1844930003384, 49, 316.2890625 ); doc.bezierCurveTo( 49, 317.3936319996616, 48.10456949966159, 318.2890625, 47, 318.2890625 ); doc.bezierCurveTo( 45.89543050033841, 318.2890625, 45, 317.3936319996616, 45, 316.2890625 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('or ', 187.5, 281.03125, { lineBreak: false, textWidth: 13.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 201.375, 281.03125, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nested ', 210.873046875, 281.03125, { lineBreak: false, textWidth: 39.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table', 250.0546875, 281.03125, { lineBreak: false, textWidth: 26.44921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(187.5, 295.59375); doc.lineTo(287.4140625, 295.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Col1', 192.5, 298.09375, { lineBreak: false, textWidth: 24.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Col2', 225.8046875, 298.09375, { lineBreak: false, textWidth: 24.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Col3', 259.109375, 298.09375, { lineBreak: false, textWidth: 24.3046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(188, 295.09375); doc.lineTo(188, 315.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.3046875, 295.09375); doc.lineTo(221.3046875, 315.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(254.609375, 295.09375); doc.lineTo(254.609375, 315.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.9140625, 295.09375); doc.lineTo(287.9140625, 315.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(187.5, 314.65625); doc.lineTo(287.4140625, 314.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 192.5, 317.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 225.8046875, 317.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 259.109375, 317.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(188, 314.15625); doc.lineTo(188, 334.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.3046875, 314.15625); doc.lineTo(221.3046875, 334.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(254.609375, 314.15625); doc.lineTo(254.609375, 334.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.9140625, 314.15625); doc.lineTo(287.9140625, 334.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(187.5, 333.71875); doc.lineTo(287.4140625, 333.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 192.5, 336.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 225.8046875, 336.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 259.109375, 336.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(188, 333.21875); doc.lineTo(188, 353.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.3046875, 333.21875); doc.lineTo(221.3046875, 353.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(254.609375, 333.21875); doc.lineTo(254.609375, 353.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(287.9140625, 333.21875); doc.lineTo(287.9140625, 353.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(187.5, 352.78125); doc.lineTo(287.4140625, 352.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Inlines ', 297.4140625, 281.03125, { lineBreak: false, textWidth: 37.845703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 335.259765625, 281.03125, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 357.66015625, 281.03125, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styled', 373.720703125, 281.03125, { lineBreak: false, textWidth: 31.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('easily ', 297.4140625, 295.09375, { lineBreak: false, textWidth: 27.9541015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('as ', 325.3681640625, 295.09375, { lineBreak: false, textWidth: 13.0712890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('everywhere ', 338.439453125, 295.09375, { lineBreak: false, textWidth: 52.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(10); doc.text('else', 391.33984375, 295.09375, { lineBreak: false, textWidth: 18.1787109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 278.03125); doc.lineTo(40.5, 356.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(183, 278.03125); doc.lineTo(183, 356.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(292.9140625, 278.03125); doc.lineTo(292.9140625, 356.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(414.0185546875, 278.03125); doc.lineTo(414.0185546875, 356.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 355.78125); doc.lineTo(413.5185546875, 355.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('Defining ', 40, 381.28125, { lineBreak: false, textWidth: 63.2890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('column ', 103.2890625, 381.28125, { lineBreak: false, textWidth: 57.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('widths', 160.5546875, 381.28125, { lineBreak: false, textWidth: 47.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Tables ', 40, 405.03125, { lineBreak: false, textWidth: 38.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('support ', 78.185546875, 405.03125, { lineBreak: false, textWidth: 44.35546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 122.541015625, 405.03125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('same ', 142.3984375, 405.03125, { lineBreak: false, textWidth: 32.560546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width ', 174.958984375, 405.03125, { lineBreak: false, textWidth: 32.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('definitions ', 207.15625, 405.03125, { lineBreak: false, textWidth: 58.7578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as ', 265.9140625, 405.03125, { lineBreak: false, textWidth: 15.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('standard ', 281.599609375, 405.03125, { lineBreak: false, textWidth: 50.23828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('columns:', 331.837890625, 405.03125, { lineBreak: false, textWidth: 48.884765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto', 53.16015625, 419.09375, { lineBreak: false, textWidth: 23.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 426.2265625, 2, 2); doc.moveTo(40, 426.2265625); doc.bezierCurveTo( 40, 425.1219930003384, 40.89543050033841, 424.2265625, 42, 424.2265625 ); doc.bezierCurveTo( 43.10456949966159, 424.2265625, 44, 425.1219930003384, 44, 426.2265625 ); doc.bezierCurveTo( 44, 427.3311319996616, 43.10456949966159, 428.2265625, 42, 428.2265625 ); doc.bezierCurveTo( 40.89543050033841, 428.2265625, 40, 427.3311319996616, 40, 426.2265625 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star', 53.16015625, 433.15625, { lineBreak: false, textWidth: 20.89453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 440.2890625, 2, 2); doc.moveTo(40, 440.2890625); doc.bezierCurveTo( 40, 439.1844930003384, 40.89543050033841, 438.2890625, 42, 438.2890625 ); doc.bezierCurveTo( 43.10456949966159, 438.2890625, 44, 439.1844930003384, 44, 440.2890625 ); doc.bezierCurveTo( 44, 441.3936319996616, 43.10456949966159, 442.2890625, 42, 442.2890625 ); doc.bezierCurveTo( 40.89543050033841, 442.2890625, 40, 441.3936319996616, 40, 440.2890625 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fixed ', 53.16015625, 447.21875, { lineBreak: false, textWidth: 29.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value', 82.263671875, 447.21875, { lineBreak: false, textWidth: 28.51171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 454.3515625, 2, 2); doc.moveTo(40, 454.3515625); doc.bezierCurveTo( 40, 453.2469930003384, 40.89543050033841, 452.3515625, 42, 452.3515625 ); doc.bezierCurveTo( 43.10456949966159, 452.3515625, 44, 453.2469930003384, 44, 454.3515625 ); doc.bezierCurveTo( 44, 455.4561319996616, 43.10456949966159, 456.3515625, 42, 456.3515625 ); doc.bezierCurveTo( 40.89543050033841, 456.3515625, 40, 455.4561319996616, 40, 454.3515625 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 466.78125); doc.lineTo(554.28, 466.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width=100', 45, 469.28125, { lineBreak: false, textWidth: 56.02734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 154, 469.28125, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized', 178.005859375, 469.28125, { lineBreak: false, textWidth: 28.078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width=200', 252.14, 469.28125, { lineBreak: false, textWidth: 56.02734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 461.14, 469.28125, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized', 485.145859375, 469.28125, { lineBreak: false, textWidth: 28.078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 466.28125); doc.lineTo(40.5, 486.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(149.5, 466.28125); doc.lineTo(149.5, 486.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(247.64, 466.28125); doc.lineTo(247.64, 486.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(456.64, 466.28125); doc.lineTo(456.64, 486.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 466.28125); doc.lineTo(554.78, 486.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 485.84375); doc.lineTo(554.28, 485.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fixed-', 45, 488.34375, { lineBreak: false, textWidth: 28.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width ', 73.91015625, 488.34375, { lineBreak: false, textWidth: 32.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cells ', 106.107421875, 488.34375, { lineBreak: false, textWidth: 27.62109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('have ', 45, 502.40625, { lineBreak: false, textWidth: 28.11328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exactly ', 73.11328125, 502.40625, { lineBreak: false, textWidth: 40.59375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 113.70703125, 502.40625, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specified ', 45, 516.46875, { lineBreak: false, textWidth: 51.2109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('width', 96.2109375, 516.46875, { lineBreak: false, textWidth: 29.2265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nothing ', 154, 488.34375, { lineBreak: false, textWidth: 42.404296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('interesting ', 154, 502.40625, { lineBreak: false, textWidth: 58.37109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here', 212.37109375, 502.40625, { lineBreak: false, textWidth: 22.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nothing ', 252.14, 488.34375, { lineBreak: false, textWidth: 42.404296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('interesting ', 294.544296875, 488.34375, { lineBreak: false, textWidth: 58.37109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here', 352.915390625, 488.34375, { lineBreak: false, textWidth: 22.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nothing ', 461.14, 488.34375, { lineBreak: false, textWidth: 42.404296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('interesting ', 461.14, 502.40625, { lineBreak: false, textWidth: 58.37109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here', 519.51109375, 502.40625, { lineBreak: false, textWidth: 22.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 485.34375); doc.lineTo(40.5, 533.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(149.5, 485.34375); doc.lineTo(149.5, 533.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(247.64, 485.34375); doc.lineTo(247.64, 533.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(456.64, 485.34375); doc.lineTo(456.64, 533.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 485.34375); doc.lineTo(554.78, 533.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 533.03125); doc.lineTo(554.28, 533.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 554.03125); doc.lineTo(554.28, 554.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 45, 556.53125, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 70.83984375, 556.53125, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 82.91015625, 556.53125, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 92.408203125, 556.53125, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 116.4140625, 556.53125, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column. ', 147.462890625, 556.53125, { lineBreak: false, textWidth: 45.919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('The ', 193.3828125, 556.53125, { lineBreak: false, textWidth: 23.09765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('next ', 216.48046875, 556.53125, { lineBreak: false, textWidth: 25.81640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 242.296875, 556.53125, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('over, ', 285.05859375, 556.53125, { lineBreak: false, textWidth: 27.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 312.57421875, 556.53125, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto-', 328.693359375, 556.53125, { lineBreak: false, textWidth: 27.099609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 355.79296875, 556.53125, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column, ', 386.841796875, 556.53125, { lineBreak: false, textWidth: 45.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 431.958984375, 556.53125, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('wrap ', 45, 570.59375, { lineBreak: false, textWidth: 29.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 74.07421875, 570.59375, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('accomodate ', 87.69140625, 570.59375, { lineBreak: false, textWidth: 69.837890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 157.529296875, 570.59375, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 172.8515625, 570.59375, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 192.708984375, 570.59375, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 215.82421875, 570.59375, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 228.328125, 570.59375, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cell.', 250.927734375, 570.59375, { lineBreak: false, textWidth: 21.62109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('I ', 485.07506658173065, 556.53125, { lineBreak: false, textWidth: 6.234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('am ', 491.30944158173065, 556.53125, { lineBreak: false, textWidth: 20.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto ', 511.32506658173065, 556.53125, { lineBreak: false, textWidth: 26.759765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized.', 485.07506658173065, 570.59375, { lineBreak: false, textWidth: 31.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 553.53125); doc.lineTo(40.5, 587.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(480.57506658173065, 553.53125); doc.lineTo(480.57506658173065, 587.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 553.53125); doc.lineTo(554.78, 587.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 587.15625); doc.lineTo(554.28, 587.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 608.15625); doc.lineTo(554.28, 608.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 45, 610.65625, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 70.83984375, 610.65625, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 82.91015625, 610.65625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('star-', 92.408203125, 610.65625, { lineBreak: false, textWidth: 24.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 116.4140625, 610.65625, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column. ', 147.462890625, 610.65625, { lineBreak: false, textWidth: 45.919921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('The ', 193.3828125, 610.65625, { lineBreak: false, textWidth: 23.09765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('next ', 216.48046875, 610.65625, { lineBreak: false, textWidth: 25.81640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 242.296875, 610.65625, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('over, ', 285.05859375, 610.65625, { lineBreak: false, textWidth: 27.515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 312.57421875, 610.65625, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('auto-', 328.693359375, 610.65625, { lineBreak: false, textWidth: 27.099609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sized ', 355.79296875, 610.65625, { lineBreak: false, textWidth: 31.048828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column, ', 386.841796875, 610.65625, { lineBreak: false, textWidth: 45.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 431.958984375, 610.65625, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('not ', 45, 624.71875, { lineBreak: false, textWidth: 20.35546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('wrap ', 65.35546875, 624.71875, { lineBreak: false, textWidth: 29.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 94.4296875, 624.71875, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('accomodate ', 108.046875, 624.71875, { lineBreak: false, textWidth: 69.837890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 177.884765625, 624.71875, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 193.20703125, 624.71875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('text ', 213.064453125, 624.71875, { lineBreak: false, textWidth: 23.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 236.1796875, 624.71875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('this ', 248.68359375, 624.71875, { lineBreak: false, textWidth: 22.599609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cell, ', 271.283203125, 624.71875, { lineBreak: false, textWidth: 23.7890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('because ', 295.072265625, 624.71875, { lineBreak: false, textWidth: 48.029296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('it ', 343.1015625, 624.71875, { lineBreak: false, textWidth: 9.802734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('has ', 352.904296875, 624.71875, { lineBreak: false, textWidth: 22.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('been ', 375.19921875, 624.71875, { lineBreak: false, textWidth: 29.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('given ', 404.23828125, 624.71875, { lineBreak: false, textWidth: 31.330078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 435.568359375, 624.71875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('noWrap ', 45, 638.78125, { lineBreak: false, textWidth: 44.044921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style.', 89.044921875, 638.78125, { lineBreak: false, textWidth: 28.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('I am auto sized.', 466.03390625, 610.65625, { lineBreak: false, textWidth: 84.24609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 607.65625); doc.lineTo(40.5, 655.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(461.53390625, 607.65625); doc.lineTo(461.53390625, 655.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 607.65625); doc.lineTo(554.78, 655.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 655.34375); doc.lineTo(554.28, 655.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('Defining ', 40, 680.84375, { lineBreak: false, textWidth: 63.2890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('row ', 103.2890625, 680.84375, { lineBreak: false, textWidth: 30.328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('heights', 133.6171875, 680.84375, { lineBreak: false, textWidth: 53.0859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 710.09375); doc.lineTo(215.734375, 710.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 712.59375, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1 ', 67.775390625, 712.59375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 77.484375, 712.59375, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height ', 102.9140625, 712.59375, { lineBreak: false, textWidth: 36.111328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('20', 139.025390625, 712.59375, { lineBreak: false, textWidth: 13.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 161.501953125, 712.59375, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 204.263671875, 712.59375, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 709.59375); doc.lineTo(40.5, 735.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(157.001953125, 709.59375); doc.lineTo(157.001953125, 735.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(216.234375, 709.59375); doc.lineTo(216.234375, 735.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 735.09375); doc.lineTo(215.734375, 735.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 737.59375, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2 ', 67.775390625, 737.59375, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 77.484375, 737.59375, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height ', 102.9140625, 737.59375, { lineBreak: false, textWidth: 36.111328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('50', 139.025390625, 737.59375, { lineBreak: false, textWidth: 13.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 161.501953125, 737.59375, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 204.263671875, 737.59375, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 734.59375); doc.lineTo(40.5, 790.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(157.001953125, 734.59375); doc.lineTo(157.001953125, 790.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(216.234375, 734.59375); doc.lineTo(216.234375, 790.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 790.09375); doc.lineTo(215.734375, 790.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 43, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3 ', 67.775390625, 43, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 77.484375, 43, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height ', 102.9140625, 43, { lineBreak: false, textWidth: 36.111328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('70', 139.025390625, 43, { lineBreak: false, textWidth: 13.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 161.501953125, 43, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 204.263671875, 43, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 40); doc.lineTo(40.5, 130.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(157.001953125, 40); doc.lineTo(157.001953125, 130.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(216.234375, 40); doc.lineTo(216.234375, 130.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 40.5); doc.lineTo(215.734375, 40.5); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 129.5625); doc.lineTo(215.734375, 129.5625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('With ', 40, 145.0625, { lineBreak: false, textWidth: 27.05859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('same ', 67.05859375, 145.0625, { lineBreak: false, textWidth: 32.560546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height:', 99.619140625, 145.0625, { lineBreak: false, textWidth: 36.046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 164.625); doc.lineTo(137.74609375, 164.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 167.125, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 67.775390625, 167.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 167.125, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 126.275390625, 167.125, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 164.125); doc.lineTo(40.5, 210.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 164.125); doc.lineTo(79.013671875, 210.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(138.24609375, 164.125); doc.lineTo(138.24609375, 210.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 209.625); doc.lineTo(137.74609375, 209.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 212.125, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 67.775390625, 212.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 212.125, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 126.275390625, 212.125, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 209.125); doc.lineTo(40.5, 255.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 209.125); doc.lineTo(79.013671875, 255.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(138.24609375, 209.125); doc.lineTo(138.24609375, 255.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 254.625); doc.lineTo(137.74609375, 254.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 257.125, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 67.775390625, 257.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 257.125, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 126.275390625, 257.125, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 254.125); doc.lineTo(40.5, 300.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 254.125); doc.lineTo(79.013671875, 300.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(138.24609375, 254.125); doc.lineTo(138.24609375, 300.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 299.625); doc.lineTo(137.74609375, 299.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('With ', 40, 315.125, { lineBreak: false, textWidth: 27.05859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('height ', 67.05859375, 315.125, { lineBreak: false, textWidth: 36.111328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('from ', 103.169921875, 315.125, { lineBreak: false, textWidth: 28.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('function:', 131.611328125, 315.125, { lineBreak: false, textWidth: 46.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 334.6875); doc.lineTo(137.74609375, 334.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 337.1875, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 67.775390625, 337.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 337.1875, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 126.275390625, 337.1875, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 334.1875); doc.lineTo(40.5, 365.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 334.1875); doc.lineTo(79.013671875, 365.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(138.24609375, 334.1875); doc.lineTo(138.24609375, 365.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 364.6875); doc.lineTo(137.74609375, 364.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 367.1875, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 67.775390625, 367.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 367.1875, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 126.275390625, 367.1875, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 364.1875); doc.lineTo(40.5, 420.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 364.1875); doc.lineTo(79.013671875, 420.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(138.24609375, 364.1875); doc.lineTo(138.24609375, 420.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 419.6875); doc.lineTo(137.74609375, 419.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 422.1875, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 67.775390625, 422.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 422.1875, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('B', 126.275390625, 422.1875, { lineBreak: false, textWidth: 7.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 419.1875); doc.lineTo(40.5, 500.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 419.1875); doc.lineTo(79.013671875, 500.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(138.24609375, 419.1875); doc.lineTo(138.24609375, 500.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 499.6875); doc.lineTo(137.74609375, 499.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('Column/', 40, 50, { lineBreak: false, textWidth: 61.6796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('row ', 101.6796875, 50, { lineBreak: false, textWidth: 30.328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('spans', 132.0078125, 50, { lineBreak: false, textWidth: 43.078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Each ', 40, 73.75, { lineBreak: false, textWidth: 29.208984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cell-', 69.208984375, 73.75, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('element ', 90.982421875, 73.75, { lineBreak: false, textWidth: 46.013671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 136.99609375, 73.75, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 159.396484375, 73.75, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 178.83203125, 73.75, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan ', 188.330078125, 73.75, { lineBreak: false, textWidth: 49.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('or ', 238.10546875, 73.75, { lineBreak: false, textWidth: 13.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colSpan', 251.98046875, 73.75, { lineBreak: false, textWidth: 43.037109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 93.3125); doc.lineTo(428.96484375, 93.3125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 119.110107421875, 95.8125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('with ', 164.476806640625, 95.8125, { lineBreak: false, textWidth: 27.75830078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Colspan ', 192.235107421875, 95.8125, { lineBreak: false, textWidth: 50.73681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('= ', 242.971923828125, 95.8125, { lineBreak: false, textWidth: 10.51171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 253.483642578125, 95.8125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 358.095947265625, 95.8125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 403.462646484375, 95.8125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 92.8125); doc.lineTo(40.5, 114.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(339.482421875, 92.8125); doc.lineTo(339.482421875, 114.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 92.8125); doc.lineTo(429.46484375, 114.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 113.546875); doc.lineTo(428.96484375, 113.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 118.622314453125, 116.046875, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 163.989013671875, 116.046875, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 268.113525390625, 116.046875, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 313.480224609375, 116.046875, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 358.095947265625, 116.046875, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 403.462646484375, 116.046875, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 113.046875); doc.lineTo(40.5, 134.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 113.046875); doc.lineTo(249.5, 134.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(339.482421875, 113.046875); doc.lineTo(339.482421875, 134.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 113.046875); doc.lineTo(429.46484375, 134.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 133.78125); doc.lineTo(428.96484375, 133.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 136.28125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 136.28125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 136.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 254, 136.28125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 297.13671875, 136.28125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 328.244140625, 136.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 343.982421875, 136.28125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 387.119140625, 136.28125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 418.2265625, 136.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 133.28125); doc.lineTo(40.5, 153.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 133.28125); doc.lineTo(249.5, 153.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(339.482421875, 133.28125); doc.lineTo(339.482421875, 153.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 133.28125); doc.lineTo(429.46484375, 153.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 152.84375); doc.lineTo(428.96484375, 152.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan ', 45, 155.34375, { lineBreak: false, textWidth: 49.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 94.775390625, 155.34375, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 114.2109375, 155.34375, { lineBreak: false, textWidth: 13.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 127.828125, 155.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 45, 169.40625, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 82.095703125, 169.40625, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 118.03125, 169.40625, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 148.4296875, 169.40625, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 164.419921875, 169.40625, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 45, 183.46875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 111.416015625, 183.46875, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 171.884765625, 183.46875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 193.3125, 183.46875, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 215.595703125, 183.46875, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 45, 197.53125, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor', 94.171875, 197.53125, { lineBreak: false, textWidth: 38.431640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 254, 155.34375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 297.13671875, 155.34375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 328.244140625, 155.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 343.982421875, 155.34375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 387.119140625, 155.34375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 418.2265625, 155.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 152.34375); doc.lineTo(40.5, 172.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 152.34375); doc.lineTo(249.5, 172.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(339.482421875, 152.34375); doc.lineTo(339.482421875, 172.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 152.34375); doc.lineTo(429.46484375, 172.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249, 171.90625); doc.lineTo(428.96484375, 171.90625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 254, 174.40625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 297.13671875, 174.40625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 328.244140625, 174.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 343.982421875, 174.40625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 387.119140625, 174.40625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 418.2265625, 174.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 171.40625); doc.lineTo(40.5, 191.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 171.40625); doc.lineTo(249.5, 191.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(339.482421875, 171.40625); doc.lineTo(339.482421875, 191.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 171.40625); doc.lineTo(429.46484375, 191.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249, 190.96875); doc.lineTo(428.96484375, 190.96875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 254, 193.46875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 297.13671875, 193.46875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 328.244140625, 193.46875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 343.982421875, 193.46875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 387.119140625, 193.46875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 418.2265625, 193.46875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 190.46875); doc.lineTo(40.5, 214.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 190.46875); doc.lineTo(249.5, 214.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(339.482421875, 190.46875); doc.lineTo(339.482421875, 214.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 190.46875); doc.lineTo(429.46484375, 214.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 214.09375); doc.lineTo(428.96484375, 214.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 216.59375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 216.59375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 216.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Both:', 254, 216.59375, { lineBreak: false, textWidth: 27.75, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan ', 254, 230.65625, { lineBreak: false, textWidth: 49.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 303.775390625, 230.65625, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colSpan', 326.662109375, 230.65625, { lineBreak: false, textWidth: 43.037109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 254, 244.71875, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 276.400390625, 244.71875, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('defined ', 292.4609375, 244.71875, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 334.947265625, 244.71875, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 348.365234375, 244.71875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('same ', 368.22265625, 244.71875, { lineBreak: false, textWidth: 32.560546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('time', 400.783203125, 244.71875, { lineBreak: false, textWidth: 23.70703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 213.59375); doc.lineTo(40.5, 233.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 213.59375); doc.lineTo(249.5, 233.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 213.59375); doc.lineTo(429.46484375, 233.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 233.15625); doc.lineTo(249, 233.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 235.65625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 235.65625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('#444'); doc.fillColor('#444'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 235.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 232.65625); doc.lineTo(40.5, 261.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(249.5, 232.65625); doc.lineTo(249.5, 261.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(429.46484375, 232.65625); doc.lineTo(429.46484375, 261.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 261.28125); doc.lineTo(428.96484375, 261.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('Headers', 40, 50, { lineBreak: false, textWidth: 60.109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('You ', 40, 73.75, { lineBreak: false, textWidth: 23.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 63.255859375, 73.75, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('declare ', 85.65625, 73.75, { lineBreak: false, textWidth: 42.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('how ', 127.779296875, 73.75, { lineBreak: false, textWidth: 25.44140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('many ', 153.220703125, 73.75, { lineBreak: false, textWidth: 32.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rows ', 185.53515625, 73.75, { lineBreak: false, textWidth: 28.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('should ', 214.498046875, 73.75, { lineBreak: false, textWidth: 38.90625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 253.404296875, 73.75, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('treated ', 269.46484375, 73.75, { lineBreak: false, textWidth: 40.76953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as ', 310.234375, 73.75, { lineBreak: false, textWidth: 15.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 325.919921875, 73.75, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('header. ', 335.41796875, 73.75, { lineBreak: false, textWidth: 42.087890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Headers ', 377.505859375, 73.75, { lineBreak: false, textWidth: 47.783203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('are ', 425.2890625, 73.75, { lineBreak: false, textWidth: 19.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('automatically ', 445.09375, 73.75, { lineBreak: false, textWidth: 74.947265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('repeated ', 40, 87.8125, { lineBreak: false, textWidth: 49.939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 89.939453125, 87.8125, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 106.375, 87.8125, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('following ', 126.232421875, 87.8125, { lineBreak: false, textWidth: 51.931640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pages', 178.1640625, 87.8125, { lineBreak: false, textWidth: 32.537109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('It ', 40, 101.875, { lineBreak: false, textWidth: 10.025390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 50.025390625, 101.875, { lineBreak: false, textWidth: 11.8828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('also ', 61.908203125, 101.875, { lineBreak: false, textWidth: 24.97265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('possible ', 86.880859375, 101.875, { lineBreak: false, textWidth: 46.927734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 133.80859375, 101.875, { lineBreak: false, textWidth: 13.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 147.19140625, 101.875, { lineBreak: false, textWidth: 19.083984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('keepWithHeaderRows ', 166.275390625, 101.875, { lineBreak: false, textWidth: 118.013671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 284.2890625, 101.875, { lineBreak: false, textWidth: 13.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('make ', 297.671875, 101.875, { lineBreak: false, textWidth: 31.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sure ', 329.330078125, 101.875, { lineBreak: false, textWidth: 25.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('there ', 354.912109375, 101.875, { lineBreak: false, textWidth: 29.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 384.513671875, 101.875, { lineBreak: false, textWidth: 20.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 404.91015625, 101.875, { lineBreak: false, textWidth: 15.755859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('no ', 420.666015625, 101.875, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page-', 436.78515625, 101.875, { lineBreak: false, textWidth: 29.068359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('break ', 465.853515625, 101.875, { lineBreak: false, textWidth: 31.9921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('between ', 497.845703125, 101.875, { lineBreak: false, textWidth: 47.349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 40, 115.9375, { lineBreak: false, textWidth: 19.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('header ', 59.494140625, 115.9375, { lineBreak: false, textWidth: 38.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 98.359375, 115.9375, { lineBreak: false, textWidth: 22.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('these ', 120.794921875, 115.9375, { lineBreak: false, textWidth: 31.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rows. ', 152.5703125, 115.9375, { lineBreak: false, textWidth: 31.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Take ', 184.076171875, 115.9375, { lineBreak: false, textWidth: 27.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 211.814453125, 115.9375, { lineBreak: false, textWidth: 9.333984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('look ', 221.1484375, 115.9375, { lineBreak: false, textWidth: 25.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 246.326171875, 115.9375, { lineBreak: false, textWidth: 13.1953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 259.521484375, 115.9375, { lineBreak: false, textWidth: 19.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('document-', 279.015625, 115.9375, { lineBreak: false, textWidth: 56.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('definition ', 335.0546875, 115.9375, { lineBreak: false, textWidth: 51.57421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 386.62890625, 115.9375, { lineBreak: false, textWidth: 22.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('play ', 409.064453125, 115.9375, { lineBreak: false, textWidth: 24.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 433.3515625, 115.9375, { lineBreak: false, textWidth: 24.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('it. ', 458.3125, 115.9375, { lineBreak: false, textWidth: 12.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('If ', 471.12109375, 115.9375, { lineBreak: false, textWidth: 10.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('you ', 481.38671875, 115.9375, { lineBreak: false, textWidth: 21.591796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('set ', 502.978515625, 115.9375, { lineBreak: false, textWidth: 19.083984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('it ', 522.0625, 115.9375, { lineBreak: false, textWidth: 9.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 531.748046875, 115.9375, { lineBreak: false, textWidth: 13.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('one, ', 40, 130, { lineBreak: false, textWidth: 24.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 64.685546875, 130, { lineBreak: false, textWidth: 19.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('following ', 84.1796875, 130, { lineBreak: false, textWidth: 50.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 135.14453125, 130, { lineBreak: false, textWidth: 28.892578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 164.037109375, 130, { lineBreak: false, textWidth: 20.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('automatically ', 184.43359375, 130, { lineBreak: false, textWidth: 73.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('start ', 257.95703125, 130, { lineBreak: false, textWidth: 27.404296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 285.361328125, 130, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 301.48046875, 130, { lineBreak: false, textWidth: 19.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('next ', 320.974609375, 130, { lineBreak: false, textWidth: 25.3359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page, ', 346.310546875, 130, { lineBreak: false, textWidth: 31.083984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('since ', 377.39453125, 130, { lineBreak: false, textWidth: 30.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text("there's ", 408.1328125, 130, { lineBreak: false, textWidth: 37.1953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('not ', 445.328125, 130, { lineBreak: false, textWidth: 19.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enough ', 465.30859375, 130, { lineBreak: false, textWidth: 41.876953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('space ', 507.185546875, 130, { lineBreak: false, textWidth: 34.359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('for ', 40, 144.0625, { lineBreak: false, textWidth: 17.736328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 57.736328125, 144.0625, { lineBreak: false, textWidth: 19.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('first ', 77.23046875, 144.0625, { lineBreak: false, textWidth: 23.361328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 100.591796875, 144.0625, { lineBreak: false, textWidth: 22.32421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('to ', 122.916015625, 144.0625, { lineBreak: false, textWidth: 13.3828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 136.298828125, 144.0625, { lineBreak: false, textWidth: 15.755859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rendered ', 152.0546875, 144.0625, { lineBreak: false, textWidth: 49.1015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('gray'); doc.fillColor('gray'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('here', 201.15625, 144.0625, { lineBreak: false, textWidth: 22.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 163.625); doc.lineTo(554.28, 163.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 45, 166.125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 90.36669921875, 166.125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 216.42666666666665, 166.125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 261.7933658854166, 166.125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 387.8533333333333, 166.125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 433.2200325520833, 166.125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 163.125); doc.lineTo(40.5, 184.359375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(211.92666666666665, 163.125); doc.lineTo(211.92666666666665, 184.359375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(383.3533333333333, 163.125); doc.lineTo(383.3533333333333, 184.359375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 163.125); doc.lineTo(554.78, 184.359375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 183.859375); doc.lineTo(554.28, 183.859375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 45, 186.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 82.095703125, 186.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 118.03125, 186.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 148.4296875, 186.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 164.419921875, 186.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 45, 200.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 111.416015625, 200.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 168.97265625, 200.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 45, 214.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 67.283203125, 214.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 83.865234375, 214.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 133.037109375, 214.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 45, 228.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 100.30078125, 228.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 113.806640625, 228.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 150.099609375, 228.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 163.34765625, 228.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 45, 242.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 84.896484375, 242.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 123.33984375, 242.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 138.01171875, 242.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 167.390625, 242.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 45, 256.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 81.451171875, 256.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 125.44921875, 256.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 150.955078125, 256.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 45, 270.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 110.40234375, 270.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 155.982421875, 270.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 45, 284.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 66.603515625, 284.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 80.109375, 284.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 118.51171875, 284.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 133.787109375, 284.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 149.642578125, 284.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 45, 298.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 107.302734375, 298.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 133.857421875, 298.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 160.248046875, 298.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 45, 312.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 75.3984375, 312.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 87.90234375, 312.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 161.82421875, 312.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 45, 326.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 97.5234375, 326.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 122.33203125, 326.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 150.392578125, 326.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 45, 341.046875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 81.64453125, 341.046875, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 97.587890625, 341.046875, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 131.431640625, 341.046875, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 159.990234375, 341.046875, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 45, 355.109375, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 100.9453125, 355.109375, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 123.556640625, 355.109375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 45, 369.171875, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 98.173828125, 369.171875, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 121.23046875, 369.171875, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 170.654296875, 369.171875, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 196.96875, 369.171875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 45, 383.234375, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 77.0390625, 383.234375, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 96.357421875, 383.234375, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 132.703125, 383.234375, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 45, 397.296875, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 77.98828125, 397.296875, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 107.537109375, 397.296875, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 120.1875, 397.296875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum. ', 139.623046875, 397.296875, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 45, 411.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 82.095703125, 411.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 118.03125, 411.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 148.4296875, 411.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 164.419921875, 411.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 45, 425.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 111.416015625, 425.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 168.97265625, 425.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 45, 439.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 67.283203125, 439.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 83.865234375, 439.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 133.037109375, 439.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 45, 453.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 100.30078125, 453.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 113.806640625, 453.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 150.099609375, 453.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 163.34765625, 453.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 45, 467.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 84.896484375, 467.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 123.33984375, 467.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 138.01171875, 467.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 167.390625, 467.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 45, 481.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 81.451171875, 481.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 125.44921875, 481.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 150.955078125, 481.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 45, 495.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 110.40234375, 495.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 155.982421875, 495.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 45, 509.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 66.603515625, 509.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 80.109375, 509.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 118.51171875, 509.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 133.787109375, 509.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 149.642578125, 509.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 45, 523.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 107.302734375, 523.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 133.857421875, 523.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 160.248046875, 523.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 45, 537.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 75.3984375, 537.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 87.90234375, 537.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 161.82421875, 537.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 45, 551.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 97.5234375, 551.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 122.33203125, 551.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 150.392578125, 551.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 45, 566.046875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 81.64453125, 566.046875, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 97.587890625, 566.046875, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 131.431640625, 566.046875, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 159.990234375, 566.046875, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 45, 580.109375, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 100.9453125, 580.109375, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 123.556640625, 580.109375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 45, 594.171875, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 98.173828125, 594.171875, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 121.23046875, 594.171875, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 170.654296875, 594.171875, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 196.96875, 594.171875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 45, 608.234375, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 77.0390625, 608.234375, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 96.357421875, 608.234375, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 132.703125, 608.234375, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 45, 622.296875, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 77.98828125, 622.296875, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 107.537109375, 622.296875, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 120.1875, 622.296875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum. ', 139.623046875, 622.296875, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 45, 636.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 82.095703125, 636.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 118.03125, 636.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 148.4296875, 636.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 164.419921875, 636.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 45, 650.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 111.416015625, 650.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 168.97265625, 650.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 45, 664.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 67.283203125, 664.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 83.865234375, 664.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 133.037109375, 664.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 45, 678.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 100.30078125, 678.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 113.806640625, 678.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 150.099609375, 678.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 163.34765625, 678.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 45, 692.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 84.896484375, 692.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 123.33984375, 692.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 138.01171875, 692.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 167.390625, 692.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 45, 706.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 81.451171875, 706.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 125.44921875, 706.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 150.955078125, 706.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 45, 720.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 110.40234375, 720.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 155.982421875, 720.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 45, 734.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 66.603515625, 734.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 80.109375, 734.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 118.51171875, 734.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 133.787109375, 734.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 149.642578125, 734.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 45, 748.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 107.302734375, 748.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 133.857421875, 748.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 160.248046875, 748.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 45, 762.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 75.3984375, 762.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 87.90234375, 762.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 161.82421875, 762.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 45, 776.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 97.5234375, 776.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 122.33203125, 776.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 150.392578125, 776.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 216.42666666666665, 186.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 253.52236979166665, 186.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 289.4579166666666, 186.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 319.8563541666666, 186.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 335.8465885416666, 186.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 216.42666666666665, 200.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 282.8426822916666, 200.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 340.3993229166666, 200.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 216.42666666666665, 214.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 238.70986979166665, 214.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 255.29190104166665, 214.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 304.4637760416666, 214.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 216.42666666666665, 228.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 271.7274479166666, 228.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 285.2333072916666, 228.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 321.5262760416666, 228.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 334.7743229166666, 228.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 216.42666666666665, 242.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 256.3231510416666, 242.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 294.7665104166666, 242.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 309.4383854166666, 242.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 338.8172916666666, 242.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 216.42666666666665, 256.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 252.87783854166665, 256.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 296.8758854166666, 256.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 322.3817447916666, 256.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 216.42666666666665, 270.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 281.8290104166666, 270.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 327.4090885416666, 270.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 216.42666666666665, 284.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 238.03018229166665, 284.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 251.53604166666665, 284.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 289.9383854166666, 284.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 305.2137760416666, 284.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 321.0692447916666, 284.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 216.42666666666665, 298.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 278.7294010416666, 298.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 305.2840885416666, 298.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 331.6747135416666, 298.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 216.42666666666665, 312.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 246.82510416666665, 312.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 259.3290104166666, 312.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 333.2508854166666, 312.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 216.42666666666665, 326.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 268.9501041666666, 326.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 293.7586979166666, 326.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 321.8192447916666, 326.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 216.42666666666665, 341.046875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 253.07119791666665, 341.046875, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 269.0145572916666, 341.046875, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 302.8583072916666, 341.046875, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 331.4169010416666, 341.046875, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 216.42666666666665, 355.109375, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 272.3719791666666, 355.109375, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 294.9833072916666, 355.109375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 216.42666666666665, 369.171875, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 269.6004947916666, 369.171875, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 292.6571354166666, 369.171875, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 342.0809635416666, 369.171875, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 368.3954166666666, 369.171875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 216.42666666666665, 383.234375, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 248.46572916666665, 383.234375, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 267.7840885416666, 383.234375, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 304.1297916666666, 383.234375, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 216.42666666666665, 397.296875, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 249.41494791666665, 397.296875, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 278.9637760416666, 397.296875, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 291.6141666666666, 397.296875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum. ', 311.0497135416666, 397.296875, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 216.42666666666665, 411.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 253.52236979166665, 411.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 289.4579166666666, 411.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 319.8563541666666, 411.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 335.8465885416666, 411.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 216.42666666666665, 425.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 282.8426822916666, 425.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 340.3993229166666, 425.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 216.42666666666665, 439.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 238.70986979166665, 439.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 255.29190104166665, 439.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 304.4637760416666, 439.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 216.42666666666665, 453.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 271.7274479166666, 453.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 285.2333072916666, 453.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 321.5262760416666, 453.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 334.7743229166666, 453.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 216.42666666666665, 467.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 256.3231510416666, 467.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 294.7665104166666, 467.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 309.4383854166666, 467.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 338.8172916666666, 467.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 216.42666666666665, 481.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 252.87783854166665, 481.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 296.8758854166666, 481.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 322.3817447916666, 481.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 216.42666666666665, 495.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 281.8290104166666, 495.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 327.4090885416666, 495.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 216.42666666666665, 509.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 238.03018229166665, 509.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 251.53604166666665, 509.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 289.9383854166666, 509.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 305.2137760416666, 509.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 321.0692447916666, 509.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 216.42666666666665, 523.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 278.7294010416666, 523.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 305.2840885416666, 523.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 331.6747135416666, 523.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 216.42666666666665, 537.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 246.82510416666665, 537.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 259.3290104166666, 537.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 333.2508854166666, 537.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 216.42666666666665, 551.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 268.9501041666666, 551.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 293.7586979166666, 551.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 321.8192447916666, 551.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 216.42666666666665, 566.046875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 253.07119791666665, 566.046875, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 269.0145572916666, 566.046875, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 302.8583072916666, 566.046875, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 331.4169010416666, 566.046875, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 216.42666666666665, 580.109375, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 272.3719791666666, 580.109375, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 294.9833072916666, 580.109375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 216.42666666666665, 594.171875, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 269.6004947916666, 594.171875, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 292.6571354166666, 594.171875, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 342.0809635416666, 594.171875, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 368.3954166666666, 594.171875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 216.42666666666665, 608.234375, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 248.46572916666665, 608.234375, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 267.7840885416666, 608.234375, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 304.1297916666666, 608.234375, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 216.42666666666665, 622.296875, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 249.41494791666665, 622.296875, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 278.9637760416666, 622.296875, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 291.6141666666666, 622.296875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum. ', 311.0497135416666, 622.296875, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 216.42666666666665, 636.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 253.52236979166665, 636.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 289.4579166666666, 636.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 319.8563541666666, 636.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 335.8465885416666, 636.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 216.42666666666665, 650.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 282.8426822916666, 650.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 340.3993229166666, 650.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 216.42666666666665, 664.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 238.70986979166665, 664.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 255.29190104166665, 664.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 304.4637760416666, 664.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 216.42666666666665, 678.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 271.7274479166666, 678.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 285.2333072916666, 678.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 321.5262760416666, 678.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 334.7743229166666, 678.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 216.42666666666665, 692.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 256.3231510416666, 692.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 294.7665104166666, 692.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 309.4383854166666, 692.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 338.8172916666666, 692.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 216.42666666666665, 706.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 252.87783854166665, 706.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 296.8758854166666, 706.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 322.3817447916666, 706.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 216.42666666666665, 720.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 281.8290104166666, 720.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 327.4090885416666, 720.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 216.42666666666665, 734.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 238.03018229166665, 734.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 251.53604166666665, 734.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 289.9383854166666, 734.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 305.2137760416666, 734.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 321.0692447916666, 734.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 216.42666666666665, 748.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 278.7294010416666, 748.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 305.2840885416666, 748.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 331.6747135416666, 748.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 216.42666666666665, 762.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 246.82510416666665, 762.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 259.3290104166666, 762.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 333.2508854166666, 762.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 216.42666666666665, 776.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 268.9501041666666, 776.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 293.7586979166666, 776.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 321.8192447916666, 776.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 387.8533333333333, 186.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 424.9490364583333, 186.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 460.8845833333333, 186.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 491.2830208333333, 186.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 507.2732552083333, 186.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 387.8533333333333, 200.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 454.2693489583333, 200.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 511.8259895833333, 200.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 387.8533333333333, 214.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 410.1365364583333, 214.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 426.7185677083333, 214.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 475.8904427083333, 214.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 387.8533333333333, 228.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 443.1541145833333, 228.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 456.6599739583333, 228.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 492.9529427083333, 228.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 506.2009895833333, 228.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 387.8533333333333, 242.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 427.7498177083333, 242.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 466.1931770833333, 242.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 480.8650520833333, 242.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 510.2439583333333, 242.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 387.8533333333333, 256.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 424.3045052083333, 256.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 468.3025520833333, 256.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 493.8084114583333, 256.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 387.8533333333333, 270.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 453.2556770833333, 270.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 498.8357552083333, 270.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 387.8533333333333, 284.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 409.4568489583333, 284.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 422.9627083333333, 284.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 461.3650520833333, 284.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 476.6404427083333, 284.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 492.4959114583333, 284.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 387.8533333333333, 298.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 450.1560677083333, 298.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 476.7107552083333, 298.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 503.1013802083333, 298.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 387.8533333333333, 312.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 418.2517708333333, 312.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 430.7556770833333, 312.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 504.6775520833333, 312.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 387.8533333333333, 326.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 440.3767708333333, 326.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 465.1853645833333, 326.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 493.2459114583333, 326.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 387.8533333333333, 341.046875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 424.4978645833333, 341.046875, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 440.4412239583333, 341.046875, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 474.2849739583333, 341.046875, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 502.8435677083333, 341.046875, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 387.8533333333333, 355.109375, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 443.7986458333333, 355.109375, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 466.4099739583333, 355.109375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 387.8533333333333, 369.171875, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 441.0271614583333, 369.171875, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 464.0838020833333, 369.171875, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 513.5076302083332, 369.171875, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 539.8220833333332, 369.171875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 387.8533333333333, 383.234375, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 419.8923958333333, 383.234375, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 439.2107552083333, 383.234375, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 475.5564583333333, 383.234375, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 387.8533333333333, 397.296875, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 420.8416145833333, 397.296875, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 450.3904427083333, 397.296875, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 463.0408333333333, 397.296875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum. ', 482.4763802083333, 397.296875, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 387.8533333333333, 411.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 424.9490364583333, 411.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 460.8845833333333, 411.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 491.2830208333333, 411.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 507.2732552083333, 411.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 387.8533333333333, 425.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 454.2693489583333, 425.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 511.8259895833333, 425.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 387.8533333333333, 439.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 410.1365364583333, 439.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 426.7185677083333, 439.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 475.8904427083333, 439.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 387.8533333333333, 453.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 443.1541145833333, 453.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 456.6599739583333, 453.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 492.9529427083333, 453.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 506.2009895833333, 453.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 387.8533333333333, 467.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 427.7498177083333, 467.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 466.1931770833333, 467.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 480.8650520833333, 467.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 510.2439583333333, 467.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 387.8533333333333, 481.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 424.3045052083333, 481.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 468.3025520833333, 481.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 493.8084114583333, 481.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 387.8533333333333, 495.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 453.2556770833333, 495.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 498.8357552083333, 495.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 387.8533333333333, 509.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 409.4568489583333, 509.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 422.9627083333333, 509.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 461.3650520833333, 509.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 476.6404427083333, 509.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 492.4959114583333, 509.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 387.8533333333333, 523.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 450.1560677083333, 523.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 476.7107552083333, 523.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 503.1013802083333, 523.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 387.8533333333333, 537.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 418.2517708333333, 537.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 430.7556770833333, 537.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 504.6775520833333, 537.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 387.8533333333333, 551.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 440.3767708333333, 551.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 465.1853645833333, 551.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 493.2459114583333, 551.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 387.8533333333333, 566.046875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 424.4978645833333, 566.046875, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 440.4412239583333, 566.046875, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 474.2849739583333, 566.046875, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 502.8435677083333, 566.046875, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 387.8533333333333, 580.109375, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 443.7986458333333, 580.109375, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 466.4099739583333, 580.109375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 387.8533333333333, 594.171875, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 441.0271614583333, 594.171875, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 464.0838020833333, 594.171875, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 513.5076302083332, 594.171875, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 539.8220833333332, 594.171875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 387.8533333333333, 608.234375, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 419.8923958333333, 608.234375, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 439.2107552083333, 608.234375, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 475.5564583333333, 608.234375, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 387.8533333333333, 622.296875, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 420.8416145833333, 622.296875, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 450.3904427083333, 622.296875, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 463.0408333333333, 622.296875, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum. ', 482.4763802083333, 622.296875, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 387.8533333333333, 636.359375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 424.9490364583333, 636.359375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 460.8845833333333, 636.359375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 491.2830208333333, 636.359375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 507.2732552083333, 636.359375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 387.8533333333333, 650.421875, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 454.2693489583333, 650.421875, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit, ', 511.8259895833333, 650.421875, { lineBreak: false, textWidth: 21.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 387.8533333333333, 664.484375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('do ', 410.1365364583333, 664.484375, { lineBreak: false, textWidth: 16.58203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eiusmod ', 426.7185677083333, 664.484375, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 475.8904427083333, 664.484375, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('incididunt ', 387.8533333333333, 678.546875, { lineBreak: false, textWidth: 55.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 443.1541145833333, 678.546875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('labore ', 456.6599739583333, 678.546875, { lineBreak: false, textWidth: 36.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 492.9529427083333, 678.546875, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 506.2009895833333, 678.546875, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 387.8533333333333, 692.609375, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliqua. ', 427.7498177083333, 692.609375, { lineBreak: false, textWidth: 38.443359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 466.1931770833333, 692.609375, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim ', 480.8650520833333, 692.609375, { lineBreak: false, textWidth: 29.37890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ad ', 510.2439583333333, 692.609375, { lineBreak: false, textWidth: 16.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('minim ', 387.8533333333333, 706.671875, { lineBreak: false, textWidth: 36.451171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniam, ', 424.3045052083333, 706.671875, { lineBreak: false, textWidth: 43.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quis ', 468.3025520833333, 706.671875, { lineBreak: false, textWidth: 25.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nostrud ', 493.8084114583333, 706.671875, { lineBreak: false, textWidth: 43.986328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('exercitation ', 387.8533333333333, 720.734375, { lineBreak: false, textWidth: 65.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ullamco ', 453.2556770833333, 720.734375, { lineBreak: false, textWidth: 45.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laboris ', 498.8357552083333, 720.734375, { lineBreak: false, textWidth: 39.146484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisi ', 387.8533333333333, 734.796875, { lineBreak: false, textWidth: 21.603515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ut ', 409.4568489583333, 734.796875, { lineBreak: false, textWidth: 13.505859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquip ', 422.9627083333333, 734.796875, { lineBreak: false, textWidth: 38.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ex ', 461.3650520833333, 734.796875, { lineBreak: false, textWidth: 15.275390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ea ', 476.6404427083333, 734.796875, { lineBreak: false, textWidth: 15.85546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('commodo ', 492.4959114583333, 734.796875, { lineBreak: false, textWidth: 57.5859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consequat. ', 387.8533333333333, 748.859375, { lineBreak: false, textWidth: 62.302734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 450.1560677083333, 748.859375, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aute ', 476.7107552083333, 748.859375, { lineBreak: false, textWidth: 26.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('irure ', 503.1013802083333, 748.859375, { lineBreak: false, textWidth: 26.865234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 387.8533333333333, 762.921875, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 418.2517708333333, 762.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reprehenderit ', 430.7556770833333, 762.921875, { lineBreak: false, textWidth: 73.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 504.6775520833333, 762.921875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('voluptate ', 387.8533333333333, 776.984375, { lineBreak: false, textWidth: 52.5234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('velit ', 440.3767708333333, 776.984375, { lineBreak: false, textWidth: 24.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('esse ', 465.1853645833333, 776.984375, { lineBreak: false, textWidth: 28.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cillum ', 493.2459114583333, 776.984375, { lineBreak: false, textWidth: 35.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 183.359375); doc.lineTo(40.5, 794.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(211.92666666666665, 183.359375); doc.lineTo(211.92666666666665, 794.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(383.3533333333333, 183.359375); doc.lineTo(383.3533333333333, 794.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 183.359375); doc.lineTo(554.78, 794.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 793.546875); doc.lineTo(554.28, 793.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 40.5); doc.lineTo(554.28, 40.5); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 45, 43, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 90.36669921875, 43, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 216.42666666666665, 43, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 261.7933658854166, 43, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 387.8533333333333, 43, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 433.2200325520833, 43, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 40); doc.lineTo(40.5, 61.234375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(211.92666666666665, 40); doc.lineTo(211.92666666666665, 61.234375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(383.3533333333333, 40); doc.lineTo(383.3533333333333, 61.234375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 40); doc.lineTo(554.78, 61.234375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 60.734375); doc.lineTo(554.28, 60.734375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 45, 63.234375, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 81.64453125, 63.234375, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 97.587890625, 63.234375, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 131.431640625, 63.234375, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 159.990234375, 63.234375, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 45, 77.296875, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 100.9453125, 77.296875, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 123.556640625, 77.296875, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 45, 91.359375, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 98.173828125, 91.359375, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 121.23046875, 91.359375, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 170.654296875, 91.359375, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 196.96875, 91.359375, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 45, 105.421875, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 77.0390625, 105.421875, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 96.357421875, 105.421875, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 132.703125, 105.421875, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 45, 119.484375, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 77.98828125, 119.484375, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 107.537109375, 119.484375, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 120.1875, 119.484375, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum.', 139.623046875, 119.484375, { lineBreak: false, textWidth: 47.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 216.42666666666665, 63.234375, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 253.07119791666665, 63.234375, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 269.0145572916666, 63.234375, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 302.8583072916666, 63.234375, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 331.4169010416666, 63.234375, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 216.42666666666665, 77.296875, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 272.3719791666666, 77.296875, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 294.9833072916666, 77.296875, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 216.42666666666665, 91.359375, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 269.6004947916666, 91.359375, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 292.6571354166666, 91.359375, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 342.0809635416666, 91.359375, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 368.3954166666666, 91.359375, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 216.42666666666665, 105.421875, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 248.46572916666665, 105.421875, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 267.7840885416666, 105.421875, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 304.1297916666666, 105.421875, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 216.42666666666665, 119.484375, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 249.41494791666665, 119.484375, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 278.9637760416666, 119.484375, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 291.6141666666666, 119.484375, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum.', 311.0497135416666, 119.484375, { lineBreak: false, textWidth: 47.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolore ', 387.8533333333333, 63.234375, { lineBreak: false, textWidth: 36.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eu ', 424.4978645833333, 63.234375, { lineBreak: false, textWidth: 15.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fugiat ', 440.4412239583333, 63.234375, { lineBreak: false, textWidth: 33.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nulla ', 474.2849739583333, 63.234375, { lineBreak: false, textWidth: 28.55859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pariatur. ', 502.8435677083333, 63.234375, { lineBreak: false, textWidth: 46.763671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Excepteur ', 387.8533333333333, 77.296875, { lineBreak: false, textWidth: 55.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sint ', 443.7986458333333, 77.296875, { lineBreak: false, textWidth: 22.611328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('occaecat ', 466.4099739583333, 77.296875, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cupidatat ', 387.8533333333333, 91.359375, { lineBreak: false, textWidth: 53.173828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 441.0271614583333, 91.359375, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('proident, ', 464.0838020833333, 91.359375, { lineBreak: false, textWidth: 49.423828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sunt ', 513.5076302083332, 91.359375, { lineBreak: false, textWidth: 26.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 539.8220833333332, 91.359375, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('culpa ', 387.8533333333333, 105.421875, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('qui ', 419.8923958333333, 105.421875, { lineBreak: false, textWidth: 19.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('officia ', 439.2107552083333, 105.421875, { lineBreak: false, textWidth: 36.345703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deserunt ', 475.5564583333333, 105.421875, { lineBreak: false, textWidth: 49.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mollit ', 387.8533333333333, 119.484375, { lineBreak: false, textWidth: 32.98828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('anim ', 420.8416145833333, 119.484375, { lineBreak: false, textWidth: 29.548828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 450.3904427083333, 119.484375, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('est ', 463.0408333333333, 119.484375, { lineBreak: false, textWidth: 19.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laborum.', 482.4763802083333, 119.484375, { lineBreak: false, textWidth: 47.3671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 60.234375); doc.lineTo(40.5, 136.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(211.92666666666665, 60.234375); doc.lineTo(211.92666666666665, 136.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(383.3533333333333, 60.234375); doc.lineTo(383.3533333333333, 136.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(554.78, 60.234375); doc.lineTo(554.78, 136.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 136.046875); doc.lineTo(554.28, 136.046875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('Styling ', 40, 161.546875, { lineBreak: false, textWidth: 52.890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(16); doc.text('tables', 92.890625, 161.546875, { lineBreak: false, textWidth: 43.9140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('You ', 40, 185.296875, { lineBreak: false, textWidth: 23.255859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 63.255859375, 185.296875, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('provide ', 85.65625, 185.296875, { lineBreak: false, textWidth: 42.251953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 127.908203125, 185.296875, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('custom ', 137.40625, 185.296875, { lineBreak: false, textWidth: 43.21875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styler ', 180.625, 185.296875, { lineBreak: false, textWidth: 32.0859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('for ', 212.7109375, 185.296875, { lineBreak: false, textWidth: 18.041015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 230.751953125, 185.296875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table. ', 250.609375, 185.296875, { lineBreak: false, textWidth: 32.578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Currently ', 283.1875, 185.296875, { lineBreak: false, textWidth: 50.89453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('it ', 334.08203125, 185.296875, { lineBreak: false, textWidth: 9.802734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('supports:', 343.884765625, 185.296875, { lineBreak: false, textWidth: 50.478515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 52.8671875, 199.359375, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('widths', 74.640625, 199.359375, { lineBreak: false, textWidth: 35.4140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 206.4921875, 2, 2); doc.moveTo(40, 206.4921875); doc.bezierCurveTo( 40, 205.38761800033842, 40.89543050033841, 204.4921875, 42, 204.4921875 ); doc.bezierCurveTo( 43.10456949966159, 204.4921875, 44, 205.38761800033842, 44, 206.4921875 ); doc.bezierCurveTo( 44, 207.59675699966158, 43.10456949966159, 208.4921875, 42, 208.4921875 ); doc.bezierCurveTo( 40.89543050033841, 208.4921875, 40, 207.59675699966158, 40, 206.4921875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('line ', 52.8671875, 213.421875, { lineBreak: false, textWidth: 21.7734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colors', 74.640625, 213.421875, { lineBreak: false, textWidth: 33.12890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 220.5546875, 2, 2); doc.moveTo(40, 220.5546875); doc.bezierCurveTo( 40, 219.45011800033842, 40.89543050033841, 218.5546875, 42, 218.5546875 ); doc.bezierCurveTo( 43.10456949966159, 218.5546875, 44, 219.45011800033842, 44, 220.5546875 ); doc.bezierCurveTo( 44, 221.65925699966158, 43.10456949966159, 222.5546875, 42, 222.5546875 ); doc.bezierCurveTo( 40.89543050033841, 222.5546875, 40, 221.65925699966158, 40, 220.5546875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cell ', 52.8671875, 227.484375, { lineBreak: false, textWidth: 21.43359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('paddings', 74.30078125, 227.484375, { lineBreak: false, textWidth: 49.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.ellipse(42, 234.6171875, 2, 2); doc.moveTo(40, 234.6171875); doc.bezierCurveTo( 40, 233.51261800033842, 40.89543050033841, 232.6171875, 42, 232.6171875 ); doc.bezierCurveTo( 43.10456949966159, 232.6171875, 44, 233.51261800033842, 44, 234.6171875 ); doc.bezierCurveTo( 44, 235.72175699966158, 43.10456949966159, 236.6171875, 42, 236.6171875 ); doc.bezierCurveTo( 40.89543050033841, 236.6171875, 40, 235.72175699966158, 40, 234.6171875 ); doc.closePath(); doc.fillColor('black', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 40, 241.546875, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('more ', 65.4296875, 241.546875, { lineBreak: false, textWidth: 30.638671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('options ', 96.068359375, 241.546875, { lineBreak: false, textWidth: 43.03125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('coming ', 139.099609375, 241.546875, { lineBreak: false, textWidth: 42.87890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('soon...', 181.978515625, 241.546875, { lineBreak: false, textWidth: 35.970703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 255.609375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pdfmake ', 40, 269.671875, { lineBreak: false, textWidth: 50.00390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('currently ', 90.00390625, 269.671875, { lineBreak: false, textWidth: 49.365234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('has ', 139.369140625, 269.671875, { lineBreak: false, textWidth: 22.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 161.6640625, 269.671875, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('few ', 171.162109375, 269.671875, { lineBreak: false, textWidth: 22.37109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('predefined ', 193.533203125, 269.671875, { lineBreak: false, textWidth: 59.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styles ', 253.05859375, 269.671875, { lineBreak: false, textWidth: 34.212890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(see ', 287.271484375, 269.671875, { lineBreak: false, textWidth: 25.974609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('them ', 313.24609375, 269.671875, { lineBreak: false, textWidth: 30.375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('on ', 343.62109375, 269.671875, { lineBreak: false, textWidth: 16.435546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 360.056640625, 269.671875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('next ', 379.9140625, 269.671875, { lineBreak: false, textWidth: 25.81640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page)', 405.73046875, 269.671875, { lineBreak: false, textWidth: 30.521484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220.96484375, 777.53125, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130.982421875, 777.53125, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 777.53125, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(14); doc.text('noBorders:', 40, 40, { lineBreak: false, textWidth: 68.6259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 40, 71.40625, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 85.36669921875, 71.40625, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 128.982421875, 71.40625, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 174.34912109375, 71.40625, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 217.96484375, 71.40625, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 263.33154296875, 71.40625, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 90.640625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 90.640625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 90.640625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 128.982421875, 90.640625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 172.119140625, 90.640625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 203.2265625, 90.640625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 217.96484375, 90.640625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 261.1015625, 90.640625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 292.208984375, 90.640625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 108.703125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 108.703125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 108.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 128.982421875, 108.703125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 172.119140625, 108.703125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 203.2265625, 108.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 217.96484375, 108.703125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 261.1015625, 108.703125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 292.208984375, 108.703125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 126.765625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 126.765625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 126.765625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 128.982421875, 126.765625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 172.119140625, 126.765625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 203.2265625, 126.765625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 217.96484375, 126.765625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 261.1015625, 126.765625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 292.208984375, 126.765625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 144.828125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 144.828125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 144.828125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 128.982421875, 144.828125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 172.119140625, 144.828125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 203.2265625, 144.828125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 217.96484375, 144.828125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 261.1015625, 144.828125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 292.208984375, 144.828125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 162.890625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 162.890625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 162.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 128.982421875, 162.890625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 172.119140625, 162.890625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 203.2265625, 162.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 217.96484375, 162.890625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 261.1015625, 162.890625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 292.208984375, 162.890625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(14); doc.text('headerLineOnly:', 40, 213.953125, { lineBreak: false, textWidth: 101.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 40, 245.359375, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 85.36669921875, 245.359375, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 136.982421875, 245.359375, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 182.34912109375, 245.359375, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 233.96484375, 245.359375, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 279.33154296875, 245.359375, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 263.59375); doc.lineTo(314.947265625, 263.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 266.59375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 266.59375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 266.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 266.59375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 266.59375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 266.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 266.59375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 266.59375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 266.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 284.65625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 284.65625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 284.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 284.65625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 284.65625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 284.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 284.65625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 284.65625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 284.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 302.71875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 302.71875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 302.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 302.71875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 302.71875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 302.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 302.71875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 302.71875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 302.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 320.78125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 320.78125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 320.78125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 320.78125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 320.78125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 320.78125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 320.78125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 320.78125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 320.78125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 338.84375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 338.84375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 338.84375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 338.84375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 338.84375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 338.84375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 338.84375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 338.84375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 338.84375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(14); doc.text('lightHorizontalLines:', 40, 389.90625, { lineBreak: false, textWidth: 129.8076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 40, 421.3125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 85.36669921875, 421.3125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 136.982421875, 421.3125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 182.34912109375, 421.3125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 233.96484375, 421.3125, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 279.33154296875, 421.3125, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 439.546875); doc.lineTo(314.947265625, 439.546875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 442.546875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 442.546875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 442.546875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 442.546875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 442.546875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 442.546875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 442.546875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 442.546875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 442.546875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 459.109375); doc.lineTo(314.947265625, 459.109375); doc.strokeColor('#aaa', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 461.609375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 461.609375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 461.609375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 461.609375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 461.609375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 461.609375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 461.609375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 461.609375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 461.609375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 478.171875); doc.lineTo(314.947265625, 478.171875); doc.strokeColor('#aaa', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 480.671875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 480.671875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 480.671875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 480.671875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 480.671875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 480.671875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 480.671875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 480.671875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 480.671875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 497.234375); doc.lineTo(314.947265625, 497.234375); doc.strokeColor('#aaa', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 499.734375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 499.734375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 499.734375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 499.734375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 499.734375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 499.734375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 499.734375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 499.734375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 499.734375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 516.296875); doc.lineTo(314.947265625, 516.296875); doc.strokeColor('#aaa', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 40, 518.796875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 83.13671875, 518.796875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 114.244140625, 518.796875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 136.982421875, 518.796875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 180.119140625, 518.796875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 211.2265625, 518.796875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 233.96484375, 518.796875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 277.1015625, 518.796875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 308.208984375, 518.796875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('but ', 40, 569.859375, { lineBreak: false, textWidth: 20.23828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('you ', 60.23828125, 569.859375, { lineBreak: false, textWidth: 22.01953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('can ', 82.2578125, 569.859375, { lineBreak: false, textWidth: 22.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('provide ', 104.658203125, 569.859375, { lineBreak: false, textWidth: 42.251953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 146.91015625, 569.859375, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('custom ', 156.408203125, 569.859375, { lineBreak: false, textWidth: 43.21875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('styler ', 199.626953125, 569.859375, { lineBreak: false, textWidth: 32.0859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('as ', 231.712890625, 569.859375, { lineBreak: false, textWidth: 15.685546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('well', 247.3984375, 569.859375, { lineBreak: false, textWidth: 21.19921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 597.921875); doc.lineTo(310.947265625, 597.921875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 46, 600.921875, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('1', 91.36669921875, 600.921875, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 135.982421875, 600.921875, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('2', 181.34912109375, 600.921875, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('Header ', 225.96484375, 600.921875, { lineBreak: false, textWidth: 45.36669921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(13); doc.text('3', 271.33154296875, 600.921875, { lineBreak: false, textWidth: 7.388671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(41, 596.921875); doc.lineTo(41, 619.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(131.482421875, 596.921875); doc.lineTo(131.482421875, 619.15625); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.46484375, 596.921875); doc.lineTo(221.46484375, 619.15625); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(311.947265625, 596.921875); doc.lineTo(311.947265625, 619.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 618.65625); doc.lineTo(310.947265625, 618.65625); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 46, 621.15625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 89.13671875, 621.15625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 120.244140625, 621.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 135.982421875, 621.15625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 179.119140625, 621.15625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 210.2265625, 621.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 225.96484375, 621.15625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 269.1015625, 621.15625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 300.208984375, 621.15625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(41, 618.15625); doc.lineTo(41, 638.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(131.482421875, 618.15625); doc.lineTo(131.482421875, 638.21875); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.46484375, 618.15625); doc.lineTo(221.46484375, 638.21875); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(311.947265625, 618.15625); doc.lineTo(311.947265625, 638.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 637.71875); doc.lineTo(310.947265625, 637.71875); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 46, 640.21875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 89.13671875, 640.21875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 120.244140625, 640.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 135.982421875, 640.21875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 179.119140625, 640.21875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 210.2265625, 640.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 225.96484375, 640.21875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 269.1015625, 640.21875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 300.208984375, 640.21875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(41, 637.21875); doc.lineTo(41, 657.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(131.482421875, 637.21875); doc.lineTo(131.482421875, 657.28125); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.46484375, 637.21875); doc.lineTo(221.46484375, 657.28125); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(311.947265625, 637.21875); doc.lineTo(311.947265625, 657.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 656.78125); doc.lineTo(310.947265625, 656.78125); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 46, 659.28125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 89.13671875, 659.28125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 120.244140625, 659.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 135.982421875, 659.28125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 179.119140625, 659.28125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 210.2265625, 659.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 225.96484375, 659.28125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 269.1015625, 659.28125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 300.208984375, 659.28125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(41, 656.28125); doc.lineTo(41, 676.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(131.482421875, 656.28125); doc.lineTo(131.482421875, 676.34375); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.46484375, 656.28125); doc.lineTo(221.46484375, 676.34375); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(311.947265625, 656.28125); doc.lineTo(311.947265625, 676.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 675.84375); doc.lineTo(310.947265625, 675.84375); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 46, 678.34375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 89.13671875, 678.34375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 120.244140625, 678.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 135.982421875, 678.34375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 179.119140625, 678.34375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 210.2265625, 678.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 225.96484375, 678.34375, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 269.1015625, 678.34375, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 300.208984375, 678.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(41, 675.34375); doc.lineTo(41, 695.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(131.482421875, 675.34375); doc.lineTo(131.482421875, 695.40625); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.46484375, 675.34375); doc.lineTo(221.46484375, 695.40625); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(311.947265625, 675.34375); doc.lineTo(311.947265625, 695.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 694.90625); doc.lineTo(310.947265625, 694.90625); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 46, 697.40625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 89.13671875, 697.40625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 120.244140625, 697.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 135.982421875, 697.40625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 179.119140625, 697.40625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 210.2265625, 697.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 225.96484375, 697.40625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 269.1015625, 697.40625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 300.208984375, 697.40625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(41, 694.40625); doc.lineTo(41, 715.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(131.482421875, 694.40625); doc.lineTo(131.482421875, 715.46875); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(221.46484375, 694.40625); doc.lineTo(221.46484375, 715.46875); doc.strokeColor('gray', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(311.947265625, 694.40625); doc.lineTo(311.947265625, 715.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(2); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 714.46875); doc.lineTo(310.947265625, 714.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('zebra ', 40, 750.46875, { lineBreak: false, textWidth: 32.267578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 72.267578125, 750.46875, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 778.03125); doc.lineTo(309.947265625, 778.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 780.53125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 780.53125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 780.53125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 134.982421875, 780.53125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 178.119140625, 780.53125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 209.2265625, 780.53125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 224.96484375, 780.53125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 268.1015625, 780.53125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 299.208984375, 780.53125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 777.53125); doc.lineTo(40.5, 797.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(130.482421875, 777.53125); doc.lineTo(130.482421875, 797.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(220.46484375, 777.53125); doc.lineTo(220.46484375, 797.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(310.447265625, 777.53125); doc.lineTo(310.447265625, 797.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 797.09375); doc.lineTo(309.947265625, 797.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220.96484375, 97.1875, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130.982421875, 97.1875, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 97.1875, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(220.96484375, 59.0625, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(130.982421875, 59.0625, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 59.0625, 88.982421875, 20.0625); doc.fillColor('#CCCCCC', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 43, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 43, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 43, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 134.982421875, 43, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 178.119140625, 43, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 209.2265625, 43, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 224.96484375, 43, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 268.1015625, 43, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 299.208984375, 43, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 40); doc.lineTo(40.5, 60.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(130.482421875, 40); doc.lineTo(130.482421875, 60.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(220.46484375, 40); doc.lineTo(220.46484375, 60.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(310.447265625, 40); doc.lineTo(310.447265625, 60.0625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 40.5); doc.lineTo(309.947265625, 40.5); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 59.5625); doc.lineTo(309.947265625, 59.5625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 62.0625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 62.0625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 62.0625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 134.982421875, 62.0625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 178.119140625, 62.0625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 209.2265625, 62.0625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 224.96484375, 62.0625, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 268.1015625, 62.0625, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 299.208984375, 62.0625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 59.0625); doc.lineTo(40.5, 79.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(130.482421875, 59.0625); doc.lineTo(130.482421875, 79.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(220.46484375, 59.0625); doc.lineTo(220.46484375, 79.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(310.447265625, 59.0625); doc.lineTo(310.447265625, 79.125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 78.625); doc.lineTo(309.947265625, 78.625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 81.125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 81.125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 81.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 134.982421875, 81.125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 178.119140625, 81.125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 209.2265625, 81.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 224.96484375, 81.125, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 268.1015625, 81.125, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 299.208984375, 81.125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 78.125); doc.lineTo(40.5, 98.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(130.482421875, 78.125); doc.lineTo(130.482421875, 98.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(220.46484375, 78.125); doc.lineTo(220.46484375, 98.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(310.447265625, 78.125); doc.lineTo(310.447265625, 98.1875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 97.6875); doc.lineTo(309.947265625, 97.6875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 45, 100.1875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 88.13671875, 100.1875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 119.244140625, 100.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 134.982421875, 100.1875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 178.119140625, 100.1875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 209.2265625, 100.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Sample ', 224.96484375, 100.1875, { lineBreak: false, textWidth: 43.13671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('value ', 268.1015625, 100.1875, { lineBreak: false, textWidth: 31.107421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 299.208984375, 100.1875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 97.1875); doc.lineTo(40.5, 117.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(130.482421875, 97.1875); doc.lineTo(130.482421875, 117.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(220.46484375, 97.1875); doc.lineTo(220.46484375, 117.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(310.447265625, 97.1875); doc.lineTo(310.447265625, 117.25); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 116.75); doc.lineTo(309.947265625, 116.75); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: false }); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 705.59375, 135.943359375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 672.46875, 135.943359375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 639.34375, 135.943359375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 523.96875, 185.255859375, 62.25); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(79.513671875, 465.78125, 174.5, 38.1875); doc.fillColor('#cccccc', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(79.513671875, 446.71875, 174.5, 20.0625); doc.fillColor('#cccccc', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(79.513671875, 427.65625, 174.5, 20.0625); doc.fillColor('#cccccc', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(238.6953125, 340.40625, 124.548828125, 34.125); doc.fillColor('#dddddd', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(176.943359375, 340.40625, 60.751953125, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 340.40625, 134.943359375, 34.125); doc.fillColor('#dddddd', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(238.6953125, 307.28125, 124.548828125, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(176.943359375, 307.28125, 60.751953125, 34.125); doc.fillColor('#dddddd', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 307.28125, 135.943359375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(306.689453125, 225.03125, 130.74609375, 34.125); doc.fillColor('#dddddd', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(171.74609375, 225.03125, 134.943359375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 225.03125, 129.74609375, 34.125); doc.fillColor('#eeeeff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(171.74609375, 163.78125, 265.689453125, 62.25); doc.fillColor('#eeffee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 163.78125, 129.74609375, 62.25); doc.fillColor('#eeeeff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(307.689453125, 130.65625, 129.74609375, 34.125); doc.fillColor('#dddddd', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(171.74609375, 130.65625, 134.943359375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(41, 130.65625, 129.74609375, 34.125); doc.fillColor('#eeeeff', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(307.689453125, 97.53125, 129.74609375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(170.74609375, 97.53125, 135.943359375, 34.125); doc.fillColor('#dddddd', 1); doc.fillOpacity(1); doc.fill(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.rect(40, 97.53125, 130.74609375, 34.125); doc.fillColor('#eeeeee', 1); doc.fillOpacity(1); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(14); doc.text('Optional ', 40, 40, { lineBreak: false, textWidth: 56.1708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(14); doc.text('border', 96.1708984375, 40, { lineBreak: false, textWidth: 40.9814453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Each ', 40, 64.40625, { lineBreak: false, textWidth: 29.208984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cell ', 69.208984375, 64.40625, { lineBreak: false, textWidth: 21.43359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('contains ', 90.642578125, 64.40625, { lineBreak: false, textWidth: 48.884765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 139.52734375, 64.40625, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('optional ', 155.646484375, 64.40625, { lineBreak: false, textWidth: 46.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border ', 201.9296875, 64.40625, { lineBreak: false, textWidth: 37.681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('property: ', 239.611328125, 64.40625, { lineBreak: false, textWidth: 50.4375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('an ', 290.048828125, 64.40625, { lineBreak: false, textWidth: 16.119140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('array ', 306.16796875, 64.40625, { lineBreak: false, textWidth: 29.501953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 335.669921875, 64.40625, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4 ', 349.650390625, 64.40625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('booleans ', 359.359375, 64.40625, { lineBreak: false, textWidth: 51.99609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('for ', 411.35546875, 64.40625, { lineBreak: false, textWidth: 18.041015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('left ', 429.396484375, 64.40625, { lineBreak: false, textWidth: 20.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border, ', 449.72265625, 64.40625, { lineBreak: false, textWidth: 39.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('top ', 489.0390625, 64.40625, { lineBreak: false, textWidth: 20.349609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border, ', 509.388671875, 64.40625, { lineBreak: false, textWidth: 39.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('right ', 40, 78.46875, { lineBreak: false, textWidth: 27.205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border, ', 67.205078125, 78.46875, { lineBreak: false, textWidth: 39.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('bottom ', 106.521484375, 78.46875, { lineBreak: false, textWidth: 41.630859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border.', 148.15234375, 78.46875, { lineBreak: false, textWidth: 37.1484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 98.03125); doc.lineTo(170.74609375, 98.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(306.689453125, 98.03125); doc.lineTo(437.435546875, 98.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 100.53125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[false, ', 45, 114.59375, { lineBreak: false, textWidth: 34.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 79.658203125, 114.59375, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 105.9375, 114.59375, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 137.4140625, 114.59375, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 175.74609375, 100.53125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[false, ', 175.74609375, 114.59375, { lineBreak: false, textWidth: 34.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 210.404296875, 114.59375, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 241.880859375, 114.59375, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 273.357421875, 114.59375, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 311.689453125, 100.53125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[true, ', 311.689453125, 114.59375, { lineBreak: false, textWidth: 29.4609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 341.150390625, 114.59375, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 367.4296875, 114.59375, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true]', 393.708984375, 114.59375, { lineBreak: false, textWidth: 24.134765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(307.189453125, 97.53125); doc.lineTo(307.189453125, 131.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(437.935546875, 97.53125); doc.lineTo(437.935546875, 131.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 131.15625); doc.lineTo(170.74609375, 131.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(306.689453125, 131.15625); doc.lineTo(437.435546875, 131.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan: ', 45, 133.65625, { lineBreak: false, textWidth: 52.681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 97.681640625, 133.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 45, 147.71875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 161.78125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[true, ', 45, 175.84375, { lineBreak: false, textWidth: 29.4609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 74.4609375, 175.84375, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 100.740234375, 175.84375, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true]', 127.01953125, 175.84375, { lineBreak: false, textWidth: 24.134765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 175.74609375, 133.65625, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 175.74609375, 147.71875, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 311.689453125, 133.65625, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[true, ', 311.689453125, 147.71875, { lineBreak: false, textWidth: 29.4609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 341.150390625, 147.71875, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 372.626953125, 147.71875, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 404.103515625, 147.71875, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 130.65625); doc.lineTo(40.5, 164.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(171.24609375, 130.65625); doc.lineTo(171.24609375, 164.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(307.189453125, 130.65625); doc.lineTo(307.189453125, 164.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(170.74609375, 164.28125); doc.lineTo(437.435546875, 164.28125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colSpan: ', 175.74609375, 166.78125, { lineBreak: false, textWidth: 48.9140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 224.66015625, 166.78125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 175.74609375, 180.84375, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 175.74609375, 194.90625, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[true, ', 175.74609375, 208.96875, { lineBreak: false, textWidth: 29.4609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 205.20703125, 208.96875, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 231.486328125, 208.96875, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true]', 257.765625, 208.96875, { lineBreak: false, textWidth: 24.134765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 163.78125); doc.lineTo(40.5, 226.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(171.24609375, 163.78125); doc.lineTo(171.24609375, 226.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(437.935546875, 163.78125); doc.lineTo(437.935546875, 226.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(170.74609375, 225.53125); doc.lineTo(437.435546875, 225.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 175.74609375, 228.03125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 175.74609375, 242.09375, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 311.689453125, 228.03125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[false, ', 311.689453125, 242.09375, { lineBreak: false, textWidth: 34.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 346.34765625, 242.09375, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 377.82421875, 242.09375, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true]', 404.103515625, 242.09375, { lineBreak: false, textWidth: 24.134765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 225.03125); doc.lineTo(40.5, 259.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(171.24609375, 225.03125); doc.lineTo(171.24609375, 259.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(437.935546875, 225.03125); doc.lineTo(437.935546875, 259.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 258.65625); doc.lineTo(170.74609375, 258.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(306.689453125, 258.65625); doc.lineTo(437.435546875, 258.65625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('For ', 40, 274.15625, { lineBreak: false, textWidth: 20.384765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('every ', 60.384765625, 274.15625, { lineBreak: false, textWidth: 31.189453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('cell ', 91.57421875, 274.15625, { lineBreak: false, textWidth: 21.43359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('without ', 113.0078125, 274.15625, { lineBreak: false, textWidth: 42.80859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 155.81640625, 274.15625, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border ', 165.314453125, 274.15625, { lineBreak: false, textWidth: 37.681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('property, ', 202.99609375, 274.15625, { lineBreak: false, textWidth: 49.259765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('whether ', 252.255859375, 274.15625, { lineBreak: false, textWidth: 45.90234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('it ', 298.158203125, 274.15625, { lineBreak: false, textWidth: 9.802734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('has ', 307.9609375, 274.15625, { lineBreak: false, textWidth: 22.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('all ', 330.255859375, 274.15625, { lineBreak: false, textWidth: 15.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('borders ', 345.578125, 274.15625, { lineBreak: false, textWidth: 43.869140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('or ', 389.447265625, 274.15625, { lineBreak: false, textWidth: 13.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('not ', 403.322265625, 274.15625, { lineBreak: false, textWidth: 20.35546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 423.677734375, 274.15625, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('determined ', 435.748046875, 274.15625, { lineBreak: false, textWidth: 63.609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('by ', 499.357421875, 274.15625, { lineBreak: false, textWidth: 15.31640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('layout.defaultBorder, ', 40, 288.21875, { lineBreak: false, textWidth: 112.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('which ', 152.798828125, 288.21875, { lineBreak: false, textWidth: 34.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 187.19921875, 288.21875, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false ', 199.26953125, 288.21875, { lineBreak: false, textWidth: 29.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 228.390625, 288.21875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 240.89453125, 288.21875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 260.751953125, 288.21875, { lineBreak: false, textWidth: 29.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('above ', 290.171875, 288.21875, { lineBreak: false, textWidth: 35.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('and ', 325.251953125, 288.21875, { lineBreak: false, textWidth: 22.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true ', 348.138671875, 288.21875, { lineBreak: false, textWidth: 23.923828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('(by ', 372.0625, 288.21875, { lineBreak: false, textWidth: 19.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('default) ', 391.48046875, 288.21875, { lineBreak: false, textWidth: 44.408203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 435.888671875, 288.21875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 448.392578125, 288.21875, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('table ', 468.25, 288.21875, { lineBreak: false, textWidth: 29.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('below.', 497.669921875, 288.21875, { lineBreak: false, textWidth: 34.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.943359375, 307.78125); doc.lineTo(363.244140625, 307.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 310.28125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[false, ', 45, 324.34375, { lineBreak: false, textWidth: 34.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 79.658203125, 324.34375, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 111.134765625, 324.34375, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 142.611328125, 324.34375, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 180.943359375, 310.28125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 180.943359375, 324.34375, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 242.6953125, 310.28125, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 242.6953125, 324.34375, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(176.443359375, 307.28125); doc.lineTo(176.443359375, 341.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(238.1953125, 307.28125); doc.lineTo(238.1953125, 341.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(363.744140625, 307.28125); doc.lineTo(363.744140625, 341.40625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 340.90625); doc.lineTo(363.244140625, 340.90625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 343.40625, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 45, 357.46875, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 180.943359375, 343.40625, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 180.943359375, 357.46875, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 242.6953125, 343.40625, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[true, ', 242.6953125, 357.46875, { lineBreak: false, textWidth: 29.4609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 272.15625, 357.46875, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 298.435546875, 357.46875, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 329.912109375, 357.46875, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 340.40625); doc.lineTo(40.5, 374.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(176.443359375, 340.40625); doc.lineTo(176.443359375, 374.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(238.1953125, 340.40625); doc.lineTo(238.1953125, 374.53125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 374.03125); doc.lineTo(237.6953125, 374.03125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('And ', 40, 389.53125, { lineBreak: false, textWidth: 24.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('some ', 64.1875, 389.53125, { lineBreak: false, textWidth: 32.876953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('other ', 97.064453125, 389.53125, { lineBreak: false, textWidth: 30.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('examples ', 127.826171875, 389.53125, { lineBreak: false, textWidth: 54.509765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 182.3359375, 389.53125, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan/', 207.765625, 389.53125, { lineBreak: false, textWidth: 51.75, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colSpan...', 259.515625, 389.53125, { lineBreak: false, textWidth: 52.51171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 83.513671875, 411.59375, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 126.275390625, 411.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 142.013671875, 411.59375, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 184.775390625, 411.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('column ', 200.513671875, 411.59375, { lineBreak: false, textWidth: 42.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 243.275390625, 411.59375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(78.513671875, 428.15625); doc.lineTo(254.013671875, 428.15625); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 430.65625, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1', 67.775390625, 430.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan: ', 83.513671875, 430.65625, { lineBreak: false, textWidth: 52.681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 136.1953125, 430.65625, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colSpan: ', 83.513671875, 444.71875, { lineBreak: false, textWidth: 48.9140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 132.427734375, 444.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 83.513671875, 458.78125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 83.513671875, 472.84375, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[true, ', 83.513671875, 486.90625, { lineBreak: false, textWidth: 29.4609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 112.974609375, 486.90625, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true, ', 139.25390625, 486.90625, { lineBreak: false, textWidth: 26.279296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true]', 165.533203125, 486.90625, { lineBreak: false, textWidth: 24.134765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 427.65625); doc.lineTo(79.013671875, 447.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(254.513671875, 427.65625); doc.lineTo(254.513671875, 447.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 449.71875, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2', 67.775390625, 449.71875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 446.71875); doc.lineTo(79.013671875, 466.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(254.513671875, 446.71875); doc.lineTo(254.513671875, 466.78125); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('row ', 45, 468.78125, { lineBreak: false, textWidth: 22.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 67.775390625, 468.78125, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(79.013671875, 465.78125); doc.lineTo(79.013671875, 503.96875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(254.513671875, 465.78125); doc.lineTo(254.513671875, 503.96875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(78.513671875, 503.46875); doc.lineTo(254.013671875, 503.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colSpan: ', 45, 526.96875, { lineBreak: false, textWidth: 48.9140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 93.9140625, 526.96875, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 45, 541.03125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 555.09375, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[false, ', 45, 569.15625, { lineBreak: false, textWidth: 34.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 79.658203125, 569.15625, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 111.134765625, 569.15625, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 142.611328125, 569.15625, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 585.71875); doc.lineTo(225.255859375, 585.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 588.21875, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 45, 602.28125, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 106.751953125, 588.21875, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 106.751953125, 602.28125, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 168.50390625, 588.21875, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 168.50390625, 602.28125, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40.5, 585.21875); doc.lineTo(40.5, 619.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(102.251953125, 585.21875); doc.lineTo(102.251953125, 619.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(164.00390625, 585.21875); doc.lineTo(164.00390625, 619.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(225.755859375, 585.21875); doc.lineTo(225.755859375, 619.34375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(40, 618.84375); doc.lineTo(225.255859375, 618.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.943359375, 639.84375); doc.lineTo(299.447265625, 639.84375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('rowSpan: ', 45, 642.34375, { lineBreak: false, textWidth: 52.681640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 97.681640625, 642.34375, { lineBreak: false, textWidth: 6.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 45, 656.40625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 45, 670.46875, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('[false, ', 45, 684.53125, { lineBreak: false, textWidth: 34.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 79.658203125, 684.53125, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false, ', 111.134765625, 684.53125, { lineBreak: false, textWidth: 31.4765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('false]', 142.611328125, 684.53125, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 180.943359375, 642.34375, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 180.943359375, 656.40625, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 242.6953125, 642.34375, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 242.6953125, 656.40625, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(176.443359375, 639.34375); doc.lineTo(176.443359375, 673.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(238.1953125, 639.34375); doc.lineTo(238.1953125, 673.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(299.947265625, 639.34375); doc.lineTo(299.947265625, 673.46875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.943359375, 672.96875); doc.lineTo(299.447265625, 672.96875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 180.943359375, 675.46875, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 180.943359375, 689.53125, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 242.6953125, 675.46875, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 242.6953125, 689.53125, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(176.443359375, 672.46875); doc.lineTo(176.443359375, 706.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(238.1953125, 672.46875); doc.lineTo(238.1953125, 706.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(299.947265625, 672.46875); doc.lineTo(299.947265625, 706.59375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.943359375, 706.09375); doc.lineTo(299.447265625, 706.09375); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 180.943359375, 708.59375, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 180.943359375, 722.65625, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('border:', 242.6953125, 708.59375, { lineBreak: false, textWidth: 37.6171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('undefined', 242.6953125, 722.65625, { lineBreak: false, textWidth: 52.751953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(176.443359375, 705.59375); doc.lineTo(176.443359375, 739.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(238.1953125, 705.59375); doc.lineTo(238.1953125, 739.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(299.947265625, 705.59375); doc.lineTo(299.947265625, 739.71875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); doc.lineWidth(1); doc.undash(); doc.lineJoin('miter'); doc.lineCap('butt'); doc.moveTo(175.943359375, 739.21875); doc.lineTo(299.447265625, 739.21875); doc.strokeColor('black', 1); doc.strokeOpacity(1); doc.stroke(); }); }); }); ================================================ FILE: tests/visual/pdfmake/text_decorations.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('text decorations', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fillColor('yellow'); doc.fillOpacity(undefined); doc.rect(40, 40, 86.0712890625, 21.09375); doc.fill(); doc.fillColor('yellow'); doc.fillOpacity(undefined); doc.rect(126.0712890625, 40, 30.216796874999996, 21.09375); doc.fill(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('Higlighted ', 40, 40, { lineBreak: false, textWidth: 86.0712890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('text', 126.0712890625, 40, { lineBreak: false, textWidth: 30.216796874999996, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text(' ', 37.029296875, 61.09375, { lineBreak: false, textWidth: 2.970703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Underline ', 40, 75.15625, { lineBreak: false, textWidth: 53.361328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('decoration', 93.361328125, 75.15625, { lineBreak: false, textWidth: 56.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(40, 87.237421875, 110.26171875, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Line ', 211.76, 75.15625, { lineBreak: false, textWidth: 25.318359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Through ', 237.078359375, 75.15625, { lineBreak: false, textWidth: 47.484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('decoration', 284.562734375, 75.15625, { lineBreak: false, textWidth: 56.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(211.76, 83.135859375, 25.318359375, 0.74); doc.fill(); doc.restore(); doc.save(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(237.078359375, 83.135859375, 47.484375, 0.74); doc.fill(); doc.restore(); doc.save(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(284.562734375, 83.135859375, 56.900390625, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Overline ', 383.52, 75.15625, { lineBreak: false, textWidth: 46.177734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('decoration', 429.697734375, 75.15625, { lineBreak: false, textWidth: 56.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(383.52, 76.456171875, 103.078125, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text(' ', 37.029296875, 89.21875, { lineBreak: false, textWidth: 2.970703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Dashed ', 40, 103.28125, { lineBreak: false, textWidth: 43.2890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 83.2890625, 103.28125, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.rect(40, 115.732421875, 68.34375, 0.74); doc.clip(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(40, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(46.8, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(53.599999999999994, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(60.39999999999999, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(67.19999999999999, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(73.99999999999999, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(80.79999999999998, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(87.59999999999998, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(94.39999999999998, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(101.19999999999997, 115.362421875, 3.96, 0.74); doc.fill(); doc.rect(107.99999999999997, 115.362421875, 3.96, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Dotted ', 168.82, 103.28125, { lineBreak: false, textWidth: 38.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 207.4684375, 103.28125, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.rect(168.82, 115.732421875, 63.703125, 0.74); doc.clip(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(168.82, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(171.04, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(173.26, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(175.48, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(177.7, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(179.92, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(182.14, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(184.35999999999999, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(186.57999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(188.79999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(191.01999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(193.23999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(195.45999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(197.67999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(199.89999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(202.11999999999998, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(204.33999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(206.55999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(208.77999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(210.99999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(213.21999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(215.43999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(217.65999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(219.87999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(222.09999999999997, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(224.31999999999996, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(226.53999999999996, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(228.75999999999996, 115.362421875, 0.74, 0.74); doc.fill(); doc.rect(230.97999999999996, 115.362421875, 0.74, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Double ', 297.64, 103.28125, { lineBreak: false, textWidth: 40.30078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 337.94078125, 103.28125, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.fillColor('black'); doc.fillOpacity(undefined); doc.rect(297.64, 115.362421875, 65.35546875, 0.37); doc.fill(); doc.rect(297.64, 116.842421875, 65.35546875, 0.37); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Wavy ', 426.46, 103.28125, { lineBreak: false, textWidth: 31.353515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 457.813515625, 103.28125, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.rect(426.46, 114.732421875, 56.408203125, 116.732421875); doc.clip(); doc.lineWidth(0.24); doc.moveTo(425.46, 115.732421875); doc.bezierCurveTo( 426.15999999999997, 114.732421875, 426.85999999999996, 114.732421875, 427.56, 115.732421875 ); doc.bezierCurveTo( 428.26, 116.732421875, 428.96, 116.732421875, 429.65999999999997, 115.732421875 ); doc.bezierCurveTo( 430.35999999999996, 114.732421875, 431.05999999999995, 114.732421875, 431.76, 115.732421875 ); doc.bezierCurveTo( 432.46, 116.732421875, 433.15999999999997, 116.732421875, 433.85999999999996, 115.732421875 ); doc.bezierCurveTo( 434.55999999999995, 114.732421875, 435.25999999999993, 114.732421875, 435.96, 115.732421875 ); doc.bezierCurveTo( 436.65999999999997, 116.732421875, 437.35999999999996, 116.732421875, 438.05999999999995, 115.732421875 ); doc.bezierCurveTo( 438.75999999999993, 114.732421875, 439.4599999999999, 114.732421875, 440.15999999999997, 115.732421875 ); doc.bezierCurveTo( 440.85999999999996, 116.732421875, 441.55999999999995, 116.732421875, 442.25999999999993, 115.732421875 ); doc.bezierCurveTo( 442.9599999999999, 114.732421875, 443.6599999999999, 114.732421875, 444.35999999999996, 115.732421875 ); doc.bezierCurveTo( 445.05999999999995, 116.732421875, 445.75999999999993, 116.732421875, 446.4599999999999, 115.732421875 ); doc.bezierCurveTo( 447.1599999999999, 114.732421875, 447.8599999999999, 114.732421875, 448.55999999999995, 115.732421875 ); doc.bezierCurveTo( 449.25999999999993, 116.732421875, 449.9599999999999, 116.732421875, 450.6599999999999, 115.732421875 ); doc.bezierCurveTo( 451.3599999999999, 114.732421875, 452.0599999999999, 114.732421875, 452.75999999999993, 115.732421875 ); doc.bezierCurveTo( 453.4599999999999, 116.732421875, 454.1599999999999, 116.732421875, 454.8599999999999, 115.732421875 ); doc.bezierCurveTo( 455.5599999999999, 114.732421875, 456.2599999999999, 114.732421875, 456.9599999999999, 115.732421875 ); doc.bezierCurveTo( 457.6599999999999, 116.732421875, 458.3599999999999, 116.732421875, 459.0599999999999, 115.732421875 ); doc.bezierCurveTo( 459.7599999999999, 114.732421875, 460.45999999999987, 114.732421875, 461.1599999999999, 115.732421875 ); doc.bezierCurveTo( 461.8599999999999, 116.732421875, 462.5599999999999, 116.732421875, 463.2599999999999, 115.732421875 ); doc.bezierCurveTo( 463.95999999999987, 114.732421875, 464.65999999999985, 114.732421875, 465.3599999999999, 115.732421875 ); doc.bezierCurveTo( 466.0599999999999, 116.732421875, 466.7599999999999, 116.732421875, 467.45999999999987, 115.732421875 ); doc.bezierCurveTo( 468.15999999999985, 114.732421875, 468.85999999999984, 114.732421875, 469.5599999999999, 115.732421875 ); doc.bezierCurveTo( 470.2599999999999, 116.732421875, 470.95999999999987, 116.732421875, 471.65999999999985, 115.732421875 ); doc.bezierCurveTo( 472.35999999999984, 114.732421875, 473.05999999999983, 114.732421875, 473.7599999999999, 115.732421875 ); doc.bezierCurveTo( 474.45999999999987, 116.732421875, 475.15999999999985, 116.732421875, 475.85999999999984, 115.732421875 ); doc.bezierCurveTo( 476.55999999999983, 114.732421875, 477.2599999999998, 114.732421875, 477.95999999999987, 115.732421875 ); doc.bezierCurveTo( 478.65999999999985, 116.732421875, 479.35999999999984, 116.732421875, 480.05999999999983, 115.732421875 ); doc.bezierCurveTo( 480.7599999999998, 114.732421875, 481.4599999999998, 114.732421875, 482.15999999999985, 115.732421875 ); doc.bezierCurveTo( 482.85999999999984, 116.732421875, 483.55999999999983, 116.732421875, 484.2599999999998, 115.732421875 ); doc.bezierCurveTo( 484.9599999999998, 114.732421875, 485.6599999999998, 114.732421875, 486.35999999999984, 115.732421875 ); doc.bezierCurveTo( 487.05999999999983, 116.732421875, 487.7599999999998, 116.732421875, 488.4599999999998, 115.732421875 ); doc.bezierCurveTo( 489.1599999999998, 114.732421875, 489.8599999999998, 114.732421875, 490.55999999999983, 115.732421875 ); doc.bezierCurveTo( 491.2599999999998, 116.732421875, 491.9599999999998, 116.732421875, 492.6599999999998, 115.732421875 ); doc.bezierCurveTo( 493.3599999999998, 114.732421875, 494.0599999999998, 114.732421875, 494.7599999999998, 115.732421875 ); doc.bezierCurveTo( 495.4599999999998, 116.732421875, 496.1599999999998, 116.732421875, 496.8599999999998, 115.732421875 ); doc.bezierCurveTo( 497.5599999999998, 114.732421875, 498.25999999999976, 114.732421875, 498.9599999999998, 115.732421875 ); doc.bezierCurveTo( 499.6599999999998, 116.732421875, 500.3599999999998, 116.732421875, 501.0599999999998, 115.732421875 ); doc.bezierCurveTo( 501.75999999999976, 114.732421875, 502.45999999999975, 114.732421875, 503.1599999999998, 115.732421875 ); doc.bezierCurveTo( 503.8599999999998, 116.732421875, 504.5599999999998, 116.732421875, 505.25999999999976, 115.732421875 ); doc.bezierCurveTo( 505.95999999999975, 114.732421875, 506.65999999999974, 114.732421875, 507.3599999999998, 115.732421875 ); doc.bezierCurveTo( 508.0599999999998, 116.732421875, 508.75999999999976, 116.732421875, 509.45999999999975, 115.732421875 ); doc.bezierCurveTo( 510.15999999999974, 114.732421875, 510.85999999999973, 114.732421875, 511.5599999999998, 115.732421875 ); doc.bezierCurveTo( 512.2599999999998, 116.732421875, 512.9599999999998, 116.732421875, 513.6599999999997, 115.732421875 ); doc.bezierCurveTo( 514.3599999999998, 114.732421875, 515.0599999999997, 114.732421875, 515.7599999999998, 115.732421875 ); doc.bezierCurveTo( 516.4599999999997, 116.732421875, 517.1599999999997, 116.732421875, 517.8599999999998, 115.732421875 ); doc.bezierCurveTo( 518.5599999999998, 114.732421875, 519.2599999999998, 114.732421875, 519.9599999999998, 115.732421875 ); doc.bezierCurveTo( 520.6599999999997, 116.732421875, 521.3599999999998, 116.732421875, 522.0599999999998, 115.732421875 ); doc.bezierCurveTo( 522.7599999999999, 114.732421875, 523.4599999999998, 114.732421875, 524.1599999999999, 115.732421875 ); doc.bezierCurveTo( 524.8599999999998, 116.732421875, 525.5599999999998, 116.732421875, 526.2599999999999, 115.732421875 ); doc.bezierCurveTo( 526.9599999999999, 114.732421875, 527.6599999999999, 114.732421875, 528.3599999999999, 115.732421875 ); doc.bezierCurveTo( 529.0599999999998, 116.732421875, 529.7599999999999, 116.732421875, 530.4599999999999, 115.732421875 ); doc.bezierCurveTo( 531.16, 114.732421875, 531.8599999999999, 114.732421875, 532.56, 115.732421875 ); doc.bezierCurveTo( 533.2599999999999, 116.732421875, 533.9599999999999, 116.732421875, 534.66, 115.732421875 ); doc.bezierCurveTo( 535.36, 114.732421875, 536.06, 114.732421875, 536.76, 115.732421875 ); doc.bezierCurveTo( 537.4599999999999, 116.732421875, 538.16, 116.732421875, 538.86, 115.732421875 ); doc.bezierCurveTo( 539.5600000000001, 114.732421875, 540.26, 114.732421875, 540.96, 115.732421875 ); doc.bezierCurveTo( 541.66, 116.732421875, 542.36, 116.732421875, 543.0600000000001, 115.732421875 ); doc.bezierCurveTo( 543.7600000000001, 114.732421875, 544.46, 114.732421875, 545.1600000000001, 115.732421875 ); doc.bezierCurveTo( 545.86, 116.732421875, 546.5600000000001, 116.732421875, 547.2600000000001, 115.732421875 ); doc.bezierCurveTo( 547.9600000000002, 114.732421875, 548.6600000000001, 114.732421875, 549.3600000000001, 115.732421875 ); doc.bezierCurveTo( 550.0600000000001, 116.732421875, 550.7600000000001, 116.732421875, 551.4600000000002, 115.732421875 ); doc.bezierCurveTo( 552.1600000000002, 114.732421875, 552.8600000000001, 114.732421875, 553.5600000000002, 115.732421875 ); doc.bezierCurveTo( 554.2600000000001, 116.732421875, 554.9600000000002, 116.732421875, 555.6600000000002, 115.732421875 ); doc.bezierCurveTo( 556.3600000000002, 114.732421875, 557.0600000000002, 114.732421875, 557.7600000000002, 115.732421875 ); doc.bezierCurveTo( 558.4600000000002, 116.732421875, 559.1600000000002, 116.732421875, 559.8600000000002, 115.732421875 ); doc.bezierCurveTo( 560.5600000000003, 114.732421875, 561.2600000000002, 114.732421875, 561.9600000000003, 115.732421875 ); doc.bezierCurveTo( 562.6600000000002, 116.732421875, 563.3600000000002, 116.732421875, 564.0600000000003, 115.732421875 ); doc.bezierCurveTo( 564.7600000000003, 114.732421875, 565.4600000000003, 114.732421875, 566.1600000000003, 115.732421875 ); doc.bezierCurveTo( 566.8600000000002, 116.732421875, 567.5600000000003, 116.732421875, 568.2600000000003, 115.732421875 ); doc.bezierCurveTo( 568.9600000000004, 114.732421875, 569.6600000000003, 114.732421875, 570.3600000000004, 115.732421875 ); doc.bezierCurveTo( 571.0600000000003, 116.732421875, 571.7600000000003, 116.732421875, 572.4600000000004, 115.732421875 ); doc.bezierCurveTo( 573.1600000000004, 114.732421875, 573.8600000000004, 114.732421875, 574.5600000000004, 115.732421875 ); doc.bezierCurveTo( 575.2600000000003, 116.732421875, 575.9600000000004, 116.732421875, 576.6600000000004, 115.732421875 ); doc.bezierCurveTo( 577.3600000000005, 114.732421875, 578.0600000000004, 114.732421875, 578.7600000000004, 115.732421875 ); doc.bezierCurveTo( 579.4600000000004, 116.732421875, 580.1600000000004, 116.732421875, 580.8600000000005, 115.732421875 ); doc.bezierCurveTo( 581.5600000000005, 114.732421875, 582.2600000000004, 114.732421875, 582.9600000000005, 115.732421875 ); doc.bezierCurveTo( 583.6600000000004, 116.732421875, 584.3600000000005, 116.732421875, 585.0600000000005, 115.732421875 ); doc.bezierCurveTo( 585.7600000000006, 114.732421875, 586.4600000000005, 114.732421875, 587.1600000000005, 115.732421875 ); doc.bezierCurveTo( 587.8600000000005, 116.732421875, 588.5600000000005, 116.732421875, 589.2600000000006, 115.732421875 ); doc.bezierCurveTo( 589.9600000000006, 114.732421875, 590.6600000000005, 114.732421875, 591.3600000000006, 115.732421875 ); doc.bezierCurveTo( 592.0600000000005, 116.732421875, 592.7600000000006, 116.732421875, 593.4600000000006, 115.732421875 ); doc.bezierCurveTo( 594.1600000000007, 114.732421875, 594.8600000000006, 114.732421875, 595.5600000000006, 115.732421875 ); doc.bezierCurveTo( 596.2600000000006, 116.732421875, 596.9600000000006, 116.732421875, 597.6600000000007, 115.732421875 ); doc.bezierCurveTo( 598.3600000000007, 114.732421875, 599.0600000000006, 114.732421875, 599.7600000000007, 115.732421875 ); doc.bezierCurveTo( 600.4600000000006, 116.732421875, 601.1600000000007, 116.732421875, 601.8600000000007, 115.732421875 ); doc.stroke('black'); doc.strokeColor('black'); doc.strokeOpacity(undefined); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text(' ', 37.029296875, 117.34375, { lineBreak: false, textWidth: 2.970703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Using ', 40, 131.40625, { lineBreak: false, textWidth: 33.205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colors', 73.205078125, 131.40625, { lineBreak: false, textWidth: 33.12890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.rect(40, 143.487421875, 66.333984375, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Using ', 211.76, 131.40625, { lineBreak: false, textWidth: 33.205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colors', 244.965078125, 131.40625, { lineBreak: false, textWidth: 33.12890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.fillColor('red'); doc.fillOpacity(undefined); doc.rect(211.76, 139.385859375, 33.205078125, 0.74); doc.fill(); doc.restore(); doc.save(); doc.fillColor('red'); doc.fillOpacity(undefined); doc.rect(244.965078125, 139.385859375, 33.12890625, 0.74); doc.fill(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Using ', 383.52, 131.40625, { lineBreak: false, textWidth: 33.205078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('colors', 416.725078125, 131.40625, { lineBreak: false, textWidth: 33.12890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.save(); doc.rect(383.52, 142.857421875, 66.333984375, 144.857421875); doc.clip(); doc.lineWidth(0.24); doc.moveTo(382.52, 143.857421875); doc.bezierCurveTo( 383.21999999999997, 142.857421875, 383.91999999999996, 142.857421875, 384.62, 143.857421875 ); doc.bezierCurveTo( 385.32, 144.857421875, 386.02, 144.857421875, 386.71999999999997, 143.857421875 ); doc.bezierCurveTo( 387.41999999999996, 142.857421875, 388.11999999999995, 142.857421875, 388.82, 143.857421875 ); doc.bezierCurveTo( 389.52, 144.857421875, 390.21999999999997, 144.857421875, 390.91999999999996, 143.857421875 ); doc.bezierCurveTo( 391.61999999999995, 142.857421875, 392.31999999999994, 142.857421875, 393.02, 143.857421875 ); doc.bezierCurveTo( 393.71999999999997, 144.857421875, 394.41999999999996, 144.857421875, 395.11999999999995, 143.857421875 ); doc.bezierCurveTo( 395.81999999999994, 142.857421875, 396.5199999999999, 142.857421875, 397.21999999999997, 143.857421875 ); doc.bezierCurveTo( 397.91999999999996, 144.857421875, 398.61999999999995, 144.857421875, 399.31999999999994, 143.857421875 ); doc.bezierCurveTo( 400.0199999999999, 142.857421875, 400.7199999999999, 142.857421875, 401.41999999999996, 143.857421875 ); doc.bezierCurveTo( 402.11999999999995, 144.857421875, 402.81999999999994, 144.857421875, 403.5199999999999, 143.857421875 ); doc.bezierCurveTo( 404.2199999999999, 142.857421875, 404.9199999999999, 142.857421875, 405.61999999999995, 143.857421875 ); doc.bezierCurveTo( 406.31999999999994, 144.857421875, 407.0199999999999, 144.857421875, 407.7199999999999, 143.857421875 ); doc.bezierCurveTo( 408.4199999999999, 142.857421875, 409.1199999999999, 142.857421875, 409.81999999999994, 143.857421875 ); doc.bezierCurveTo( 410.5199999999999, 144.857421875, 411.2199999999999, 144.857421875, 411.9199999999999, 143.857421875 ); doc.bezierCurveTo( 412.6199999999999, 142.857421875, 413.3199999999999, 142.857421875, 414.0199999999999, 143.857421875 ); doc.bezierCurveTo( 414.7199999999999, 144.857421875, 415.4199999999999, 144.857421875, 416.1199999999999, 143.857421875 ); doc.bezierCurveTo( 416.8199999999999, 142.857421875, 417.51999999999987, 142.857421875, 418.2199999999999, 143.857421875 ); doc.bezierCurveTo( 418.9199999999999, 144.857421875, 419.6199999999999, 144.857421875, 420.3199999999999, 143.857421875 ); doc.bezierCurveTo( 421.01999999999987, 142.857421875, 421.71999999999986, 142.857421875, 422.4199999999999, 143.857421875 ); doc.bezierCurveTo( 423.1199999999999, 144.857421875, 423.8199999999999, 144.857421875, 424.51999999999987, 143.857421875 ); doc.bezierCurveTo( 425.21999999999986, 142.857421875, 425.91999999999985, 142.857421875, 426.6199999999999, 143.857421875 ); doc.bezierCurveTo( 427.3199999999999, 144.857421875, 428.01999999999987, 144.857421875, 428.71999999999986, 143.857421875 ); doc.bezierCurveTo( 429.41999999999985, 142.857421875, 430.11999999999983, 142.857421875, 430.8199999999999, 143.857421875 ); doc.bezierCurveTo( 431.51999999999987, 144.857421875, 432.21999999999986, 144.857421875, 432.91999999999985, 143.857421875 ); doc.bezierCurveTo( 433.61999999999983, 142.857421875, 434.3199999999998, 142.857421875, 435.01999999999987, 143.857421875 ); doc.bezierCurveTo( 435.71999999999986, 144.857421875, 436.41999999999985, 144.857421875, 437.11999999999983, 143.857421875 ); doc.bezierCurveTo( 437.8199999999998, 142.857421875, 438.5199999999998, 142.857421875, 439.21999999999986, 143.857421875 ); doc.bezierCurveTo( 439.91999999999985, 144.857421875, 440.61999999999983, 144.857421875, 441.3199999999998, 143.857421875 ); doc.bezierCurveTo( 442.0199999999998, 142.857421875, 442.7199999999998, 142.857421875, 443.41999999999985, 143.857421875 ); doc.bezierCurveTo( 444.11999999999983, 144.857421875, 444.8199999999998, 144.857421875, 445.5199999999998, 143.857421875 ); doc.bezierCurveTo( 446.2199999999998, 142.857421875, 446.9199999999998, 142.857421875, 447.61999999999983, 143.857421875 ); doc.bezierCurveTo( 448.3199999999998, 144.857421875, 449.0199999999998, 144.857421875, 449.7199999999998, 143.857421875 ); doc.bezierCurveTo( 450.4199999999998, 142.857421875, 451.1199999999998, 142.857421875, 451.8199999999998, 143.857421875 ); doc.bezierCurveTo( 452.5199999999998, 144.857421875, 453.2199999999998, 144.857421875, 453.9199999999998, 143.857421875 ); doc.bezierCurveTo( 454.6199999999998, 142.857421875, 455.31999999999977, 142.857421875, 456.0199999999998, 143.857421875 ); doc.bezierCurveTo( 456.7199999999998, 144.857421875, 457.4199999999998, 144.857421875, 458.1199999999998, 143.857421875 ); doc.bezierCurveTo( 458.81999999999977, 142.857421875, 459.51999999999975, 142.857421875, 460.2199999999998, 143.857421875 ); doc.bezierCurveTo( 460.9199999999998, 144.857421875, 461.6199999999998, 144.857421875, 462.31999999999977, 143.857421875 ); doc.bezierCurveTo( 463.01999999999975, 142.857421875, 463.71999999999974, 142.857421875, 464.4199999999998, 143.857421875 ); doc.bezierCurveTo( 465.1199999999998, 144.857421875, 465.81999999999977, 144.857421875, 466.51999999999975, 143.857421875 ); doc.bezierCurveTo( 467.21999999999974, 142.857421875, 467.91999999999973, 142.857421875, 468.6199999999998, 143.857421875 ); doc.bezierCurveTo( 469.31999999999977, 144.857421875, 470.01999999999975, 144.857421875, 470.71999999999974, 143.857421875 ); doc.bezierCurveTo( 471.41999999999973, 142.857421875, 472.1199999999997, 142.857421875, 472.81999999999977, 143.857421875 ); doc.bezierCurveTo( 473.51999999999975, 144.857421875, 474.21999999999974, 144.857421875, 474.91999999999973, 143.857421875 ); doc.bezierCurveTo( 475.6199999999997, 142.857421875, 476.3199999999997, 142.857421875, 477.01999999999975, 143.857421875 ); doc.bezierCurveTo( 477.71999999999974, 144.857421875, 478.41999999999973, 144.857421875, 479.1199999999997, 143.857421875 ); doc.bezierCurveTo( 479.8199999999997, 142.857421875, 480.5199999999997, 142.857421875, 481.21999999999974, 143.857421875 ); doc.bezierCurveTo( 481.91999999999973, 144.857421875, 482.6199999999997, 144.857421875, 483.3199999999997, 143.857421875 ); doc.bezierCurveTo( 484.0199999999997, 142.857421875, 484.7199999999997, 142.857421875, 485.41999999999973, 143.857421875 ); doc.bezierCurveTo( 486.1199999999997, 144.857421875, 486.8199999999997, 144.857421875, 487.5199999999997, 143.857421875 ); doc.bezierCurveTo( 488.2199999999997, 142.857421875, 488.9199999999997, 142.857421875, 489.6199999999997, 143.857421875 ); doc.bezierCurveTo( 490.3199999999997, 144.857421875, 491.0199999999997, 144.857421875, 491.7199999999997, 143.857421875 ); doc.bezierCurveTo( 492.4199999999997, 142.857421875, 493.11999999999966, 142.857421875, 493.8199999999997, 143.857421875 ); doc.bezierCurveTo( 494.5199999999997, 144.857421875, 495.2199999999997, 144.857421875, 495.9199999999997, 143.857421875 ); doc.bezierCurveTo( 496.61999999999966, 142.857421875, 497.31999999999965, 142.857421875, 498.0199999999997, 143.857421875 ); doc.bezierCurveTo( 498.7199999999997, 144.857421875, 499.4199999999997, 144.857421875, 500.11999999999966, 143.857421875 ); doc.bezierCurveTo( 500.81999999999965, 142.857421875, 501.51999999999964, 142.857421875, 502.2199999999997, 143.857421875 ); doc.bezierCurveTo( 502.9199999999997, 144.857421875, 503.61999999999966, 144.857421875, 504.31999999999965, 143.857421875 ); doc.bezierCurveTo( 505.01999999999964, 142.857421875, 505.71999999999963, 142.857421875, 506.4199999999997, 143.857421875 ); doc.bezierCurveTo( 507.11999999999966, 144.857421875, 507.81999999999965, 144.857421875, 508.51999999999964, 143.857421875 ); doc.bezierCurveTo( 509.21999999999963, 142.857421875, 509.9199999999996, 142.857421875, 510.61999999999966, 143.857421875 ); doc.bezierCurveTo( 511.31999999999965, 144.857421875, 512.0199999999996, 144.857421875, 512.7199999999997, 143.857421875 ); doc.bezierCurveTo( 513.4199999999997, 142.857421875, 514.1199999999997, 142.857421875, 514.8199999999997, 143.857421875 ); doc.bezierCurveTo( 515.5199999999996, 144.857421875, 516.2199999999997, 144.857421875, 516.9199999999997, 143.857421875 ); doc.bezierCurveTo( 517.6199999999998, 142.857421875, 518.3199999999997, 142.857421875, 519.0199999999998, 143.857421875 ); doc.bezierCurveTo( 519.7199999999997, 144.857421875, 520.4199999999997, 144.857421875, 521.1199999999998, 143.857421875 ); doc.bezierCurveTo( 521.8199999999998, 142.857421875, 522.5199999999998, 142.857421875, 523.2199999999998, 143.857421875 ); doc.bezierCurveTo( 523.9199999999997, 144.857421875, 524.6199999999998, 144.857421875, 525.3199999999998, 143.857421875 ); doc.bezierCurveTo( 526.0199999999999, 142.857421875, 526.7199999999998, 142.857421875, 527.4199999999998, 143.857421875 ); doc.bezierCurveTo( 528.1199999999998, 144.857421875, 528.8199999999998, 144.857421875, 529.5199999999999, 143.857421875 ); doc.bezierCurveTo( 530.2199999999999, 142.857421875, 530.9199999999998, 142.857421875, 531.6199999999999, 143.857421875 ); doc.bezierCurveTo( 532.3199999999998, 144.857421875, 533.0199999999999, 144.857421875, 533.7199999999999, 143.857421875 ); doc.bezierCurveTo( 534.42, 142.857421875, 535.1199999999999, 142.857421875, 535.8199999999999, 143.857421875 ); doc.bezierCurveTo( 536.5199999999999, 144.857421875, 537.2199999999999, 144.857421875, 537.92, 143.857421875 ); doc.bezierCurveTo( 538.62, 142.857421875, 539.3199999999999, 142.857421875, 540.02, 143.857421875 ); doc.bezierCurveTo( 540.7199999999999, 144.857421875, 541.42, 144.857421875, 542.12, 143.857421875 ); doc.bezierCurveTo( 542.82, 142.857421875, 543.52, 142.857421875, 544.22, 143.857421875 ); doc.bezierCurveTo( 544.92, 144.857421875, 545.62, 144.857421875, 546.32, 143.857421875 ); doc.bezierCurveTo( 547.0200000000001, 142.857421875, 547.72, 142.857421875, 548.4200000000001, 143.857421875 ); doc.bezierCurveTo( 549.12, 144.857421875, 549.82, 144.857421875, 550.5200000000001, 143.857421875 ); doc.bezierCurveTo( 551.2200000000001, 142.857421875, 551.9200000000001, 142.857421875, 552.6200000000001, 143.857421875 ); doc.bezierCurveTo( 553.32, 144.857421875, 554.0200000000001, 144.857421875, 554.7200000000001, 143.857421875 ); doc.bezierCurveTo( 555.4200000000002, 142.857421875, 556.1200000000001, 142.857421875, 556.8200000000002, 143.857421875 ); doc.bezierCurveTo( 557.5200000000001, 144.857421875, 558.2200000000001, 144.857421875, 558.9200000000002, 143.857421875 ); doc.bezierCurveTo( 559.6200000000002, 142.857421875, 560.3200000000002, 142.857421875, 561.0200000000002, 143.857421875 ); doc.bezierCurveTo( 561.7200000000001, 144.857421875, 562.4200000000002, 144.857421875, 563.1200000000002, 143.857421875 ); doc.bezierCurveTo( 563.8200000000003, 142.857421875, 564.5200000000002, 142.857421875, 565.2200000000003, 143.857421875 ); doc.bezierCurveTo( 565.9200000000002, 144.857421875, 566.6200000000002, 144.857421875, 567.3200000000003, 143.857421875 ); doc.bezierCurveTo( 568.0200000000003, 142.857421875, 568.7200000000003, 142.857421875, 569.4200000000003, 143.857421875 ); doc.bezierCurveTo( 570.1200000000002, 144.857421875, 570.8200000000003, 144.857421875, 571.5200000000003, 143.857421875 ); doc.bezierCurveTo( 572.2200000000004, 142.857421875, 572.9200000000003, 142.857421875, 573.6200000000003, 143.857421875 ); doc.bezierCurveTo( 574.3200000000003, 144.857421875, 575.0200000000003, 144.857421875, 575.7200000000004, 143.857421875 ); doc.bezierCurveTo( 576.4200000000004, 142.857421875, 577.1200000000003, 142.857421875, 577.8200000000004, 143.857421875 ); doc.bezierCurveTo( 578.5200000000003, 144.857421875, 579.2200000000004, 144.857421875, 579.9200000000004, 143.857421875 ); doc.bezierCurveTo( 580.6200000000005, 142.857421875, 581.3200000000004, 142.857421875, 582.0200000000004, 143.857421875 ); doc.bezierCurveTo( 582.7200000000004, 144.857421875, 583.4200000000004, 144.857421875, 584.1200000000005, 143.857421875 ); doc.bezierCurveTo( 584.8200000000005, 142.857421875, 585.5200000000004, 142.857421875, 586.2200000000005, 143.857421875 ); doc.bezierCurveTo( 586.9200000000004, 144.857421875, 587.6200000000005, 144.857421875, 588.3200000000005, 143.857421875 ); doc.stroke('green'); doc.strokeColor('green'); doc.strokeOpacity(undefined); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/toc.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('toc', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 40, 40, { lineBreak: false, textWidth: 25.83984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 65.83984375, 40, { lineBreak: false, textWidth: 12.0703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 77.91015625, 40, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('TOC ', 87.408203125, 40, { lineBreak: false, textWidth: 26.02734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('example. ', 113.435546875, 40, { lineBreak: false, textWidth: 51.48046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Text ', 164.916015625, 40, { lineBreak: false, textWidth: 25.775390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elements ', 190.69140625, 40, { lineBreak: false, textWidth: 52.201171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('marked ', 242.892578125, 40, { lineBreak: false, textWidth: 43.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('with ', 286.05859375, 40, { lineBreak: false, textWidth: 25.4296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tocItem: ', 311.48828125, 40, { lineBreak: false, textWidth: 46.86328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('true ', 358.3515625, 40, { lineBreak: false, textWidth: 23.923828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('will ', 382.275390625, 40, { lineBreak: false, textWidth: 20.724609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('be ', 403, 40, { lineBreak: false, textWidth: 16.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('located ', 419.060546875, 40, { lineBreak: false, textWidth: 42.580078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 461.640625, 40, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('the ', 474.14453125, 40, { lineBreak: false, textWidth: 19.857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('toc. ', 494.001953125, 40, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('See ', 517.05859375, 40, { lineBreak: false, textWidth: 22.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('below.', 40, 54.0625, { lineBreak: false, textWidth: 34.294921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('INDEX', 40, 40, { lineBreak: false, textWidth: 51.18749999999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('This ', 40, 73.09375, { lineBreak: false, textWidth: 26.19140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('is ', 66.19140625, 73.09375, { lineBreak: false, textWidth: 12.24609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 78.4375, 73.09375, { lineBreak: false, textWidth: 9.48046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('header, ', 87.91796875, 73.09375, { lineBreak: false, textWidth: 41.63671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('using ', 129.5546875, 73.09375, { lineBreak: false, textWidth: 32.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('header ', 161.9453125, 73.09375, { lineBreak: false, textWidth: 40.013671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 201.958984375, 73.09375, { lineBreak: false, textWidth: 25.529296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('3', 548.4596875, 73.09375, { lineBreak: false, textWidth: 6.8203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(548.4596875, 73.09375, 6.8203125, 14.0625, { Subtype: 'Link', Dest: [2, 'XYZ', null, null, null], Type: 'Annot', Rect: [548.4596875, 754.73375, 555.28, 768.79625], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Subheader ', 40, 91.15625, { lineBreak: false, textWidth: 60.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('1 ', 100.1171875, 91.15625, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 109.826171875, 91.15625, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('using ', 116.107421875, 91.15625, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subheader ', 148.146484375, 91.15625, { lineBreak: false, textWidth: 59.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 207.33203125, 91.15625, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('4', 548.4596875, 91.15625, { lineBreak: false, textWidth: 6.8203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(548.4596875, 91.15625, 6.8203125, 14.0625, { Subtype: 'Link', Dest: [3, 'XYZ', null, null, null], Type: 'Annot', Rect: [548.4596875, 736.67125, 555.28, 750.73375], Border: [0, 0, 0] }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Subheader ', 40, 109.21875, { lineBreak: false, textWidth: 60.1171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('2 ', 100.1171875, 109.21875, { lineBreak: false, textWidth: 9.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('- ', 109.826171875, 109.21875, { lineBreak: false, textWidth: 6.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('using ', 116.107421875, 109.21875, { lineBreak: false, textWidth: 32.0390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('subheader ', 148.146484375, 109.21875, { lineBreak: false, textWidth: 59.185546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('style', 207.33203125, 109.21875, { lineBreak: false, textWidth: 25.0546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('5', 548.4596875, 109.21875, { lineBreak: false, textWidth: 6.8203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.annotate(548.4596875, 109.21875, 6.8203125, 14.0625, { Subtype: 'Link', Dest: [4, 'XYZ', null, null, null], Type: 'Annot', Rect: [548.4596875, 718.60875, 555.28, 732.67125], Border: [0, 0, 0] }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('This ', 40, 40, { lineBreak: false, textWidth: 39.287109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('is ', 79.287109375, 40, { lineBreak: false, textWidth: 18.369140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('a ', 97.65625, 40, { lineBreak: false, textWidth: 14.220703124999998, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('header, ', 111.876953125, 40, { lineBreak: false, textWidth: 62.45507812499999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('using ', 174.33203125, 40, { lineBreak: false, textWidth: 48.58593749999999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('header ', 222.91796875, 40, { lineBreak: false, textWidth: 60.02050781249999, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(18); doc.text('style', 282.9384765625, 40, { lineBreak: false, textWidth: 38.2939453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 61.09375, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 61.09375, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 61.09375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 61.09375, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 61.09375, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 61.09375, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 61.09375, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 61.09375, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 61.09375, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 61.09375, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 61.09375, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 61.09375, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 75.15625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 75.15625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 75.15625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 75.15625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 75.15625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 75.15625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam.', 289.55078125, 75.15625, { lineBreak: false, textWidth: 47.712890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 89.21875, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Subheader ', 40, 40, { lineBreak: false, textWidth: 75.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('1 ', 115.849609375, 40, { lineBreak: false, textWidth: 12.2607421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 128.1103515625, 40, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('using ', 136.767578125, 40, { lineBreak: false, textWidth: 40.48828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('subheader ', 177.255859375, 40, { lineBreak: false, textWidth: 74.53857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('style', 251.79443359375, 40, { lineBreak: false, textWidth: 31.91162109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 57.578125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 57.578125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 57.578125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 57.578125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 57.578125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 57.578125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 57.578125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 57.578125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 57.578125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 57.578125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 57.578125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 57.578125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 71.640625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 71.640625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 71.640625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 71.640625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 71.640625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 71.640625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 71.640625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 71.640625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 71.640625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 71.640625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 71.640625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 71.640625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 85.703125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 85.703125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 85.703125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 85.703125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 85.703125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 85.703125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 85.703125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 85.703125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 85.703125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 85.703125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 99.765625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 99.765625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 99.765625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 99.765625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 99.765625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 99.765625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 99.765625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 99.765625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 99.765625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 99.765625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 99.765625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 113.828125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 113.828125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 113.828125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 113.828125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 113.828125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 113.828125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 113.828125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 113.828125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 113.828125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 113.828125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 127.890625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 127.890625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 127.890625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 127.890625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 127.890625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 127.890625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 127.890625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 127.890625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 127.890625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 127.890625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 127.890625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 141.953125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 141.953125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 141.953125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 141.953125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 141.953125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 141.953125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 141.953125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 141.953125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 141.953125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 141.953125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 141.953125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 156.015625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 156.015625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 156.015625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 170.078125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 170.078125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 170.078125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 170.078125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 170.078125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 170.078125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 170.078125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 170.078125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 170.078125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 170.078125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 170.078125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 170.078125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 184.140625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 184.140625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 184.140625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 184.140625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 184.140625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 184.140625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 184.140625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 184.140625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 184.140625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 184.140625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 184.140625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 184.140625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 198.203125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 198.203125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 198.203125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 198.203125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 198.203125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 198.203125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 198.203125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 198.203125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 198.203125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 198.203125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 212.265625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 212.265625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 212.265625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 212.265625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 212.265625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 212.265625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 212.265625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 212.265625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 212.265625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 212.265625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 212.265625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 226.328125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 226.328125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 226.328125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 226.328125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 226.328125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 226.328125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 226.328125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 226.328125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 226.328125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 226.328125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 240.390625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 240.390625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 240.390625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 240.390625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 240.390625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 240.390625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 240.390625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 240.390625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 240.390625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 240.390625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 240.390625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 254.453125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 254.453125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 254.453125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 254.453125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 254.453125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 254.453125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 254.453125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 254.453125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 254.453125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 254.453125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 254.453125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 268.515625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 268.515625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 268.515625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 282.578125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 282.578125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 282.578125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 282.578125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 282.578125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 282.578125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 282.578125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 282.578125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 282.578125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 282.578125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 282.578125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 282.578125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 296.640625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 296.640625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 296.640625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 296.640625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 296.640625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 296.640625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 296.640625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 296.640625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 296.640625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 296.640625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 296.640625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 296.640625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 310.703125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 310.703125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 310.703125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 310.703125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 310.703125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 310.703125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 310.703125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 310.703125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 310.703125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 310.703125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 324.765625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 324.765625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 324.765625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 324.765625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 324.765625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 324.765625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 324.765625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 324.765625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 324.765625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 324.765625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 324.765625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 338.828125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 338.828125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 338.828125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 338.828125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 338.828125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 338.828125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 338.828125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 338.828125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 338.828125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 338.828125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 352.890625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 352.890625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 352.890625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 352.890625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 352.890625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 352.890625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 352.890625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 352.890625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 352.890625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 352.890625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 352.890625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 366.953125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 366.953125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 366.953125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 366.953125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 366.953125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 366.953125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 366.953125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 366.953125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 366.953125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 366.953125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 366.953125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 381.015625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 381.015625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 381.015625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 395.078125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.addPage({ size: [595.28, 841.89], bufferPages: false, autoFirstPage: false, compress: true }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('Subheader ', 40, 40, { lineBreak: false, textWidth: 75.849609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('2 ', 115.849609375, 40, { lineBreak: false, textWidth: 12.2607421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('- ', 128.1103515625, 40, { lineBreak: false, textWidth: 8.6572265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('using ', 136.767578125, 40, { lineBreak: false, textWidth: 40.48828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('subheader ', 177.255859375, 40, { lineBreak: false, textWidth: 74.53857421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(15); doc.text('style', 251.79443359375, 40, { lineBreak: false, textWidth: 31.91162109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 57.578125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 57.578125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 57.578125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 57.578125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 57.578125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 57.578125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 57.578125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 57.578125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 57.578125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 57.578125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 57.578125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 57.578125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 71.640625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 71.640625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 71.640625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 71.640625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 71.640625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 71.640625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 71.640625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 71.640625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 71.640625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 71.640625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 71.640625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 71.640625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 85.703125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 85.703125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 85.703125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 85.703125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 85.703125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 85.703125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 85.703125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 85.703125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 85.703125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 85.703125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 99.765625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 99.765625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 99.765625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 99.765625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 99.765625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 99.765625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 99.765625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 99.765625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 99.765625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 99.765625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 99.765625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 113.828125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 113.828125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 113.828125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 113.828125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 113.828125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 113.828125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 113.828125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 113.828125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 113.828125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 113.828125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 127.890625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 127.890625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 127.890625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 127.890625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 127.890625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 127.890625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 127.890625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 127.890625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 127.890625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 127.890625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 127.890625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 141.953125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 141.953125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 141.953125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 141.953125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 141.953125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 141.953125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 141.953125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 141.953125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 141.953125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 141.953125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 141.953125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 156.015625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 156.015625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 156.015625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 170.078125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 170.078125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 170.078125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 170.078125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 170.078125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 170.078125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipisicing ', 258.484375, 170.078125, { lineBreak: false, textWidth: 60.46875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 318.953125, 170.078125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Confectum ', 341.18359375, 170.078125, { lineBreak: false, textWidth: 61.962890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ponit ', 403.146484375, 170.078125, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('legam, ', 433.146484375, 170.078125, { lineBreak: false, textWidth: 38.373046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perferendis ', 471.51953125, 170.078125, { lineBreak: false, textWidth: 63.38671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nomine ', 40, 184.140625, { lineBreak: false, textWidth: 42.84375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('miserum, ', 82.84375, 184.140625, { lineBreak: false, textWidth: 52.494140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('animi. ', 135.337890625, 184.140625, { lineBreak: false, textWidth: 35.619140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Moveat ', 170.95703125, 184.140625, { lineBreak: false, textWidth: 42.744140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nesciunt ', 213.701171875, 184.140625, { lineBreak: false, textWidth: 48.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('triari ', 262.1875, 184.140625, { lineBreak: false, textWidth: 27.36328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('naturam ', 289.55078125, 184.140625, { lineBreak: false, textWidth: 47.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('posset, ', 337.076171875, 184.140625, { lineBreak: false, textWidth: 41.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eveniunt ', 378.630859375, 184.140625, { lineBreak: false, textWidth: 48.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('specie ', 426.666015625, 184.140625, { lineBreak: false, textWidth: 37.798828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('deorsus ', 464.46484375, 184.140625, { lineBreak: false, textWidth: 45.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('efficiat ', 510.455078125, 184.140625, { lineBreak: false, textWidth: 39.779296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sermone ', 40, 198.203125, { lineBreak: false, textWidth: 49.916015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('instituendarum ', 89.916015625, 198.203125, { lineBreak: false, textWidth: 83.525390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('fuisse ', 173.44140625, 198.203125, { lineBreak: false, textWidth: 35.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('veniat, ', 208.837890625, 198.203125, { lineBreak: false, textWidth: 37.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eademque ', 246.23828125, 198.203125, { lineBreak: false, textWidth: 59.291015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mutat ', 305.529296875, 198.203125, { lineBreak: false, textWidth: 34.470703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('debeo. ', 340, 198.203125, { lineBreak: false, textWidth: 39.1875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Delectet ', 379.1875, 198.203125, { lineBreak: false, textWidth: 46.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('plerique ', 426.1328125, 198.203125, { lineBreak: false, textWidth: 45.73828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('protervi ', 471.87109375, 198.203125, { lineBreak: false, textWidth: 43.658203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('diogenem ', 40, 212.265625, { lineBreak: false, textWidth: 56.080078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dixerit ', 96.080078125, 212.265625, { lineBreak: false, textWidth: 35.73046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('logikh ', 131.810546875, 212.265625, { lineBreak: false, textWidth: 35.0625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('levius ', 166.873046875, 212.265625, { lineBreak: false, textWidth: 33.69140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('probabo ', 200.564453125, 212.265625, { lineBreak: false, textWidth: 47.326171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscuntur ', 247.890625, 212.265625, { lineBreak: false, textWidth: 69.123046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('afficitur, ', 317.013671875, 212.265625, { lineBreak: false, textWidth: 45.732421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('factis ', 362.74609375, 212.265625, { lineBreak: false, textWidth: 32.96484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magistra ', 395.7109375, 212.265625, { lineBreak: false, textWidth: 50.12109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inprobitatem ', 445.83203125, 212.265625, { lineBreak: false, textWidth: 70.91015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquo ', 516.7421875, 212.265625, { lineBreak: false, textWidth: 35.6015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('andriam ', 40, 226.328125, { lineBreak: false, textWidth: 46.904296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('obiecta, ', 86.904296875, 226.328125, { lineBreak: false, textWidth: 44.900390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('religionis, ', 131.8046875, 226.328125, { lineBreak: false, textWidth: 53.666015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('imitarentur ', 185.470703125, 226.328125, { lineBreak: false, textWidth: 61.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('studiis ', 246.75390625, 226.328125, { lineBreak: false, textWidth: 38.47265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('quam, ', 285.2265625, 226.328125, { lineBreak: false, textWidth: 35.806640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('clamat ', 321.033203125, 226.328125, { lineBreak: false, textWidth: 39.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('intereant ', 360.689453125, 226.328125, { lineBreak: false, textWidth: 50.15625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vulgo ', 410.845703125, 226.328125, { lineBreak: false, textWidth: 31.88671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('admonitionem ', 442.732421875, 226.328125, { lineBreak: false, textWidth: 80.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('operis ', 40, 240.390625, { lineBreak: false, textWidth: 36.064453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('iudex ', 76.064453125, 240.390625, { lineBreak: false, textWidth: 31.5703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('stabilitas ', 107.634765625, 240.390625, { lineBreak: false, textWidth: 51.708984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vacillare ', 159.34375, 240.390625, { lineBreak: false, textWidth: 47.07421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('scriptum ', 206.41796875, 240.390625, { lineBreak: false, textWidth: 50.197265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nixam, ', 256.615234375, 240.390625, { lineBreak: false, textWidth: 37.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('reperiri ', 294.466796875, 240.390625, { lineBreak: false, textWidth: 40.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('inveniri ', 334.779296875, 240.390625, { lineBreak: false, textWidth: 41.103515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maestitiam ', 375.8828125, 240.390625, { lineBreak: false, textWidth: 63.26953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('istius ', 439.15234375, 240.390625, { lineBreak: false, textWidth: 31.705078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eaque ', 470.857421875, 240.390625, { lineBreak: false, textWidth: 35.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dissentias ', 40, 254.453125, { lineBreak: false, textWidth: 57.55078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('idcirco ', 97.55078125, 254.453125, { lineBreak: false, textWidth: 38.91796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('gravis, ', 136.46875, 254.453125, { lineBreak: false, textWidth: 37.236328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('refert ', 173.705078125, 254.453125, { lineBreak: false, textWidth: 31.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('suscipiet ', 205.638671875, 254.453125, { lineBreak: false, textWidth: 51.076171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('recte ', 256.71484375, 254.453125, { lineBreak: false, textWidth: 29.8359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sapiens ', 286.55078125, 254.453125, { lineBreak: false, textWidth: 44.49609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('oportet ', 331.046875, 254.453125, { lineBreak: false, textWidth: 41.94140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsam ', 372.98828125, 254.453125, { lineBreak: false, textWidth: 35.84765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('terentianus, ', 408.8359375, 254.453125, { lineBreak: false, textWidth: 65.314453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('perpauca ', 474.150390625, 254.453125, { lineBreak: false, textWidth: 52.8046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sedatio ', 40, 268.515625, { lineBreak: false, textWidth: 42.486328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliena ', 82.486328125, 268.515625, { lineBreak: false, textWidth: 34.828125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('video.', 117.314453125, 268.515625, { lineBreak: false, textWidth: 31.8515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 282.578125, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('It ', 40, 296.640625, { lineBreak: false, textWidth: 6.68359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('is ', 46.68359375, 296.640625, { lineBreak: false, textWidth: 7.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('possible ', 54.60546875, 296.640625, { lineBreak: false, textWidth: 31.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('to ', 85.890625, 296.640625, { lineBreak: false, textWidth: 8.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('apply ', 94.8125, 296.640625, { lineBreak: false, textWidth: 20.64453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('multiple ', 115.45703125, 296.640625, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('styles, ', 145.45703125, 296.640625, { lineBreak: false, textWidth: 23.95703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('by ', 169.4140625, 296.640625, { lineBreak: false, textWidth: 10.0234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('passing ', 179.4375, 296.640625, { lineBreak: false, textWidth: 29.33203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('an ', 208.76953125, 296.640625, { lineBreak: false, textWidth: 10.54296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('array. ', 219.3125, 296.640625, { lineBreak: false, textWidth: 20.97265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('This ', 240.28515625, 296.640625, { lineBreak: false, textWidth: 16.90234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('paragraph ', 257.1875, 296.640625, { lineBreak: false, textWidth: 37.2578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('uses ', 294.4453125, 296.640625, { lineBreak: false, textWidth: 18.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('two ', 312.94921875, 296.640625, { lineBreak: false, textWidth: 14.87109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('styles: ', 327.8203125, 296.640625, { lineBreak: false, textWidth: 24.3125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('quote ', 352.1328125, 296.640625, { lineBreak: false, textWidth: 21.9140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('and ', 374.046875, 296.640625, { lineBreak: false, textWidth: 14.95703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('small. ', 389.00390625, 296.640625, { lineBreak: false, textWidth: 23.02734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('When ', 412.03125, 296.640625, { lineBreak: false, textWidth: 21.6640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('multiple ', 433.6953125, 296.640625, { lineBreak: false, textWidth: 30, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('styles ', 463.6953125, 296.640625, { lineBreak: false, textWidth: 22.39453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('are ', 486.08984375, 296.640625, { lineBreak: false, textWidth: 12.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('provided, ', 499.05078125, 296.640625, { lineBreak: false, textWidth: 33.60546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('they ', 532.65625, 296.640625, { lineBreak: false, textWidth: 16.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('are ', 40, 306.015625, { lineBreak: false, textWidth: 12.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('evaluated ', 52.9609375, 306.015625, { lineBreak: false, textWidth: 35.6953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('in ', 88.65625, 306.015625, { lineBreak: false, textWidth: 8.203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('the ', 96.859375, 306.015625, { lineBreak: false, textWidth: 12.99609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('specified ', 109.85546875, 306.015625, { lineBreak: false, textWidth: 33.46484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('order ', 143.3203125, 306.015625, { lineBreak: false, textWidth: 20.2421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('which ', 163.5625, 306.015625, { lineBreak: false, textWidth: 22.48046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('is ', 186.04296875, 306.015625, { lineBreak: false, textWidth: 7.921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('important ', 193.96484375, 306.015625, { lineBreak: false, textWidth: 36.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('in ', 230.13671875, 306.015625, { lineBreak: false, textWidth: 8.203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('case ', 238.33984375, 306.015625, { lineBreak: false, textWidth: 18.51171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('they ', 256.8515625, 306.015625, { lineBreak: false, textWidth: 16.65625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('define ', 273.5078125, 306.015625, { lineBreak: false, textWidth: 23.328125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('the ', 296.8359375, 306.015625, { lineBreak: false, textWidth: 12.99609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('same ', 309.83203125, 306.015625, { lineBreak: false, textWidth: 21.25, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(8); doc.text('properties', 331.08203125, 306.015625, { lineBreak: false, textWidth: 35.53125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/pdfmake/watermark.spec.js ================================================ import { runDocTest } from '../helpers'; describe('pdfmake', function() { test('watermark', function() { return runDocTest(function(doc) { doc.font('tests/fonts/Roboto-Medium.ttf'); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Test ', 40, 40, { lineBreak: false, textWidth: 26.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('page ', 66.015625, 40, { lineBreak: false, textWidth: 29.3203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('of ', 95.3359375, 40, { lineBreak: false, textWidth: 13.98046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('watermark.', 109.31640625, 40, { lineBreak: false, textWidth: 60.228515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('', 40, 54.0625, { lineBreak: false, textWidth: 0, characterSpacing: 0, wordCount: 1, link: null }); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Lorem ', 40, 68.125, { lineBreak: false, textWidth: 37.095703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum ', 77.095703125, 68.125, { lineBreak: false, textWidth: 35.935546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 113.03125, 68.125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 143.4296875, 68.125, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 159.419921875, 68.125, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('consectetur ', 192.068359375, 68.125, { lineBreak: false, textWidth: 66.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('adipiscing ', 258.484375, 68.125, { lineBreak: false, textWidth: 57.556640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('elit. ', 316.041015625, 68.125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Donec ', 338.271484375, 68.125, { lineBreak: false, textWidth: 36.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id ', 375.21484375, 68.125, { lineBreak: false, textWidth: 12.650390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('semper ', 387.865234375, 68.125, { lineBreak: false, textWidth: 43.18359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('massa, ', 431.048828125, 68.125, { lineBreak: false, textWidth: 41.2734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nec ', 472.322265625, 68.125, { lineBreak: false, textWidth: 22.23046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dapibus ', 494.552734375, 68.125, { lineBreak: false, textWidth: 45.4453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mauris. ', 40, 82.1875, { lineBreak: false, textWidth: 42.94921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Mauris ', 82.94921875, 82.1875, { lineBreak: false, textWidth: 39.75, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 122.69921875, 82.1875, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mattis ', 135.203125, 82.1875, { lineBreak: false, textWidth: 36.955078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nibh. ', 172.158203125, 82.1875, { lineBreak: false, textWidth: 29.00390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Aenean ', 201.162109375, 82.1875, { lineBreak: false, textWidth: 43.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('feugiat ', 244.4453125, 82.1875, { lineBreak: false, textWidth: 40.060546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('volutpat ', 284.505859375, 82.1875, { lineBreak: false, textWidth: 46.166015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquam. ', 330.671875, 82.1875, { lineBreak: false, textWidth: 48.9609375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Donec ', 379.6328125, 82.1875, { lineBreak: false, textWidth: 36.943359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 416.576171875, 82.1875, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tellus ', 438.859375, 82.1875, { lineBreak: false, textWidth: 31.875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('feugiat, ', 470.734375, 82.1875, { lineBreak: false, textWidth: 42.416015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dignissim ', 40, 96.25, { lineBreak: false, textWidth: 54.720703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lectus ', 94.720703125, 96.25, { lineBreak: false, textWidth: 35.244140625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('id, ', 129.96484375, 96.25, { lineBreak: false, textWidth: 15.005859375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eleifend ', 144.970703125, 96.25, { lineBreak: false, textWidth: 45.28125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tortor. ', 190.251953125, 96.25, { lineBreak: false, textWidth: 35.115234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Ut ', 225.3671875, 96.25, { lineBreak: false, textWidth: 14.671875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('at ', 240.0390625, 96.25, { lineBreak: false, textWidth: 13.41796875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mauris ', 253.45703125, 96.25, { lineBreak: false, textWidth: 39.791015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vel ', 293.248046875, 96.25, { lineBreak: false, textWidth: 17.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dui ', 311.224609375, 96.25, { lineBreak: false, textWidth: 19.265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('euismod ', 330.490234375, 96.25, { lineBreak: false, textWidth: 49.171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('accumsan. ', 379.662109375, 96.25, { lineBreak: false, textWidth: 61.6875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cras ', 441.349609375, 96.25, { lineBreak: false, textWidth: 27.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sodales, ', 468.671875, 96.25, { lineBreak: false, textWidth: 47.109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ante ', 515.78125, 96.25, { lineBreak: false, textWidth: 26.396484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 542.177734375, 96.25, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet ', 40, 110.3125, { lineBreak: false, textWidth: 30.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('varius ', 70.29296875, 110.3125, { lineBreak: false, textWidth: 34.998046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dapibus, ', 105.291015625, 110.3125, { lineBreak: false, textWidth: 47.80078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 153.091796875, 110.3125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('neque ', 183.490234375, 110.3125, { lineBreak: false, textWidth: 35.7421875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('finibus ', 219.232421875, 110.3125, { lineBreak: false, textWidth: 38.68359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('justo, ', 257.916015625, 110.3125, { lineBreak: false, textWidth: 31.640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vel ', 289.556640625, 110.3125, { lineBreak: false, textWidth: 17.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ornare ', 307.533203125, 110.3125, { lineBreak: false, textWidth: 37.330078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('arcu ', 344.86328125, 110.3125, { lineBreak: false, textWidth: 26.34375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 371.20703125, 110.3125, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vitae ', 401.60546875, 110.3125, { lineBreak: false, textWidth: 28.5, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tellus. ', 430.10546875, 110.3125, { lineBreak: false, textWidth: 35.033203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Aenean ', 465.138671875, 110.3125, { lineBreak: false, textWidth: 43.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('faucibus ', 508.421875, 110.3125, { lineBreak: false, textWidth: 49.0078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('egestas ', 40, 124.375, { lineBreak: false, textWidth: 45.240234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('urna ', 85.240234375, 124.375, { lineBreak: false, textWidth: 26.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('in ', 112.03515625, 124.375, { lineBreak: false, textWidth: 12.50390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('interdum. ', 124.5390625, 124.375, { lineBreak: false, textWidth: 53.7890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Mauris ', 178.328125, 124.375, { lineBreak: false, textWidth: 39.75, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('convallis ', 218.078125, 124.375, { lineBreak: false, textWidth: 49.892578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dolor ', 267.970703125, 124.375, { lineBreak: false, textWidth: 30.3984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('a ', 298.369140625, 124.375, { lineBreak: false, textWidth: 9.498046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('condimentum ', 307.8671875, 124.375, { lineBreak: false, textWidth: 76.9453125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sagittis. ', 384.8125, 124.375, { lineBreak: false, textWidth: 45.427734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Suspendisse ', 430.240234375, 124.375, { lineBreak: false, textWidth: 71.015625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 501.255859375, 124.375, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('laoreet ', 40, 138.4375, { lineBreak: false, textWidth: 39.837890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nisl. ', 79.837890625, 138.4375, { lineBreak: false, textWidth: 24.76171875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Curabitur ', 104.599609375, 138.4375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sed ', 156.58984375, 138.4375, { lineBreak: false, textWidth: 22.283203125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pharetra ', 178.873046875, 138.4375, { lineBreak: false, textWidth: 47.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ipsum. ', 226.29296875, 138.4375, { lineBreak: false, textWidth: 39.09375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Curabitur ', 265.38671875, 138.4375, { lineBreak: false, textWidth: 51.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquet ', 317.376953125, 138.4375, { lineBreak: false, textWidth: 39.03515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('purus ', 356.412109375, 138.4375, { lineBreak: false, textWidth: 33.181640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vitae ', 389.59375, 138.4375, { lineBreak: false, textWidth: 28.5, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('pharetra ', 418.09375, 138.4375, { lineBreak: false, textWidth: 47.419921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tincidunt. ', 465.513671875, 138.4375, { lineBreak: false, textWidth: 52.69921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Cras ', 518.212890625, 138.4375, { lineBreak: false, textWidth: 27.322265625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquam ', 40, 152.5, { lineBreak: false, textWidth: 45.802734375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tempor ', 85.802734375, 152.5, { lineBreak: false, textWidth: 41.40234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('justo ', 127.205078125, 152.5, { lineBreak: false, textWidth: 29.28515625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 156.490234375, 152.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet ', 172.48046875, 152.5, { lineBreak: false, textWidth: 30.29296875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('euismod. ', 202.7734375, 152.5, { lineBreak: false, textWidth: 52.330078125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Praesent ', 255.103515625, 152.5, { lineBreak: false, textWidth: 50.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('risus ', 305.44140625, 152.5, { lineBreak: false, textWidth: 28.93359375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna, ', 334.375, 152.5, { lineBreak: false, textWidth: 42.251953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lobortis ', 376.626953125, 152.5, { lineBreak: false, textWidth: 43.67578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('eget ', 420.302734375, 152.5, { lineBreak: false, textWidth: 26.337890625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dictum ', 446.640625, 152.5, { lineBreak: false, textWidth: 39.984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sit ', 486.625, 152.5, { lineBreak: false, textWidth: 15.990234375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('amet, ', 502.615234375, 152.5, { lineBreak: false, textWidth: 32.6484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('tristique ', 40, 166.5625, { lineBreak: false, textWidth: 46.67578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('vel ', 86.67578125, 166.5625, { lineBreak: false, textWidth: 17.9765625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('enim. ', 104.65234375, 166.5625, { lineBreak: false, textWidth: 32.537109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('Duis ', 137.189453125, 166.5625, { lineBreak: false, textWidth: 26.5546875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('aliquet, ', 163.744140625, 166.5625, { lineBreak: false, textWidth: 41.390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('urna ', 205.134765625, 166.5625, { lineBreak: false, textWidth: 26.794921875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('maximus ', 231.9296875, 166.5625, { lineBreak: false, textWidth: 52.1953125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sollicitudin ', 284.125, 166.5625, { lineBreak: false, textWidth: 60.767578125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lobortis, ', 344.892578125, 166.5625, { lineBreak: false, textWidth: 46.03125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('mi ', 390.923828125, 166.5625, { lineBreak: false, textWidth: 16.400390625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('nunc ', 407.32421875, 166.5625, { lineBreak: false, textWidth: 29.109375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('dignissim ', 436.43359375, 166.5625, { lineBreak: false, textWidth: 54.720703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('ligula, ', 491.154296875, 166.5625, { lineBreak: false, textWidth: 33.9375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('et ', 525.091796875, 166.5625, { lineBreak: false, textWidth: 13.248046875, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('lacinia ', 40, 180.625, { lineBreak: false, textWidth: 37.6640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('magna ', 77.6640625, 180.625, { lineBreak: false, textWidth: 39.896484375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('leo ', 117.560546875, 180.625, { lineBreak: false, textWidth: 19.083984375, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('non ', 136.64453125, 180.625, { lineBreak: false, textWidth: 23.056640625, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('black'); doc.fillColor('black'); doc.fillOpacity(undefined); doc.fontSize(12); doc.text('sem.', 159.701171875, 180.625, { lineBreak: false, textWidth: 26.220703125, characterSpacing: 0, wordCount: 1, link: null }); doc.save(); doc.restore(); doc.fill('blue'); doc.fillColor('blue'); doc.fillOpacity(undefined); doc.opacity(0.3); doc.save(); doc.rotate(-54.73679578231538, { origin: [297.64, 420.945] }); doc.fontSize(122.55859375); doc.text('test watermark', -114.73473487854005, 385.1822131347656, { lineBreak: false }); doc.save(); doc.restore(); doc.restore(); }); }); }); ================================================ FILE: tests/visual/table.spec.js ================================================ import { runDocTest } from './helpers'; describe('table', function () { test('simple table', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ data: [ ['Column 1', 'Column 2', 'Column 3'], ['One value goes here', 'Another one here', 'OK?'], ], }); }); }); test('defining column widths', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ columnStyles: [100, '*', 200, '*'], data: [ ['width=100', 'star-sized', 'width=200', 'star-sized'], [ 'fixed-width cells have exactly the specified width', { text: 'nothing interesting here', textColor: 'grey' }, { text: 'nothing interesting here', textColor: 'grey' }, { text: 'nothing interesting here', textColor: 'grey' }, ], ], }); }); }); test('defining row heights', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ rowStyles: [20, 50, 70], data: [ ['row 1 with height 20', 'column B'], ['row 2 with height 50', 'column B'], ['row 3 with height 70', 'column B'], ], }); doc.moveDown(); doc.text('With same height:'); doc.table({ rowStyles: 40, data: [ ['row 1', 'column B'], ['row 2', 'column B'], ['row 3', 'column B'], ], }); doc.moveDown(); doc.text('With height from function:'); doc.table({ rowStyles: (row) => (row + 1) * 25, data: [ ['row 1', 'column B'], ['row 2', 'column B'], ['row 3', 'column B'], ], }); }); }); test('column/row spans', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ columnStyles: [200, '*', '*'], rowStyles: (i) => { return i < 2 ? { font: { src: 'tests/fonts/Roboto-MediumItalic.ttf' }, align: { x: 'center' }, } : { textColor: 'grey', }; }, data: [ [{ colSpan: 2, text: 'Header with Colspan = 2' }, 'Header 3'], ['Header 1', 'Header 2', 'Header 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], [ { rowSpan: 3, text: 'rowspan set to 3\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor', }, 'Sample value 2', 'Sample value 3', ], ['Sample value 2', 'Sample value 3'], ['Sample value 2', 'Sample value 3'], [ 'Sample value 1', { colSpan: 2, rowSpan: 2, text: 'Both:\nrowspan and colspan\ncan be defined at the same time', }, ], ['Sample value 1'], ], }); }); }); test('styling tables', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.text('noBorders:').moveDown(1); doc .table({ rowStyles: { border: false }, data: [ ['Header 1', 'Header 2', 'Header 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ], }) .moveDown(2) .text('headerLineOnly:') .moveDown(1) .table({ rowStyles: (i) => { return i < 1 ? { border: [0, 0, 1, 0] } : { border: false }; }, data: [ ['Header 1', 'Header 2', 'Header 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ], }) .moveDown(2) .text('lightHorizontalLines:') .moveDown(1) .table({ rowStyles: (i) => { return i < 1 ? { border: [0, 0, 2, 0], borderColor: 'black', } : { border: [0, 0, 1, 0], borderColor: '#aaa', }; }, data: [ ['Header 1', 'Header 2', 'Header 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ], }) .moveDown(2) .text('but you can provide a custom styler as well') .moveDown(1) .table({ defaultStyle: { border: 1, borderColor: 'gray' }, columnStyles: (i) => { if (i === 0) { return { border: { left: 2 }, borderColor: { left: 'black' } }; } if (i === 2) { return { border: { right: 2 }, borderColor: { right: 'black' } }; } }, rowStyles: (i) => { if (i === 0) { return { border: { top: 2 }, borderColor: { top: 'black' } }; } if (i === 3) { return { border: { bottom: 2 }, borderColor: { bottom: 'black' }, }; } }, data: [ ['Header 1', 'Header 2', 'Header 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ], }) .moveDown(2) .text('zebra style') .moveDown(1) .table({ rowStyles: (i) => { if (i % 2 === 0) return { backgroundColor: '#ccc' }; }, data: [ ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ['Sample value 1', 'Sample value 2', 'Sample value 3'], ], }); }); }); test('optional border', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ data: [ [ { border: [true, false, false, false], backgroundColor: '#eee', text: 'border:\n[true, false, false, false]', }, { border: false, backgroundColor: '#ddd', text: 'border:\nfalse', }, { border: true, backgroundColor: '#eee', text: 'border:\ntrue', }, ], [ { rowSpan: 3, border: true, backgroundColor: '#eef', text: 'rowSpan: 3\n\nborder:\ntrue', }, { border: undefined, backgroundColor: '#eee', text: 'border:\nundefined (default)', }, { border: [false, false, false, true], backgroundColor: '#ddd', text: 'border:\n[false, false, false, true]', }, ], [ { colSpan: 2, border: true, backgroundColor: '#efe', text: 'colSpan: 2\n\nborder:\ntrue', }, ], [ { border: 0, backgroundColor: '#eee', text: 'border:\n0 (same as false)', }, { border: [false, true, true, false], backgroundColor: '#ddd', text: 'border:\n[false, true, true, false]', }, ], ], }); doc.moveDown(2); doc.table({ defaultStyle: { border: false, width: 60 }, data: [ ['', 'column 1', 'column 2', 'column 3'], [ 'row 1', { rowSpan: 3, colSpan: 3, border: true, backgroundColor: '#ccc', text: 'rowSpan: 3\ncolSpan: 3\n\nborder:\n[true, true, true, true]', }, ], ['row 2'], ['row 3'], ], }); }); }); test('iterables', function () { return runDocTest(async function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); const syncIterator = (function* () { yield ['1', '2']; yield ['3', '4']; })(); doc.table({ data: syncIterator }); }); }); test('rotated text', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.fontSize(7); doc.table({ debug: true, defaultStyle: { height: 50, width: 50, padding: 4 }, columnStyles: (i) => ({ textOptions: { rotation: i * 45 } }), rowStyles: [ { align: { x: 'left', y: 'top' } }, { align: { x: 'left', y: 'center' } }, { align: { x: 'left', y: 'bottom' } }, { align: { x: 'center', y: 'top' } }, { align: { x: 'center', y: 'center' } }, { align: { x: 'center', y: 'bottom' } }, { align: { x: 'right', y: 'top' } }, { align: { x: 'right', y: 'center' } }, { align: { x: 'right', y: 'bottom' } }, { align: { x: 'justify', y: 'top' } }, { align: { x: 'justify', y: 'center' } }, { align: { x: 'justify', y: 'bottom' } }, ], data: [ Array(9) .fill(null) .map((_, i) => `L,T @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `L,C @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `L,B @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `C,T @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `C,C @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `C,B @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `R,T @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `R,C @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `R,B @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `J,T @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `J,C @${(i * 45).toString().padStart(3, '0')}`), Array(9) .fill(null) .map((_, i) => `J,B @${(i * 45).toString().padStart(3, '0')}`), ], }); }); }); test('line flowing rotated text', function () { return runDocTest( { layout: 'landscape', margin: 19 }, async function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ debug: true, defaultStyle: { align: 'center' }, columnStyles: [{ width: 200, textOptions: { rotation: 45 } }], data: [ [ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent laoreet pulvinar velit, at interdum velit ullamcorper at. Sed a velit vulputate, tristique metus eu, hendrerit nisi. Ut vitae nisl in sapien ultricies commodo et consectetur. nibh. Etiam tempor in orci quis viverra. Ut commodo, purus ac elementum ultricies, diam risus ultricies turpis, ac accumsan orci turpis a libero. Curabitur convallis nisi sed nisi elementum sollicitudin. Aenean eget urna luctus, blandit nulla eget, dapibus neque. Aliquam ut arcu erat.', ], ], }); }, ); }); test('multi line rotated text', function () { return runDocTest( { layout: 'landscape', margin: 19 }, async function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ debug: true, defaultStyle: { align: 'center', width: 200, height: 200 }, columnStyles: [{ textOptions: { rotation: 90 } }], data: [['Hello\nWorld']], }); }, ); }); test('multi page table', function () { return runDocTest({ size: [500, 300] }, function (doc) { doc.font('tests/fonts/Roboto-Italic.ttf'); doc.table({ debug: true, data: [ [ { rowSpan: 3, text: 'LEFT_COLUMN', }, 'RIGHT_COLUM_ROW_1\n'.repeat(5), ], ['RIGHT_COLUM_ROW_2\n'.repeat(5)], ['RIGHT_COLUM_ROW_3'], ], }); }); }); }); ================================================ FILE: tests/visual/text.spec.js ================================================ import { runDocTest } from './helpers'; describe('text', function () { test('simple text', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.text('Really simple text', 100, 100); }); }); test('alignment', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.text('Left aligned text', { align: 'left' }); doc.text('Right aligned text', { align: 'right' }); doc.text( 'Justified aligned text - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in suscipit purus.', { align: 'justify' }, ); }); }); test('soft hyphen', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.text( 'Text with soft hyphen - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lo ip\u00ADsum', { align: 'justify' }, ); doc.text( 'Text with soft hyphen on the edge - ttttestttestttestttestttestttestttestttestttestttestttes\u00ADtt\u00ADt', { align: 'justify' }, ); }); }); test('decoration', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fillColor('blue').text('Here is a link!', 100, 100, { link: 'http://google.com/', underline: true, }); doc.text('Strike', 100, 130, { strike: true, }); doc.text('Strike', 100, 160, { underline: true, strike: true, }); }); }); test('list', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.fillColor('#000').list(['One', 'Two', 'Three'], 100, 150); }); }); test('list with line breaks in items', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.list(['Foo\nBar', 'Foo\rBar', 'Foo\r\nBar'], [100, 150]); }); }); test('list (numbered)', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc .fillColor('#000') .list(['One', 'Two', 'Three'], 100, 150, { listType: 'numbered' }); }); }); test('list (lettered)', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc .fillColor('#000') .list(['One', 'Two', 'Three'], 100, 150, { listType: 'lettered' }); }); }); test('list with sub-list (unordered)', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc .fillColor('#000') .list(['One', ['One.One', 'One.Two'], 'Three'], 100, 150); }); }); test('list with sub-list (ordered)', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc .fillColor('#000') .list(['One', ['One.One', 'One.Two'], 'Three'], 100, 150, { listType: 'numbered', }); }); }); test('continued text with OpenType features', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); doc.text('Really simple', 100, 100, { features: ['smcp'], continued: true, lineBreak: false, }); doc.text(' text', { features: [], lineBreak: false }); }); }); test('rotated text', function () { let i = 0; const cols = [ '#292f56', '#492d73', '#8c2f94', '#b62d78', '#d82d31', '#e69541', '#ecf157', '#acfa70', ]; function randColor() { return cols[i++ % cols.length]; } return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); for (let i = -360; i < 360; i += 5) { const withLabel = i % 45 === 0; const margin = i < 0 ? ' ' : ' '; let text = `—————————> ${withLabel ? `${margin}${i}` : ''}`; if (withLabel) { const bounds = doc.boundsOfString(text, 200, 200, { rotation: i }); doc .save() .rect(bounds.x, bounds.y, bounds.width, bounds.height) .stroke(randColor()) .restore(); } doc .save() .fill(withLabel ? 'red' : 'black') .text(text, 200, 200, { rotation: i }) .restore(); } doc.save().circle(200, 200, 1).fill('blue').restore(); }); }); test('rotated multi line text', function () { return runDocTest(function (doc) { doc.font('tests/fonts/Roboto-Regular.ttf'); let text = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.`; // Compute text rect const textBounds = doc.boundsOfString(text, 300, 300, { rotation: 0 }); // Compute rotated bounds const bounds = doc.boundsOfString(text, 300, 300, { rotation: 45 }); doc // Draw rotated bounds .rect(bounds.x, bounds.y, bounds.width, bounds.height) .stroke() // Draw text .text(text, 300, 300, { rotation: 45 }) // Draw text rect (rotation is negative because of the flipped axis .rotate(-45, { origin: [300, 300] }) .rect(300, 300, textBounds.width, textBounds.height) .stroke('pink') // Draw origin .circle(300, 300, 2) .fill('blue'); }); }); }); ================================================ FILE: tests/visual/vector.spec.js ================================================ import { runDocTest } from './helpers'; var tiger = require('../../examples/tiger'); describe('vector', function () { test('simple shapes', function () { return runDocTest(function (doc) { doc .save() .moveTo(100, 150) .lineTo(100, 250) .lineTo(200, 250) .fill('#FF3300'); doc.circle(280, 200, 50).fill('#6600FF'); // an SVG path doc .scale(0.6) .translate(470, 130) .path('M 250,75 L 323,301 131,161 369,161 177,301 z') .fill('red', 'even-odd') .restore(); }); }); test('complex svg', function () { return runDocTest({ failureThreshold: 0.05 }, function (doc) { var i, len, part; doc.translate(220, 300); for (i = 0, len = tiger.length; i < len; i++) { part = tiger[i]; doc.save(); doc.path(part.path); if (part['stroke-width']) { doc.lineWidth(part['stroke-width']); } if (part.fill !== 'none' && part.stroke !== 'none') { doc.fillAndStroke(part.fill, part.stroke); } else { if (part.fill !== 'none') { doc.fill(part.fill); } if (part.stroke !== 'none') { doc.stroke(part.stroke); } } doc.restore(); } }); }); test('svg path', function () { return runDocTest(function (doc) { // extracted from https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths // lines doc.path('M10 10 H 90 V 90 H 10 L 10 10'); doc.stroke('#000'); doc.translate(0, 100); doc.path('M10 10 H 90 V 90 H 10 Z'); doc.stroke('#000'); doc.translate(0, 100); doc.path('M10 10 h 80 v 80 h -80 Z'); doc.stroke('#000'); doc.translate(0, 100); // bezier curves doc.path('M10 10 C 20 20, 40 20, 50 10'); doc.stroke('#000'); doc.path('M70 10 C 70 20, 110 20, 110 10'); doc.stroke('#000'); doc.path('M130 10 C 120 20, 180 20, 170 10'); doc.stroke('#000'); doc.path('M10 60 C 20 80, 40 80, 50 60'); doc.stroke('#000'); doc.path('M70 60 C 70 80, 110 80, 110 60'); doc.stroke('#000'); doc.path('M130 60 C 120 80, 180 80, 170 60'); doc.stroke('#000'); doc.path('M10 110 C 20 140, 40 140, 50 110'); doc.stroke('#000'); doc.path('M70 110 C 70 140, 110 140, 110 110'); doc.stroke('#000'); doc.path('M130 110 C 120 140, 180 140, 170 110'); doc.stroke('#000'); doc.translate(0, 120); doc.path('M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80'); doc.stroke('#000'); doc.translate(0, 120); doc.path('M10 80 Q 95 10 180 80'); doc.stroke('#000'); doc.translate(0, 120); doc.path('M10 80 Q 52.5 10, 95 80 T 180 80'); doc.stroke('#000'); // arcs doc.addPage(); doc.path(`M10 315 L 110 215 A 30 50 0 0 1 162.55 162.45 L 172.55 152.45 A 30 50 -45 0 1 215.1 109.9 L 315 10`); doc.fillAndStroke('#73B373', '#000'); doc.translate(0, 180); doc.path(`M10 315 L 110 215 A 36 60 0 0 1 150.71 170.29 L 172.55 152.45 A 30 50 -45 0 1 215.1 109.9 L 315 10`); doc.fillAndStroke('#73B373', '#000'); doc.translate(0, 180); doc.path(`M80 80 A 45 45, 0, 0, 0, 125 125 L 125 80 Z`); doc.fillAndStroke('#73B373', '#000'); doc.path(`M230 80 A 45 45, 0, 1, 0, 275 125 L 275 80 Z`); doc.fillAndStroke('#F67676', '#000'); doc.path(`M80 230 A 45 45, 0, 0, 1, 125 275 L 125 230 Z`); doc.fillAndStroke('#AF6FAF', '#000'); doc.path(`M230 230 A 45 45, 0, 1, 1, 275 275 L 275 230 Z`); doc.fillAndStroke('#6F6FEF', '#000'); }); }); }); ================================================ FILE: types/jest.custom-matchers.d.ts ================================================ // Ambient typings to make custom Vitest matchers available to the TS language server in tests. // No external @types packages required. type PartialExceptTheseRequired = Partial & Pick, K>; declare global { // Minimal shape of a TextStream used by tests' helpers interface TextStream { text: string; font: string; fontSize: number; } type TextStreamMatcher = PartialExceptTheseRequired; } declare module 'vitest' { interface Matchers { // Expect the PDF data array to contain a specific chunk sequence toContainChunk(chunk: Array): R; // Expect the PDF data array to contain a text stream matching the TextStream toContainText(textStream: TextStreamMatcher): R; } } export {}; ================================================ FILE: vitest.config.js ================================================ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { globals: true, environment: 'node', include: ['tests/**/*.spec.js'], exclude: ['**/node_modules/**', 'examples/**'], setupFiles: ['./tests/unit/setupTests.js'], }, });