{"version":3,"file":"opWaterfall.js","mappings":"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ACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,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AAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,MAA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","sources":["webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\assert.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\internal\\assert\\assertion_error.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\internal\\errors.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\internal\\util\\comparisons.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\modules\\charts_ops\\op_waterfall.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\modules\\css.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\modules\\fontawesome\\css\\fontawesome.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-html\\directive.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-html\\directives\\class-map.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\utils.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\base64-js\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\buffer\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\call-bind\\callBound.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\call-bind\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\console-browserify\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\define-properties\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\es6-object-assign\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\for-each\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\function-bind\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\function-bind\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\get-intrinsic\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\gopd\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-property-descriptors\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-proto\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-symbols\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-symbols\\shams.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-tostringtag\\shams.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has\\src\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\highcharts\\highcharts-more.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\highcharts\\highcharts.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\ieee754\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\inherits\\inherits_browser.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-arguments\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-callable\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-generator-function\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\polyfill.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\shim.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-typed-array\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\polyfill.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\shim.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-keys\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-keys\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-keys\\isArguments.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\process\\browser.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\util\\support\\isBufferBrowser.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\util\\support\\types.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\util\\util.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\which-typed-array\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\available-typed-arrays\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\decorators\\query-assigned-elements.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\css-tag.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\reactive-element.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-element\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-element\\lit-element.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-html\\lit-html.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\decorators\\custom-element.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\xlsx\\xlsx.mjs"],"sourcesContent":["// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","import { customElement, property } from \"lit/decorators.js\";\r\nimport { html, css, LitElement } from \"lit\";\r\nimport Highcharts from 'highcharts/highcharts';\r\nimport STRINGS from '~/lang/strings_el.json';\r\nimport Utils from '~/utils.js';\r\nimport addMore from 'highcharts/highcharts-more';\r\nimport fontAwesome from '~/modules/fontawesome/css/fontawesome.js';\r\nimport style from '~/modules/css.js';\r\nimport * as XLSX from \"xlsx\";\r\n\r\n// import smartElemenets from '~/modules/smartelements/smartelements.css.js';\r\n// import 'smart-webcomponents/source/smart.elements.js';\r\n// //import Smart from 'smart-webcomponents/source/components/smart.ui.grid.js';\r\n\r\n// //require('smart-webcomponents//source/styles/smart.default.css');\r\n\r\naddMore(Highcharts);\r\n\r\n@customElement(\"op-waterfall\")\r\nexport class OpWaterfall extends LitElement { \r\n static get properties() {\r\n return {\r\n classes: { type: Object },\r\n data: {type: Array, attribute: true, reflect: true }\r\n }\r\n }\r\n \r\n static styles = [fontAwesome,style];\r\n constructor(){\r\n super();\r\n this.classes = { wrapper: true, switchedView: false };\r\n this.data=[];\r\n }\r\n firstUpdated(changedProperties) {\r\n this.fetchData();\r\n }\r\n\r\n fetchData() {\r\n fetch('https://2027.anaptyxi.gov.gr/GetData.ashx?chart=op_cumulative')\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data.errMsg) {\r\n throw new Error(STRINGS.ERRORS.NETWORK_ERROR);\r\n }else{\r\n this.data=data.sort((a,b)=>(a.Titlos>b.Titlos?1:-1));\r\n this._enableChart();\r\n this.initGrid();\r\n }\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n });\r\n }\r\n\r\n initGrid(){\r\n let grid = this.shadowRoot.querySelector(\"#grid\");\r\n grid.options={\r\n data: this.data,\r\n info: false,\r\n paging: false,\r\n searching: false,\r\n columns: [\r\n {data: 'Titlos', title: STRINGS.CHARTS.OPROGRAMMES_WATERFALL.XCOLUMN},\r\n {data: 'Sinolo', width: Utils.amountColWidth,title: STRINGS.CHARTS.OPROGRAMMES_WATERFALL.AMOUNT_TOTAL, className: 'dt-body-right',type: 'num-fmt', render: function (data, type, row) {\r\n return type===\"sort\"?data:data.toLocaleString('el-GR')+\" €\";\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n \r\n render(classes) {\r\n console.log('render waterfall');\r\n return Utils.getChartContainer.call(this,this.data,STRINGS.CHARTS.OPROGRAMMES_WATERFALL.TITLE);\r\n } \r\n \r\n _switchView(){\r\n this.classes.switchedView=!this.classes.switchedView;\r\n this.shadowRoot.querySelector(\".wrapper\").classList.toggle(\"switchedView\");\r\n }\r\n \r\n _download(){\r\n let filename='Export.xlsx';\r\n let exportData = this.data.map(a=>{\r\n let item={};\r\n item[STRINGS.CHARTS.OPROGRAMMES_WATERFALL.XCOLUMN]=a.Titlos;\r\n item[STRINGS.CHARTS.OPROGRAMMES_WATERFALL.AMOUNT_TOTAL]=a.Sinolo;\r\n return item;\r\n });\r\n var ws = XLSX.utils.json_to_sheet(exportData);\r\n var wb = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, \"Data\");\r\n XLSX.writeFile(wb,filename);\r\n\r\n }\r\n\r\n _enableChart() {\r\n Highcharts.chart(\r\n this.shadowRoot.querySelector('#container'), {\r\n chart: {\r\n type: 'waterfall',\r\n },\r\n colors: Utils.getHighchartColors(),\r\n title: {\r\n text: undefined\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n xAxis: {\r\n type: 'category'\r\n },\r\n yAxis: {\r\n title: {\r\n text: STRINGS.CHARTS.OPROGRAMMES_WATERFALL.COLS_YTITLE\r\n }\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n series: [{\r\n name: STRINGS.CHARTS.OPROGRAMMES_WATERFALL.AMOUNT_TOTAL,\r\n data: this.data.map((a)=>{\r\n return {\r\n name: a.Titlos,\r\n y: a.Sinolo/1000000000 \r\n }\r\n }),\r\n showInLegend: true,\r\n colorByPoint: true\r\n }],\r\n //series: sObject,\r\n plotOptions: {\r\n series: {\r\n states: {\r\n inactive: {\r\n opacity: 1\r\n }\r\n },\r\n tooltip: {\r\n headerFormat: \"
{point.key}


\",\r\n pointFormatter: function() {\r\n let x = Utils.round(this.value,2);\r\n return \"
\"+this.series.name+': '+Utils.round(this.y,2).toLocaleString('el-GR')+\" \"+STRINGS.CHARTS.OPROGRAMMES_WATERFALL.COLS_YTITLE+\"
\";\r\n },\r\n useHTML: true\r\n },\r\n borderRadius: 5\r\n }\r\n },\r\n \r\n });\r\n }\r\n}","import { css } from 'lit-element';\r\nexport default css`\r\n.title{\r\n font-weight: bold;\r\n font-size: 20px;\r\n color: #fff;\r\n}\r\n.header{\r\n position: relative;\r\n padding-right: 75px;\r\n padding-left: 10px;\r\n padding-top: 5px;\r\n padding-bottom: 7px;\r\n border-bottom: 1px solid #333;\r\n background: linear-gradient(90deg, rgba(15,80,142,1) 0%, rgba(30,192,235,1) 50%, rgba(126,196,82,1) 100%);\r\n}\r\n.header .actions{\r\n position: absolute;\r\n right: 0;\r\n top: 3px;\r\n padding: 5px 10px;\r\n}\r\n.wrapper{\r\n border: 1px solid #333;\r\n border-radius: 5px;\r\n margin: 0 0px;\r\n overflow: hidden;\r\n}\r\n.header .actions button{\r\n padding: 5px 10px;\r\n}\r\n.header .actions .fa-chart-simple{\r\n display:none;\r\n}\r\n\r\n.wrapper.switchedView .header .actions .fa-chart-simple{\r\n display: inline-block;\r\n}\r\n.wrapper.switchedView .header .actions .fa-table{\r\n display: none;\r\n}\r\n.wrapper .chartPane.tab-pane{\r\n display: block;\r\n}\r\n.wrapper .gridPane.tab-pane{\r\n display: none;\r\n}\r\n.wrapper.switchedView .chartPane.tab-pane{\r\n display: none;\r\n}\r\n.wrapper .gridPane.tab-pane{\r\n display: block;\r\n}\r\n.hTooltipHeader{\r\n font-weight: bold;\r\n margin-bottom: 5px;\r\n text-decoration: underline;\r\n font-size: 12px;\r\n}\r\n.hTooltipBody{\r\n \r\n}\r\n\r\n.tab-content {\r\n > .tab-pane {\r\n display: none;\r\n }\r\n > .active {\r\n display: block;\r\n }\r\n}\r\n.switchedView .tab-content {\r\n > .tab-pane {\r\n display: block;\r\n }\r\n > .active {\r\n display: none;\r\n }\r\n }\r\ntable.dataTable thead th {\r\n text-align: center !important;\r\n}\r\n.centeredHighchart{\r\n text-align: center;\r\n}\r\nop-tree::part(thegrid) .dt-control:before{\r\n content:\"X\";\r\n display: block;\r\n left:0;\r\n top:0;\r\n}\r\n\r\n@media (max-width:576px){\r\n #gridContainer{\r\n display: none;\r\n }\r\n}\r\n`;","/*!\r\n * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com\r\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\r\n * Copyright 2023 Fonticons, Inc.\r\n */\r\nimport { css } from 'lit-element';\r\nexport default css`\r\n.fa{font-family:var(--fa-style-family,\"Font Awesome 6 Free\");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:\"Font Awesome 6 Free\"}.fa-brands,.fab{font-family:\"Font Awesome 6 Brands\"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}\r\n.fa-0:before{content:\"\\\\30\"}.fa-1:before{content:\"\\\\31\"}.fa-2:before{content:\"\\\\32\"}.fa-3:before{content:\"\\\\33\"}.fa-4:before{content:\"\\\\34\"}.fa-5:before{content:\"\\\\35\"}.fa-6:before{content:\"\\\\36\"}.fa-7:before{content:\"\\\\37\"}.fa-8:before{content:\"\\\\38\"}.fa-9:before{content:\"\\\\39\"}.fa-fill-drip:before{content:\"\\\\f576\"}.fa-arrows-to-circle:before{content:\"\\\\e4bd\"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:\"\\\\f138\"}.fa-at:before{content:\"\\\\40\"}.fa-trash-alt:before,.fa-trash-can:before{content:\"\\\\f2ed\"}.fa-text-height:before{content:\"\\\\f034\"}.fa-user-times:before,.fa-user-xmark:before{content:\"\\\\f235\"}.fa-stethoscope:before{content:\"\\\\f0f1\"}.fa-comment-alt:before,.fa-message:before{content:\"\\\\f27a\"}.fa-info:before{content:\"\\\\f129\"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:\"\\\\f422\"}.fa-explosion:before{content:\"\\\\e4e9\"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:\"\\\\f15c\"}.fa-wave-square:before{content:\"\\\\f83e\"}.fa-ring:before{content:\"\\\\f70b\"}.fa-building-un:before{content:\"\\\\e4d9\"}.fa-dice-three:before{content:\"\\\\f527\"}.fa-calendar-alt:before,.fa-calendar-days:before{content:\"\\\\f073\"}.fa-anchor-circle-check:before{content:\"\\\\e4aa\"}.fa-building-circle-arrow-right:before{content:\"\\\\e4d1\"}.fa-volleyball-ball:before,.fa-volleyball:before{content:\"\\\\f45f\"}.fa-arrows-up-to-line:before{content:\"\\\\e4c2\"}.fa-sort-desc:before,.fa-sort-down:before{content:\"\\\\f0dd\"}.fa-circle-minus:before,.fa-minus-circle:before{content:\"\\\\f056\"}.fa-door-open:before{content:\"\\\\f52b\"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:\"\\\\f2f5\"}.fa-atom:before{content:\"\\\\f5d2\"}.fa-soap:before{content:\"\\\\e06e\"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:\"\\\\f86d\"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:\"\\\\f539\"}.fa-bridge-circle-check:before{content:\"\\\\e4c9\"}.fa-pump-medical:before{content:\"\\\\e06a\"}.fa-fingerprint:before{content:\"\\\\f577\"}.fa-hand-point-right:before{content:\"\\\\f0a4\"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:\"\\\\f689\"}.fa-forward-step:before,.fa-step-forward:before{content:\"\\\\f051\"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:\"\\\\f5b8\"}.fa-flag-checkered:before{content:\"\\\\f11e\"}.fa-football-ball:before,.fa-football:before{content:\"\\\\f44e\"}.fa-school-circle-exclamation:before{content:\"\\\\e56c\"}.fa-crop:before{content:\"\\\\f125\"}.fa-angle-double-down:before,.fa-angles-down:before{content:\"\\\\f103\"}.fa-users-rectangle:before{content:\"\\\\e594\"}.fa-people-roof:before{content:\"\\\\e537\"}.fa-people-line:before{content:\"\\\\e534\"}.fa-beer-mug-empty:before,.fa-beer:before{content:\"\\\\f0fc\"}.fa-diagram-predecessor:before{content:\"\\\\e477\"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:\"\\\\f176\"}.fa-burn:before,.fa-fire-flame-simple:before{content:\"\\\\f46a\"}.fa-male:before,.fa-person:before{content:\"\\\\f183\"}.fa-laptop:before{content:\"\\\\f109\"}.fa-file-csv:before{content:\"\\\\f6dd\"}.fa-menorah:before{content:\"\\\\f676\"}.fa-truck-plane:before{content:\"\\\\e58f\"}.fa-record-vinyl:before{content:\"\\\\f8d9\"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:\"\\\\f587\"}.fa-bong:before{content:\"\\\\f55c\"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:\"\\\\f67b\"}.fa-arrow-down-up-across-line:before{content:\"\\\\e4af\"}.fa-spoon:before,.fa-utensil-spoon:before{content:\"\\\\f2e5\"}.fa-jar-wheat:before{content:\"\\\\e517\"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:\"\\\\f674\"}.fa-file-circle-exclamation:before{content:\"\\\\e4eb\"}.fa-circle-h:before,.fa-hospital-symbol:before{content:\"\\\\f47e\"}.fa-pager:before{content:\"\\\\f815\"}.fa-address-book:before,.fa-contact-book:before{content:\"\\\\f2b9\"}.fa-strikethrough:before{content:\"\\\\f0cc\"}.fa-k:before{content:\"\\\\4b\"}.fa-landmark-flag:before{content:\"\\\\e51c\"}.fa-pencil-alt:before,.fa-pencil:before{content:\"\\\\f303\"}.fa-backward:before{content:\"\\\\f04a\"}.fa-caret-right:before{content:\"\\\\f0da\"}.fa-comments:before{content:\"\\\\f086\"}.fa-file-clipboard:before,.fa-paste:before{content:\"\\\\f0ea\"}.fa-code-pull-request:before{content:\"\\\\e13c\"}.fa-clipboard-list:before{content:\"\\\\f46d\"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:\"\\\\f4de\"}.fa-user-check:before{content:\"\\\\f4fc\"}.fa-vial-virus:before{content:\"\\\\e597\"}.fa-sheet-plastic:before{content:\"\\\\e571\"}.fa-blog:before{content:\"\\\\f781\"}.fa-user-ninja:before{content:\"\\\\f504\"}.fa-person-arrow-up-from-line:before{content:\"\\\\e539\"}.fa-scroll-torah:before,.fa-torah:before{content:\"\\\\f6a0\"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:\"\\\\f458\"}.fa-toggle-off:before{content:\"\\\\f204\"}.fa-archive:before,.fa-box-archive:before{content:\"\\\\f187\"}.fa-person-drowning:before{content:\"\\\\e545\"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:\"\\\\f886\"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:\"\\\\f58a\"}.fa-spray-can:before{content:\"\\\\f5bd\"}.fa-truck-monster:before{content:\"\\\\f63b\"}.fa-w:before{content:\"\\\\57\"}.fa-earth-africa:before,.fa-globe-africa:before{content:\"\\\\f57c\"}.fa-rainbow:before{content:\"\\\\f75b\"}.fa-circle-notch:before{content:\"\\\\f1ce\"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:\"\\\\f3fa\"}.fa-paw:before{content:\"\\\\f1b0\"}.fa-cloud:before{content:\"\\\\f0c2\"}.fa-trowel-bricks:before{content:\"\\\\e58a\"}.fa-face-flushed:before,.fa-flushed:before{content:\"\\\\f579\"}.fa-hospital-user:before{content:\"\\\\f80d\"}.fa-tent-arrow-left-right:before{content:\"\\\\e57f\"}.fa-gavel:before,.fa-legal:before{content:\"\\\\f0e3\"}.fa-binoculars:before{content:\"\\\\f1e5\"}.fa-microphone-slash:before{content:\"\\\\f131\"}.fa-box-tissue:before{content:\"\\\\e05b\"}.fa-motorcycle:before{content:\"\\\\f21c\"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:\"\\\\f562\"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:\"\\\\f5ae\"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:\"\\\\e068\"}.fa-mars-and-venus-burst:before{content:\"\\\\e523\"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:\"\\\\f152\"}.fa-cut:before,.fa-scissors:before{content:\"\\\\f0c4\"}.fa-sun-plant-wilt:before{content:\"\\\\e57a\"}.fa-toilets-portable:before{content:\"\\\\e584\"}.fa-hockey-puck:before{content:\"\\\\f453\"}.fa-table:before{content:\"\\\\f0ce\"}.fa-magnifying-glass-arrow-right:before{content:\"\\\\e521\"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:\"\\\\f566\"}.fa-users-slash:before{content:\"\\\\e073\"}.fa-clover:before{content:\"\\\\e139\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\\\f3e5\"}.fa-star-and-crescent:before{content:\"\\\\f699\"}.fa-house-fire:before{content:\"\\\\e50c\"}.fa-minus-square:before,.fa-square-minus:before{content:\"\\\\f146\"}.fa-helicopter:before{content:\"\\\\f533\"}.fa-compass:before{content:\"\\\\f14e\"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:\"\\\\f150\"}.fa-file-circle-question:before{content:\"\\\\e4ef\"}.fa-laptop-code:before{content:\"\\\\f5fc\"}.fa-swatchbook:before{content:\"\\\\f5c3\"}.fa-prescription-bottle:before{content:\"\\\\f485\"}.fa-bars:before,.fa-navicon:before{content:\"\\\\f0c9\"}.fa-people-group:before{content:\"\\\\e533\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\\\\f253\"}.fa-heart-broken:before,.fa-heart-crack:before{content:\"\\\\f7a9\"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:\"\\\\f360\"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:\"\\\\f597\"}.fa-film:before{content:\"\\\\f008\"}.fa-ruler-horizontal:before{content:\"\\\\f547\"}.fa-people-robbery:before{content:\"\\\\e536\"}.fa-lightbulb:before{content:\"\\\\f0eb\"}.fa-caret-left:before{content:\"\\\\f0d9\"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:\"\\\\f06a\"}.fa-school-circle-xmark:before{content:\"\\\\e56d\"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:\"\\\\f08b\"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:\"\\\\f13a\"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:\"\\\\f13e\"}.fa-cloud-showers-heavy:before{content:\"\\\\f740\"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:\"\\\\f58f\"}.fa-sitemap:before{content:\"\\\\f0e8\"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:\"\\\\f4b9\"}.fa-memory:before{content:\"\\\\f538\"}.fa-road-spikes:before{content:\"\\\\e568\"}.fa-fire-burner:before{content:\"\\\\e4f1\"}.fa-flag:before{content:\"\\\\f024\"}.fa-hanukiah:before{content:\"\\\\f6e6\"}.fa-feather:before{content:\"\\\\f52d\"}.fa-volume-down:before,.fa-volume-low:before{content:\"\\\\f027\"}.fa-comment-slash:before{content:\"\\\\f4b3\"}.fa-cloud-sun-rain:before{content:\"\\\\f743\"}.fa-compress:before{content:\"\\\\f066\"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:\"\\\\e2cd\"}.fa-ankh:before{content:\"\\\\f644\"}.fa-hands-holding-child:before{content:\"\\\\e4fa\"}.fa-asterisk:before{content:\"\\\\2a\"}.fa-check-square:before,.fa-square-check:before{content:\"\\\\f14a\"}.fa-peseta-sign:before{content:\"\\\\e221\"}.fa-header:before,.fa-heading:before{content:\"\\\\f1dc\"}.fa-ghost:before{content:\"\\\\f6e2\"}.fa-list-squares:before,.fa-list:before{content:\"\\\\f03a\"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:\"\\\\f87b\"}.fa-cart-plus:before{content:\"\\\\f217\"}.fa-gamepad:before{content:\"\\\\f11b\"}.fa-circle-dot:before,.fa-dot-circle:before{content:\"\\\\f192\"}.fa-dizzy:before,.fa-face-dizzy:before{content:\"\\\\f567\"}.fa-egg:before{content:\"\\\\f7fb\"}.fa-house-medical-circle-xmark:before{content:\"\\\\e513\"}.fa-campground:before{content:\"\\\\f6bb\"}.fa-folder-plus:before{content:\"\\\\f65e\"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:\"\\\\f1e3\"}.fa-paint-brush:before,.fa-paintbrush:before{content:\"\\\\f1fc\"}.fa-lock:before{content:\"\\\\f023\"}.fa-gas-pump:before{content:\"\\\\f52f\"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:\"\\\\f593\"}.fa-map-location:before,.fa-map-marked:before{content:\"\\\\f59f\"}.fa-house-flood-water:before{content:\"\\\\e50e\"}.fa-tree:before{content:\"\\\\f1bb\"}.fa-bridge-lock:before{content:\"\\\\e4cc\"}.fa-sack-dollar:before{content:\"\\\\f81d\"}.fa-edit:before,.fa-pen-to-square:before{content:\"\\\\f044\"}.fa-car-side:before{content:\"\\\\f5e4\"}.fa-share-alt:before,.fa-share-nodes:before{content:\"\\\\f1e0\"}.fa-heart-circle-minus:before{content:\"\\\\e4ff\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\\\\f252\"}.fa-microscope:before{content:\"\\\\f610\"}.fa-sink:before{content:\"\\\\e06d\"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:\"\\\\f290\"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:\"\\\\f881\"}.fa-mitten:before{content:\"\\\\f7b5\"}.fa-person-rays:before{content:\"\\\\e54d\"}.fa-users:before{content:\"\\\\f0c0\"}.fa-eye-slash:before{content:\"\\\\f070\"}.fa-flask-vial:before{content:\"\\\\e4f3\"}.fa-hand-paper:before,.fa-hand:before{content:\"\\\\f256\"}.fa-om:before{content:\"\\\\f679\"}.fa-worm:before{content:\"\\\\e599\"}.fa-house-circle-xmark:before{content:\"\\\\e50b\"}.fa-plug:before{content:\"\\\\f1e6\"}.fa-chevron-up:before{content:\"\\\\f077\"}.fa-hand-spock:before{content:\"\\\\f259\"}.fa-stopwatch:before{content:\"\\\\f2f2\"}.fa-face-kiss:before,.fa-kiss:before{content:\"\\\\f596\"}.fa-bridge-circle-xmark:before{content:\"\\\\e4cb\"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:\"\\\\f589\"}.fa-chess-bishop:before{content:\"\\\\f43a\"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:\"\\\\f58c\"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:\"\\\\f2a4\"}.fa-road-circle-check:before{content:\"\\\\e564\"}.fa-dice-five:before{content:\"\\\\f523\"}.fa-rss-square:before,.fa-square-rss:before{content:\"\\\\f143\"}.fa-land-mine-on:before{content:\"\\\\e51b\"}.fa-i-cursor:before{content:\"\\\\f246\"}.fa-stamp:before{content:\"\\\\f5bf\"}.fa-stairs:before{content:\"\\\\e289\"}.fa-i:before{content:\"\\\\49\"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:\"\\\\f6f2\"}.fa-pills:before{content:\"\\\\f484\"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:\"\\\\f581\"}.fa-tooth:before{content:\"\\\\f5c9\"}.fa-v:before{content:\"\\\\56\"}.fa-bangladeshi-taka-sign:before{content:\"\\\\e2e6\"}.fa-bicycle:before{content:\"\\\\f206\"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:\"\\\\e579\"}.fa-head-side-cough-slash:before{content:\"\\\\e062\"}.fa-ambulance:before,.fa-truck-medical:before{content:\"\\\\f0f9\"}.fa-wheat-awn-circle-exclamation:before{content:\"\\\\e598\"}.fa-snowman:before{content:\"\\\\f7d0\"}.fa-mortar-pestle:before{content:\"\\\\f5a7\"}.fa-road-barrier:before{content:\"\\\\e562\"}.fa-school:before{content:\"\\\\f549\"}.fa-igloo:before{content:\"\\\\f7ae\"}.fa-joint:before{content:\"\\\\f595\"}.fa-angle-right:before{content:\"\\\\f105\"}.fa-horse:before{content:\"\\\\f6f0\"}.fa-q:before{content:\"\\\\51\"}.fa-g:before{content:\"\\\\47\"}.fa-notes-medical:before{content:\"\\\\f481\"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\\\\f2c9\"}.fa-dong-sign:before{content:\"\\\\e169\"}.fa-capsules:before{content:\"\\\\f46b\"}.fa-poo-bolt:before,.fa-poo-storm:before{content:\"\\\\f75a\"}.fa-face-frown-open:before,.fa-frown-open:before{content:\"\\\\f57a\"}.fa-hand-point-up:before{content:\"\\\\f0a6\"}.fa-money-bill:before{content:\"\\\\f0d6\"}.fa-bookmark:before{content:\"\\\\f02e\"}.fa-align-justify:before{content:\"\\\\f039\"}.fa-umbrella-beach:before{content:\"\\\\f5ca\"}.fa-helmet-un:before{content:\"\\\\e503\"}.fa-bullseye:before{content:\"\\\\f140\"}.fa-bacon:before{content:\"\\\\f7e5\"}.fa-hand-point-down:before{content:\"\\\\f0a7\"}.fa-arrow-up-from-bracket:before{content:\"\\\\e09a\"}.fa-folder-blank:before,.fa-folder:before{content:\"\\\\f07b\"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:\"\\\\f478\"}.fa-radiation:before{content:\"\\\\f7b9\"}.fa-chart-simple:before{content:\"\\\\e473\"}.fa-mars-stroke:before{content:\"\\\\f229\"}.fa-vial:before{content:\"\\\\f492\"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:\"\\\\f624\"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:\"\\\\e2ca\"}.fa-e:before{content:\"\\\\45\"}.fa-pen-alt:before,.fa-pen-clip:before{content:\"\\\\f305\"}.fa-bridge-circle-exclamation:before{content:\"\\\\e4ca\"}.fa-user:before{content:\"\\\\f007\"}.fa-school-circle-check:before{content:\"\\\\e56b\"}.fa-dumpster:before{content:\"\\\\f793\"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:\"\\\\f5b6\"}.fa-building-user:before{content:\"\\\\e4da\"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:\"\\\\f191\"}.fa-highlighter:before{content:\"\\\\f591\"}.fa-key:before{content:\"\\\\f084\"}.fa-bullhorn:before{content:\"\\\\f0a1\"}.fa-globe:before{content:\"\\\\f0ac\"}.fa-synagogue:before{content:\"\\\\f69b\"}.fa-person-half-dress:before{content:\"\\\\e548\"}.fa-road-bridge:before{content:\"\\\\e563\"}.fa-location-arrow:before{content:\"\\\\f124\"}.fa-c:before{content:\"\\\\43\"}.fa-tablet-button:before{content:\"\\\\f10a\"}.fa-building-lock:before{content:\"\\\\e4d6\"}.fa-pizza-slice:before{content:\"\\\\f818\"}.fa-money-bill-wave:before{content:\"\\\\f53a\"}.fa-area-chart:before,.fa-chart-area:before{content:\"\\\\f1fe\"}.fa-house-flag:before{content:\"\\\\e50d\"}.fa-person-circle-minus:before{content:\"\\\\e540\"}.fa-ban:before,.fa-cancel:before{content:\"\\\\f05e\"}.fa-camera-rotate:before{content:\"\\\\e0d8\"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:\"\\\\f5d0\"}.fa-star:before{content:\"\\\\f005\"}.fa-repeat:before{content:\"\\\\f363\"}.fa-cross:before{content:\"\\\\f654\"}.fa-box:before{content:\"\\\\f466\"}.fa-venus-mars:before{content:\"\\\\f228\"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:\"\\\\f245\"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:\"\\\\f31e\"}.fa-charging-station:before{content:\"\\\\f5e7\"}.fa-shapes:before,.fa-triangle-circle-square:before{content:\"\\\\f61f\"}.fa-random:before,.fa-shuffle:before{content:\"\\\\f074\"}.fa-person-running:before,.fa-running:before{content:\"\\\\f70c\"}.fa-mobile-retro:before{content:\"\\\\e527\"}.fa-grip-lines-vertical:before{content:\"\\\\f7a5\"}.fa-spider:before{content:\"\\\\f717\"}.fa-hands-bound:before{content:\"\\\\e4f9\"}.fa-file-invoice-dollar:before{content:\"\\\\f571\"}.fa-plane-circle-exclamation:before{content:\"\\\\e556\"}.fa-x-ray:before{content:\"\\\\f497\"}.fa-spell-check:before{content:\"\\\\f891\"}.fa-slash:before{content:\"\\\\f715\"}.fa-computer-mouse:before,.fa-mouse:before{content:\"\\\\f8cc\"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:\"\\\\f090\"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:\"\\\\e070\"}.fa-server:before{content:\"\\\\f233\"}.fa-virus-covid-slash:before{content:\"\\\\e4a9\"}.fa-shop-lock:before{content:\"\\\\e4a5\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\\\\f251\"}.fa-blender-phone:before{content:\"\\\\f6b6\"}.fa-building-wheat:before{content:\"\\\\e4db\"}.fa-person-breastfeeding:before{content:\"\\\\e53a\"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:\"\\\\f2f6\"}.fa-venus:before{content:\"\\\\f221\"}.fa-passport:before{content:\"\\\\f5ab\"}.fa-heart-pulse:before,.fa-heartbeat:before{content:\"\\\\f21e\"}.fa-people-carry-box:before,.fa-people-carry:before{content:\"\\\\f4ce\"}.fa-temperature-high:before{content:\"\\\\f769\"}.fa-microchip:before{content:\"\\\\f2db\"}.fa-crown:before{content:\"\\\\f521\"}.fa-weight-hanging:before{content:\"\\\\f5cd\"}.fa-xmarks-lines:before{content:\"\\\\e59a\"}.fa-file-prescription:before{content:\"\\\\f572\"}.fa-weight-scale:before,.fa-weight:before{content:\"\\\\f496\"}.fa-user-friends:before,.fa-user-group:before{content:\"\\\\f500\"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:\"\\\\f15e\"}.fa-chess-knight:before{content:\"\\\\f441\"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:\"\\\\f59b\"}.fa-wheelchair:before{content:\"\\\\f193\"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:\"\\\\f0aa\"}.fa-toggle-on:before{content:\"\\\\f205\"}.fa-person-walking:before,.fa-walking:before{content:\"\\\\f554\"}.fa-l:before{content:\"\\\\4c\"}.fa-fire:before{content:\"\\\\f06d\"}.fa-bed-pulse:before,.fa-procedures:before{content:\"\\\\f487\"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:\"\\\\f197\"}.fa-face-laugh:before,.fa-laugh:before{content:\"\\\\f599\"}.fa-folder-open:before{content:\"\\\\f07c\"}.fa-heart-circle-plus:before{content:\"\\\\e500\"}.fa-code-fork:before{content:\"\\\\e13b\"}.fa-city:before{content:\"\\\\f64f\"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:\"\\\\f3c9\"}.fa-pepper-hot:before{content:\"\\\\f816\"}.fa-unlock:before{content:\"\\\\f09c\"}.fa-colon-sign:before{content:\"\\\\e140\"}.fa-headset:before{content:\"\\\\f590\"}.fa-store-slash:before{content:\"\\\\e071\"}.fa-road-circle-xmark:before{content:\"\\\\e566\"}.fa-user-minus:before{content:\"\\\\f503\"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:\"\\\\f22a\"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:\"\\\\f79f\"}.fa-clipboard:before{content:\"\\\\f328\"}.fa-house-circle-exclamation:before{content:\"\\\\e50a\"}.fa-file-arrow-up:before,.fa-file-upload:before{content:\"\\\\f574\"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:\"\\\\f1eb\"}.fa-bath:before,.fa-bathtub:before{content:\"\\\\f2cd\"}.fa-underline:before{content:\"\\\\f0cd\"}.fa-user-edit:before,.fa-user-pen:before{content:\"\\\\f4ff\"}.fa-signature:before{content:\"\\\\f5b7\"}.fa-stroopwafel:before{content:\"\\\\f551\"}.fa-bold:before{content:\"\\\\f032\"}.fa-anchor-lock:before{content:\"\\\\e4ad\"}.fa-building-ngo:before{content:\"\\\\e4d7\"}.fa-manat-sign:before{content:\"\\\\e1d5\"}.fa-not-equal:before{content:\"\\\\f53e\"}.fa-border-style:before,.fa-border-top-left:before{content:\"\\\\f853\"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:\"\\\\f5a0\"}.fa-jedi:before{content:\"\\\\f669\"}.fa-poll:before,.fa-square-poll-vertical:before{content:\"\\\\f681\"}.fa-mug-hot:before{content:\"\\\\f7b6\"}.fa-battery-car:before,.fa-car-battery:before{content:\"\\\\f5df\"}.fa-gift:before{content:\"\\\\f06b\"}.fa-dice-two:before{content:\"\\\\f528\"}.fa-chess-queen:before{content:\"\\\\f445\"}.fa-glasses:before{content:\"\\\\f530\"}.fa-chess-board:before{content:\"\\\\f43c\"}.fa-building-circle-check:before{content:\"\\\\e4d2\"}.fa-person-chalkboard:before{content:\"\\\\e53d\"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:\"\\\\f22b\"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:\"\\\\f255\"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:\"\\\\f151\"}.fa-cloud-showers-water:before{content:\"\\\\e4e4\"}.fa-bar-chart:before,.fa-chart-bar:before{content:\"\\\\f080\"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:\"\\\\e05e\"}.fa-less-than-equal:before{content:\"\\\\f537\"}.fa-train:before{content:\"\\\\f238\"}.fa-eye-low-vision:before,.fa-low-vision:before{content:\"\\\\f2a8\"}.fa-crow:before{content:\"\\\\f520\"}.fa-sailboat:before{content:\"\\\\e445\"}.fa-window-restore:before{content:\"\\\\f2d2\"}.fa-plus-square:before,.fa-square-plus:before{content:\"\\\\f0fe\"}.fa-torii-gate:before{content:\"\\\\f6a1\"}.fa-frog:before{content:\"\\\\f52e\"}.fa-bucket:before{content:\"\\\\e4cf\"}.fa-image:before{content:\"\\\\f03e\"}.fa-microphone:before{content:\"\\\\f130\"}.fa-cow:before{content:\"\\\\f6c8\"}.fa-caret-up:before{content:\"\\\\f0d8\"}.fa-screwdriver:before{content:\"\\\\f54a\"}.fa-folder-closed:before{content:\"\\\\e185\"}.fa-house-tsunami:before{content:\"\\\\e515\"}.fa-square-nfi:before{content:\"\\\\e576\"}.fa-arrow-up-from-ground-water:before{content:\"\\\\e4b5\"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:\"\\\\f57b\"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:\"\\\\f2ea\"}.fa-columns:before,.fa-table-columns:before{content:\"\\\\f0db\"}.fa-lemon:before{content:\"\\\\f094\"}.fa-head-side-mask:before{content:\"\\\\e063\"}.fa-handshake:before{content:\"\\\\f2b5\"}.fa-gem:before{content:\"\\\\f3a5\"}.fa-dolly-box:before,.fa-dolly:before{content:\"\\\\f472\"}.fa-smoking:before{content:\"\\\\f48d\"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:\"\\\\f78c\"}.fa-monument:before{content:\"\\\\f5a6\"}.fa-snowplow:before{content:\"\\\\f7d2\"}.fa-angle-double-right:before,.fa-angles-right:before{content:\"\\\\f101\"}.fa-cannabis:before{content:\"\\\\f55f\"}.fa-circle-play:before,.fa-play-circle:before{content:\"\\\\f144\"}.fa-tablets:before{content:\"\\\\f490\"}.fa-ethernet:before{content:\"\\\\f796\"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:\"\\\\f153\"}.fa-chair:before{content:\"\\\\f6c0\"}.fa-check-circle:before,.fa-circle-check:before{content:\"\\\\f058\"}.fa-circle-stop:before,.fa-stop-circle:before{content:\"\\\\f28d\"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:\"\\\\f568\"}.fa-plate-wheat:before{content:\"\\\\e55a\"}.fa-icicles:before{content:\"\\\\f7ad\"}.fa-person-shelter:before{content:\"\\\\e54f\"}.fa-neuter:before{content:\"\\\\f22c\"}.fa-id-badge:before{content:\"\\\\f2c1\"}.fa-marker:before{content:\"\\\\f5a1\"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:\"\\\\f59a\"}.fa-helicopter-symbol:before{content:\"\\\\e502\"}.fa-universal-access:before{content:\"\\\\f29a\"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:\"\\\\f139\"}.fa-lari-sign:before{content:\"\\\\e1c8\"}.fa-volcano:before{content:\"\\\\f770\"}.fa-person-walking-dashed-line-arrow-right:before{content:\"\\\\e553\"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:\"\\\\f154\"}.fa-viruses:before{content:\"\\\\e076\"}.fa-square-person-confined:before{content:\"\\\\e577\"}.fa-user-tie:before{content:\"\\\\f508\"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:\"\\\\f175\"}.fa-tent-arrow-down-to-line:before{content:\"\\\\e57e\"}.fa-certificate:before{content:\"\\\\f0a3\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\\\f122\"}.fa-suitcase:before{content:\"\\\\f0f2\"}.fa-person-skating:before,.fa-skating:before{content:\"\\\\f7c5\"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:\"\\\\f662\"}.fa-camera-retro:before{content:\"\\\\f083\"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:\"\\\\f0ab\"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:\"\\\\f56f\"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:\"\\\\f14c\"}.fa-box-open:before{content:\"\\\\f49e\"}.fa-scroll:before{content:\"\\\\f70e\"}.fa-spa:before{content:\"\\\\f5bb\"}.fa-location-pin-lock:before{content:\"\\\\e51f\"}.fa-pause:before{content:\"\\\\f04c\"}.fa-hill-avalanche:before{content:\"\\\\e507\"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\\\\f2cb\"}.fa-bomb:before{content:\"\\\\f1e2\"}.fa-registered:before{content:\"\\\\f25d\"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:\"\\\\f2bb\"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:\"\\\\f516\"}.fa-subscript:before{content:\"\\\\f12c\"}.fa-diamond-turn-right:before,.fa-directions:before{content:\"\\\\f5eb\"}.fa-burst:before{content:\"\\\\e4dc\"}.fa-house-laptop:before,.fa-laptop-house:before{content:\"\\\\e066\"}.fa-face-tired:before,.fa-tired:before{content:\"\\\\f5c8\"}.fa-money-bills:before{content:\"\\\\e1f3\"}.fa-smog:before{content:\"\\\\f75f\"}.fa-crutch:before{content:\"\\\\f7f7\"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:\"\\\\f0ee\"}.fa-palette:before{content:\"\\\\f53f\"}.fa-arrows-turn-right:before{content:\"\\\\e4c0\"}.fa-vest:before{content:\"\\\\e085\"}.fa-ferry:before{content:\"\\\\e4ea\"}.fa-arrows-down-to-people:before{content:\"\\\\e4b9\"}.fa-seedling:before,.fa-sprout:before{content:\"\\\\f4d8\"}.fa-arrows-alt-h:before,.fa-left-right:before{content:\"\\\\f337\"}.fa-boxes-packing:before{content:\"\\\\e4c7\"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:\"\\\\f0a8\"}.fa-group-arrows-rotate:before{content:\"\\\\e4f6\"}.fa-bowl-food:before{content:\"\\\\e4c6\"}.fa-candy-cane:before{content:\"\\\\f786\"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:\"\\\\f160\"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:\"\\\\f76c\"}.fa-remove-format:before,.fa-text-slash:before{content:\"\\\\f87d\"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:\"\\\\f4da\"}.fa-file-word:before{content:\"\\\\f1c2\"}.fa-file-powerpoint:before{content:\"\\\\f1c4\"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:\"\\\\f07e\"}.fa-house-lock:before{content:\"\\\\e510\"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:\"\\\\f0ed\"}.fa-children:before{content:\"\\\\e4e1\"}.fa-blackboard:before,.fa-chalkboard:before{content:\"\\\\f51b\"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:\"\\\\f4fa\"}.fa-envelope-open:before{content:\"\\\\f2b6\"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:\"\\\\e05f\"}.fa-mattress-pillow:before{content:\"\\\\e525\"}.fa-guarani-sign:before{content:\"\\\\e19a\"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:\"\\\\f021\"}.fa-fire-extinguisher:before{content:\"\\\\f134\"}.fa-cruzeiro-sign:before{content:\"\\\\e152\"}.fa-greater-than-equal:before{content:\"\\\\f532\"}.fa-shield-alt:before,.fa-shield-halved:before{content:\"\\\\f3ed\"}.fa-atlas:before,.fa-book-atlas:before{content:\"\\\\f558\"}.fa-virus:before{content:\"\\\\e074\"}.fa-envelope-circle-check:before{content:\"\\\\e4e8\"}.fa-layer-group:before{content:\"\\\\f5fd\"}.fa-arrows-to-dot:before{content:\"\\\\e4be\"}.fa-archway:before{content:\"\\\\f557\"}.fa-heart-circle-check:before{content:\"\\\\e4fd\"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:\"\\\\f6f1\"}.fa-file-archive:before,.fa-file-zipper:before{content:\"\\\\f1c6\"}.fa-square:before{content:\"\\\\f0c8\"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:\"\\\\f000\"}.fa-couch:before{content:\"\\\\f4b8\"}.fa-cedi-sign:before{content:\"\\\\e0df\"}.fa-italic:before{content:\"\\\\f033\"}.fa-church:before{content:\"\\\\f51d\"}.fa-comments-dollar:before{content:\"\\\\f653\"}.fa-democrat:before{content:\"\\\\f747\"}.fa-z:before{content:\"\\\\5a\"}.fa-person-skiing:before,.fa-skiing:before{content:\"\\\\f7c9\"}.fa-road-lock:before{content:\"\\\\e567\"}.fa-a:before{content:\"\\\\41\"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:\"\\\\e03f\"}.fa-feather-alt:before,.fa-feather-pointed:before{content:\"\\\\f56b\"}.fa-p:before{content:\"\\\\50\"}.fa-snowflake:before{content:\"\\\\f2dc\"}.fa-newspaper:before{content:\"\\\\f1ea\"}.fa-ad:before,.fa-rectangle-ad:before{content:\"\\\\f641\"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:\"\\\\f0a9\"}.fa-filter-circle-xmark:before{content:\"\\\\e17b\"}.fa-locust:before{content:\"\\\\e520\"}.fa-sort:before,.fa-unsorted:before{content:\"\\\\f0dc\"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:\"\\\\f0cb\"}.fa-person-dress-burst:before{content:\"\\\\e544\"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:\"\\\\f53d\"}.fa-vector-square:before{content:\"\\\\f5cb\"}.fa-bread-slice:before{content:\"\\\\f7ec\"}.fa-language:before{content:\"\\\\f1ab\"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:\"\\\\f598\"}.fa-filter:before{content:\"\\\\f0b0\"}.fa-question:before{content:\"\\\\3f\"}.fa-file-signature:before{content:\"\\\\f573\"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:\"\\\\f0b2\"}.fa-house-chimney-user:before{content:\"\\\\e065\"}.fa-hand-holding-heart:before{content:\"\\\\f4be\"}.fa-puzzle-piece:before{content:\"\\\\f12e\"}.fa-money-check:before{content:\"\\\\f53c\"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:\"\\\\f5c0\"}.fa-code:before{content:\"\\\\f121\"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:\"\\\\f7a0\"}.fa-building-circle-exclamation:before{content:\"\\\\e4d3\"}.fa-magnifying-glass-chart:before{content:\"\\\\e522\"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:\"\\\\f08e\"}.fa-cubes-stacked:before{content:\"\\\\e4e6\"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:\"\\\\f159\"}.fa-virus-covid:before{content:\"\\\\e4a8\"}.fa-austral-sign:before{content:\"\\\\e0a9\"}.fa-f:before{content:\"\\\\46\"}.fa-leaf:before{content:\"\\\\f06c\"}.fa-road:before{content:\"\\\\f018\"}.fa-cab:before,.fa-taxi:before{content:\"\\\\f1ba\"}.fa-person-circle-plus:before{content:\"\\\\e541\"}.fa-chart-pie:before,.fa-pie-chart:before{content:\"\\\\f200\"}.fa-bolt-lightning:before{content:\"\\\\e0b7\"}.fa-sack-xmark:before{content:\"\\\\e56a\"}.fa-file-excel:before{content:\"\\\\f1c3\"}.fa-file-contract:before{content:\"\\\\f56c\"}.fa-fish-fins:before{content:\"\\\\e4f2\"}.fa-building-flag:before{content:\"\\\\e4d5\"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:\"\\\\f582\"}.fa-object-ungroup:before{content:\"\\\\f248\"}.fa-poop:before{content:\"\\\\f619\"}.fa-location-pin:before,.fa-map-marker:before{content:\"\\\\f041\"}.fa-kaaba:before{content:\"\\\\f66b\"}.fa-toilet-paper:before{content:\"\\\\f71e\"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:\"\\\\f807\"}.fa-eject:before{content:\"\\\\f052\"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:\"\\\\f35a\"}.fa-plane-circle-check:before{content:\"\\\\e555\"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:\"\\\\f5a5\"}.fa-object-group:before{content:\"\\\\f247\"}.fa-chart-line:before,.fa-line-chart:before{content:\"\\\\f201\"}.fa-mask-ventilator:before{content:\"\\\\e524\"}.fa-arrow-right:before{content:\"\\\\f061\"}.fa-map-signs:before,.fa-signs-post:before{content:\"\\\\f277\"}.fa-cash-register:before{content:\"\\\\f788\"}.fa-person-circle-question:before{content:\"\\\\e542\"}.fa-h:before{content:\"\\\\48\"}.fa-tarp:before{content:\"\\\\e57b\"}.fa-screwdriver-wrench:before,.fa-tools:before{content:\"\\\\f7d9\"}.fa-arrows-to-eye:before{content:\"\\\\e4bf\"}.fa-plug-circle-bolt:before{content:\"\\\\e55b\"}.fa-heart:before{content:\"\\\\f004\"}.fa-mars-and-venus:before{content:\"\\\\f224\"}.fa-home-user:before,.fa-house-user:before{content:\"\\\\e1b0\"}.fa-dumpster-fire:before{content:\"\\\\f794\"}.fa-house-crack:before{content:\"\\\\e3b1\"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:\"\\\\f561\"}.fa-face-surprise:before,.fa-surprise:before{content:\"\\\\f5c2\"}.fa-bottle-water:before{content:\"\\\\e4c5\"}.fa-circle-pause:before,.fa-pause-circle:before{content:\"\\\\f28b\"}.fa-toilet-paper-slash:before{content:\"\\\\e072\"}.fa-apple-alt:before,.fa-apple-whole:before{content:\"\\\\f5d1\"}.fa-kitchen-set:before{content:\"\\\\e51a\"}.fa-r:before{content:\"\\\\52\"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\\\\f2ca\"}.fa-cube:before{content:\"\\\\f1b2\"}.fa-bitcoin-sign:before{content:\"\\\\e0b4\"}.fa-shield-dog:before{content:\"\\\\e573\"}.fa-solar-panel:before{content:\"\\\\f5ba\"}.fa-lock-open:before{content:\"\\\\f3c1\"}.fa-elevator:before{content:\"\\\\e16d\"}.fa-money-bill-transfer:before{content:\"\\\\e528\"}.fa-money-bill-trend-up:before{content:\"\\\\e529\"}.fa-house-flood-water-circle-arrow-right:before{content:\"\\\\e50f\"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:\"\\\\f682\"}.fa-circle:before{content:\"\\\\f111\"}.fa-backward-fast:before,.fa-fast-backward:before{content:\"\\\\f049\"}.fa-recycle:before{content:\"\\\\f1b8\"}.fa-user-astronaut:before{content:\"\\\\f4fb\"}.fa-plane-slash:before{content:\"\\\\e069\"}.fa-trademark:before{content:\"\\\\f25c\"}.fa-basketball-ball:before,.fa-basketball:before{content:\"\\\\f434\"}.fa-satellite-dish:before{content:\"\\\\f7c0\"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:\"\\\\f35b\"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:\"\\\\f3cd\"}.fa-volume-high:before,.fa-volume-up:before{content:\"\\\\f028\"}.fa-users-rays:before{content:\"\\\\e593\"}.fa-wallet:before{content:\"\\\\f555\"}.fa-clipboard-check:before{content:\"\\\\f46c\"}.fa-file-audio:before{content:\"\\\\f1c7\"}.fa-burger:before,.fa-hamburger:before{content:\"\\\\f805\"}.fa-wrench:before{content:\"\\\\f0ad\"}.fa-bugs:before{content:\"\\\\e4d0\"}.fa-rupee-sign:before,.fa-rupee:before{content:\"\\\\f156\"}.fa-file-image:before{content:\"\\\\f1c5\"}.fa-circle-question:before,.fa-question-circle:before{content:\"\\\\f059\"}.fa-plane-departure:before{content:\"\\\\f5b0\"}.fa-handshake-slash:before{content:\"\\\\e060\"}.fa-book-bookmark:before{content:\"\\\\e0bb\"}.fa-code-branch:before{content:\"\\\\f126\"}.fa-hat-cowboy:before{content:\"\\\\f8c0\"}.fa-bridge:before{content:\"\\\\e4c8\"}.fa-phone-alt:before,.fa-phone-flip:before{content:\"\\\\f879\"}.fa-truck-front:before{content:\"\\\\e2b7\"}.fa-cat:before{content:\"\\\\f6be\"}.fa-anchor-circle-exclamation:before{content:\"\\\\e4ab\"}.fa-truck-field:before{content:\"\\\\e58d\"}.fa-route:before{content:\"\\\\f4d7\"}.fa-clipboard-question:before{content:\"\\\\e4e3\"}.fa-panorama:before{content:\"\\\\e209\"}.fa-comment-medical:before{content:\"\\\\f7f5\"}.fa-teeth-open:before{content:\"\\\\f62f\"}.fa-file-circle-minus:before{content:\"\\\\e4ed\"}.fa-tags:before{content:\"\\\\f02c\"}.fa-wine-glass:before{content:\"\\\\f4e3\"}.fa-fast-forward:before,.fa-forward-fast:before{content:\"\\\\f050\"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:\"\\\\f5a4\"}.fa-parking:before,.fa-square-parking:before{content:\"\\\\f540\"}.fa-house-signal:before{content:\"\\\\e012\"}.fa-bars-progress:before,.fa-tasks-alt:before{content:\"\\\\f828\"}.fa-faucet-drip:before{content:\"\\\\e006\"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:\"\\\\f474\"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:\"\\\\f54d\"}.fa-terminal:before{content:\"\\\\f120\"}.fa-mobile-button:before{content:\"\\\\f10b\"}.fa-house-medical-flag:before{content:\"\\\\e514\"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:\"\\\\f291\"}.fa-tape:before{content:\"\\\\f4db\"}.fa-bus-alt:before,.fa-bus-simple:before{content:\"\\\\f55e\"}.fa-eye:before{content:\"\\\\f06e\"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:\"\\\\f5b3\"}.fa-audio-description:before{content:\"\\\\f29e\"}.fa-person-military-to-person:before{content:\"\\\\e54c\"}.fa-file-shield:before{content:\"\\\\e4f0\"}.fa-user-slash:before{content:\"\\\\f506\"}.fa-pen:before{content:\"\\\\f304\"}.fa-tower-observation:before{content:\"\\\\e586\"}.fa-file-code:before{content:\"\\\\f1c9\"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:\"\\\\f012\"}.fa-bus:before{content:\"\\\\f207\"}.fa-heart-circle-xmark:before{content:\"\\\\e501\"}.fa-home-lg:before,.fa-house-chimney:before{content:\"\\\\e3af\"}.fa-window-maximize:before{content:\"\\\\f2d0\"}.fa-face-frown:before,.fa-frown:before{content:\"\\\\f119\"}.fa-prescription:before{content:\"\\\\f5b1\"}.fa-shop:before,.fa-store-alt:before{content:\"\\\\f54f\"}.fa-floppy-disk:before,.fa-save:before{content:\"\\\\f0c7\"}.fa-vihara:before{content:\"\\\\f6a7\"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:\"\\\\f515\"}.fa-sort-asc:before,.fa-sort-up:before{content:\"\\\\f0de\"}.fa-comment-dots:before,.fa-commenting:before{content:\"\\\\f4ad\"}.fa-plant-wilt:before{content:\"\\\\e5aa\"}.fa-diamond:before{content:\"\\\\f219\"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:\"\\\\f585\"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:\"\\\\f4c0\"}.fa-bacterium:before{content:\"\\\\e05a\"}.fa-hand-pointer:before{content:\"\\\\f25a\"}.fa-drum-steelpan:before{content:\"\\\\f56a\"}.fa-hand-scissors:before{content:\"\\\\f257\"}.fa-hands-praying:before,.fa-praying-hands:before{content:\"\\\\f684\"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:\"\\\\f01e\"}.fa-biohazard:before{content:\"\\\\f780\"}.fa-location-crosshairs:before,.fa-location:before{content:\"\\\\f601\"}.fa-mars-double:before{content:\"\\\\f227\"}.fa-child-dress:before{content:\"\\\\e59c\"}.fa-users-between-lines:before{content:\"\\\\e591\"}.fa-lungs-virus:before{content:\"\\\\e067\"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:\"\\\\f588\"}.fa-phone:before{content:\"\\\\f095\"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:\"\\\\f273\"}.fa-child-reaching:before{content:\"\\\\e59d\"}.fa-head-side-virus:before{content:\"\\\\e064\"}.fa-user-cog:before,.fa-user-gear:before{content:\"\\\\f4fe\"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:\"\\\\f163\"}.fa-door-closed:before{content:\"\\\\f52a\"}.fa-shield-virus:before{content:\"\\\\e06c\"}.fa-dice-six:before{content:\"\\\\f526\"}.fa-mosquito-net:before{content:\"\\\\e52c\"}.fa-bridge-water:before{content:\"\\\\e4ce\"}.fa-person-booth:before{content:\"\\\\f756\"}.fa-text-width:before{content:\"\\\\f035\"}.fa-hat-wizard:before{content:\"\\\\f6e8\"}.fa-pen-fancy:before{content:\"\\\\f5ac\"}.fa-digging:before,.fa-person-digging:before{content:\"\\\\f85e\"}.fa-trash:before{content:\"\\\\f1f8\"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:\"\\\\f629\"}.fa-book-medical:before{content:\"\\\\f7e6\"}.fa-poo:before{content:\"\\\\f2fe\"}.fa-quote-right-alt:before,.fa-quote-right:before{content:\"\\\\f10e\"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:\"\\\\f553\"}.fa-cubes:before{content:\"\\\\f1b3\"}.fa-divide:before{content:\"\\\\f529\"}.fa-tenge-sign:before,.fa-tenge:before{content:\"\\\\f7d7\"}.fa-headphones:before{content:\"\\\\f025\"}.fa-hands-holding:before{content:\"\\\\f4c2\"}.fa-hands-clapping:before{content:\"\\\\e1a8\"}.fa-republican:before{content:\"\\\\f75e\"}.fa-arrow-left:before{content:\"\\\\f060\"}.fa-person-circle-xmark:before{content:\"\\\\e543\"}.fa-ruler:before{content:\"\\\\f545\"}.fa-align-left:before{content:\"\\\\f036\"}.fa-dice-d6:before{content:\"\\\\f6d1\"}.fa-restroom:before{content:\"\\\\f7bd\"}.fa-j:before{content:\"\\\\4a\"}.fa-users-viewfinder:before{content:\"\\\\e595\"}.fa-file-video:before{content:\"\\\\f1c8\"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:\"\\\\f35d\"}.fa-table-cells:before,.fa-th:before{content:\"\\\\f00a\"}.fa-file-pdf:before{content:\"\\\\f1c1\"}.fa-bible:before,.fa-book-bible:before{content:\"\\\\f647\"}.fa-o:before{content:\"\\\\4f\"}.fa-medkit:before,.fa-suitcase-medical:before{content:\"\\\\f0fa\"}.fa-user-secret:before{content:\"\\\\f21b\"}.fa-otter:before{content:\"\\\\f700\"}.fa-female:before,.fa-person-dress:before{content:\"\\\\f182\"}.fa-comment-dollar:before{content:\"\\\\f651\"}.fa-briefcase-clock:before,.fa-business-time:before{content:\"\\\\f64a\"}.fa-table-cells-large:before,.fa-th-large:before{content:\"\\\\f009\"}.fa-book-tanakh:before,.fa-tanakh:before{content:\"\\\\f827\"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:\"\\\\f2a0\"}.fa-hat-cowboy-side:before{content:\"\\\\f8c1\"}.fa-clipboard-user:before{content:\"\\\\f7f3\"}.fa-child:before{content:\"\\\\f1ae\"}.fa-lira-sign:before{content:\"\\\\f195\"}.fa-satellite:before{content:\"\\\\f7bf\"}.fa-plane-lock:before{content:\"\\\\e558\"}.fa-tag:before{content:\"\\\\f02b\"}.fa-comment:before{content:\"\\\\f075\"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:\"\\\\f1fd\"}.fa-envelope:before{content:\"\\\\f0e0\"}.fa-angle-double-up:before,.fa-angles-up:before{content:\"\\\\f102\"}.fa-paperclip:before{content:\"\\\\f0c6\"}.fa-arrow-right-to-city:before{content:\"\\\\e4b3\"}.fa-ribbon:before{content:\"\\\\f4d6\"}.fa-lungs:before{content:\"\\\\f604\"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:\"\\\\f887\"}.fa-litecoin-sign:before{content:\"\\\\e1d3\"}.fa-border-none:before{content:\"\\\\f850\"}.fa-circle-nodes:before{content:\"\\\\e4e2\"}.fa-parachute-box:before{content:\"\\\\f4cd\"}.fa-indent:before{content:\"\\\\f03c\"}.fa-truck-field-un:before{content:\"\\\\e58e\"}.fa-hourglass-empty:before,.fa-hourglass:before{content:\"\\\\f254\"}.fa-mountain:before{content:\"\\\\f6fc\"}.fa-user-doctor:before,.fa-user-md:before{content:\"\\\\f0f0\"}.fa-circle-info:before,.fa-info-circle:before{content:\"\\\\f05a\"}.fa-cloud-meatball:before{content:\"\\\\f73b\"}.fa-camera-alt:before,.fa-camera:before{content:\"\\\\f030\"}.fa-square-virus:before{content:\"\\\\e578\"}.fa-meteor:before{content:\"\\\\f753\"}.fa-car-on:before{content:\"\\\\e4dd\"}.fa-sleigh:before{content:\"\\\\f7cc\"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:\"\\\\f162\"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:\"\\\\f4c1\"}.fa-water:before{content:\"\\\\f773\"}.fa-calendar-check:before{content:\"\\\\f274\"}.fa-braille:before{content:\"\\\\f2a1\"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:\"\\\\f486\"}.fa-landmark:before{content:\"\\\\f66f\"}.fa-truck:before{content:\"\\\\f0d1\"}.fa-crosshairs:before{content:\"\\\\f05b\"}.fa-person-cane:before{content:\"\\\\e53c\"}.fa-tent:before{content:\"\\\\e57d\"}.fa-vest-patches:before{content:\"\\\\e086\"}.fa-check-double:before{content:\"\\\\f560\"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:\"\\\\f15d\"}.fa-money-bill-wheat:before{content:\"\\\\e52a\"}.fa-cookie:before{content:\"\\\\f563\"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:\"\\\\f0e2\"}.fa-hard-drive:before,.fa-hdd:before{content:\"\\\\f0a0\"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:\"\\\\f586\"}.fa-dumbbell:before{content:\"\\\\f44b\"}.fa-list-alt:before,.fa-rectangle-list:before{content:\"\\\\f022\"}.fa-tarp-droplet:before{content:\"\\\\e57c\"}.fa-house-medical-circle-check:before{content:\"\\\\e511\"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:\"\\\\f7ca\"}.fa-calendar-plus:before{content:\"\\\\f271\"}.fa-plane-arrival:before{content:\"\\\\f5af\"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:\"\\\\f359\"}.fa-subway:before,.fa-train-subway:before{content:\"\\\\f239\"}.fa-chart-gantt:before{content:\"\\\\e0e4\"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:\"\\\\e1bc\"}.fa-crop-alt:before,.fa-crop-simple:before{content:\"\\\\f565\"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:\"\\\\f3d1\"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:\"\\\\f30a\"}.fa-dna:before{content:\"\\\\f471\"}.fa-virus-slash:before{content:\"\\\\e075\"}.fa-minus:before,.fa-subtract:before{content:\"\\\\f068\"}.fa-chess:before{content:\"\\\\f439\"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:\"\\\\f177\"}.fa-plug-circle-check:before{content:\"\\\\e55c\"}.fa-street-view:before{content:\"\\\\f21d\"}.fa-franc-sign:before{content:\"\\\\e18f\"}.fa-volume-off:before{content:\"\\\\f026\"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:\"\\\\f2a3\"}.fa-cog:before,.fa-gear:before{content:\"\\\\f013\"}.fa-droplet-slash:before,.fa-tint-slash:before{content:\"\\\\f5c7\"}.fa-mosque:before{content:\"\\\\f678\"}.fa-mosquito:before{content:\"\\\\e52b\"}.fa-star-of-david:before{content:\"\\\\f69a\"}.fa-person-military-rifle:before{content:\"\\\\e54b\"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:\"\\\\f07a\"}.fa-vials:before{content:\"\\\\f493\"}.fa-plug-circle-plus:before{content:\"\\\\e55f\"}.fa-place-of-worship:before{content:\"\\\\f67f\"}.fa-grip-vertical:before{content:\"\\\\f58e\"}.fa-arrow-turn-up:before,.fa-level-up:before{content:\"\\\\f148\"}.fa-u:before{content:\"\\\\55\"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:\"\\\\f698\"}.fa-clock-four:before,.fa-clock:before{content:\"\\\\f017\"}.fa-backward-step:before,.fa-step-backward:before{content:\"\\\\f048\"}.fa-pallet:before{content:\"\\\\f482\"}.fa-faucet:before{content:\"\\\\e005\"}.fa-baseball-bat-ball:before{content:\"\\\\f432\"}.fa-s:before{content:\"\\\\53\"}.fa-timeline:before{content:\"\\\\e29c\"}.fa-keyboard:before{content:\"\\\\f11c\"}.fa-caret-down:before{content:\"\\\\f0d7\"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:\"\\\\f7f2\"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\\\\f2c8\"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:\"\\\\f3cf\"}.fa-plane-up:before{content:\"\\\\e22d\"}.fa-piggy-bank:before{content:\"\\\\f4d3\"}.fa-battery-3:before,.fa-battery-half:before{content:\"\\\\f242\"}.fa-mountain-city:before{content:\"\\\\e52e\"}.fa-coins:before{content:\"\\\\f51e\"}.fa-khanda:before{content:\"\\\\f66d\"}.fa-sliders-h:before,.fa-sliders:before{content:\"\\\\f1de\"}.fa-folder-tree:before{content:\"\\\\f802\"}.fa-network-wired:before{content:\"\\\\f6ff\"}.fa-map-pin:before{content:\"\\\\f276\"}.fa-hamsa:before{content:\"\\\\f665\"}.fa-cent-sign:before{content:\"\\\\e3f5\"}.fa-flask:before{content:\"\\\\f0c3\"}.fa-person-pregnant:before{content:\"\\\\e31e\"}.fa-wand-sparkles:before{content:\"\\\\f72b\"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:\"\\\\f142\"}.fa-ticket:before{content:\"\\\\f145\"}.fa-power-off:before{content:\"\\\\f011\"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:\"\\\\f30b\"}.fa-flag-usa:before{content:\"\\\\f74d\"}.fa-laptop-file:before{content:\"\\\\e51d\"}.fa-teletype:before,.fa-tty:before{content:\"\\\\f1e4\"}.fa-diagram-next:before{content:\"\\\\e476\"}.fa-person-rifle:before{content:\"\\\\e54e\"}.fa-house-medical-circle-exclamation:before{content:\"\\\\e512\"}.fa-closed-captioning:before{content:\"\\\\f20a\"}.fa-hiking:before,.fa-person-hiking:before{content:\"\\\\f6ec\"}.fa-venus-double:before{content:\"\\\\f226\"}.fa-images:before{content:\"\\\\f302\"}.fa-calculator:before{content:\"\\\\f1ec\"}.fa-people-pulling:before{content:\"\\\\e535\"}.fa-n:before{content:\"\\\\4e\"}.fa-cable-car:before,.fa-tram:before{content:\"\\\\f7da\"}.fa-cloud-rain:before{content:\"\\\\f73d\"}.fa-building-circle-xmark:before{content:\"\\\\e4d4\"}.fa-ship:before{content:\"\\\\f21a\"}.fa-arrows-down-to-line:before{content:\"\\\\e4b8\"}.fa-download:before{content:\"\\\\f019\"}.fa-face-grin:before,.fa-grin:before{content:\"\\\\f580\"}.fa-backspace:before,.fa-delete-left:before{content:\"\\\\f55a\"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:\"\\\\f1fb\"}.fa-file-circle-check:before{content:\"\\\\e5a0\"}.fa-forward:before{content:\"\\\\f04e\"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:\"\\\\f3ce\"}.fa-face-meh:before,.fa-meh:before{content:\"\\\\f11a\"}.fa-align-center:before{content:\"\\\\f037\"}.fa-book-dead:before,.fa-book-skull:before{content:\"\\\\f6b7\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\\\\f2c2\"}.fa-dedent:before,.fa-outdent:before{content:\"\\\\f03b\"}.fa-heart-circle-exclamation:before{content:\"\\\\e4fe\"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:\"\\\\f015\"}.fa-calendar-week:before{content:\"\\\\f784\"}.fa-laptop-medical:before{content:\"\\\\f812\"}.fa-b:before{content:\"\\\\42\"}.fa-file-medical:before{content:\"\\\\f477\"}.fa-dice-one:before{content:\"\\\\f525\"}.fa-kiwi-bird:before{content:\"\\\\f535\"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:\"\\\\f0ec\"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:\"\\\\f2f9\"}.fa-cutlery:before,.fa-utensils:before{content:\"\\\\f2e7\"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:\"\\\\f161\"}.fa-mill-sign:before{content:\"\\\\e1ed\"}.fa-bowl-rice:before{content:\"\\\\e2eb\"}.fa-skull:before{content:\"\\\\f54c\"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:\"\\\\f519\"}.fa-truck-pickup:before{content:\"\\\\f63c\"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:\"\\\\f30c\"}.fa-stop:before{content:\"\\\\f04d\"}.fa-code-merge:before{content:\"\\\\f387\"}.fa-upload:before{content:\"\\\\f093\"}.fa-hurricane:before{content:\"\\\\f751\"}.fa-mound:before{content:\"\\\\e52d\"}.fa-toilet-portable:before{content:\"\\\\e583\"}.fa-compact-disc:before{content:\"\\\\f51f\"}.fa-file-arrow-down:before,.fa-file-download:before{content:\"\\\\f56d\"}.fa-caravan:before{content:\"\\\\f8ff\"}.fa-shield-cat:before{content:\"\\\\e572\"}.fa-bolt:before,.fa-zap:before{content:\"\\\\f0e7\"}.fa-glass-water:before{content:\"\\\\e4f4\"}.fa-oil-well:before{content:\"\\\\e532\"}.fa-vault:before{content:\"\\\\e2c5\"}.fa-mars:before{content:\"\\\\f222\"}.fa-toilet:before{content:\"\\\\f7d8\"}.fa-plane-circle-xmark:before{content:\"\\\\e557\"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:\"\\\\f157\"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:\"\\\\f158\"}.fa-sun:before{content:\"\\\\f185\"}.fa-guitar:before{content:\"\\\\f7a6\"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:\"\\\\f59c\"}.fa-horse-head:before{content:\"\\\\f7ab\"}.fa-bore-hole:before{content:\"\\\\e4c3\"}.fa-industry:before{content:\"\\\\f275\"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:\"\\\\f358\"}.fa-arrows-turn-to-dots:before{content:\"\\\\e4c1\"}.fa-florin-sign:before{content:\"\\\\e184\"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:\"\\\\f884\"}.fa-less-than:before{content:\"\\\\3c\"}.fa-angle-down:before{content:\"\\\\f107\"}.fa-car-tunnel:before{content:\"\\\\e4de\"}.fa-head-side-cough:before{content:\"\\\\e061\"}.fa-grip-lines:before{content:\"\\\\f7a4\"}.fa-thumbs-down:before{content:\"\\\\f165\"}.fa-user-lock:before{content:\"\\\\f502\"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:\"\\\\f178\"}.fa-anchor-circle-xmark:before{content:\"\\\\e4ac\"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:\"\\\\f141\"}.fa-chess-pawn:before{content:\"\\\\f443\"}.fa-first-aid:before,.fa-kit-medical:before{content:\"\\\\f479\"}.fa-person-through-window:before{content:\"\\\\e5a9\"}.fa-toolbox:before{content:\"\\\\f552\"}.fa-hands-holding-circle:before{content:\"\\\\e4fb\"}.fa-bug:before{content:\"\\\\f188\"}.fa-credit-card-alt:before,.fa-credit-card:before{content:\"\\\\f09d\"}.fa-automobile:before,.fa-car:before{content:\"\\\\f1b9\"}.fa-hand-holding-hand:before{content:\"\\\\e4f7\"}.fa-book-open-reader:before,.fa-book-reader:before{content:\"\\\\f5da\"}.fa-mountain-sun:before{content:\"\\\\e52f\"}.fa-arrows-left-right-to-line:before{content:\"\\\\e4ba\"}.fa-dice-d20:before{content:\"\\\\f6cf\"}.fa-truck-droplet:before{content:\"\\\\e58c\"}.fa-file-circle-xmark:before{content:\"\\\\e5a1\"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:\"\\\\e040\"}.fa-medal:before{content:\"\\\\f5a2\"}.fa-bed:before{content:\"\\\\f236\"}.fa-h-square:before,.fa-square-h:before{content:\"\\\\f0fd\"}.fa-podcast:before{content:\"\\\\f2ce\"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:\"\\\\f2c7\"}.fa-bell:before{content:\"\\\\f0f3\"}.fa-superscript:before{content:\"\\\\f12b\"}.fa-plug-circle-xmark:before{content:\"\\\\e560\"}.fa-star-of-life:before{content:\"\\\\f621\"}.fa-phone-slash:before{content:\"\\\\f3dd\"}.fa-paint-roller:before{content:\"\\\\f5aa\"}.fa-hands-helping:before,.fa-handshake-angle:before{content:\"\\\\f4c4\"}.fa-location-dot:before,.fa-map-marker-alt:before{content:\"\\\\f3c5\"}.fa-file:before{content:\"\\\\f15b\"}.fa-greater-than:before{content:\"\\\\3e\"}.fa-person-swimming:before,.fa-swimmer:before{content:\"\\\\f5c4\"}.fa-arrow-down:before{content:\"\\\\f063\"}.fa-droplet:before,.fa-tint:before{content:\"\\\\f043\"}.fa-eraser:before{content:\"\\\\f12d\"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:\"\\\\f57d\"}.fa-person-burst:before{content:\"\\\\e53b\"}.fa-dove:before{content:\"\\\\f4ba\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\\\\f244\"}.fa-socks:before{content:\"\\\\f696\"}.fa-inbox:before{content:\"\\\\f01c\"}.fa-section:before{content:\"\\\\e447\"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:\"\\\\f625\"}.fa-envelope-open-text:before{content:\"\\\\f658\"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:\"\\\\f0f8\"}.fa-wine-bottle:before{content:\"\\\\f72f\"}.fa-chess-rook:before{content:\"\\\\f447\"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:\"\\\\f550\"}.fa-dharmachakra:before{content:\"\\\\f655\"}.fa-hotdog:before{content:\"\\\\f80f\"}.fa-blind:before,.fa-person-walking-with-cane:before{content:\"\\\\f29d\"}.fa-drum:before{content:\"\\\\f569\"}.fa-ice-cream:before{content:\"\\\\f810\"}.fa-heart-circle-bolt:before{content:\"\\\\e4fc\"}.fa-fax:before{content:\"\\\\f1ac\"}.fa-paragraph:before{content:\"\\\\f1dd\"}.fa-check-to-slot:before,.fa-vote-yea:before{content:\"\\\\f772\"}.fa-star-half:before{content:\"\\\\f089\"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:\"\\\\f468\"}.fa-chain:before,.fa-link:before{content:\"\\\\f0c1\"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:\"\\\\f2a2\"}.fa-tree-city:before{content:\"\\\\e587\"}.fa-play:before{content:\"\\\\f04b\"}.fa-font:before{content:\"\\\\f031\"}.fa-rupiah-sign:before{content:\"\\\\e23d\"}.fa-magnifying-glass:before,.fa-search:before{content:\"\\\\f002\"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:\"\\\\f45d\"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:\"\\\\f470\"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:\"\\\\f82a\"}.fa-naira-sign:before{content:\"\\\\e1f6\"}.fa-cart-arrow-down:before{content:\"\\\\f218\"}.fa-walkie-talkie:before{content:\"\\\\f8ef\"}.fa-file-edit:before,.fa-file-pen:before{content:\"\\\\f31c\"}.fa-receipt:before{content:\"\\\\f543\"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:\"\\\\f14b\"}.fa-suitcase-rolling:before{content:\"\\\\f5c1\"}.fa-person-circle-exclamation:before{content:\"\\\\e53f\"}.fa-chevron-down:before{content:\"\\\\f078\"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:\"\\\\f240\"}.fa-skull-crossbones:before{content:\"\\\\f714\"}.fa-code-compare:before{content:\"\\\\e13a\"}.fa-list-dots:before,.fa-list-ul:before{content:\"\\\\f0ca\"}.fa-school-lock:before{content:\"\\\\e56f\"}.fa-tower-cell:before{content:\"\\\\e585\"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:\"\\\\f309\"}.fa-ranking-star:before{content:\"\\\\e561\"}.fa-chess-king:before{content:\"\\\\f43f\"}.fa-person-harassing:before{content:\"\\\\e549\"}.fa-brazilian-real-sign:before{content:\"\\\\e46c\"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:\"\\\\f752\"}.fa-arrow-up:before{content:\"\\\\f062\"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:\"\\\\f26c\"}.fa-shrimp:before{content:\"\\\\e448\"}.fa-list-check:before,.fa-tasks:before{content:\"\\\\f0ae\"}.fa-jug-detergent:before{content:\"\\\\e519\"}.fa-circle-user:before,.fa-user-circle:before{content:\"\\\\f2bd\"}.fa-user-shield:before{content:\"\\\\f505\"}.fa-wind:before{content:\"\\\\f72e\"}.fa-car-burst:before,.fa-car-crash:before{content:\"\\\\f5e1\"}.fa-y:before{content:\"\\\\59\"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:\"\\\\f7ce\"}.fa-shipping-fast:before,.fa-truck-fast:before{content:\"\\\\f48b\"}.fa-fish:before{content:\"\\\\f578\"}.fa-user-graduate:before{content:\"\\\\f501\"}.fa-adjust:before,.fa-circle-half-stroke:before{content:\"\\\\f042\"}.fa-clapperboard:before{content:\"\\\\e131\"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:\"\\\\f7ba\"}.fa-baseball-ball:before,.fa-baseball:before{content:\"\\\\f433\"}.fa-jet-fighter-up:before{content:\"\\\\e518\"}.fa-diagram-project:before,.fa-project-diagram:before{content:\"\\\\f542\"}.fa-copy:before{content:\"\\\\f0c5\"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:\"\\\\f6a9\"}.fa-hand-sparkles:before{content:\"\\\\e05d\"}.fa-grip-horizontal:before,.fa-grip:before{content:\"\\\\f58d\"}.fa-share-from-square:before,.fa-share-square:before{content:\"\\\\f14d\"}.fa-child-combatant:before,.fa-child-rifle:before{content:\"\\\\e4e0\"}.fa-gun:before{content:\"\\\\e19b\"}.fa-phone-square:before,.fa-square-phone:before{content:\"\\\\f098\"}.fa-add:before,.fa-plus:before{content:\"\\\\2b\"}.fa-expand:before{content:\"\\\\f065\"}.fa-computer:before{content:\"\\\\e4e5\"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:\"\\\\f00d\"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:\"\\\\f047\"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:\"\\\\f51c\"}.fa-peso-sign:before{content:\"\\\\e222\"}.fa-building-shield:before{content:\"\\\\e4d8\"}.fa-baby:before{content:\"\\\\f77c\"}.fa-users-line:before{content:\"\\\\e592\"}.fa-quote-left-alt:before,.fa-quote-left:before{content:\"\\\\f10d\"}.fa-tractor:before{content:\"\\\\f722\"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:\"\\\\f829\"}.fa-arrow-down-up-lock:before{content:\"\\\\e4b0\"}.fa-lines-leaning:before{content:\"\\\\e51e\"}.fa-ruler-combined:before{content:\"\\\\f546\"}.fa-copyright:before{content:\"\\\\f1f9\"}.fa-equals:before{content:\"\\\\3d\"}.fa-blender:before{content:\"\\\\f517\"}.fa-teeth:before{content:\"\\\\f62e\"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:\"\\\\f20b\"}.fa-map:before{content:\"\\\\f279\"}.fa-rocket:before{content:\"\\\\f135\"}.fa-photo-film:before,.fa-photo-video:before{content:\"\\\\f87c\"}.fa-folder-minus:before{content:\"\\\\f65d\"}.fa-store:before{content:\"\\\\f54e\"}.fa-arrow-trend-up:before{content:\"\\\\e098\"}.fa-plug-circle-minus:before{content:\"\\\\e55e\"}.fa-sign-hanging:before,.fa-sign:before{content:\"\\\\f4d9\"}.fa-bezier-curve:before{content:\"\\\\f55b\"}.fa-bell-slash:before{content:\"\\\\f1f6\"}.fa-tablet-android:before,.fa-tablet:before{content:\"\\\\f3fb\"}.fa-school-flag:before{content:\"\\\\e56e\"}.fa-fill:before{content:\"\\\\f575\"}.fa-angle-up:before{content:\"\\\\f106\"}.fa-drumstick-bite:before{content:\"\\\\f6d7\"}.fa-holly-berry:before{content:\"\\\\f7aa\"}.fa-chevron-left:before{content:\"\\\\f053\"}.fa-bacteria:before{content:\"\\\\e059\"}.fa-hand-lizard:before{content:\"\\\\f258\"}.fa-notdef:before{content:\"\\\\e1fe\"}.fa-disease:before{content:\"\\\\f7fa\"}.fa-briefcase-medical:before{content:\"\\\\f469\"}.fa-genderless:before{content:\"\\\\f22d\"}.fa-chevron-right:before{content:\"\\\\f054\"}.fa-retweet:before{content:\"\\\\f079\"}.fa-car-alt:before,.fa-car-rear:before{content:\"\\\\f5de\"}.fa-pump-soap:before{content:\"\\\\e06b\"}.fa-video-slash:before{content:\"\\\\f4e2\"}.fa-battery-2:before,.fa-battery-quarter:before{content:\"\\\\f243\"}.fa-radio:before{content:\"\\\\f8d7\"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:\"\\\\f77d\"}.fa-traffic-light:before{content:\"\\\\f637\"}.fa-thermometer:before{content:\"\\\\f491\"}.fa-vr-cardboard:before{content:\"\\\\f729\"}.fa-hand-middle-finger:before{content:\"\\\\f806\"}.fa-percent:before,.fa-percentage:before{content:\"\\\\25\"}.fa-truck-moving:before{content:\"\\\\f4df\"}.fa-glass-water-droplet:before{content:\"\\\\e4f5\"}.fa-display:before{content:\"\\\\e163\"}.fa-face-smile:before,.fa-smile:before{content:\"\\\\f118\"}.fa-thumb-tack:before,.fa-thumbtack:before{content:\"\\\\f08d\"}.fa-trophy:before{content:\"\\\\f091\"}.fa-person-praying:before,.fa-pray:before{content:\"\\\\f683\"}.fa-hammer:before{content:\"\\\\f6e3\"}.fa-hand-peace:before{content:\"\\\\f25b\"}.fa-rotate:before,.fa-sync-alt:before{content:\"\\\\f2f1\"}.fa-spinner:before{content:\"\\\\f110\"}.fa-robot:before{content:\"\\\\f544\"}.fa-peace:before{content:\"\\\\f67c\"}.fa-cogs:before,.fa-gears:before{content:\"\\\\f085\"}.fa-warehouse:before{content:\"\\\\f494\"}.fa-arrow-up-right-dots:before{content:\"\\\\e4b7\"}.fa-splotch:before{content:\"\\\\f5bc\"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:\"\\\\f584\"}.fa-dice-four:before{content:\"\\\\f524\"}.fa-sim-card:before{content:\"\\\\f7c4\"}.fa-transgender-alt:before,.fa-transgender:before{content:\"\\\\f225\"}.fa-mercury:before{content:\"\\\\f223\"}.fa-arrow-turn-down:before,.fa-level-down:before{content:\"\\\\f149\"}.fa-person-falling-burst:before{content:\"\\\\e547\"}.fa-award:before{content:\"\\\\f559\"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:\"\\\\f3ff\"}.fa-building:before{content:\"\\\\f1ad\"}.fa-angle-double-left:before,.fa-angles-left:before{content:\"\\\\f100\"}.fa-qrcode:before{content:\"\\\\f029\"}.fa-clock-rotate-left:before,.fa-history:before{content:\"\\\\f1da\"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:\"\\\\f583\"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:\"\\\\f56e\"}.fa-shield-blank:before,.fa-shield:before{content:\"\\\\f132\"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:\"\\\\f885\"}.fa-house-medical:before{content:\"\\\\e3b2\"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:\"\\\\f450\"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:\"\\\\f137\"}.fa-house-chimney-window:before{content:\"\\\\e00d\"}.fa-pen-nib:before{content:\"\\\\f5ad\"}.fa-tent-arrow-turn-left:before{content:\"\\\\e580\"}.fa-tents:before{content:\"\\\\e582\"}.fa-magic:before,.fa-wand-magic:before{content:\"\\\\f0d0\"}.fa-dog:before{content:\"\\\\f6d3\"}.fa-carrot:before{content:\"\\\\f787\"}.fa-moon:before{content:\"\\\\f186\"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:\"\\\\f5ce\"}.fa-cheese:before{content:\"\\\\f7ef\"}.fa-yin-yang:before{content:\"\\\\f6ad\"}.fa-music:before{content:\"\\\\f001\"}.fa-code-commit:before{content:\"\\\\f386\"}.fa-temperature-low:before{content:\"\\\\f76b\"}.fa-biking:before,.fa-person-biking:before{content:\"\\\\f84a\"}.fa-broom:before{content:\"\\\\f51a\"}.fa-shield-heart:before{content:\"\\\\e574\"}.fa-gopuram:before{content:\"\\\\f664\"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:\"\\\\e47b\"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:\"\\\\f2d3\"}.fa-hashtag:before{content:\"\\\\23\"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:\"\\\\f424\"}.fa-oil-can:before{content:\"\\\\f613\"}.fa-t:before{content:\"\\\\54\"}.fa-hippo:before{content:\"\\\\f6ed\"}.fa-chart-column:before{content:\"\\\\e0e3\"}.fa-infinity:before{content:\"\\\\f534\"}.fa-vial-circle-check:before{content:\"\\\\e596\"}.fa-person-arrow-down-to-line:before{content:\"\\\\e538\"}.fa-voicemail:before{content:\"\\\\f897\"}.fa-fan:before{content:\"\\\\f863\"}.fa-person-walking-luggage:before{content:\"\\\\e554\"}.fa-arrows-alt-v:before,.fa-up-down:before{content:\"\\\\f338\"}.fa-cloud-moon-rain:before{content:\"\\\\f73c\"}.fa-calendar:before{content:\"\\\\f133\"}.fa-trailer:before{content:\"\\\\e041\"}.fa-bahai:before,.fa-haykal:before{content:\"\\\\f666\"}.fa-sd-card:before{content:\"\\\\f7c2\"}.fa-dragon:before{content:\"\\\\f6d5\"}.fa-shoe-prints:before{content:\"\\\\f54b\"}.fa-circle-plus:before,.fa-plus-circle:before{content:\"\\\\f055\"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:\"\\\\f58b\"}.fa-hand-holding:before{content:\"\\\\f4bd\"}.fa-plug-circle-exclamation:before{content:\"\\\\e55d\"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:\"\\\\f127\"}.fa-clone:before{content:\"\\\\f24d\"}.fa-person-walking-arrow-loop-left:before{content:\"\\\\e551\"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:\"\\\\f882\"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:\"\\\\f7e4\"}.fa-tornado:before{content:\"\\\\f76f\"}.fa-file-circle-plus:before{content:\"\\\\e494\"}.fa-book-quran:before,.fa-quran:before{content:\"\\\\f687\"}.fa-anchor:before{content:\"\\\\f13d\"}.fa-border-all:before{content:\"\\\\f84c\"}.fa-angry:before,.fa-face-angry:before{content:\"\\\\f556\"}.fa-cookie-bite:before{content:\"\\\\f564\"}.fa-arrow-trend-down:before{content:\"\\\\e097\"}.fa-feed:before,.fa-rss:before{content:\"\\\\f09e\"}.fa-draw-polygon:before{content:\"\\\\f5ee\"}.fa-balance-scale:before,.fa-scale-balanced:before{content:\"\\\\f24e\"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:\"\\\\f62a\"}.fa-shower:before{content:\"\\\\f2cc\"}.fa-desktop-alt:before,.fa-desktop:before{content:\"\\\\f390\"}.fa-m:before{content:\"\\\\4d\"}.fa-table-list:before,.fa-th-list:before{content:\"\\\\f00b\"}.fa-comment-sms:before,.fa-sms:before{content:\"\\\\f7cd\"}.fa-book:before{content:\"\\\\f02d\"}.fa-user-plus:before{content:\"\\\\f234\"}.fa-check:before{content:\"\\\\f00c\"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:\"\\\\f241\"}.fa-house-circle-check:before{content:\"\\\\e509\"}.fa-angle-left:before{content:\"\\\\f104\"}.fa-diagram-successor:before{content:\"\\\\e47a\"}.fa-truck-arrow-right:before{content:\"\\\\e58b\"}.fa-arrows-split-up-and-left:before{content:\"\\\\e4bc\"}.fa-fist-raised:before,.fa-hand-fist:before{content:\"\\\\f6de\"}.fa-cloud-moon:before{content:\"\\\\f6c3\"}.fa-briefcase:before{content:\"\\\\f0b1\"}.fa-person-falling:before{content:\"\\\\e546\"}.fa-image-portrait:before,.fa-portrait:before{content:\"\\\\f3e0\"}.fa-user-tag:before{content:\"\\\\f507\"}.fa-rug:before{content:\"\\\\e569\"}.fa-earth-europe:before,.fa-globe-europe:before{content:\"\\\\f7a2\"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:\"\\\\f59d\"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:\"\\\\f410\"}.fa-baht-sign:before{content:\"\\\\e0ac\"}.fa-book-open:before{content:\"\\\\f518\"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:\"\\\\f66a\"}.fa-handcuffs:before{content:\"\\\\e4f8\"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:\"\\\\f071\"}.fa-database:before{content:\"\\\\f1c0\"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:\"\\\\f064\"}.fa-bottle-droplet:before{content:\"\\\\e4c4\"}.fa-mask-face:before{content:\"\\\\e1d7\"}.fa-hill-rockslide:before{content:\"\\\\e508\"}.fa-exchange-alt:before,.fa-right-left:before{content:\"\\\\f362\"}.fa-paper-plane:before{content:\"\\\\f1d8\"}.fa-road-circle-exclamation:before{content:\"\\\\e565\"}.fa-dungeon:before{content:\"\\\\f6d9\"}.fa-align-right:before{content:\"\\\\f038\"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:\"\\\\f53b\"}.fa-life-ring:before{content:\"\\\\f1cd\"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:\"\\\\f2a7\"}.fa-calendar-day:before{content:\"\\\\f783\"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:\"\\\\f5c5\"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:\"\\\\f07d\"}.fa-face-grimace:before,.fa-grimace:before{content:\"\\\\f57f\"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:\"\\\\e2ce\"}.fa-level-down-alt:before,.fa-turn-down:before{content:\"\\\\f3be\"}.fa-person-walking-arrow-right:before{content:\"\\\\e552\"}.fa-envelope-square:before,.fa-square-envelope:before{content:\"\\\\f199\"}.fa-dice:before{content:\"\\\\f522\"}.fa-bowling-ball:before{content:\"\\\\f436\"}.fa-brain:before{content:\"\\\\f5dc\"}.fa-band-aid:before,.fa-bandage:before{content:\"\\\\f462\"}.fa-calendar-minus:before{content:\"\\\\f272\"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:\"\\\\f057\"}.fa-gifts:before{content:\"\\\\f79c\"}.fa-hotel:before{content:\"\\\\f594\"}.fa-earth-asia:before,.fa-globe-asia:before{content:\"\\\\f57e\"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:\"\\\\f47f\"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:\"\\\\f00e\"}.fa-thumbs-up:before{content:\"\\\\f164\"}.fa-user-clock:before{content:\"\\\\f4fd\"}.fa-allergies:before,.fa-hand-dots:before{content:\"\\\\f461\"}.fa-file-invoice:before{content:\"\\\\f570\"}.fa-window-minimize:before{content:\"\\\\f2d1\"}.fa-coffee:before,.fa-mug-saucer:before{content:\"\\\\f0f4\"}.fa-brush:before{content:\"\\\\f55d\"}.fa-mask:before{content:\"\\\\f6fa\"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:\"\\\\f010\"}.fa-ruler-vertical:before{content:\"\\\\f548\"}.fa-user-alt:before,.fa-user-large:before{content:\"\\\\f406\"}.fa-train-tram:before{content:\"\\\\e5b4\"}.fa-user-nurse:before{content:\"\\\\f82f\"}.fa-syringe:before{content:\"\\\\f48e\"}.fa-cloud-sun:before{content:\"\\\\f6c4\"}.fa-stopwatch-20:before{content:\"\\\\e06f\"}.fa-square-full:before{content:\"\\\\f45c\"}.fa-magnet:before{content:\"\\\\f076\"}.fa-jar:before{content:\"\\\\e516\"}.fa-note-sticky:before,.fa-sticky-note:before{content:\"\\\\f249\"}.fa-bug-slash:before{content:\"\\\\e490\"}.fa-arrow-up-from-water-pump:before{content:\"\\\\e4b6\"}.fa-bone:before{content:\"\\\\f5d7\"}.fa-user-injured:before{content:\"\\\\f728\"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:\"\\\\f5b4\"}.fa-plane:before{content:\"\\\\f072\"}.fa-tent-arrows-down:before{content:\"\\\\e581\"}.fa-exclamation:before{content:\"\\\\21\"}.fa-arrows-spin:before{content:\"\\\\e4bb\"}.fa-print:before{content:\"\\\\f02f\"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:\"\\\\e2bb\"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:\"\\\\24\"}.fa-x:before{content:\"\\\\58\"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:\"\\\\f688\"}.fa-users-cog:before,.fa-users-gear:before{content:\"\\\\f509\"}.fa-person-military-pointing:before{content:\"\\\\e54a\"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:\"\\\\f19c\"}.fa-umbrella:before{content:\"\\\\f0e9\"}.fa-trowel:before{content:\"\\\\e589\"}.fa-d:before{content:\"\\\\44\"}.fa-stapler:before{content:\"\\\\e5af\"}.fa-masks-theater:before,.fa-theater-masks:before{content:\"\\\\f630\"}.fa-kip-sign:before{content:\"\\\\e1c4\"}.fa-hand-point-left:before{content:\"\\\\f0a5\"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:\"\\\\f4c6\"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:\"\\\\f0fb\"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:\"\\\\f1e1\"}.fa-barcode:before{content:\"\\\\f02a\"}.fa-plus-minus:before{content:\"\\\\e43c\"}.fa-video-camera:before,.fa-video:before{content:\"\\\\f03d\"}.fa-graduation-cap:before,.fa-mortar-board:before{content:\"\\\\f19d\"}.fa-hand-holding-medical:before{content:\"\\\\e05c\"}.fa-person-circle-check:before{content:\"\\\\e53e\"}.fa-level-up-alt:before,.fa-turn-up:before{content:\"\\\\f3bf\"}\r\n.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:\"Font Awesome 6 Brands\";--fa-font-brands:normal 400 1em/1 \"Font Awesome 6 Brands\"}@font-face{font-family:\"Font Awesome 6 Brands\";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:\"\\\\f3d0\"}.fa-hooli:before{content:\"\\\\f427\"}.fa-yelp:before{content:\"\\\\f1e9\"}.fa-cc-visa:before{content:\"\\\\f1f0\"}.fa-lastfm:before{content:\"\\\\f202\"}.fa-shopware:before{content:\"\\\\f5b5\"}.fa-creative-commons-nc:before{content:\"\\\\f4e8\"}.fa-aws:before{content:\"\\\\f375\"}.fa-redhat:before{content:\"\\\\f7bc\"}.fa-yoast:before{content:\"\\\\f2b1\"}.fa-cloudflare:before{content:\"\\\\e07d\"}.fa-ups:before{content:\"\\\\f7e0\"}.fa-wpexplorer:before{content:\"\\\\f2de\"}.fa-dyalog:before{content:\"\\\\f399\"}.fa-bity:before{content:\"\\\\f37a\"}.fa-stackpath:before{content:\"\\\\f842\"}.fa-buysellads:before{content:\"\\\\f20d\"}.fa-first-order:before{content:\"\\\\f2b0\"}.fa-modx:before{content:\"\\\\f285\"}.fa-guilded:before{content:\"\\\\e07e\"}.fa-vnv:before{content:\"\\\\f40b\"}.fa-js-square:before,.fa-square-js:before{content:\"\\\\f3b9\"}.fa-microsoft:before{content:\"\\\\f3ca\"}.fa-qq:before{content:\"\\\\f1d6\"}.fa-orcid:before{content:\"\\\\f8d2\"}.fa-java:before{content:\"\\\\f4e4\"}.fa-invision:before{content:\"\\\\f7b0\"}.fa-creative-commons-pd-alt:before{content:\"\\\\f4ed\"}.fa-centercode:before{content:\"\\\\f380\"}.fa-glide-g:before{content:\"\\\\f2a6\"}.fa-drupal:before{content:\"\\\\f1a9\"}.fa-hire-a-helper:before{content:\"\\\\f3b0\"}.fa-creative-commons-by:before{content:\"\\\\f4e7\"}.fa-unity:before{content:\"\\\\e049\"}.fa-whmcs:before{content:\"\\\\f40d\"}.fa-rocketchat:before{content:\"\\\\f3e8\"}.fa-vk:before{content:\"\\\\f189\"}.fa-untappd:before{content:\"\\\\f405\"}.fa-mailchimp:before{content:\"\\\\f59e\"}.fa-css3-alt:before{content:\"\\\\f38b\"}.fa-reddit-square:before,.fa-square-reddit:before{content:\"\\\\f1a2\"}.fa-vimeo-v:before{content:\"\\\\f27d\"}.fa-contao:before{content:\"\\\\f26d\"}.fa-square-font-awesome:before{content:\"\\\\e5ad\"}.fa-deskpro:before{content:\"\\\\f38f\"}.fa-sistrix:before{content:\"\\\\f3ee\"}.fa-instagram-square:before,.fa-square-instagram:before{content:\"\\\\e055\"}.fa-battle-net:before{content:\"\\\\f835\"}.fa-the-red-yeti:before{content:\"\\\\f69d\"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:\"\\\\f3af\"}.fa-edge:before{content:\"\\\\f282\"}.fa-threads:before{content:\"\\\\e618\"}.fa-napster:before{content:\"\\\\f3d2\"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:\"\\\\f2ad\"}.fa-google-plus-g:before{content:\"\\\\f0d5\"}.fa-artstation:before{content:\"\\\\f77a\"}.fa-markdown:before{content:\"\\\\f60f\"}.fa-sourcetree:before{content:\"\\\\f7d3\"}.fa-google-plus:before{content:\"\\\\f2b3\"}.fa-diaspora:before{content:\"\\\\f791\"}.fa-foursquare:before{content:\"\\\\f180\"}.fa-stack-overflow:before{content:\"\\\\f16c\"}.fa-github-alt:before{content:\"\\\\f113\"}.fa-phoenix-squadron:before{content:\"\\\\f511\"}.fa-pagelines:before{content:\"\\\\f18c\"}.fa-algolia:before{content:\"\\\\f36c\"}.fa-red-river:before{content:\"\\\\f3e3\"}.fa-creative-commons-sa:before{content:\"\\\\f4ef\"}.fa-safari:before{content:\"\\\\f267\"}.fa-google:before{content:\"\\\\f1a0\"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:\"\\\\f35c\"}.fa-atlassian:before{content:\"\\\\f77b\"}.fa-linkedin-in:before{content:\"\\\\f0e1\"}.fa-digital-ocean:before{content:\"\\\\f391\"}.fa-nimblr:before{content:\"\\\\f5a8\"}.fa-chromecast:before{content:\"\\\\f838\"}.fa-evernote:before{content:\"\\\\f839\"}.fa-hacker-news:before{content:\"\\\\f1d4\"}.fa-creative-commons-sampling:before{content:\"\\\\f4f0\"}.fa-adversal:before{content:\"\\\\f36a\"}.fa-creative-commons:before{content:\"\\\\f25e\"}.fa-watchman-monitoring:before{content:\"\\\\e087\"}.fa-fonticons:before{content:\"\\\\f280\"}.fa-weixin:before{content:\"\\\\f1d7\"}.fa-shirtsinbulk:before{content:\"\\\\f214\"}.fa-codepen:before{content:\"\\\\f1cb\"}.fa-git-alt:before{content:\"\\\\f841\"}.fa-lyft:before{content:\"\\\\f3c3\"}.fa-rev:before{content:\"\\\\f5b2\"}.fa-windows:before{content:\"\\\\f17a\"}.fa-wizards-of-the-coast:before{content:\"\\\\f730\"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:\"\\\\f2aa\"}.fa-meetup:before{content:\"\\\\f2e0\"}.fa-centos:before{content:\"\\\\f789\"}.fa-adn:before{content:\"\\\\f170\"}.fa-cloudsmith:before{content:\"\\\\f384\"}.fa-pied-piper-alt:before{content:\"\\\\f1a8\"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:\"\\\\f397\"}.fa-codiepie:before{content:\"\\\\f284\"}.fa-node:before{content:\"\\\\f419\"}.fa-mix:before{content:\"\\\\f3cb\"}.fa-steam:before{content:\"\\\\f1b6\"}.fa-cc-apple-pay:before{content:\"\\\\f416\"}.fa-scribd:before{content:\"\\\\f28a\"}.fa-debian:before{content:\"\\\\e60b\"}.fa-openid:before{content:\"\\\\f19b\"}.fa-instalod:before{content:\"\\\\e081\"}.fa-expeditedssl:before{content:\"\\\\f23e\"}.fa-sellcast:before{content:\"\\\\f2da\"}.fa-square-twitter:before,.fa-twitter-square:before{content:\"\\\\f081\"}.fa-r-project:before{content:\"\\\\f4f7\"}.fa-delicious:before{content:\"\\\\f1a5\"}.fa-freebsd:before{content:\"\\\\f3a4\"}.fa-vuejs:before{content:\"\\\\f41f\"}.fa-accusoft:before{content:\"\\\\f369\"}.fa-ioxhost:before{content:\"\\\\f208\"}.fa-fonticons-fi:before{content:\"\\\\f3a2\"}.fa-app-store:before{content:\"\\\\f36f\"}.fa-cc-mastercard:before{content:\"\\\\f1f1\"}.fa-itunes-note:before{content:\"\\\\f3b5\"}.fa-golang:before{content:\"\\\\e40f\"}.fa-kickstarter:before{content:\"\\\\f3bb\"}.fa-grav:before{content:\"\\\\f2d6\"}.fa-weibo:before{content:\"\\\\f18a\"}.fa-uncharted:before{content:\"\\\\e084\"}.fa-firstdraft:before{content:\"\\\\f3a1\"}.fa-square-youtube:before,.fa-youtube-square:before{content:\"\\\\f431\"}.fa-wikipedia-w:before{content:\"\\\\f266\"}.fa-rendact:before,.fa-wpressr:before{content:\"\\\\f3e4\"}.fa-angellist:before{content:\"\\\\f209\"}.fa-galactic-republic:before{content:\"\\\\f50c\"}.fa-nfc-directional:before{content:\"\\\\e530\"}.fa-skype:before{content:\"\\\\f17e\"}.fa-joget:before{content:\"\\\\f3b7\"}.fa-fedora:before{content:\"\\\\f798\"}.fa-stripe-s:before{content:\"\\\\f42a\"}.fa-meta:before{content:\"\\\\e49b\"}.fa-laravel:before{content:\"\\\\f3bd\"}.fa-hotjar:before{content:\"\\\\f3b1\"}.fa-bluetooth-b:before{content:\"\\\\f294\"}.fa-sticker-mule:before{content:\"\\\\f3f7\"}.fa-creative-commons-zero:before{content:\"\\\\f4f3\"}.fa-hips:before{content:\"\\\\f452\"}.fa-behance:before{content:\"\\\\f1b4\"}.fa-reddit:before{content:\"\\\\f1a1\"}.fa-discord:before{content:\"\\\\f392\"}.fa-chrome:before{content:\"\\\\f268\"}.fa-app-store-ios:before{content:\"\\\\f370\"}.fa-cc-discover:before{content:\"\\\\f1f2\"}.fa-wpbeginner:before{content:\"\\\\f297\"}.fa-confluence:before{content:\"\\\\f78d\"}.fa-mdb:before{content:\"\\\\f8ca\"}.fa-dochub:before{content:\"\\\\f394\"}.fa-accessible-icon:before{content:\"\\\\f368\"}.fa-ebay:before{content:\"\\\\f4f4\"}.fa-amazon:before{content:\"\\\\f270\"}.fa-unsplash:before{content:\"\\\\e07c\"}.fa-yarn:before{content:\"\\\\f7e3\"}.fa-square-steam:before,.fa-steam-square:before{content:\"\\\\f1b7\"}.fa-500px:before{content:\"\\\\f26e\"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:\"\\\\f194\"}.fa-asymmetrik:before{content:\"\\\\f372\"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:\"\\\\f2b4\"}.fa-gratipay:before{content:\"\\\\f184\"}.fa-apple:before{content:\"\\\\f179\"}.fa-hive:before{content:\"\\\\e07f\"}.fa-gitkraken:before{content:\"\\\\f3a6\"}.fa-keybase:before{content:\"\\\\f4f5\"}.fa-apple-pay:before{content:\"\\\\f415\"}.fa-padlet:before{content:\"\\\\e4a0\"}.fa-amazon-pay:before{content:\"\\\\f42c\"}.fa-github-square:before,.fa-square-github:before{content:\"\\\\f092\"}.fa-stumbleupon:before{content:\"\\\\f1a4\"}.fa-fedex:before{content:\"\\\\f797\"}.fa-phoenix-framework:before{content:\"\\\\f3dc\"}.fa-shopify:before{content:\"\\\\e057\"}.fa-neos:before{content:\"\\\\f612\"}.fa-square-threads:before{content:\"\\\\e619\"}.fa-hackerrank:before{content:\"\\\\f5f7\"}.fa-researchgate:before{content:\"\\\\f4f8\"}.fa-swift:before{content:\"\\\\f8e1\"}.fa-angular:before{content:\"\\\\f420\"}.fa-speakap:before{content:\"\\\\f3f3\"}.fa-angrycreative:before{content:\"\\\\f36e\"}.fa-y-combinator:before{content:\"\\\\f23b\"}.fa-empire:before{content:\"\\\\f1d1\"}.fa-envira:before{content:\"\\\\f299\"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:\"\\\\e5ae\"}.fa-studiovinari:before{content:\"\\\\f3f8\"}.fa-pied-piper:before{content:\"\\\\f2ae\"}.fa-wordpress:before{content:\"\\\\f19a\"}.fa-product-hunt:before{content:\"\\\\f288\"}.fa-firefox:before{content:\"\\\\f269\"}.fa-linode:before{content:\"\\\\f2b8\"}.fa-goodreads:before{content:\"\\\\f3a8\"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:\"\\\\f264\"}.fa-jsfiddle:before{content:\"\\\\f1cc\"}.fa-sith:before{content:\"\\\\f512\"}.fa-themeisle:before{content:\"\\\\f2b2\"}.fa-page4:before{content:\"\\\\f3d7\"}.fa-hashnode:before{content:\"\\\\e499\"}.fa-react:before{content:\"\\\\f41b\"}.fa-cc-paypal:before{content:\"\\\\f1f4\"}.fa-squarespace:before{content:\"\\\\f5be\"}.fa-cc-stripe:before{content:\"\\\\f1f5\"}.fa-creative-commons-share:before{content:\"\\\\f4f2\"}.fa-bitcoin:before{content:\"\\\\f379\"}.fa-keycdn:before{content:\"\\\\f3ba\"}.fa-opera:before{content:\"\\\\f26a\"}.fa-itch-io:before{content:\"\\\\f83a\"}.fa-umbraco:before{content:\"\\\\f8e8\"}.fa-galactic-senate:before{content:\"\\\\f50d\"}.fa-ubuntu:before{content:\"\\\\f7df\"}.fa-draft2digital:before{content:\"\\\\f396\"}.fa-stripe:before{content:\"\\\\f429\"}.fa-houzz:before{content:\"\\\\f27c\"}.fa-gg:before{content:\"\\\\f260\"}.fa-dhl:before{content:\"\\\\f790\"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:\"\\\\f0d3\"}.fa-xing:before{content:\"\\\\f168\"}.fa-blackberry:before{content:\"\\\\f37b\"}.fa-creative-commons-pd:before{content:\"\\\\f4ec\"}.fa-playstation:before{content:\"\\\\f3df\"}.fa-quinscape:before{content:\"\\\\f459\"}.fa-less:before{content:\"\\\\f41d\"}.fa-blogger-b:before{content:\"\\\\f37d\"}.fa-opencart:before{content:\"\\\\f23d\"}.fa-vine:before{content:\"\\\\f1ca\"}.fa-paypal:before{content:\"\\\\f1ed\"}.fa-gitlab:before{content:\"\\\\f296\"}.fa-typo3:before{content:\"\\\\f42b\"}.fa-reddit-alien:before{content:\"\\\\f281\"}.fa-yahoo:before{content:\"\\\\f19e\"}.fa-dailymotion:before{content:\"\\\\e052\"}.fa-affiliatetheme:before{content:\"\\\\f36b\"}.fa-pied-piper-pp:before{content:\"\\\\f1a7\"}.fa-bootstrap:before{content:\"\\\\f836\"}.fa-odnoklassniki:before{content:\"\\\\f263\"}.fa-nfc-symbol:before{content:\"\\\\e531\"}.fa-ethereum:before{content:\"\\\\f42e\"}.fa-speaker-deck:before{content:\"\\\\f83c\"}.fa-creative-commons-nc-eu:before{content:\"\\\\f4e9\"}.fa-patreon:before{content:\"\\\\f3d9\"}.fa-avianex:before{content:\"\\\\f374\"}.fa-ello:before{content:\"\\\\f5f1\"}.fa-gofore:before{content:\"\\\\f3a7\"}.fa-bimobject:before{content:\"\\\\f378\"}.fa-facebook-f:before{content:\"\\\\f39e\"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:\"\\\\f0d4\"}.fa-mandalorian:before{content:\"\\\\f50f\"}.fa-first-order-alt:before{content:\"\\\\f50a\"}.fa-osi:before{content:\"\\\\f41a\"}.fa-google-wallet:before{content:\"\\\\f1ee\"}.fa-d-and-d-beyond:before{content:\"\\\\f6ca\"}.fa-periscope:before{content:\"\\\\f3da\"}.fa-fulcrum:before{content:\"\\\\f50b\"}.fa-cloudscale:before{content:\"\\\\f383\"}.fa-forumbee:before{content:\"\\\\f211\"}.fa-mizuni:before{content:\"\\\\f3cc\"}.fa-schlix:before{content:\"\\\\f3ea\"}.fa-square-xing:before,.fa-xing-square:before{content:\"\\\\f169\"}.fa-bandcamp:before{content:\"\\\\f2d5\"}.fa-wpforms:before{content:\"\\\\f298\"}.fa-cloudversify:before{content:\"\\\\f385\"}.fa-usps:before{content:\"\\\\f7e1\"}.fa-megaport:before{content:\"\\\\f5a3\"}.fa-magento:before{content:\"\\\\f3c4\"}.fa-spotify:before{content:\"\\\\f1bc\"}.fa-optin-monster:before{content:\"\\\\f23c\"}.fa-fly:before{content:\"\\\\f417\"}.fa-aviato:before{content:\"\\\\f421\"}.fa-itunes:before{content:\"\\\\f3b4\"}.fa-cuttlefish:before{content:\"\\\\f38c\"}.fa-blogger:before{content:\"\\\\f37c\"}.fa-flickr:before{content:\"\\\\f16e\"}.fa-viber:before{content:\"\\\\f409\"}.fa-soundcloud:before{content:\"\\\\f1be\"}.fa-digg:before{content:\"\\\\f1a6\"}.fa-tencent-weibo:before{content:\"\\\\f1d5\"}.fa-symfony:before{content:\"\\\\f83d\"}.fa-maxcdn:before{content:\"\\\\f136\"}.fa-etsy:before{content:\"\\\\f2d7\"}.fa-facebook-messenger:before{content:\"\\\\f39f\"}.fa-audible:before{content:\"\\\\f373\"}.fa-think-peaks:before{content:\"\\\\f731\"}.fa-bilibili:before{content:\"\\\\e3d9\"}.fa-erlang:before{content:\"\\\\f39d\"}.fa-x-twitter:before{content:\"\\\\e61b\"}.fa-cotton-bureau:before{content:\"\\\\f89e\"}.fa-dashcube:before{content:\"\\\\f210\"}.fa-42-group:before,.fa-innosoft:before{content:\"\\\\e080\"}.fa-stack-exchange:before{content:\"\\\\f18d\"}.fa-elementor:before{content:\"\\\\f430\"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:\"\\\\e01e\"}.fa-creative-commons-nd:before{content:\"\\\\f4eb\"}.fa-palfed:before{content:\"\\\\f3d8\"}.fa-superpowers:before{content:\"\\\\f2dd\"}.fa-resolving:before{content:\"\\\\f3e7\"}.fa-xbox:before{content:\"\\\\f412\"}.fa-searchengin:before{content:\"\\\\f3eb\"}.fa-tiktok:before{content:\"\\\\e07b\"}.fa-facebook-square:before,.fa-square-facebook:before{content:\"\\\\f082\"}.fa-renren:before{content:\"\\\\f18b\"}.fa-linux:before{content:\"\\\\f17c\"}.fa-glide:before{content:\"\\\\f2a5\"}.fa-linkedin:before{content:\"\\\\f08c\"}.fa-hubspot:before{content:\"\\\\f3b2\"}.fa-deploydog:before{content:\"\\\\f38e\"}.fa-twitch:before{content:\"\\\\f1e8\"}.fa-ravelry:before{content:\"\\\\f2d9\"}.fa-mixer:before{content:\"\\\\e056\"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:\"\\\\f203\"}.fa-vimeo:before{content:\"\\\\f40a\"}.fa-mendeley:before{content:\"\\\\f7b3\"}.fa-uniregistry:before{content:\"\\\\f404\"}.fa-figma:before{content:\"\\\\f799\"}.fa-creative-commons-remix:before{content:\"\\\\f4ee\"}.fa-cc-amazon-pay:before{content:\"\\\\f42d\"}.fa-dropbox:before{content:\"\\\\f16b\"}.fa-instagram:before{content:\"\\\\f16d\"}.fa-cmplid:before{content:\"\\\\e360\"}.fa-facebook:before{content:\"\\\\f09a\"}.fa-gripfire:before{content:\"\\\\f3ac\"}.fa-jedi-order:before{content:\"\\\\f50e\"}.fa-uikit:before{content:\"\\\\f403\"}.fa-fort-awesome-alt:before{content:\"\\\\f3a3\"}.fa-phabricator:before{content:\"\\\\f3db\"}.fa-ussunnah:before{content:\"\\\\f407\"}.fa-earlybirds:before{content:\"\\\\f39a\"}.fa-trade-federation:before{content:\"\\\\f513\"}.fa-autoprefixer:before{content:\"\\\\f41c\"}.fa-whatsapp:before{content:\"\\\\f232\"}.fa-slideshare:before{content:\"\\\\f1e7\"}.fa-google-play:before{content:\"\\\\f3ab\"}.fa-viadeo:before{content:\"\\\\f2a9\"}.fa-line:before{content:\"\\\\f3c0\"}.fa-google-drive:before{content:\"\\\\f3aa\"}.fa-servicestack:before{content:\"\\\\f3ec\"}.fa-simplybuilt:before{content:\"\\\\f215\"}.fa-bitbucket:before{content:\"\\\\f171\"}.fa-imdb:before{content:\"\\\\f2d8\"}.fa-deezer:before{content:\"\\\\e077\"}.fa-raspberry-pi:before{content:\"\\\\f7bb\"}.fa-jira:before{content:\"\\\\f7b1\"}.fa-docker:before{content:\"\\\\f395\"}.fa-screenpal:before{content:\"\\\\e570\"}.fa-bluetooth:before{content:\"\\\\f293\"}.fa-gitter:before{content:\"\\\\f426\"}.fa-d-and-d:before{content:\"\\\\f38d\"}.fa-microblog:before{content:\"\\\\e01a\"}.fa-cc-diners-club:before{content:\"\\\\f24c\"}.fa-gg-circle:before{content:\"\\\\f261\"}.fa-pied-piper-hat:before{content:\"\\\\f4e5\"}.fa-kickstarter-k:before{content:\"\\\\f3bc\"}.fa-yandex:before{content:\"\\\\f413\"}.fa-readme:before{content:\"\\\\f4d5\"}.fa-html5:before{content:\"\\\\f13b\"}.fa-sellsy:before{content:\"\\\\f213\"}.fa-sass:before{content:\"\\\\f41e\"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:\"\\\\e2d0\"}.fa-buromobelexperte:before{content:\"\\\\f37f\"}.fa-salesforce:before{content:\"\\\\f83b\"}.fa-octopus-deploy:before{content:\"\\\\e082\"}.fa-medapps:before{content:\"\\\\f3c6\"}.fa-ns8:before{content:\"\\\\f3d5\"}.fa-pinterest-p:before{content:\"\\\\f231\"}.fa-apper:before{content:\"\\\\f371\"}.fa-fort-awesome:before{content:\"\\\\f286\"}.fa-waze:before{content:\"\\\\f83f\"}.fa-cc-jcb:before{content:\"\\\\f24b\"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:\"\\\\f2ab\"}.fa-fantasy-flight-games:before{content:\"\\\\f6dc\"}.fa-rust:before{content:\"\\\\e07a\"}.fa-wix:before{content:\"\\\\f5cf\"}.fa-behance-square:before,.fa-square-behance:before{content:\"\\\\f1b5\"}.fa-supple:before{content:\"\\\\f3f9\"}.fa-rebel:before{content:\"\\\\f1d0\"}.fa-css3:before{content:\"\\\\f13c\"}.fa-staylinked:before{content:\"\\\\f3f5\"}.fa-kaggle:before{content:\"\\\\f5fa\"}.fa-space-awesome:before{content:\"\\\\e5ac\"}.fa-deviantart:before{content:\"\\\\f1bd\"}.fa-cpanel:before{content:\"\\\\f388\"}.fa-goodreads-g:before{content:\"\\\\f3a9\"}.fa-git-square:before,.fa-square-git:before{content:\"\\\\f1d2\"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:\"\\\\f174\"}.fa-trello:before{content:\"\\\\f181\"}.fa-creative-commons-nc-jp:before{content:\"\\\\f4ea\"}.fa-get-pocket:before{content:\"\\\\f265\"}.fa-perbyte:before{content:\"\\\\e083\"}.fa-grunt:before{content:\"\\\\f3ad\"}.fa-weebly:before{content:\"\\\\f5cc\"}.fa-connectdevelop:before{content:\"\\\\f20e\"}.fa-leanpub:before{content:\"\\\\f212\"}.fa-black-tie:before{content:\"\\\\f27e\"}.fa-themeco:before{content:\"\\\\f5c6\"}.fa-python:before{content:\"\\\\f3e2\"}.fa-android:before{content:\"\\\\f17b\"}.fa-bots:before{content:\"\\\\e340\"}.fa-free-code-camp:before{content:\"\\\\f2c5\"}.fa-hornbill:before{content:\"\\\\f592\"}.fa-js:before{content:\"\\\\f3b8\"}.fa-ideal:before{content:\"\\\\e013\"}.fa-git:before{content:\"\\\\f1d3\"}.fa-dev:before{content:\"\\\\f6cc\"}.fa-sketch:before{content:\"\\\\f7c6\"}.fa-yandex-international:before{content:\"\\\\f414\"}.fa-cc-amex:before{content:\"\\\\f1f3\"}.fa-uber:before{content:\"\\\\f402\"}.fa-github:before{content:\"\\\\f09b\"}.fa-php:before{content:\"\\\\f457\"}.fa-alipay:before{content:\"\\\\f642\"}.fa-youtube:before{content:\"\\\\f167\"}.fa-skyatlas:before{content:\"\\\\f216\"}.fa-firefox-browser:before{content:\"\\\\e007\"}.fa-replyd:before{content:\"\\\\f3e6\"}.fa-suse:before{content:\"\\\\f7d6\"}.fa-jenkins:before{content:\"\\\\f3b6\"}.fa-twitter:before{content:\"\\\\f099\"}.fa-rockrms:before{content:\"\\\\f3e9\"}.fa-pinterest:before{content:\"\\\\f0d2\"}.fa-buffer:before{content:\"\\\\f837\"}.fa-npm:before{content:\"\\\\f3d4\"}.fa-yammer:before{content:\"\\\\f840\"}.fa-btc:before{content:\"\\\\f15a\"}.fa-dribbble:before{content:\"\\\\f17d\"}.fa-stumbleupon-circle:before{content:\"\\\\f1a3\"}.fa-internet-explorer:before{content:\"\\\\f26b\"}.fa-stubber:before{content:\"\\\\e5c7\"}.fa-telegram-plane:before,.fa-telegram:before{content:\"\\\\f2c6\"}.fa-old-republic:before{content:\"\\\\f510\"}.fa-odysee:before{content:\"\\\\e5c6\"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:\"\\\\f40c\"}.fa-node-js:before{content:\"\\\\f3d3\"}.fa-edge-legacy:before{content:\"\\\\e078\"}.fa-slack-hash:before,.fa-slack:before{content:\"\\\\f198\"}.fa-medrt:before{content:\"\\\\f3c8\"}.fa-usb:before{content:\"\\\\f287\"}.fa-tumblr:before{content:\"\\\\f173\"}.fa-vaadin:before{content:\"\\\\f408\"}.fa-quora:before{content:\"\\\\f2c4\"}.fa-square-x-twitter:before{content:\"\\\\e61a\"}.fa-reacteurope:before{content:\"\\\\f75d\"}.fa-medium-m:before,.fa-medium:before{content:\"\\\\f23a\"}.fa-amilia:before{content:\"\\\\f36d\"}.fa-mixcloud:before{content:\"\\\\f289\"}.fa-flipboard:before{content:\"\\\\f44d\"}.fa-viacoin:before{content:\"\\\\f237\"}.fa-critical-role:before{content:\"\\\\f6c9\"}.fa-sitrox:before{content:\"\\\\e44a\"}.fa-discourse:before{content:\"\\\\f393\"}.fa-joomla:before{content:\"\\\\f1aa\"}.fa-mastodon:before{content:\"\\\\f4f6\"}.fa-airbnb:before{content:\"\\\\f834\"}.fa-wolf-pack-battalion:before{content:\"\\\\f514\"}.fa-buy-n-large:before{content:\"\\\\f8a6\"}.fa-gulp:before{content:\"\\\\f3ae\"}.fa-creative-commons-sampling-plus:before{content:\"\\\\f4f1\"}.fa-strava:before{content:\"\\\\f428\"}.fa-ember:before{content:\"\\\\f423\"}.fa-canadian-maple-leaf:before{content:\"\\\\f785\"}.fa-teamspeak:before{content:\"\\\\f4f9\"}.fa-pushed:before{content:\"\\\\f3e1\"}.fa-wordpress-simple:before{content:\"\\\\f411\"}.fa-nutritionix:before{content:\"\\\\f3d6\"}.fa-wodu:before{content:\"\\\\e088\"}.fa-google-pay:before{content:\"\\\\e079\"}.fa-intercom:before{content:\"\\\\f7af\"}.fa-zhihu:before{content:\"\\\\f63f\"}.fa-korvue:before{content:\"\\\\f42f\"}.fa-pix:before{content:\"\\\\e43a\"}.fa-steam-symbol:before{content:\"\\\\f3f6\"}:host,:root{--fa-font-regular:normal 400 1em/1 \"Font Awesome 6 Free\"}@font-face{font-family:\"Font Awesome 6 Free\";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:\"Font Awesome 6 Free\";--fa-font-solid:normal 900 1em/1 \"Font Awesome 6 Free\"}@font-face{font-family:\"Font Awesome 6 Free\";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\")}.fa-solid,.fas{font-weight:900}@font-face{font-family:\"Font Awesome 5 Brands\";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\")}@font-face{font-family:\"Font Awesome 5 Free\";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\")}@font-face{font-family:\"Font Awesome 5 Free\";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\")}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\")}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\")}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format(\"woff2\"),url(../webfonts/fa-v4compatibility.ttf) format(\"truetype\");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}\r\n\r\n`;","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import Highcharts from 'highcharts/highcharts';\r\nimport STRINGS from '~/lang/strings_el.json';\r\nimport { html, css, LitElement } from \"lit\";\r\nimport { classMap } from 'lit/directives/class-map.js';\r\n\r\nexport default class Utils {\r\n static amountColWidth=140;\r\n static round(num, scale) {\r\n if(!(\"\" + num).includes(\"e\")) {\r\n return +(Math.round(num + \"e+\" + scale) + \"e-\" + scale);\r\n } else {\r\n var arr = (\"\" + num).split(\"e\");\r\n var sig = \"\"\r\n if(+arr[1] + scale > 0) {\r\n sig = \"+\";\r\n }\r\n return +(Math.round(+arr[0] + \"e\" + sig + (+arr[1] + scale)) + \"e-\" + scale);\r\n }\r\n }\r\n static getPolicyColors(id){\r\n let colors = {\r\n \"4\": \"#29bba8\",\r\n \"7\": \"#9bca40\",\r\n \"8\": \"#f68946\",\r\n \"6\": \"#db5e5b\",\r\n \"5\": \"#07acda\"\r\n };\r\n return colors[id];\r\n }\r\n static getFundsColors(id){\r\n let colors = {\r\n \"610\":\"#344989\",\r\n \"612\":\"#da710f\",\r\n \"620\":\"#a654c6\",\r\n \"640\":\"#ed4985\",\r\n \"613\":\"#17becf\",\r\n \"614\":\"#bcbd22\",\r\n };\r\n return colors[id];\r\n }\r\n static getCohesionColors(unit){\r\n let color=\"\";\r\n switch(unit){\r\n case \"AMOUNT_TOTAL\":\r\n color=\"#ff6262\";\r\n break;\r\n case \"AMOUNT_EU\":\r\n color=\"#3f48cc\";\r\n break;\r\n case \"AMOUNT_NATIONAL\":\r\n color=\"#22b14c\";\r\n break;\r\n } \r\n return color;\r\n }\r\n static getHighchartColors(){\r\n let colors = ['#2caffe', '#544fc5', '#00e272', '#fe6a35', '#6b8abc', '#d568fb', '#2ee0ca', '#006400', '#feb56a', '#2f4f4f','#d7f50f','#91e8e1'];\r\n //colors = colors.unshift(\"#d11b2f\");\r\n \r\n return Highcharts.map(colors, function (color) {\r\n return {\r\n radialGradient: {\r\n cx: 0.5,\r\n cy: 0.3,\r\n r: 0.7\r\n },\r\n stops: [\r\n [0, color],\r\n [1, Highcharts.color(color).brighten(-0.3).get('rgb')] // darken\r\n ]\r\n };\r\n })\r\n }\r\n static getChartContainer(data,title){\r\n return html`\r\n
\r\n
\r\n
${title}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
${(!data)?STRINGS.MESSAGES.LOADING:\"\"}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n `; \r\n }\r\n static getChartContainerSplit(data,title){\r\n return html`\r\n
\r\n
\r\n
${title}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
${(!data)?STRINGS.MESSAGES.LOADING:\"\"}
\r\n
\r\n
\r\n
${(!data)?STRINGS.MESSAGES.LOADING:\"\"}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n `; \r\n }\r\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","/*\n Highcharts JS v11.1.0 (2023-06-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n'use strict';(function(b){\"object\"===typeof module&&module.exports?(b[\"default\"]=b,module.exports=b):\"function\"===typeof define&&define.amd?define(\"highcharts/highcharts-more\",[\"highcharts\"],function(t){b(t);b.Highcharts=t;return b}):b(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(b){function t(a,d,e,b){a.hasOwnProperty(d)||(a[d]=b.apply(null,e),\"function\"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:d,module:a[d]}})))}b=b?b._modules:\n{};t(b,\"Extensions/Pane.js\",[b[\"Core/Chart/Chart.js\"],b[\"Series/CenteredUtilities.js\"],b[\"Core/Globals.js\"],b[\"Core/Pointer.js\"],b[\"Core/Utilities.js\"]],function(a,d,e,b,f){function m(c,k,g,G,d){let r=!0;const a=g[0],p=g[1],z=Math.sqrt(Math.pow(c-a,2)+Math.pow(k-p,2));C(G)&&C(d)&&(c=Math.atan2(u(k-p,8),u(c-a,8)),d!==G&&(r=G>d?c>=G&&c<=Math.PI||c<=d&&c>=-Math.PI:c>=G&&c<=u(d,8)));return z<=Math.ceil(g[2]/2)&&r}const {addEvent:h,correctFloat:u,defined:C,extend:v,merge:n,pick:D,splat:y}=f;a.prototype.collectionsWithUpdate.push(\"pane\");\nclass g{constructor(c,k){this.options=this.chart=this.center=this.background=void 0;this.coll=\"pane\";this.defaultOptions={center:[\"50%\",\"50%\"],size:\"85%\",innerSize:\"0%\",startAngle:0};this.defaultBackgroundOptions={shape:\"circle\",borderWidth:1,borderColor:\"#cccccc\",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,\"#ffffff\"],[1,\"#e6e6e6\"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:\"105%\"};this.init(c,k)}init(c,k){this.chart=k;this.background=[];k.pane.push(this);\nthis.setOptions(c)}setOptions(c){this.options=n(this.defaultOptions,this.chart.angular?{background:{}}:void 0,c)}render(){var c=this.options;let k=this.options.background;var g=this.chart.renderer;this.group||(this.group=g.g(\"pane-group\").attr({zIndex:c.zIndex||0}).add());this.updateCenter();if(k)for(k=y(k),c=Math.max(k.length,this.background.length||0),g=0;g{m(c.chartX-k.plotLeft,c.chartY-k.plotTop,G.center)&&(g=G)});return g};h(a,\"afterIsInsidePlot\",function(c){this.polar&&(c.options.inverted&&([c.x,c.y]=[c.y,c.x]),c.isInsidePlot=this.pane.some(k=>m(c.x,c.y,k.center,k.axis&&k.axis.normalizedStartAngleRad,k.axis&&k.axis.normalizedEndAngleRad)))});h(b,\"beforeGetHoverData\",function(c){const k=\nthis.chart;k.polar?(k.hoverPane=k.getHoverPane(c),c.filter=function(g){return g.visible&&!(!c.shared&&g.directTouch)&&D(g.options.enableMouseTracking,!0)&&(!k.hoverPane||g.xAxis.pane===k.hoverPane)}):k.hoverPane=void 0});h(b,\"afterGetHoverData\",function(c){const k=this.chart;c.hoverPoint&&c.hoverPoint.plotX&&c.hoverPoint.plotY&&k.hoverPane&&!m(c.hoverPoint.plotX,c.hoverPoint.plotY,k.hoverPane.center)&&(c.hoverPoint=void 0)});e.Pane=g;return e.Pane});t(b,\"Series/AreaRange/AreaRangePoint.js\",[b[\"Core/Series/SeriesRegistry.js\"],\nb[\"Core/Utilities.js\"]],function(a,d){const {area:{prototype:{pointClass:e,pointClass:{prototype:b}}}}=a.seriesTypes,{defined:f,isNumber:m}=d;class q extends e{constructor(){super(...arguments);this.series=this.plotX=this.options=this.low=this.high=void 0}setState(){const d=this.state,a=this.series,e=a.chart.polar;f(this.plotHigh)||(this.plotHigh=a.yAxis.toPixels(this.high,!0));f(this.plotLow)||(this.plotLow=this.plotY=a.yAxis.toPixels(this.low,!0));a.stateMarkerGraphic&&(a.lowerStateMarkerGraphic=\na.stateMarkerGraphic,a.stateMarkerGraphic=a.upperStateMarkerGraphic);this.graphic=this.graphics&&this.graphics[1];this.plotY=this.plotHigh;e&&m(this.plotHighX)&&(this.plotX=this.plotHighX);b.setState.apply(this,arguments);this.state=d;this.plotY=this.plotLow;this.graphic=this.graphics&&this.graphics[0];e&&m(this.plotLowX)&&(this.plotX=this.plotLowX);a.stateMarkerGraphic&&(a.upperStateMarkerGraphic=a.stateMarkerGraphic,a.stateMarkerGraphic=a.lowerStateMarkerGraphic,a.lowerStateMarkerGraphic=void 0);\nb.setState.apply(this,arguments)}haloPath(){const a=this.series.chart.polar;let d=[];this.plotY=this.plotLow;a&&m(this.plotLowX)&&(this.plotX=this.plotLowX);this.isInside&&(d=b.haloPath.apply(this,arguments));this.plotY=this.plotHigh;a&&m(this.plotHighX)&&(this.plotX=this.plotHighX);this.isTopInside&&(d=d.concat(b.haloPath.apply(this,arguments)));return d}isValid(){return m(this.low)&&m(this.high)}}return q});t(b,\"Series/AreaRange/AreaRangeSeries.js\",[b[\"Series/AreaRange/AreaRangePoint.js\"],b[\"Core/Globals.js\"],\nb[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,b,h){({noop:d}=d);const {area:e,area:{prototype:m},column:{prototype:q}}=b.seriesTypes,{addEvent:u,defined:C,extend:v,isArray:n,isNumber:D,pick:y,merge:g}=h;class c extends e{constructor(){super(...arguments);this.xAxis=this.lowerStateMarkerGraphic=this.points=this.options=this.data=void 0}toYData(c){return[c.low,c.high]}highToXY(c){const k=this.chart,g=this.xAxis.postTranslate(c.rectPlotX||0,this.yAxis.len-(c.plotHigh||0));c.plotHighX=\ng.x-k.plotLeft;c.plotHigh=g.y-k.plotTop;c.plotLowX=c.plotX}getGraphPath(c){var g=[],k=[];const a=m.getGraphPath;var d=this.options;const b=this.chart.polar,p=b&&!1!==d.connectEnds,e=d.connectNulls;let f,h,v,l=d.step;c=c||this.points;for(f=c.length;f--;){h=c[f];const l=b?{plotX:h.rectPlotX,plotY:h.yBottom,doCurve:!1}:{plotX:h.plotX,plotY:h.plotY,doCurve:!1};h.isNull||p||e||c[f+1]&&!c[f+1].isNull||k.push(l);v={polarPlotY:h.polarPlotY,rectPlotX:h.rectPlotX,yBottom:h.yBottom,plotX:y(h.plotHighX,h.plotX),\nplotY:h.plotHigh,isNull:h.isNull};k.push(v);g.push(v);h.isNull||p||e||c[f-1]&&!c[f-1].isNull||k.push(l)}c=a.call(this,c);l&&(!0===l&&(l=\"left\"),d.step={left:\"right\",center:\"center\",right:\"left\"}[l]);g=a.call(this,g);k=a.call(this,k);d.step=l;d=[].concat(c,g);!this.chart.polar&&k[0]&&\"M\"===k[0][0]&&(k[0]=[\"L\",k[0][1],k[0][2]]);this.graphPath=d;this.areaPath=c.concat(k);d.isArea=!0;d.xMap=c.xMap;this.areaPath.xMap=c.xMap;return d}drawDataLabels(){const c=this.points,g=c.length,d=[],a=this.options.dataLabels,\nb=this.chart.inverted;let e,p,f,h,F;if(a){n(a)?(h=a[0]||{enabled:!1},F=a[1]||{enabled:!1}):(h=v({},a),h.x=a.xHigh,h.y=a.yHigh,F=v({},a),F.x=a.xLow,F.y=a.yLow);if(h.enabled||this._hasPointLabels){for(e=g;e--;)if(p=c[e]){const {plotHigh:c=0,plotLow:l=0}=p;f=h.inside?cl;p.y=p.high;p._plotY=p.plotY;p.plotY=c;d[e]=p.dataLabel;p.dataLabel=p.dataLabelUpper;p.below=f;b?h.align||(h.align=f?\"right\":\"left\"):h.verticalAlign||(h.verticalAlign=f?\"top\":\"bottom\")}this.options.dataLabels=h;m.drawDataLabels&&\nm.drawDataLabels.apply(this,arguments);for(e=g;e--;)if(p=c[e])p.dataLabelUpper=p.dataLabel,p.dataLabel=d[e],delete p.dataLabels,p.y=p.low,p.plotY=p._plotY}if(F.enabled||this._hasPointLabels){for(e=g;e--;)if(p=c[e]){const {plotHigh:c=0,plotLow:l=0}=p;f=F.inside?cl;p.below=!f;b?F.align||(F.align=f?\"left\":\"right\"):F.verticalAlign||(F.verticalAlign=f?\"bottom\":\"top\")}this.options.dataLabels=F;m.drawDataLabels&&m.drawDataLabels.apply(this,arguments)}if(h.enabled)for(e=g;e--;)if(p=c[e])p.dataLabels=\n[p.dataLabelUpper,p.dataLabel].filter(function(c){return!!c});this.options.dataLabels=a}}alignDataLabel(){q.alignDataLabel.apply(this,arguments)}drawPoints(){const c=this.points.length;let g,a;m.drawPoints.apply(this,arguments);for(g=0;g\\u25cf {series.name}: {point.low} - {point.high}
'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}});u(c,\"afterTranslate\",function(){\"low,high\"===this.pointArrayMap.join(\",\")&&this.points.forEach(c=>{const g=c.high,a=c.plotY;c.isNull?c.plotY=void 0:(c.plotLow=a,c.plotHigh=D(g)?this.yAxis.translate(this.dataModify?\nthis.dataModify.modifyValue(g):g,!1,!0,void 0,!0):void 0,this.dataModify&&(c.yBottom=c.plotHigh))})},{order:0});u(c,\"afterTranslate\",function(){this.points.forEach(c=>{if(this.chart.polar)this.highToXY(c),c.plotLow=c.plotY,c.tooltipPos=[((c.plotHighX||0)+(c.plotLowX||0))/2,((c.plotHigh||0)+(c.plotLow||0))/2];else{const g=c.pos(!1,c.plotLow),a=c.pos(!1,c.plotHigh);g&&a&&(g[0]=(g[0]+a[0])/2,g[1]=(g[1]+a[1])/2);c.tooltipPos=g}})},{order:3});v(c.prototype,{deferTranslatePolar:!0,pointArrayMap:[\"low\",\n\"high\"],pointClass:a,pointValKey:\"low\",setStackedPoints:d});b.registerSeriesType(\"arearange\",c);\"\";return c});t(b,\"Series/AreaSplineRange/AreaSplineRangeSeries.js\",[b[\"Series/AreaRange/AreaRangeSeries.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,e){const {spline:{prototype:b}}=d.seriesTypes,{merge:f,extend:m}=e;class q extends a{constructor(){super(...arguments);this.points=this.data=this.options=void 0}}q.defaultOptions=f(a.defaultOptions);m(q.prototype,{getPointSpline:b.getPointSpline});\nd.registerSeriesType(\"areasplinerange\",q);\"\";return q});t(b,\"Series/BoxPlot/BoxPlotSeries.js\",[b[\"Series/Column/ColumnSeries.js\"],b[\"Core/Globals.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,e,b){({noop:d}=d);const {extend:f,merge:h,pick:q}=b;class u extends a{constructor(){super(...arguments);this.points=this.options=this.data=void 0}pointAttribs(){return{}}translate(){const a=this.yAxis,d=this.pointArrayMap;super.translate.apply(this);this.points.forEach(function(e){d.forEach(function(d){null!==\ne[d]&&(e[d+\"Plot\"]=a.translate(e[d],0,1,0,1))});e.plotHigh=e.highPlot})}drawPoints(){let a=this,d=a.options,e=a.chart,b=e.renderer,f,g,c,k,r,h,z=0,m,A,p,Q,N=!1!==a.doQuartiles,F,I=a.options.whiskerLength;a.points.forEach(function(l){var B=l.graphic;let H=B?\"animate\":\"attr\",M=l.shapeArgs,J={},O={},G={},P={},n=l.color||a.color;\"undefined\"!==typeof l.plotY&&(m=Math.round(M.width),A=Math.floor(M.x),p=A+m,Q=Math.round(m/2),f=Math.floor(N?l.q1Plot:l.lowPlot),g=Math.floor(N?l.q3Plot:l.lowPlot),c=Math.floor(l.highPlot),\nk=Math.floor(l.lowPlot),B||(l.graphic=B=b.g(\"point\").add(a.group),l.stem=b.path().addClass(\"highcharts-boxplot-stem\").add(B),I&&(l.whiskers=b.path().addClass(\"highcharts-boxplot-whisker\").add(B)),N&&(l.box=b.path(void 0).addClass(\"highcharts-boxplot-box\").add(B)),l.medianShape=b.path(void 0).addClass(\"highcharts-boxplot-median\").add(B)),e.styledMode||(O.stroke=l.stemColor||d.stemColor||n,O[\"stroke-width\"]=q(l.stemWidth,d.stemWidth,d.lineWidth),O.dashstyle=l.stemDashStyle||d.stemDashStyle||d.dashStyle,\nl.stem.attr(O),I&&(G.stroke=l.whiskerColor||d.whiskerColor||n,G[\"stroke-width\"]=q(l.whiskerWidth,d.whiskerWidth,d.lineWidth),G.dashstyle=l.whiskerDashStyle||d.whiskerDashStyle||d.dashStyle,l.whiskers.attr(G)),N&&(J.fill=l.fillColor||d.fillColor||n,J.stroke=d.lineColor||n,J[\"stroke-width\"]=d.lineWidth||0,J.dashstyle=l.boxDashStyle||d.boxDashStyle||d.dashStyle,l.box.attr(J)),P.stroke=l.medianColor||d.medianColor||n,P[\"stroke-width\"]=q(l.medianWidth,d.medianWidth,d.lineWidth),P.dashstyle=l.medianDashStyle||\nd.medianDashStyle||d.dashStyle,l.medianShape.attr(P)),h=l.stem.strokeWidth()%2/2,z=A+Q+h,B=[[\"M\",z,g],[\"L\",z,c],[\"M\",z,f],[\"L\",z,k]],l.stem[H]({d:B}),N&&(h=l.box.strokeWidth()%2/2,f=Math.floor(f)+h,g=Math.floor(g)+h,A+=h,p+=h,B=[[\"M\",A,g],[\"L\",A,f],[\"L\",p,f],[\"L\",p,g],[\"L\",A,g],[\"Z\"]],l.box[H]({d:B})),I&&(h=l.whiskers.strokeWidth()%2/2,c+=h,k+=h,F=/%$/.test(I)?Q*parseFloat(I)/100:I/2,B=[[\"M\",z-F,c],[\"L\",z+F,c],[\"M\",z-F,k],[\"L\",z+F,k]],l.whiskers[H]({d:B})),r=Math.round(l.medianPlot),h=l.medianShape.strokeWidth()%\n2/2,r+=h,B=[[\"M\",A,r],[\"L\",p,r]],l.medianShape[H]({d:B}))})}toYData(a){return[a.low,a.q1,a.median,a.q3,a.high]}}u.defaultOptions=h(a.defaultOptions,{threshold:null,tooltip:{pointFormat:'\\u25cf {series.name}
Maximum: {point.high}
Upper quartile: {point.q3}
Median: {point.median}
Lower quartile: {point.q1}
Minimum: {point.low}
'},whiskerLength:\"50%\",fillColor:\"#ffffff\",lineWidth:1,medianWidth:2,whiskerWidth:2});f(u.prototype,{pointArrayMap:[\"low\",\n\"q1\",\"median\",\"q3\",\"high\"],pointValKey:\"high\",drawDataLabels:d,setStackedPoints:d});e.registerSeriesType(\"boxplot\",u);\"\";return u});t(b,\"Series/Bubble/BubbleLegendDefaults.js\",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:\"\",formatter:void 0,align:\"right\",style:{fontSize:\"0.9em\",color:\"#000000\"},x:0,y:0},maxSize:60,minSize:10,\nlegendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:\"area\",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}});t(b,\"Series/Bubble/BubbleLegendItem.js\",[b[\"Core/Color/Color.js\"],b[\"Core/Templating.js\"],b[\"Core/Globals.js\"],b[\"Core/Utilities.js\"]],function(a,d,e,b){const {parse:f}=a,{noop:h}=e,{arrayMax:q,arrayMin:u,isNumber:C,merge:v,pick:n,stableSort:D}=b;class y{constructor(a,c){this.options=this.symbols=this.visible=this.selected=this.ranges=this.movementX=\nthis.maxLabel=this.legend=this.chart=void 0;this.setState=h;this.init(a,c)}init(a,c){this.options=a;this.visible=!0;this.chart=c.chart;this.legend=c}addToLegend(a){a.splice(this.options.legendIndex,0,this)}drawLegendSymbol(a){const c=n(a.options.itemDistance,20),g=this.legendItem||{},d=this.options;var e=d.ranges,b=d.connectorDistance;if(e&&e.length&&C(e[0].value)){D(e,function(c,a){return a.value-c.value});this.ranges=e;this.setOptions();this.render();a=this.getMaxLabelSize();var f=this.ranges[0].radius;\ne=2*f;b=b-f+a.width;b=0=d&&this.renderRange(c);this.hideOverlappingLabels()}renderRange(a){var c=\nthis.options;const d=c.labels;var g=this.chart;const e=g.series[c.seriesIndex],b=g.renderer,f=this.symbols;g=f.labels;const h=a.center,p=Math.abs(a.radius);var m=c.connectorDistance||0;const n=d.align,F=c.connectorWidth,q=this.ranges[0].radius||0,l=h-p-c.borderWidth/2+F/2,B=b.styledMode;m=this.legend.options.rtl||\"left\"===n?-m:m;\"center\"===n&&(m=0,c.connectorDistance=0,a.labelAttribs.align=\"center\");f.bubbleItems.push(b.circle(q,h+((l%1?1:.5)-(F%2?0:.5)),p).attr(B?{}:a.bubbleAttribs).addClass((B?\n\"highcharts-color-\"+e.colorIndex+\" \":\"\")+\"highcharts-bubble-legend-symbol \"+(c.className||\"\")).add(this.legendItem.symbol));f.connectors.push(b.path(b.crispLine([[\"M\",q,l],[\"L\",q+m,l]],c.connectorWidth)).attr(B?{}:a.connectorAttribs).addClass((B?\"highcharts-color-\"+this.options.seriesIndex+\" \":\"\")+\"highcharts-bubble-legend-connectors \"+(c.connectorClassName||\"\")).add(this.legendItem.symbol));a=b.text(this.formatLabel(a)).attr(B?{}:a.labelAttribs).css(B?{}:d.style).addClass(\"highcharts-bubble-legend-labels \"+\n(c.labels.className||\"\")).add(this.legendItem.symbol);c={x:q+m+c.labels.x,y:l+c.labels.y+.4*a.getBBox().height};a.attr(c);g.push(a);a.placed=!0;a.alignAttr=c}getMaxLabelSize(){let a,c;this.symbols.labels.forEach(function(d){c=d.getBBox(!0);a=a?c.width>a.width?c:a:c});return a||{}}formatLabel(a){var c=this.options;const g=c.labels.formatter;c=c.labels.format;const {numberFormatter:b}=this.chart;return c?d.format(c,a):g?g.call(a):b(a.value,1)}hideOverlappingLabels(){const a=this.chart,c=this.symbols;\n!this.options.labels.allowOverlap&&c&&(a.hideOverlappingLabels(c.labels),c.labels.forEach(function(a,d){a.newOpacity?a.newOpacity!==a.oldOpacity&&c.connectors[d].show():c.connectors[d].hide()}))}getRanges(){const a=this.legend.bubbleLegend,c=a.options.ranges;let d,b,e=Number.MAX_VALUE,f=-Number.MAX_VALUE;a.chart.series.forEach(function(c){c.isBubble&&!c.ignoreSeries&&(b=c.zData.filter(C),b.length&&(e=n(c.options.zMin,Math.min(e,Math.max(u(b),!1===c.options.displayNegative?c.options.zThreshold:-Number.MAX_VALUE))),\nf=n(c.options.zMax,Math.max(f,q(b)))))});d=e===f?[{value:f}]:[{value:e},{value:(e+f)/2},{value:f,autoRanges:!0}];c.length&&c[0].radius&&d.reverse();d.forEach(function(a,g){c&&c[g]&&(d[g]=v(c[g],a))});return d}predictBubbleSizes(){var a=this.chart,c=a.legend.options,d=c.floating;const b=(c=\"horizontal\"===c.layout)?a.legend.lastLineHeight:0,e=a.plotSizeX,f=a.plotSizeY;var h=a.series[this.options.seriesIndex],m=h.getPxExtremes();a=Math.ceil(m.minPxSize);m=Math.ceil(m.maxPxSize);const p=Math.min(f,e);\nh=h.options.maxSize;if(d||!/%$/.test(h))d=m;else if(h=parseFloat(h),d=(p+b)*h/100/(h/100+1),c&&f-d>=e||!c&&e-d>=f)d=m;return[a,Math.ceil(d)]}updateRanges(a,c){const d=this.legend.options.bubbleLegend;d.minSize=a;d.maxSize=c;d.ranges=this.getRanges()}correctSizes(){const a=this.legend,c=this.chart.series[this.options.seriesIndex].getPxExtremes();1{f=c.legendItem||{};f.group&&(f.group.translateY=null)})),g.render(),\nthis.getMargins(),this.axes.forEach(function(c){c.visible&&c.render();e.placed||(c.setScale(),c.updateNames(),y(c.ticks,function(c){c.isNew=!0;c.isNewLabel=!0}))}),e.placed=!0,this.getMargins(),c.call(this,a,d),g.bubbleLegend.correctSizes(),v(g,q(g))):(c.call(this,a,d),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),v(g,q(g))))}function h(c){c=c.series;let a=0;for(;af.height&&(f.height=c[e].itemHeight);f.step=b}}return a}function u(c){const a=this.bubbleLegend,g=this.options,b=g.bubbleLegend,e=h(this.chart);a&&a.ranges&&a.ranges.length&&(b.ranges.length&&(b.autoRanges=!!b.ranges[0].autoRanges),this.destroyItem(a));0<=e&&g.enabled&&\nb.enabled&&(b.seriesIndex=e,this.bubbleLegend=new d(b,this),this.bubbleLegend.addToLegend(c.allItems))}function C(c){if(c.defaultPrevented)return!1;var a=this.chart;c=this.visible;const d=this.chart.legend;d&&d.bubbleLegend&&(this.visible=!c,this.ignoreSeries=c,a=0<=h(a),d.bubbleLegend.visible!==a&&(d.update({bubbleLegend:{enabled:a}}),d.bubbleLegend.visible=a),this.visible=c)}function v(c,a){const d=c.options.rtl;let g,b,e,f,h=0;c.allItems.forEach((c,k)=>{f=c.legendItem||{};if(f.group){g=f.group.translateX||\n0;b=f.y||0;if((e=c.movementX)||d&&c.ranges)e=d?g-c.options.maxSize/2:g+e,f.group.attr({translateX:e});k>a[h].step&&h++;f.group.attr({translateY:Math.round(b+a[h].height/2)});f.y=b+a[h].height/2}})}const {setOptions:n}=e,{addEvent:D,objectEach:y,wrap:g}=b,c=[];return{compose:function(d,e,h){b.pushUnique(c,d)&&(n({legend:{bubbleLegend:a}}),g(d.prototype,\"drawChartBox\",f));b.pushUnique(c,e)&&D(e,\"afterGetAllItems\",u);b.pushUnique(c,h)&&D(h,\"legendItemClick\",C)}}});t(b,\"Series/Bubble/BubblePoint.js\",\n[b[\"Core/Series/Point.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,b){({seriesTypes:{scatter:{prototype:{pointClass:d}}}}=d);({extend:b}=b);class e extends d{constructor(){super(...arguments);this.series=this.options=void 0}haloPath(d){return a.prototype.haloPath.call(this,0===d?0:(this.marker?this.marker.radius||0:0)+d)}}b(e.prototype,{ttBelow:!1});return e});t(b,\"Series/Bubble/BubbleSeries.js\",[b[\"Series/Bubble/BubbleLegendComposition.js\"],b[\"Series/Bubble/BubblePoint.js\"],\nb[\"Core/Color/Color.js\"],b[\"Core/Globals.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,b,h,f,m){function e(){const c=this.len,a=this.chart,d=this.isXAxis,g=d?\"xData\":\"yData\",b=this.min,l=this.max-b;let e=0,f=c,h=c/l,k;this.series.forEach(c=>{if(c.bubblePadding&&(c.visible||!a.options.chart.ignoreHiddenSeries)){k=this.allowZoomOutside=!0;const a=c[g];d&&((c.onPoint||c).getRadii(0,0,c),c.onPoint&&(c.radii=c.onPoint.radii));if(0{\"undefined\"===typeof z(this.options[c[0]],this[c[1]])&&(this[c[0]]+=c[2]/h)}))}const {parse:u}=b;({noop:b}=h);const {series:C,seriesTypes:{column:{prototype:v},scatter:n}}=f,{addEvent:D,arrayMax:y,arrayMin:g,clamp:c,extend:k,isNumber:r,merge:G,pick:z}=\nm,P=[];class A extends n{constructor(){super(...arguments);this.zData=this.yData=this.radii=this.points=this.options=this.minPxSize=this.maxPxSize=this.data=void 0}static compose(c,d,g,b){a.compose(d,g,b);m.pushUnique(P,c)&&(c.prototype.beforePadding=e)}animate(c){!c&&this.points.length{l.bubblePadding&&(l.visible||!this.chart.options.chart.ignoreHiddenSeries)&&(l=(l.onPoint||l).getZExtremes())&&(c=Math.min(z(c,l.zMin),l.zMin),a=Math.max(z(a,l.zMax),l.zMax),d=!0)});d?(e={zMin:c,zMax:a},this.chart.bubbleZExtremes=e):e={zMin:0,zMax:0}}b=0;for(g=c.length;b=g/2?(l.marker=k(l.marker,{radius:e,width:2*e,height:2*e}),l.dlBox={x:l.plotX-e,y:l.plotY-e,width:2*e,height:2*e}):(l.shapeArgs=l.plotY=l.dlBox=void 0,\nl.isInside=!1)}}getPxExtremes(){const c=Math.min(this.chart.plotWidth,this.chart.plotHeight);var a=a=>{let d;\"string\"===typeof a&&(d=/%$/.test(a),a=parseInt(a,10));return d?c*a/100:a};const d=a(z(this.options.minSize,8));a=Math.max(a(z(this.options.maxSize,\"20%\")),d);return{minPxSize:d,maxPxSize:a}}getZExtremes(){var a=this.options;const d=(this.zData||[]).filter(r);if(d.length){const b=z(a.zMin,c(g(d),!1===a.displayNegative?a.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE));a=z(a.zMax,y(d));if(r(b)&&\nr(a))return{zMin:b,zMax:a}}}}A.defaultOptions=G(n.defaultOptions,{dataLabels:{formatter:function(){const {numberFormatter:c}=this.series.chart,{z:a}=this.point;return r(a)?c(a,-1):\"\"},inside:!0,verticalAlign:\"middle\"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:\"circle\"},minSize:8,maxSize:\"20%\",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:\"({point.x}, {point.y}), Size: {point.z}\"},turboThreshold:0,zThreshold:0,\nzoneAxis:\"z\"});k(A.prototype,{alignDataLabel:v.alignDataLabel,applyZones:b,bubblePadding:!0,buildKDTree:b,directTouch:!0,isBubble:!0,pointArrayMap:[\"y\",\"z\"],pointClass:d,parallelArrays:[\"x\",\"y\",\"z\"],trackerGroups:[\"group\",\"dataLabelsGroup\"],specialGroup:\"group\",zoneAxis:\"z\"});D(A,\"updatedData\",c=>{delete c.target.chart.bubbleZExtremes});D(A,\"remove\",c=>{delete c.target.chart.bubbleZExtremes});f.registerSeriesType(\"bubble\",A);\"\";\"\";return A});t(b,\"Series/ColumnRange/ColumnRangePoint.js\",[b[\"Core/Series/SeriesRegistry.js\"],\nb[\"Core/Utilities.js\"]],function(a,d){const {seriesTypes:{column:{prototype:{pointClass:{prototype:b}}},arearange:{prototype:{pointClass:h}}}}=a,{extend:f,isNumber:m}=d;class q extends h{constructor(){super(...arguments);this.series=this.options=void 0}isValid(){return m(this.low)}}f(q.prototype,{setState:b.setState});return q});t(b,\"Series/ColumnRange/ColumnRangeSeries.js\",[b[\"Series/ColumnRange/ColumnRangePoint.js\"],b[\"Core/Globals.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],\nfunction(a,d,b,h){({noop:d}=d);const {seriesTypes:{arearange:e,column:m,column:{prototype:q}}}=b,{addEvent:u,clamp:C,extend:v,isNumber:n,merge:D,pick:y}=h;class g extends e{setOptions(){D(!0,arguments[0],{stacking:void 0});return e.prototype.setOptions.apply(this,arguments)}translate(){return q.translate.apply(this)}pointAttribs(){return q.pointAttribs.apply(this,arguments)}translate3dPoints(){return q.translate3dPoints.apply(this,arguments)}translate3dShapes(){return q.translate3dShapes.apply(this,\narguments)}afterColumnTranslate(){const c=this.yAxis,a=this.xAxis,d=a.startAngleRad,b=this.chart,g=this.xAxis.isRadial,e=Math.max(b.chartWidth,b.chartHeight)+999;let f,h,m,q;this.points.forEach(k=>{const p=k.shapeArgs||{},l=this.options.minPointLength,B=k.plotY,H=c.translate(k.high,0,1,0,1);if(n(H)&&n(B))if(k.plotHigh=C(H,-e,e),k.plotLow=C(B,-e,e),q=k.plotHigh,f=y(k.rectPlotY,k.plotY)-k.plotHigh,Math.abs(f)f&&(f*=-1,q-=f),g&&this.polar)m=k.barX+d,k.shapeType=\"arc\",k.shapeArgs=\nthis.polar.arc(q+f,q,m,m+k.pointWidth);else{p.height=f;p.y=q;const {x:d=0,width:l=0}=p;k.shapeArgs=D(k.shapeArgs,this.crispCol(d,q,l,f));k.tooltipPos=b.inverted?[c.len+c.pos-b.plotLeft-q-f/2,a.len+a.pos-b.plotTop-d-l/2,f]:[a.left-b.plotLeft+d+l/2,c.pos-b.plotTop+q+f/2,f]}})}}g.defaultOptions=D(m.defaultOptions,e.defaultOptions,{borderRadius:{where:\"all\"},pointRange:null,marker:null,states:{hover:{halo:!1}}});u(g,\"afterColumnTranslate\",function(){g.prototype.afterColumnTranslate.apply(this)},{order:5});\nv(g.prototype,{directTouch:!0,pointClass:a,trackerGroups:[\"group\",\"dataLabelsGroup\"],adjustForMissingColumns:q.adjustForMissingColumns,animate:q.animate,crispCol:q.crispCol,drawGraph:d,drawPoints:q.drawPoints,getSymbol:d,drawTracker:q.drawTracker,getColumnMetrics:q.getColumnMetrics});b.registerSeriesType(\"columnrange\",g);\"\";return g});t(b,\"Series/ColumnPyramid/ColumnPyramidSeries.js\",[b[\"Series/Column/ColumnSeries.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,b){const {prototype:e}=\na,{clamp:f,merge:m,pick:q}=b;class u extends a{constructor(){super(...arguments);this.points=this.options=this.data=void 0}translate(){let a=this,d=a.chart,b=a.options;var h=a.dense=2>a.closestPointRange*a.xAxis.transA;h=a.borderWidth=q(b.borderWidth,h?0:1);let m=a.yAxis,g=b.threshold,c=a.translatedThreshold=m.getThreshold(g),k=q(b.minPointLength,5),r=a.getColumnMetrics(),u=r.width,z=a.barW=Math.max(u,1+2*h),P=a.pointXOffset=r.offset;d.inverted&&(c-=.5);b.pointPadding&&(z=Math.ceil(z));e.translate.apply(a);\na.points.forEach(function(e){var h=q(e.yBottom,c),n=999+Math.abs(h),r=f(e.plotY,-n,m.len+n);n=e.plotX+P;let v=z/2,A=Math.min(r,h);h=Math.max(r,h)-A;var l;let B,H;e.barX=n;e.pointWidth=u;e.tooltipPos=d.inverted?[m.len+m.pos-d.plotLeft-r,a.xAxis.len-n-v,h]:[n+v,r+m.pos-d.plotTop,h];r=g+(e.total||e.y);\"percent\"===b.stacking&&(r=g+(0>e.y)?-100:100);r=m.toPixels(r,!0);var M=(l=d.plotHeight-r-(d.plotHeight-c))?v*(A-r)/l:0;var J=l?v*(A+h-r)/l:0;l=n-M+v;M=n+M+v;var O=n+J+v;J=n-J+v;B=A-k;H=A+h;0>e.y&&(B=A,\nH=A+h+k);d.inverted&&(O=m.width-A,l=r-(m.width-c),M=v*(r-O)/l,J=v*(r-(O-h))/l,l=n+v+M,M=l-2*M,O=n-J+v,J=n+J+v,B=A,H=A+h-k,0>e.y&&(H=A+h+k));e.shapeType=\"path\";e.shapeArgs={x:l,y:B,width:M-l,height:h,d:[[\"M\",l,B],[\"L\",M,B],[\"L\",O,H],[\"L\",J,H],[\"Z\"]]}})}}u.defaultOptions=m(a.defaultOptions,{});d.registerSeriesType(\"columnpyramid\",u);\"\";return u});t(b,\"Series/ErrorBar/ErrorBarSeriesDefaults.js\",[],function(){\"\";return{color:\"#000000\",grouping:!1,linkedTo:\":previous\",tooltip:{pointFormat:'\\u25cf {series.name}: {point.low} - {point.high}
'},\nwhiskerWidth:null}});t(b,\"Series/ErrorBar/ErrorBarSeries.js\",[b[\"Series/BoxPlot/BoxPlotSeries.js\"],b[\"Series/Column/ColumnSeries.js\"],b[\"Series/ErrorBar/ErrorBarSeriesDefaults.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,b,h,f){const {arearange:e}=h.seriesTypes,{addEvent:q,merge:u,extend:C}=f;class v extends a{constructor(){super(...arguments);this.points=this.options=this.data=void 0}getColumnMetrics(){return this.linkedParent&&this.linkedParent.columnMetrics||d.prototype.getColumnMetrics.call(this)}drawDataLabels(){const a=\nthis.pointValKey;e&&(e.prototype.drawDataLabels.call(this),this.data.forEach(function(d){d.y=d[a]}))}toYData(a){return[a.low,a.high]}}v.defaultOptions=u(a.defaultOptions,b);q(v,\"afterTranslate\",function(){this.points.forEach(a=>{a.plotLow=a.plotY})},{order:0});C(v.prototype,{pointArrayMap:[\"low\",\"high\"],pointValKey:\"high\",doQuartiles:!1});h.registerSeriesType(\"errorbar\",v);return v});t(b,\"Series/Gauge/GaugePoint.js\",[b[\"Core/Series/SeriesRegistry.js\"]],function(a){({series:{prototype:{pointClass:a}}}=\na);class d extends a{constructor(){super(...arguments);this.shapeArgs=this.series=this.options=void 0}setState(a){this.state=a}}return d});t(b,\"Series/Gauge/GaugeSeries.js\",[b[\"Series/Gauge/GaugePoint.js\"],b[\"Core/Globals.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,d,b,h){({noop:d}=d);const {series:e,seriesTypes:{column:m}}=b,{clamp:q,isNumber:u,extend:C,merge:v,pick:n,pInt:D,defined:y}=h;class g extends e{constructor(){super(...arguments);this.yAxis=this.options=this.points=\nthis.data=void 0}translate(){const c=this.yAxis,a=this.options,d=c.center;this.generatePoints();this.points.forEach(b=>{const e=v(a.dial,b.dial),g=D(e.radius)*d[2]/200,f=D(e.baseLength)*g/100,h=D(e.rearLength)*g/100,k=e.baseWidth,m=e.topWidth;let n=a.overshoot,r=c.startAngleRad+c.translate(b.y,void 0,void 0,void 0,!0);if(u(n)||!1===a.wrap)n=u(n)?n/180*Math.PI:0,r=q(r,c.startAngleRad-n,c.endAngleRad+n);r=180*r/Math.PI;b.shapeType=\"path\";b.shapeArgs={d:e.path||[[\"M\",-h,-k/2],[\"L\",f,-k/2],[\"L\",g,-m/\n2],[\"L\",g,m/2],[\"L\",f,k/2],[\"L\",-h,k/2],[\"Z\"]],translateX:d[0],translateY:d[1],rotation:r};b.plotX=d[0];b.plotY=d[1];y(b.y)&&c.max-c.min&&(b.percentage=(b.y-c.min)/(c.max-c.min)*100)})}drawPoints(){const c=this,a=c.chart,d=c.yAxis.center,b=c.pivot,e=c.options,g=e.pivot,f=a.renderer;c.points.forEach(d=>{const b=d.graphic,g=d.shapeArgs,h=g.d,k=v(e.dial,d.dial);b?(b.animate(g),g.d=h):d.graphic=f[d.shapeType](g).addClass(\"highcharts-dial\").add(c.group);if(!a.styledMode)d.graphic[b?\"animate\":\"attr\"]({stroke:k.borderColor,\n\"stroke-width\":k.borderWidth,fill:k.backgroundColor})});b?b.animate({translateX:d[0],translateY:d[1]}):g&&(c.pivot=f.circle(0,0,g.radius).attr({zIndex:2}).addClass(\"highcharts-pivot\").translate(d[0],d[1]).add(c.group),a.styledMode||c.pivot.attr({fill:g.backgroundColor,stroke:g.borderColor,\"stroke-width\":g.borderWidth}))}animate(c){const a=this;c||a.points.forEach(c=>{const d=c.graphic;d&&(d.attr({rotation:180*a.yAxis.startAngleRad/Math.PI}),d.animate({rotation:c.shapeArgs.rotation},a.options.animation))})}render(){this.group=\nthis.plotGroup(\"group\",\"series\",this.visible?\"inherit\":\"hidden\",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)}setData(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();n(d,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}g.defaultOptions=v(e.defaultOptions,{dataLabels:{borderColor:\"#cccccc\",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:\"top\",y:15,zIndex:2},dial:{backgroundColor:\"#000000\",\nbaseLength:\"70%\",baseWidth:3,borderColor:\"#cccccc\",borderWidth:0,radius:\"80%\",rearLength:\"10%\",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:\"#cccccc\",backgroundColor:\"#000000\"},tooltip:{headerFormat:\"\"},showInLegend:!1});C(g.prototype,{angular:!0,directTouch:!0,drawGraph:d,drawTracker:m.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:a,trackerGroups:[\"group\",\"dataLabelsGroup\"]});b.registerSeriesType(\"gauge\",g);\"\";return g});t(b,\"Series/DragNodesComposition.js\",\n[b[\"Core/Utilities.js\"]],function(a){function d(){const a=this;let d,e,h;a.container&&(d=b(a.container,\"mousedown\",d=>{const f=a.hoverPoint;f&&f.series&&f.series.hasDraggableNodes&&f.series.options.draggable&&(f.series.onMouseDown(f,d),e=b(a.container,\"mousemove\",a=>f&&f.series&&f.series.onMouseMove(f,a)),h=b(a.container.ownerDocument,\"mouseup\",a=>{e();h();return f&&f.series&&f.series.onMouseUp(f,a)}))}));b(a,\"destroy\",function(){d()})}const {addEvent:b}=a,h=[];return{compose:function(e){a.pushUnique(h,\ne)&&b(e,\"load\",d)},onMouseDown:function(a,d){d=this.chart.pointer.normalize(d);a.fixedPosition={chartX:d.chartX,chartY:d.chartY,plotX:a.plotX,plotY:a.plotY};a.inDragMode=!0},onMouseMove:function(a,d){if(a.fixedPosition&&a.inDragMode){const f=this.chart;d=f.pointer.normalize(d);var b=a.fixedPosition.chartX-d.chartX,e=a.fixedPosition.chartY-d.chartY;d=f.graphLayoutsLookup;if(5{a.restartSimulation()}))}},onMouseUp:function(a,d){a.fixedPosition&&(a.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),a.inDragMode=a.hasDragged=!1,this.options.fixedDraggable||delete a.fixedPosition)},redrawHalo:function(a){a&&this.halo&&this.halo.attr({d:a.haloPath(this.options.states.hover.halo.size)})}}});t(b,\"Series/GraphLayoutComposition.js\",[b[\"Core/Animation/AnimationUtilities.js\"],b[\"Core/Utilities.js\"]],function(a,d){function b(){this.graphLayoutsLookup&&\n(this.graphLayoutsLookup.forEach(a=>{a.updateSimulation()}),this.redraw())}function h(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(a=>{a.updateSimulation(!1)}),this.redraw())}function f(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(a=>{a.stop()})}function m(){let a,d=!1;const b=b=>{b.maxIterations--&&isFinite(b.temperature)&&!b.isStable()&&!b.enableSimulation&&(b.beforeStep&&b.beforeStep(),b.step(),a=!1,d=!0)};if(this.graphLayoutsLookup){q(!1,this);for(this.graphLayoutsLookup.forEach(a=>\na.start());!a;)a=!0,this.graphLayoutsLookup.forEach(b);d&&this.series.forEach(a=>{a&&a.layout&&a.render()})}}const {setAnimation:q}=a,{addEvent:u}=d,C=[];return{compose:function(a){d.pushUnique(C,a)&&(u(a,\"afterPrint\",b),u(a,\"beforePrint\",h),u(a,\"predraw\",f),u(a,\"render\",m))},integrations:{},layouts:{}}});t(b,\"Series/PackedBubble/PackedBubblePoint.js\",[b[\"Core/Chart/Chart.js\"],b[\"Core/Series/Point.js\"],b[\"Core/Series/SeriesRegistry.js\"]],function(a,d,b){({seriesTypes:{bubble:{prototype:{pointClass:b}}}}=\nb);class e extends b{constructor(){super(...arguments);this.radius=this.mass=this.degree=NaN;this.series=this.options=void 0;this.value=null}destroy(){this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes);return d.prototype.destroy.apply(this,arguments)}firePointEvent(){const a=this.series.options;if(this.isParentNode&&a.parentNode){const b=a.allowPointSelect;a.allowPointSelect=a.parentNode.allowPointSelect;d.prototype.firePointEvent.apply(this,arguments);\na.allowPointSelect=b}else d.prototype.firePointEvent.apply(this,arguments)}select(){const b=this.series.chart;this.isParentNode?(b.getSelectedPoints=b.getSelectedParentNodes,d.prototype.select.apply(this,arguments),b.getSelectedPoints=a.prototype.getSelectedPoints):d.prototype.select.apply(this,arguments)}}return e});t(b,\"Series/PackedBubble/PackedBubbleSeriesDefaults.js\",[b[\"Core/Utilities.js\"]],function(a){const {isNumber:d}=a;\"\";return{minSize:\"10%\",maxSize:\"50%\",sizeBy:\"area\",zoneAxis:\"y\",crisp:!1,\ntooltip:{pointFormat:\"Value: {point.value}\"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const {numberFormatter:a}=this.series.chart,{value:b}=this.point;return d(b)?a(b,-1):\"\"},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:\"opacity 2000ms\"}},layoutAlgorithm:{initialPositions:\"circle\",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,\nparentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:\"circle\"}},enableSimulation:!0,type:\"packedbubble\",integration:\"packedbubble\",maxIterations:1E3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}});t(b,\"Series/Networkgraph/VerletIntegration.js\",[],function(){return{attractive:function(a,d,b){const e=a.getMass(),f=-b.x*d*this.diffTemperature;\nd=-b.y*d*this.diffTemperature;a.fromNode.fixedPosition||(a.fromNode.plotX-=f*e.fromNode/a.fromNode.degree,a.fromNode.plotY-=d*e.fromNode/a.fromNode.degree);a.toNode.fixedPosition||(a.toNode.plotX+=f*e.toNode/a.toNode.degree,a.toNode.plotY+=d*e.toNode/a.toNode.degree)},attractiveForceFunction:function(a,d){return(d-a)/a},barycenter:function(){let a=this.options.gravitationalConstant,d=this.barycenter.xFactor,b=this.barycenter.yFactor;d=(d-(this.box.left+this.box.width)/2)*a;b=(b-(this.box.top+this.box.height)/\n2)*a;this.nodes.forEach(function(a){a.fixedPosition||(a.plotX-=d/a.mass/a.degree,a.plotY-=b/a.mass/a.degree)})},getK:function(a){return Math.pow(a.box.width*a.box.height/a.nodes.length,.5)},integrate:function(a,d){var b=-a.options.friction;let h=a.options.maxSpeed,f=(d.plotX+d.dispX-d.prevX)*b;b*=d.plotY+d.dispY-d.prevY;var m=Math.abs;let q=m(f)/(f||1);m=m(b)/(b||1);f=q*Math.min(h,Math.abs(f));b=m*Math.min(h,Math.abs(b));d.prevX=d.plotX+d.dispX;d.prevY=d.plotY+d.dispY;d.plotX+=f;d.plotY+=b;d.temperature=\na.vectorLength({x:f,y:b})},repulsive:function(a,d,b){d=d*this.diffTemperature/a.mass/a.degree;a.fixedPosition||(a.plotX+=b.x*d,a.plotY+=b.y*d)},repulsiveForceFunction:function(a,d){return(d-a)/a*(d>a?1:0)}}});t(b,\"Series/PackedBubble/PackedBubbleIntegration.js\",[b[\"Core/Globals.js\"],b[\"Series/Networkgraph/VerletIntegration.js\"]],function(a,d){({noop:a}=a);return{barycenter:function(){const a=this.options.gravitationalConstant,d=this.box,b=this.nodes;let m,q;for(const e of b)this.options.splitSeries&&\n!e.isParentNode?(m=e.series.parentNode.plotX,q=e.series.parentNode.plotY):(m=d.width/2,q=d.height/2),e.fixedPosition||(e.plotX-=(e.plotX-m)*a/(e.mass*Math.sqrt(b.length)),e.plotY-=(e.plotY-q)*a/(e.mass*Math.sqrt(b.length)))},getK:a,integrate:d.integrate,repulsive:function(a,d,b,m){const e=d*this.diffTemperature/a.mass/a.degree;d=b.x*e;b=b.y*e;a.fixedPosition||(a.plotX+=d,a.plotY+=b);m.fixedPosition||(m.plotX-=d,m.plotY-=b)},repulsiveForceFunction:function(a,d,b,m){return Math.min(a,(b.marker.radius+\nm.marker.radius)/2)}}});t(b,\"Series/Networkgraph/EulerIntegration.js\",[],function(){return{attractive:function(a,d,b,h){const e=a.getMass(),m=b.x/h*d;d*=b.y/h;a.fromNode.fixedPosition||(a.fromNode.dispX-=m*e.fromNode/a.fromNode.degree,a.fromNode.dispY-=d*e.fromNode/a.fromNode.degree);a.toNode.fixedPosition||(a.toNode.dispX+=m*e.toNode/a.toNode.degree,a.toNode.dispY+=d*e.toNode/a.toNode.degree)},attractiveForceFunction:function(a,d){return a*a/d},barycenter:function(){const a=this.options.gravitationalConstant,\nd=this.barycenter.xFactor,b=this.barycenter.yFactor;this.nodes.forEach(function(e){if(!e.fixedPosition){var f=e.getDegree();f*=1+f/2;e.dispX+=(d-e.plotX)*a*f/e.degree;e.dispY+=(b-e.plotY)*a*f/e.degree}})},getK:function(a){return Math.pow(a.box.width*a.box.height/a.nodes.length,.3)},integrate:function(a,d){let b;d.dispX+=d.dispX*a.options.friction;d.dispY+=d.dispY*a.options.friction;b=d.temperature=a.vectorLength({x:d.dispX,y:d.dispY});0!==b&&(d.plotX+=d.dispX/b*Math.min(Math.abs(d.dispX),a.temperature),\nd.plotY+=d.dispY/b*Math.min(Math.abs(d.dispY),a.temperature))},repulsive:function(a,d,b,h){a.dispX+=b.x/h*d/a.degree;a.dispY+=b.y/h*d/a.degree},repulsiveForceFunction:function(a,d){return d*d/a}}});t(b,\"Series/Networkgraph/QuadTreeNode.js\",[],function(){class a{constructor(a){this.isInternal=this.isEmpty=this.body=!1;this.nodes=[];this.box=a;this.boxSize=Math.min(a.width,a.height)}divideBox(){const d=this.box.width/2,b=this.box.height/2;this.nodes[0]=new a({left:this.box.left,top:this.box.top,width:d,\nheight:b});this.nodes[1]=new a({left:this.box.left+d,top:this.box.top,width:d,height:b});this.nodes[2]=new a({left:this.box.left+d,top:this.box.top+b,width:d,height:b});this.nodes[3]=new a({left:this.box.left,top:this.box.top+b,width:d,height:b})}getBoxPosition(a){const b=a.plotYthis.step())):(this.simulation=!1,this.series.forEach(a=>{n(a,\"afterSimulation\")}))}}stop(){this.simulation&&d.cancelAnimationFrame(this.simulation)}setArea(a,\nc,b,d){this.box={left:a,top:c,width:b,height:d}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(a,c){for(const b of a)-1===c.indexOf(b)&&c.push(b)}removeElementFromCollection(a,c){a=c.indexOf(a);-1!==a&&c.splice(a,1)}clear(){this.nodes.length=0;this.links.length=0;this.series.length=0;this.resetSimulation()}resetSimulation(){this.forcedStop=!1;this.systemTemperature=0;this.setMaxIterations();this.setTemperature();this.setDiffTemperature()}restartSimulation(){this.simulation?\nthis.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(a){this.maxIterations=D(a,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(a){this.initialRendering=a}createQuadTree(){this.quadTree=\nnew h(this.box.left,this.box.top,this.box.width,this.box.height);this.quadTree.insertNodes(this.nodes)}initPositions(){const a=this.options.initialPositions;if(v(a)){a.call(this);for(const a of this.nodes)C(a.prevX)||(a.prevX=a.plotX),C(a.prevY)||(a.prevY=a.plotY),a.dispX=0,a.dispY=0}else\"circle\"===a?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const a=this.box;var c=this.nodes;const b=2*Math.PI/(c.length+1),d=c.filter(function(a){return 0===a.linksTo.length}),e={},\nf=this.options.initialPositionRadius,h=a=>{for(const c of a.linksFrom||[])e[c.toNode.id]||(e[c.toNode.id]=!0,m.push(c.toNode),h(c.toNode))};let m=[];for(const a of d)m.push(a),h(a);if(m.length)for(const a of c)-1===m.indexOf(a)&&m.push(a);else m=c;for(let d=0,e=m.length;d{a=a*a/Math.PI;return a-=\nMath.floor(a)};let e;for(let g=0,f=c.length;gthis.barnesHutApproximation(a,c));else{let a,c,b;for(const d of this.nodes)for(const e of this.nodes)d===e||d.fixedPosition||(b=this.getDistXY(d,\ne),c=this.vectorLength(b),0!==c&&(a=this.repulsiveForce(c,this.k),this.force(\"repulsive\",d,a*e.mass,b,c)))}}attractiveForces(){let a,c,b;for(const d of this.links)d.fromNode&&d.toNode&&(a=this.getDistXY(d.fromNode,d.toNode),c=this.vectorLength(a),0!==c&&(b=this.attractiveForce(c,this.k),this.force(\"attractive\",d,b,a,c)))}applyLimits(){const a=this.nodes;for(const c of a){if(c.fixedPosition)break;this.integration.integrate(this,c);this.applyLimitBox(c,this.box);c.dispX=0;c.dispY=0}}applyLimitBox(a,\nc){const b=a.radius;a.plotX=u(a.plotX,c.left+b,c.width-b);a.plotY=u(a.plotY,c.top+b,c.height-b)}coolDown(a,c,b){return a-c*b}isStable(){return.00001>Math.abs(this.systemTemperature-this.prevSystemTemperature)||0>=this.temperature}getSystemTemperature(){let a=0;for(const c of this.nodes)a+=c.temperature;return a}vectorLength(a){return Math.sqrt(a.x*a.x+a.y*a.y)}getDistR(a,c){a=this.getDistXY(a,c);return this.vectorLength(a)}getDistXY(a,c){const b=a.plotX-c.plotX;a=a.plotY-c.plotY;return{x:b,y:a,absX:Math.abs(b),\nabsY:Math.abs(a)}}}return y});t(b,\"Series/PackedBubble/PackedBubbleLayout.js\",[b[\"Series/GraphLayoutComposition.js\"],b[\"Series/PackedBubble/PackedBubbleIntegration.js\"],b[\"Series/Networkgraph/ReingoldFruchtermanLayout.js\"],b[\"Core/Utilities.js\"]],function(a,b,e,h){function d(){const a=[];this.series.forEach(b=>{b.parentNode&&b.parentNode.selected&&a.push(b.parentNode)});return a}function m(){this.allDataPoints&&delete this.allDataPoints}const {addEvent:q,pick:u}=h,C=[];class v extends e{constructor(){super(...arguments);\nthis.index=NaN;this.nodes=[];this.options=void 0;this.series=[]}static compose(f){e.compose(f);a.integrations.packedbubble=b;a.layouts.packedbubble=v;h.pushUnique(C,f)&&(q(f,\"beforeRedraw\",m),f.prototype.getSelectedParentNodes=d)}beforeStep(){this.options.marker&&this.series.forEach(a=>{a&&a.calculateParentRadius()})}isStable(){const a=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&.00001>a||0>=this.temperature}setCircularPositions(){const a=\nthis.box;var b=this.nodes;const d=2*Math.PI/(b.length+1),e=this.options.initialPositionRadius;let c,f=0;for(const g of b)this.options.splitSeries&&!g.isParentNode?(b=g.series.parentNode.plotX,c=g.series.parentNode.plotY):(b=a.width/2,c=a.height/2),g.plotX=g.prevX=u(g.plotX,b+e*Math.cos(g.index||f*d)),g.plotY=g.prevY=u(g.plotY,c+e*Math.sin(g.index||f*d)),g.dispX=0,g.dispY=0,f++}repulsiveForces(){const a=this,b=a.options.bubblePadding;let d,e,c;a.nodes.forEach(g=>{g.degree=g.mass;g.neighbours=0;a.nodes.forEach(f=>\n{d=0;g===f||g.fixedPosition||!a.options.seriesInteraction&&g.series!==f.series||(c=a.getDistXY(g,f),e=a.vectorLength(c)-(g.marker.radius+f.marker.radius+b),0>e&&(g.degree+=.01,g.neighbours++,d=a.repulsiveForce(-e/Math.sqrt(g.neighbours),a.k,g,f)),a.force(\"repulsive\",g,d*f.mass,c,f,e))})})}applyLimitBox(a,b){let d,e;this.options.splitSeries&&!a.isParentNode&&this.options.parentNodeLimit&&(d=this.getDistXY(a,a.series.parentNode),e=a.series.parentNodeRadius-a.marker.radius-this.vectorLength(d),0>e&&\ne>-2*a.marker.radius&&(a.plotX-=.01*d.x,a.plotY-=.01*d.y));super.applyLimitBox(a,b)}}return a.layouts.packedbubble=v});t(b,\"Series/SimulationSeriesUtilities.js\",[b[\"Core/Utilities.js\"],b[\"Core/Animation/AnimationUtilities.js\"]],function(a,b){const {syncTimeout:d}=a,{animObject:h}=b;return{initDataLabels:function(){const a=this.options.dataLabels;if(!this.dataLabelsGroup){const b=this.initDataLabelsGroup();!this.chart.styledMode&&(null===a||void 0===a?0:a.style)&&b.css(a.style);b.attr({opacity:0});\nthis.visible&&b.show();return b}this.dataLabelsGroup.attr({opacity:1});return this.dataLabelsGroup},initDataLabelsDefer:function(){var a;const b=this.options.dataLabels;(null===b||void 0===b?0:b.defer)&&(null===(a=this.options.layoutAlgorithm)||void 0===a?0:a.enableSimulation)?d(()=>{this.deferDataLabels=!1},b?h(b.animation).defer:0):this.deferDataLabels=!1}}});t(b,\"Series/PackedBubble/PackedBubbleSeries.js\",[b[\"Core/Color/Color.js\"],b[\"Series/DragNodesComposition.js\"],b[\"Series/GraphLayoutComposition.js\"],\nb[\"Core/Globals.js\"],b[\"Series/PackedBubble/PackedBubblePoint.js\"],b[\"Series/PackedBubble/PackedBubbleSeriesDefaults.js\"],b[\"Series/PackedBubble/PackedBubbleLayout.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Series/SimulationSeriesUtilities.js\"],b[\"Core/Utilities.js\"],b[\"Core/Animation/AnimationUtilities.js\"]],function(a,b,e,h,f,m,q,u,C,v,n){const {parse:d}=a;({noop:a}=h);const {series:{prototype:y},seriesTypes:{bubble:g}}=u,{initDataLabels:c,initDataLabelsDefer:k}=C,{addEvent:r,clamp:t,defined:z,\nextend:P,fireEvent:A,isArray:p,isNumber:Q,merge:N,pick:F}=v;class I extends g{constructor(){super(...arguments);this.options=this.layout=this.data=this.chart=void 0;this.parentNodeMass=0;this.xData=this.points=void 0;this.deferDataLabels=!0}static compose(a,c,d,e){g.compose(a,c,d,e);b.compose(c);q.compose(c)}accumulateAllPoints(){const a=this.chart,b=[];let c;for(const d of a.series)if(d.is(\"packedbubble\")&&d.visible||!a.options.chart.ignoreHiddenSeries){c=d.yData||[];for(let a=0;a\n{a.mass=2;a.degree=1;a.collisionNmb=1});f.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight);f.addElementsToCollection([this],f.series);f.addElementsToCollection(this.points,f.nodes)}addSeriesLayout(){var a=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{};const b=a.type||\"packedbubble\",c=this.chart.graphLayoutsStorage,d=this.chart.graphLayoutsLookup;a=N(a,a.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let g=c[b+\"-series\"];g||(c[b+\"-series\"]=g=new e.layouts[b],\ng.init(a),d.splice(g.index,0,g));this.parentNodeLayout=g;this.createParentNodes()}calculateParentRadius(){const a=this.seriesBox();this.parentNodeRadius=t(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,a?Math.max(Math.sqrt(Math.pow(a.width,2)+Math.pow(a.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20);this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let a=this.options.zMin,b=this.options.zMax,c=Infinity,d=-Infinity;\nif(a&&b)return[a,b];this.chart.series.forEach(a=>{a.yData.forEach(a=>{z(a)&&(a>d&&(d=a),aMath.sqrt(c*c+d*d)-Math.abs(a[2]+b[2])}createParentNodes(){const a=this.pointClass,b=this.chart,c=this.parentNodeLayout,e=this.layout.options;let g,f=this.parentNode,h={radius:this.parentNodeRadius,lineColor:this.color,fillColor:d(this.color).brighten(.4).get()};e.parentNodeOptions&&(h=N(e.parentNodeOptions.marker||\n{},h));this.parentNodeMass=0;this.points.forEach(a=>{this.parentNodeMass+=Math.PI*Math.pow(a.marker.radius,2)});this.calculateParentRadius();c.nodes.forEach(a=>{a.seriesIndex===this.index&&(g=!0)});c.setArea(0,0,b.plotWidth,b.plotHeight);g||(f||(f=(new a).init(this,{mass:this.parentNodeRadius/2,marker:h,dataLabels:{inside:!1},states:{normal:{marker:h},hover:{marker:h}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(f.plotX=this.parentNode.plotX,\nf.plotY=this.parentNode.plotY),this.parentNode=f,c.addElementsToCollection([this],c.series),c.addElementsToCollection([f],c.nodes))}deferLayout(){const a=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),a.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(a=>{a.removeElementFromCollection(this,a.series)},this);this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),\nthis.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy()));y.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(y.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix=\"parentNode\",y.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){var a;if(this.layout&&this.layout.options.splitSeries){var b=this.chart,c=this.layout.options.parentNodeOptions.marker;c={fill:c.fillColor||d(this.color).brighten(.4).get(),opacity:c.fillOpacity,\nstroke:c.lineColor||this.color,\"stroke-width\":F(c.lineWidth,this.options.lineWidth)};this.parentNodesGroup=this.plotGroup(\"parentNodesGroup\",\"parentNode\",this.visible?\"inherit\":\"hidden\",.1,b.seriesGroup);null===(a=this.group)||void 0===a?void 0:a.attr({zIndex:2});this.calculateParentRadius();this.parentNode&&z(this.parentNode.plotX)&&z(this.parentNode.plotY)&&z(this.parentNodeRadius)&&(a=N({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,\nheight:2*this.parentNodeRadius},c),this.parentNode.graphic||(this.graph=this.parentNode.graphic=b.renderer.symbol(c.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(a))}}drawTracker(){const a=this.parentNode;let b;super.drawTracker();a&&(b=p(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[],a.graphic&&(a.graphic.element.point=a),b.forEach(b=>{b.div?b.div.point=a:b.element.point=a}))}getPointRadius(){const a=this.chart,b=this.options,c=b.useSimulation,d=Math.min(a.plotWidth,a.plotHeight),\ne={},g=[],f=a.allDataPoints||[],h=f.length;let m,k,p,w;[\"minSize\",\"maxSize\"].forEach(a=>{const c=parseInt(b[a],10),g=/%$/.test(b[a]);e[a]=g?d*c/100:c*Math.sqrt(h)});a.minRadius=m=e.minSize/Math.sqrt(h);a.maxRadius=k=e.maxSize/Math.sqrt(h);const E=c?this.calculateZExtremes():[m,k];f.forEach((a,b)=>{p=c?t(a[2],E[0],E[1]):a[2];w=this.getRadius(E[0],E[1],m,k,p);0===w&&(w=null);f[b][2]=w;g.push(w)});this.radii=g}init(){y.init.apply(this,arguments);k.call(this);this.eventsToUnbind.push(r(this,\"updatedData\",\nfunction(){this.chart.series.forEach(a=>{a.type===this.type&&(a.isDirty=!0)},this)}));return this}onMouseUp(a){const c=a;if(c.fixedPosition&&!c.removed){const a=this.layout,d=this.parentNodeLayout;let e,g;d&&a.options.dragBetweenSeries&&d.nodes.forEach(b=>{c&&c.marker&&b!==c.series.parentNode&&(e=a.getDistXY(c,b),g=a.vectorLength(e)-b.marker.radius-c.marker.radius,0>g&&(b.series.addPoint(N(c.options,{plotX:c.plotX,plotY:c.plotY}),!1),a.removeElementFromCollection(c,a.nodes),c.remove()))});b.onMouseUp.apply(this,\narguments)}}placeBubbles(a){const b=this.checkOverlap,c=this.positionBubble,d=[];let e=1,g=0,f=0;var l=[];let h;a=a.sort((a,b)=>b[2]-a[2]);if(a.length){d.push([[0,0,a[0][2],a[0][3],a[0][4]]]);if(1a[1]-b[1]?0:Math.PI)+g+e*(0>(a[0]-b[0])*(a[1]-b[1])?1:-1);return[b[0]+(b[2]+c[2])*Math.sin(a),b[1]-(b[2]+c[2])*Math.cos(a),c[2],c[3],c[4]]}render(){const a=[];y.render.apply(this,arguments);this.options.dataLabels.allowOverlap||(this.data.forEach(b=>{p(b.dataLabels)&&b.dataLabels.forEach(b=>{a.push(b)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(a))}resizeRadius(){const a=this.chart,b=a.rawPositions;\nvar c=Math.min,d=Math.max;const e=a.plotLeft,g=a.plotTop,f=a.plotHeight,h=a.plotWidth;let m,k,p,w,E;m=p=Number.POSITIVE_INFINITY;k=w=Number.NEGATIVE_INFINITY;for(const a of b)E=a[2],m=c(m,a[0]-E),k=d(k,a[0]+E),p=c(p,a[1]-E),w=d(w,a[1]+E);d=[k-m,w-p];c=c.apply([],[(h-e)/d[0],(f-g)/d[1]]);if(1e-10{z(a.plotX)&&z(a.plotY)&&a.marker.radius&&(e=a.marker.radius,d[0]=c(d[0],a.plotX-e),d[1]=b(d[1],a.plotX+e),d[2]=c(d[2],a.plotY-e),d[3]=b(d[3],a.plotY+e))});return Q(d.width/d.height)?d:null}setVisible(){const a=this;y.setVisible.apply(a,arguments);a.parentNodeLayout&&a.graph?a.visible?(a.graph.show(),a.parentNode.dataLabel&&a.parentNode.dataLabel.show()):(a.graph.hide(),a.parentNodeLayout.removeElementFromCollection(a.parentNode,a.parentNodeLayout.nodes),\na.parentNode.dataLabel&&a.parentNode.dataLabel.hide()):a.layout&&(a.visible?a.layout.addElementsToCollection(a.points,a.layout.nodes):a.points.forEach(b=>{a.layout.removeElementFromCollection(b,a.layout.nodes)}))}translate(){const a=this.chart,b=this.data,c=this.index,d=this.options.useSimulation;let e;this.processedXData=this.xData;this.generatePoints();z(a.allDataPoints)||(a.allDataPoints=this.accumulateAllPoints(),this.getPointRadius());if(d)var g=a.allDataPoints;else g=this.placeBubbles(a.allDataPoints),\nthis.options.draggable=!1;for(const f of g)f[3]===c&&(g=b[f[4]],e=F(f[2],void 0),d||(g.plotX=f[0]-a.plotLeft+a.diffX,g.plotY=f[1]-a.plotTop+a.diffY),Q(e)&&(g.marker=P(g.marker,{radius:e,width:2*e,height:2*e}),g.radius=e));d&&this.deferLayout();A(this,\"afterTranslate\")}}I.defaultOptions=N(g.defaultOptions,m);P(I.prototype,{pointClass:f,axisTypes:[],directTouch:!0,forces:[\"barycenter\",\"repulsive\"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:[\"value\"],pointValKey:\"value\",requireSorting:!1,\ntrackerGroups:[\"group\",\"dataLabelsGroup\",\"parentNodesGroup\"],initDataLabels:c,alignDataLabel:y.alignDataLabel,indexateNodes:a,onMouseDown:b.onMouseDown,onMouseMove:b.onMouseMove,redrawHalo:b.redrawHalo,searchPoint:a});u.registerSeriesType(\"packedbubble\",I);\"\";return I});t(b,\"Series/Polygon/PolygonSeries.js\",[b[\"Core/Globals.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(a,b,e){({noop:a}=a);const {series:d,seriesTypes:{area:f,line:m,scatter:q}}=b,{extend:u,merge:t}=e;class v extends q{constructor(){super(...arguments);\nthis.points=this.options=this.data=void 0}getGraphPath(){let a=m.prototype.getGraphPath.call(this),b=a.length+1;for(;b--;)(b===a.length||\"M\"===a[b][0])&&0g(a.y)),b=this.yAxis,c=a.length,d=Math.round(this.graph.strokeWidth())%2/2,e=Math.round(this.borderWidth)%2/2,f=this.xAxis.reversed,h=this.yAxis.reversed,m=this.options.stacking,l=[];for(let p=1;pc&&!h||0r.indexOf(f)&&(y=!0);c[f]||(c[f]={});if(r=c[f])for(let c=0;cr.height&&(r.y+=r.height,r.height*=-1);p.plotY=r.y=Math.round(r.y||0)-this.borderWidth%2/2;r.height=\nMath.max(Math.round(r.height||0),.001);p.yBottom=r.y+r.height;r.height<=e&&!p.isNull?(r.height=e,r.y-=f,p.plotY=r.y,p.minPointLengthOffset=0>u?-f:f):(p.isNull&&(r.width=0),p.minPointLengthOffset=0);u=p.plotY+(p.negative?r.height:0);p.below&&(p.plotY+=r.height);p.tooltipPos&&(this.chart.inverted?p.tooltipPos[0]=d.len-u:p.tooltipPos[1]=u);p.isInside=this.isPointInside(p);c(!0,p.shapeArgs,r)}},{order:2});y(G.prototype,{getZonesGraphs:u.prototype.getZonesGraphs,pointValKey:\"y\",showLine:!0,pointClass:m});\ne.registerSeriesType(\"waterfall\",G);f.compose(a,b);\"\";return G});t(b,\"Core/Axis/RadialAxis.js\",[b[\"Core/Axis/AxisDefaults.js\"],b[\"Core/Defaults.js\"],b[\"Core/Globals.js\"],b[\"Core/Utilities.js\"]],function(a,b,e,h){const {defaultOptions:d}=b,{noop:m}=e,{addEvent:q,correctFloat:t,defined:C,extend:v,fireEvent:n,merge:D,pick:y,relativeLength:g,wrap:c}=h;var k;(function(b){function e(){this.autoConnect=this.isCircular&&\"undefined\"===typeof y(this.userMax,this.options.max)&&t(this.endAngleRad-this.startAngleRad)===\nt(2*Math.PI);!this.isCircular&&this.chart.inverted&&this.max++;this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)}function f(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(a=>this.ticks[a]&&this.ticks[a].label).filter(a=>!!a)}}function k(){return m}function r(a,b,c){const d=this.pane.center;let e=a.value;let g;if(this.isCircular){if(C(e))a.point&&(f=a.point.shapeArgs||\n{},f.start&&(e=this.chart.inverted?this.translate(a.point.rectPlotY,!0):a.point.x));else{var f=a.chartX||0;g=a.chartY||0;e=this.translate(Math.atan2(g-c,f-b)-this.startAngleRad,!0)}a=this.getPosition(e);f=a.x;g=a.y}else C(e)||(f=a.chartX,g=a.chartY),C(f)&&C(g)&&(c=d[1]+this.chart.plotTop,e=this.translate(Math.min(Math.sqrt(Math.pow(f-b,2)+Math.pow(g-c,2)),d[2]/2)-d[3]/2,!0));return[e,f||0,g||0]}function p(a,b,c){a=this.pane.center;const d=this.chart,e=this.left||0,g=this.top||0;let f=y(b,a[2]/2-this.offset);\n\"undefined\"===typeof c&&(c=this.horiz?0:this.center&&-this.center[3]/2);c&&(f+=c);this.isCircular||\"undefined\"!==typeof b?(b=this.chart.renderer.symbols.arc(e+a[0],g+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),b.xBounds=[e+a[0]],b.yBounds=[g+a[1]-f]):(b=this.postTranslate(this.angleRad,f),b=[[\"M\",this.center[0]+d.plotLeft,this.center[1]+d.plotTop],[\"L\",b.x,b.y]]);return b}function u(){this.constructor.prototype.getOffset.call(this);this.chart.axisOffset[this.side]=0}\nfunction N(a,b,c){const d=this.chart;var e=a=>{if(\"string\"===typeof a){let b=parseInt(a,10);E.test(a)&&(b=b*h/100);return b}return a};const g=this.center;var f=this.startAngleRad;const h=g[2]/2;var k=Math.min(this.offset,0),m=this.left||0;const l=this.top||0,E=/%$/;var w=this.isCircular;let L,p=y(e(c.outerRadius),h),x=e(c.innerRadius);e=y(e(c.thickness),10);\"polygon\"===this.options.gridLineInterpolation?k=this.getPlotLinePath({value:a}).concat(this.getPlotLinePath({value:b,reverse:!0})):(a=Math.max(a,\nthis.min),b=Math.min(b,this.max),a=this.translate(a),b=this.translate(b),w||(p=a||0,x=b||0),\"circle\"!==c.shape&&w?(c=f+(a||0),f+=b||0):(c=-Math.PI/2,f=1.5*Math.PI,L=!0),p-=k,k=d.renderer.symbols.arc(m+g[0],l+g[1],p,p,{start:Math.min(c,f),end:Math.max(c,f),innerR:y(x,p-(e-k)),open:L}),w&&(w=(f+c)/2,m=m+g[0]+g[2]/2*Math.cos(w),k.xBounds=w>-Math.PI/2&&w-Math.PI&&0>w||w>Math.PI?-10:10));return k}function F(a){var b=\nthis.pane.center,c=this.chart;const d=c.inverted;var e=a.reverse,f=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{};const h=f.innerRadius||\"0%\",k=f.outerRadius||\"100%\";var w=b[0]+c.plotLeft,m=b[1]+c.plotTop;const l=this.height,E=a.isCrosshair;f=b[3]/2;var L=a.value;let p;var x=this.getPosition(L);let n=x.x;x=x.y;E&&(x=this.getCrosshairPosition(a,w,m),L=x[0],n=x[1],x=x[2]);if(this.isCircular)L=Math.sqrt(Math.pow(n-w,2)+Math.pow(x-m,2)),e=\"string\"===typeof h?\ng(h,1):h/L,c=\"string\"===typeof k?g(k,1):k/L,b&&f&&(f/=L,eL||L>l)&&(L=0),\"circle\"===this.options.gridLineInterpolation)b=this.getLinePath(0,L,f);else if(b=[],c[d?\"yAxis\":\"xAxis\"].forEach(a=>{a.pane===this.pane&&(p=a)}),p)for(w=p.tickPositions,p.autoConnect&&(w=w.concat([w[0]])),e&&(w=w.slice().reverse()),L&&(L+=f),m=0;ma?0:a,this.center[2]/2)-this.offset)}function l(){const a=this.center,b=this.chart,c=this.options.title;return{x:b.plotLeft+a[0]+(c.x||0),y:b.plotTop+a[1]-{high:.5,middle:.25,low:0}[c.align]*a[2]+(c.y||0)}}function B(a){a.beforeSetTickPositions=e;a.createLabelCollector=f;a.getCrosshairPosition=r;a.getLinePath=p;a.getOffset=u;a.getPlotBandPath=N;a.getPlotLinePath=\nF;a.getPosition=I;a.getTitlePosition=l;a.postTranslate=R;a.setAxisSize=w;a.setAxisTranslation=E;a.setOptions=x}function H(){var a=this.chart,b=this.options,c=this.pane,d=c&&c.options;a.angular&&this.isXAxis||!c||!a.angular&&!a.polar||(a=2*Math.PI,c=(y(d.startAngle,0)-90)*Math.PI/180,d=(y(d.endAngle,y(d.startAngle,0)+360)-90)*Math.PI/180,this.angleRad=(b.angle||0)*Math.PI/180,this.startAngleRad=c,this.endAngleRad=d,this.offset=b.offset||0,b=(c%a+a)%a,d=(d%a+a)%a,b>Math.PI&&(b-=a),d>Math.PI&&(d-=a),\nthis.normalizedStartAngleRad=b,this.normalizedEndAngleRad=d)}function M(a){this.isRadial&&(a.align=void 0,a.preventDefault())}function J(){if(this.chart&&this.chart.labelCollectors){const a=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;0<=a&&this.chart.labelCollectors.splice(a,1)}}function O(b){const c=this.chart,d=c.inverted,e=c.angular,f=c.polar,g=this.isXAxis,h=this.coll,w=e&&g;b=b.userOptions.pane||0;b=this.pane=c.pane&&c.pane[b];let l;if(\"colorAxis\"===h)this.isRadial=\n!1;else{if(e){if(w?(this.isHidden=!0,this.createLabelCollector=k,this.getOffset=m,this.render=this.redraw=T,this.setTitle=this.setCategories=this.setScale=m):B(this),l=!g)this.defaultPolarOptions=X}else f&&(B(this),this.defaultPolarOptions=(l=this.horiz)?Y:D(\"xAxis\"===h?a.defaultXAxisOptions:a.defaultYAxisOptions,Z),d&&\"yAxis\"===h&&(this.defaultPolarOptions.stackLabels=a.defaultYAxisOptions.stackLabels,this.defaultPolarOptions.reversedStacks=!0));e||f?(this.isRadial=!0,this.labelCollector||(this.labelCollector=\nthis.createLabelCollector()),this.labelCollector&&c.labelCollectors.push(this.labelCollector)):this.isRadial=!1;b&&l&&(b.axis=this);this.isCircular=l}}function U(){this.isRadial&&this.beforeSetTickPositions()}function V(a){const b=this.label;if(b){var c=this.axis,d=b.getBBox(),e=c.options.labels,f=(c.translate(this.pos)+c.startAngleRad+Math.PI/2)/Math.PI*180%360,h=Math.round(f),k=C(e.y)?0:.3*-d.height,w=e.y,m=20,l=e.align,E=\"end\",x=0>h?h+360:h,p=x,n=0,q=0;if(c.isRadial){var S=c.getPosition(this.pos,\nc.center[2]/2+g(y(e.distance,-25),c.center[2]/2,-c.center[2]/2));\"auto\"===e.rotation?b.attr({rotation:f}):C(w)||(w=c.chart.renderer.fontMetrics(b).b-d.height/2);C(l)||(c.isCircular?(d.width>c.len*c.tickInterval/(c.max-c.min)&&(m=0),l=f>m&&f<180-m?\"left\":f>180+m&&f<360-m?\"right\":\"center\"):l=\"center\",b.attr({align:l}));if(\"auto\"===l&&2===c.tickPositions.length&&c.isCircular){90x?x=180-x:270=x&&(x=540-x);180=p&&(p=360-p);if(c.pane.options.startAngle===h||c.pane.options.startAngle===\nh+360||c.pane.options.startAngle===h-360)E=\"start\";l=-90<=h&&90>=h||-360<=h&&-270>=h||270<=h&&360>=h?\"start\"===E?\"right\":\"left\":\"start\"===E?\"left\":\"right\";70p&&(l=\"center\");15>x||180<=x&&195>x?n=.3*d.height:15<=x&&35>=x?n=\"start\"===E?0:.75*d.height:195<=x&&215>=x?n=\"start\"===E?.75*d.height:0:35=x?n=\"start\"===E?.25*-d.height:d.height:215=x&&(n=\"start\"===E?d.height:.25*-d.height);15>p?q=\"start\"===E?.15*-d.height:.15*d.height:165=p&&(q=\"start\"===E?.15*d.height:.15*-d.height);\nb.attr({align:l});b.translate(q,n+k)}a.pos.x=S.x+(e.x||0);a.pos.y=S.y+(w||0)}}}function K(a){this.axis.getPosition&&v(a.pos,this.axis.getPosition(this.pos))}function R(a,b){const c=this.chart,d=this.center;a=this.startAngleRad+a;return{x:c.plotLeft+d[0]+Math.cos(a)*b,y:c.plotTop+d[1]+Math.sin(a)*b}}function T(){this.isDirty=!1}function w(){let a,b;this.constructor.prototype.setAxisSize.call(this);this.isRadial&&(this.pane.updateCenter(this),a=this.center=this.pane.center.slice(),this.isCircular?this.sector=\nthis.endAngleRad-this.startAngleRad:(b=this.postTranslate(this.angleRad,a[3]/2),a[0]=b.x-this.chart.plotLeft,a[1]=b.y-this.chart.plotTop),this.len=this.width=this.height=(a[2]-a[3])*y(this.sector,1)/2)}function E(){this.constructor.prototype.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}\nfunction x(a){a=this.options=D(this.constructor.defaultOptions,this.defaultPolarOptions,d[this.coll],a);a.plotBands||(a.plotBands=[]);n(this,\"afterSetOptions\")}function W(a,b,c,d,e,f,g){const h=this.axis;h.isRadial?(a=h.getPosition(this.pos,h.center[2]/2+d),b=[\"M\",b,c,\"L\",a.x,a.y]):b=a.call(this,b,c,d,e,f,g);return b}const S=[],Y={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:\"none\"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},X={labels:{align:\"center\",distance:-25,\nx:0,y:void 0},minorGridLineWidth:0,minorTickInterval:\"auto\",minorTickLength:10,minorTickPosition:\"inside\",minorTickWidth:1,tickLength:10,tickPosition:\"inside\",tickWidth:2,title:{rotation:0},zIndex:2},Z={gridLineInterpolation:\"circle\",gridLineWidth:1,labels:{align:\"right\",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};b.compose=function(a,b){h.pushUnique(S,a)&&(q(a,\"afterInit\",H),q(a,\"autoLabelAlign\",M),q(a,\"destroy\",J),q(a,\"init\",O),q(a,\"initialAxisTranslation\",U));h.pushUnique(S,\nb)&&(q(b,\"afterGetLabelPosition\",V),q(b,\"afterGetPosition\",K),c(b.prototype,\"getMarkPath\",W));return a}})(k||(k={}));return k});t(b,\"Series/PolarComposition.js\",[b[\"Core/Animation/AnimationUtilities.js\"],b[\"Core/Globals.js\"],b[\"Core/Series/Series.js\"],b[\"Extensions/Pane.js\"],b[\"Core/Axis/RadialAxis.js\"],b[\"Core/Utilities.js\"]],function(a,b,e,h,f,m){function d(a,b,c,e){var f=e?1:0;var g=0<=b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>g-1?a.length-(1+f):g-1;var h=a[b];f=a[g+1>a.length-1?f:g+1];var k=h.plotY;\nvar m=f.plotX;var w=f.plotY;f=a[g].plotX;g=a[g].plotY;h=(1.5*f+h.plotX)/2.5;k=(1.5*g+k)/2.5;m=(1.5*f+m)/2.5;var l=(1.5*g+w)/2.5;w=Math.sqrt(Math.pow(h-f,2)+Math.pow(k-g,2));const E=Math.sqrt(Math.pow(m-f,2)+Math.pow(l-g,2));h=Math.atan2(k-g,h-f);l=Math.PI/2+(h+Math.atan2(l-g,m-f))/2;Math.abs(h-l)>Math.PI/2&&(l-=Math.PI);h=f+Math.cos(l)*w;k=g+Math.sin(l)*w;m=f+Math.cos(Math.PI+l)*E;l=g+Math.sin(Math.PI+l)*E;f={rightContX:m,rightContY:l,leftContX:h,leftContY:k,plotX:f,plotY:g};c&&(f.prevPointCont=d(a,\nb,!1,e));return f}function t(){(this.pane||[]).forEach(a=>{a.render()})}function C(a){const b=a.args[0].xAxis,c=a.args[0].yAxis;a=a.args[0].chart;b&&c&&(\"polygon\"===c.gridLineInterpolation?(b.startOnTick=!0,b.endOnTick=!0):\"polygon\"===b.gridLineInterpolation&&a.inverted&&(c.startOnTick=!0,c.endOnTick=!0))}function v(){this.pane||(this.pane=[]);this.options.pane=U(this.options.pane);this.options.pane.forEach(a=>{new h(a,this)},this)}function n(a){var b=a.args.marker,c=this.chart.xAxis[0],d=this.chart.yAxis[0],\ne=this.chart.inverted;const f=e?d:c;c=e?c:d;if(this.chart.polar){a.preventDefault();d=(b.attr?b.attr(\"start\"):b.start)-f.startAngleRad;e=b.attr?b.attr(\"r\"):b.r;let g=(b.attr?b.attr(\"end\"):b.end)-f.startAngleRad;b=b.attr?b.attr(\"innerR\"):b.innerR;a.result.x=d+f.pos;a.result.width=g-d;a.result.y=c.len+c.pos-b;a.result.height=b-e}}function D(a){var b=this.chart;if(b.polar&&b.hoverPane&&b.hoverPane.axis){a.preventDefault();var c=b.hoverPane.center,d=this.mouseDownX||0;const E=this.mouseDownY||0;var e=\na.args.chartY;const q=a.args.chartX;var f=2*Math.PI,g=b.hoverPane.axis.startAngleRad,h=b.hoverPane.axis.endAngleRad,l=b.inverted?b.xAxis[0]:b.yAxis[0];const x={};var m=\"arc\";x.x=c[0]+b.plotLeft;x.y=c[1]+b.plotTop;if(this.zoomHor){var w=0=p&&(p+=f);0>=n&&(n+=f);nh+(f-w)/2&&(n=p,p=0>=g?g:0);f=x.start=Math.max(p+\ng,g);w=x.end=Math.min(n+g,h);if(\"polygon\"===l.options.gridLineInterpolation){m=b.hoverPane.axis;n=f-m.startAngleRad+m.pos;p=w-f;f=l.getPlotLinePath({value:l.max});w=m.toValue(n);n=m.toValue(n+p);if(wc[2]/2&&(e=c[2]/2),da.max?(f[g].isNull=!0,f[g].plotY=NaN):f[g].isNull=f[g].isValid&&!f[g].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=\n!!this.eventsToUnbind.push(I(this,\"afterRender\",function(){if(e.polar){var a=this.yAxis.pane.center;if(this.clipCircle)this.clipCircle.animate({x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2});else{{var c=e.renderer;var d=a[0],f=a[1],g=a[2]/2,h=a[3]/2;a=V();const b=c.createElement(\"clipPath\").attr({id:a}).add(c.defs);c=h?c.arc(d,f,g,h,0,2*Math.PI).add(b):c.circle(d,f,g).add(b);c.id=a;c.clipPath=b}this.clipCircle=c}this.group.clip(this.clipCircle);this.setClip=b.noop}})))}}function c(a){const b=this.chart;var c=\nthis.xAxis;c=c.pane&&c.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-(c&&c[0]||0)-b.plotLeft,a.chartY-(c&&c[1]||0)-b.plotTop)})}function k(a,b,c,d){const e=d.tickInterval;d=d.tickPositions;let f=B(d,a=>a>=c),g=B([...d].reverse(),a=>a<=b);l(f)||(f=d[d.length-1]);l(g)||(g=d[0],f+=e,a[0][0]=\"L\",a.unshift(a[a.length-3]));a=a.slice(d.indexOf(g),d.indexOf(f)+1);a[0][0]=\"M\";return a}function r(a,b){return B(this.pane||[],function(a){return a.options.id===b})||a.call(this,\nb)}function G(a,b,c,d,f,g){const h=this.chart;var k=J(d.inside,!!this.options.stacking);h.polar?(a=b.rectPlotX/Math.PI*180,h.inverted?(this.forceDL=h.isInsidePlot(b.plotX,b.plotY),k&&b.shapeArgs?(k=b.shapeArgs,k=this.yAxis.postTranslate(((k.start||0)+(k.end||0))/2-this.xAxis.startAngleRad,b.barX+b.pointWidth/2),f=M(f,{x:k.x-h.plotLeft,y:k.y-h.plotTop})):b.tooltipPos&&(f=M(f,{x:b.tooltipPos[0],y:b.tooltipPos[1]})),d.align=J(d.align,\"center\"),d.verticalAlign=J(d.verticalAlign,\"middle\")):(null===d.align&&\n(d.align=20a?\"left\":200a?\"right\":\"center\"),null===d.verticalAlign&&(d.verticalAlign=45>a||315a?\"top\":\"middle\")),e.prototype.alignDataLabel.call(this,b,c,d,f,g),this.isRadialBar&&b.shapeArgs&&b.shapeArgs.start===b.shapeArgs.end?c.hide():c.show()):a.call(this,b,c,d,f,g)}function z(){const a=this.options,b=a.stacking,c=this.chart;var d=this.xAxis;const e=this.yAxis,f=e.reversed,g=e.center,h=d.startAngleRad,k=d.endAngleRad-h;let n=0,p,q,v,r=0;var t=0;if(d.isRadial){d=\nthis.points;p=d.length;q=e.translate(e.min);v=e.translate(e.max);var u=a.threshold||0;c.inverted&&H(u)&&(n=e.translate(u),l(n)&&(0>n?n=0:n>k&&(n=k),this.translatedThreshold=n+h));for(;p--;){u=d[p];var y=u.barX;var A=u.x;var z=u.y;u.shapeType=\"arc\";if(c.inverted){u.plotY=e.translate(z);b&&e.stacking?(z=e.stacking.stacks[(0>z?\"-\":\"\")+this.stackKey],this.visible&&z&&z[A]&&!u.isNull&&(t=z[A].points[this.getStackIndicator(void 0,A,this.index).key],r=e.translate(t[0]),t=e.translate(t[1]),l(r)&&(r=m.clamp(r,\n0,k)))):(r=n,t=u.plotY);r>t&&(t=[r,r=t][0]);if(!f)if(rv)t=v;else{if(tv)r=t=0}else if(t>q)t=q;else if(rq||te.max&&(r=t=f?k:0);r+=h;t+=h;g&&(u.barX=y+=g[3]/2);A=Math.max(y,0);z=Math.max(y+u.pointWidth,0);var B=a.borderRadius;B=O((\"object\"===typeof B?B.radius:B)||0,z-A);u.shapeArgs={x:g[0],y:g[1],r:z,innerR:A,start:r,end:t,borderRadius:B};u.opacity=r===t?0:void 0;u.plotY=(l(this.translatedThreshold)&&(rg[1])}}}function P(a,b){const c=this;let d;if(this.chart.polar){b=b||this.points;for(let a=0;a{\"undefined\"===typeof a.polarPlotY&&c.polar.toXY(a)})}e=a.apply(this,[].slice.call(arguments,1));d&&b.pop();return e}function A(a,b){const c=this.chart;let d={xAxis:[],yAxis:[]};c.polar?c.axes.forEach(a=>{if(\"colorAxis\"!==a.coll){var e=a.isXAxis,f=a.center,g=b.chartX-f[0]-c.plotLeft;f=b.chartY-f[1]-c.plotTop;d[e?\"xAxis\":\"yAxis\"].push({axis:a,value:a.translate(e?Math.PI-Math.atan2(g,f):Math.sqrt(Math.pow(g,2)+Math.pow(f,2)),!0)})}}):d=a.call(this,b);return d}function p(a,\nb){this.chart.polar||a.call(this,b)}function Q(a,c){const d=this,e=this.chart,f=this.group,g=this.markerGroup,h=this.xAxis&&this.xAxis.center,k=e.plotLeft,m=e.plotTop;let l=this.options.animation,n,p,w,q,r;e.polar?d.isRadialBar?c||(d.startAngleRad=J(d.translatedThreshold,d.xAxis.startAngleRad),b.seriesTypes.pie.prototype.animate.call(d,c)):(l=F(l),d.is(\"column\")?c||(n=h[3]/2,d.points.forEach(a=>{p=a.graphic;q=(w=a.shapeArgs)&&w.r;r=w&&w.innerR;p&&w&&(p.attr({r:n,innerR:n}),p.animate({r:q,innerR:r},\nd.options.animation))})):c?(a={translateX:h[0]+k,translateY:h[1]+m,scaleX:.001,scaleY:.001},f.attr(a),g&&g.attr(a)):(a={translateX:k,translateY:m,scaleX:1,scaleY:1},f.animate(a,l),g&&g.animate(a,l))):a.call(this,c)}function N(a,b,c,e){this.chart.polar?e?(a=d(b,e,!0,this.connectEnds),b=a.prevPointCont&&a.prevPointCont.rightContX,c=a.prevPointCont&&a.prevPointCont.rightContY,a=[\"C\",H(b)?b:a.plotX,H(c)?c:a.plotY,H(a.leftContX)?a.leftContX:a.plotX,H(a.leftContY)?a.leftContY:a.plotY,a.plotX,a.plotY]):\na=[\"M\",c.plotX,c.plotY]:a=a.call(this,b,c,e);return a}const {animObject:F}=a,{addEvent:I,defined:l,find:B,isNumber:H,merge:M,pick:J,relativeLength:O,splat:U,uniqueKey:V,wrap:K}=m,R=[];class T{static compose(a,b,c,d,e,h,k,l,q){f.compose(a,e);m.pushUnique(R,b)&&(I(b,\"afterDrawChartBox\",t),I(b,\"getAxes\",v),I(b,\"init\",C),K(b.prototype,\"get\",r));m.pushUnique(R,c)&&(a=c.prototype,K(a,\"getCoordinates\",A),K(a,\"pinch\",p),I(c,\"getSelectionMarkerAttrs\",D),I(c,\"getSelectionBox\",n));m.pushUnique(R,d)&&(I(d,\"afterInit\",\ny),I(d,\"afterTranslate\",g,{order:2}),I(d,\"afterColumnTranslate\",z,{order:4}),K(d.prototype,\"animate\",Q));k&&m.pushUnique(R,k)&&(c=k.prototype,K(c,\"alignDataLabel\",G),K(c,\"animate\",Q));l&&m.pushUnique(R,l)&&K(l.prototype,\"getGraphPath\",P);q&&m.pushUnique(R,q)&&(l=q.prototype,K(l,\"getPointSpline\",N),h&&m.pushUnique(R,h)&&(h.prototype.getPointSpline=l.getPointSpline))}constructor(a){this.series=a}arc(a,b,c,d){const e=this.series,f=e.xAxis.center,g=e.yAxis.len,h=f[3]/2;b=g-b+h;a=g-J(a,g)+h;e.yAxis.reversed&&\n(0>b&&(b=h),0>a&&(a=h));return{x:f[0],y:f[1],r:b,innerR:a,start:c,end:d}}toXY(a){var b=this.series;const c=b.chart,d=b.xAxis;var e=b.yAxis;const f=a.plotX,g=c.inverted,h=a.y;let k=a.plotY,l=g?f:e.len-k;g&&b&&!b.isRadialBar&&(a.plotY=k=H(h)?e.translate(h):0);a.rectPlotX=f;a.rectPlotY=k;e.center&&(l+=e.center[3]/2);H(k)&&(e=g?e.postTranslate(k,l):d.postTranslate(f,l),a.plotX=a.polarPlotX=e.x-c.plotLeft,a.plotY=a.polarPlotY=e.y-c.plotTop);b.kdByAngle?(b=(f/Math.PI*180+d.pane.options.startAngle)%360,\n0>b&&(b+=360),a.clientX=b):a.clientX=a.plotX}}return T});t(b,\"masters/highcharts-more.src.js\",[b[\"Core/Globals.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Series/Bubble/BubbleSeries.js\"],b[\"Series/PackedBubble/PackedBubbleSeries.js\"],b[\"Series/PolarComposition.js\"]],function(a,b,e,h,f){e.compose(a.Axis,a.Chart,a.Legend,a.Series);h.compose(a.Axis,a.Chart,a.Legend,a.Series);f.compose(a.Axis,a.Chart,a.Pointer,a.Series,a.Tick,b.seriesTypes.areasplinerange,b.seriesTypes.column,b.seriesTypes.line,b.seriesTypes.spline)})});\n//# sourceMappingURL=highcharts-more.js.map","/*\n Highcharts JS v11.1.0 (2023-06-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n'use strict';(function(U,M){\"object\"===typeof module&&module.exports?(M[\"default\"]=M,module.exports=U.document?M(U):M):\"function\"===typeof define&&define.amd?define(\"highcharts/highcharts\",function(){return M(U)}):(U.Highcharts&&U.Highcharts.error(16,!0),U.Highcharts=M(U))})(\"undefined\"!==typeof window?window:this,function(U){function M(a,y,I,L){a.hasOwnProperty(y)||(a[y]=L.apply(null,I),\"function\"===typeof CustomEvent&&U.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:y,module:a[y]}})))}\nvar a={};M(a,\"Core/Globals.js\",[],function(){var a;(function(a){a.SVG_NS=\"http://www.w3.org/2000/svg\";a.product=\"Highcharts\";a.version=\"11.1.0\";a.win=\"undefined\"!==typeof U?U:{};a.doc=a.win.document;a.svg=a.doc&&a.doc.createElementNS&&!!a.doc.createElementNS(a.SVG_NS,\"svg\").createSVGRect;a.userAgent=a.win.navigator&&a.win.navigator.userAgent||\"\";a.isChrome=-1!==a.userAgent.indexOf(\"Chrome\");a.isFirefox=-1!==a.userAgent.indexOf(\"Firefox\");a.isMS=/(edge|msie|trident)/i.test(a.userAgent)&&!a.win.opera;\na.isSafari=!a.isChrome&&-1!==a.userAgent.indexOf(\"Safari\");a.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(a.userAgent);a.isWebKit=-1!==a.userAgent.indexOf(\"AppleWebKit\");a.deg2rad=2*Math.PI/360;a.hasBidiBug=a.isFirefox&&4>parseInt(a.userAgent.split(\"Firefox/\")[1],10);a.hasTouch=!!a.win.TouchEvent;a.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"];a.noop=function(){};a.supportsPassiveEvents=function(){let x=!1;if(!a.isMS){const y=Object.defineProperty({},\"passive\",{get:function(){x=\n!0}});a.win.addEventListener&&a.win.removeEventListener&&(a.win.addEventListener(\"testPassive\",a.noop,y),a.win.removeEventListener(\"testPassive\",a.noop,y))}return x}();a.charts=[];a.dateFormats={};a.seriesTypes={};a.symbolSizes={};a.chartCount=0})(a||(a={}));\"\";return a});M(a,\"Core/Utilities.js\",[a[\"Core/Globals.js\"]],function(a){function x(c,b,f,k){const n=b?\"Highcharts error\":\"Highcharts warning\";32===c&&(c=`${n}: Deprecated member`);const r=u(c);let e=r?`${n} #${c}: www.highcharts.com/errors/${c}/`:\nc.toString();if(\"undefined\"!==typeof k){let c=\"\";r&&(e+=\"?\");E(k,function(b,n){c+=`\\n - ${n}: ${b}`;r&&(e+=encodeURI(n)+\"=\"+encodeURI(b))});e+=c}d(a,\"displayError\",{chart:f,code:c,message:e,params:k},function(){if(b)throw Error(e);q.console&&-1===x.messages.indexOf(e)&&console.warn(e)});x.messages.push(e)}function I(c,b){return parseInt(c,b||10)}function L(c){return\"string\"===typeof c}function C(c){c=Object.prototype.toString.call(c);return\"[object Array]\"===c||\"[object Array Iterator]\"===c}function z(c,\nb){return!!c&&\"object\"===typeof c&&(!b||!C(c))}function H(c){return z(c)&&\"number\"===typeof c.nodeType}function B(c){const b=c&&c.constructor;return!(!z(c,!0)||H(c)||!b||!b.name||\"Object\"===b.name)}function u(c){return\"number\"===typeof c&&!isNaN(c)&&Infinity>c&&-Infinity{v(b)?c.setAttribute(f,b):n?(d=c.getAttribute(f))||\"class\"!==f||(d=c.getAttribute(f+\"Name\")):c.removeAttribute(f)};\nL(b)?k(f,b):E(b,k);return d}function p(c){return C(c)?c:[c]}function t(c,b){let n;c||(c={});for(n in b)c[n]=b[n];return c}function m(){const c=arguments,b=c.length;for(let n=0;n=b-1&&(b=Math.floor(f)),Math.max(0,b-(w(c,\"padding-left\",!0)||0)-(w(c,\"padding-right\",!0)||0));if(\"height\"===b)return Math.max(0,Math.min(c.offsetHeight,c.scrollHeight)-(w(c,\"padding-top\",!0)||0)-(w(c,\"padding-bottom\",!0)||0));if(c=q.getComputedStyle(c,void 0))n=c.getPropertyValue(b),m(f,\"opacity\"!==b)&&(n=I(n));return n}function E(c,b,f){for(const n in c)Object.hasOwnProperty.call(c,\nn)&&b.call(f||c[n],c[n],n,c)}function F(c,b,f){function n(b,n){const f=c.removeEventListener;f&&f.call(c,b,n,!1)}function d(f){let d,K;c.nodeName&&(b?(d={},d[b]=!0):d=f,E(d,function(c,b){if(f[b])for(K=f[b].length;K--;)n(b,f[b][K].fn)}))}var k=\"function\"===typeof c&&c.prototype||c;if(Object.hasOwnProperty.call(k,\"hcEvents\")){const c=k.hcEvents;b?(k=c[b]||[],f?(c[b]=k.filter(function(c){return f!==c.fn}),n(b,f)):(d(c),c[b]=[])):(d(c),delete k.hcEvents)}}function d(c,b,f,d){f=f||{};if(r.createEvent&&\n(c.dispatchEvent||c.fireEvent&&c!==a)){var n=r.createEvent(\"Events\");n.initEvent(b,!0,!0);f=t(n,f);c.dispatchEvent?c.dispatchEvent(f):c.fireEvent(b,f)}else if(c.hcEvents){f.target||t(f,{preventDefault:function(){f.defaultPrevented=!0},target:c,type:b});n=[];let d=c,K=!1;for(;d.hcEvents;)Object.hasOwnProperty.call(d,\"hcEvents\")&&d.hcEvents[b]&&(n.length&&(K=!0),n.unshift.apply(n,d.hcEvents[b])),d=Object.getPrototypeOf(d);K&&n.sort((c,b)=>c.order-b.order);n.forEach(b=>{!1===b.fn.call(c,f)&&f.preventDefault()})}d&&\n!f.defaultPrevented&&d.call(c,f)}const {charts:k,doc:r,win:q}=a;(x||(x={})).messages=[];Math.easeInOutSine=function(c){return-.5*(Math.cos(Math.PI*c)-1)};var G=Array.prototype.find?function(c,b){return c.find(b)}:function(c,b){let f;const n=c.length;for(f=0;fc.order-b.order);return function(){F(c,b,f)}},arrayMax:function(c){let b=c.length,f=c[0];for(;b--;)c[b]>f&&(f=c[b]);return f},arrayMin:function(c){let b=c.length,f=c[0];for(;b--;)c[b]<\nf&&(f=c[b]);return f},attr:l,clamp:function(c,b,f){return c>b?c{if(1k&&!c?(null===f||void 0===f?void 0:f(),f=void 0):k&&(\"undefined\"===typeof d||k=d&&(f=[1/d])));for(k=0;k=b||!K&&n<=(f[k]+(f[k+1]||f[k]))/2);k++);return c=e(c*d,-Math.round(Math.log(.001)/Math.LN10))},objectEach:E,offset:function(b){const c=r.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,\nleft:0,width:0,height:0};return{top:b.top+(q.pageYOffset||c.scrollTop)-(c.clientTop||0),left:b.left+(q.pageXOffset||c.scrollLeft)-(c.clientLeft||0),width:b.width,height:b.height}},pad:function(b,f,d){return Array((f||2)+1-String(b).replace(\"-\",\"\").length).join(d||\"0\")+b},pick:m,pInt:I,pushUnique:function(b,f){return 0>b.indexOf(f)&&!!b.push(f)},relativeLength:function(b,f,d){return/%$/.test(b)?f*parseFloat(b)/100+(d||0):parseFloat(b)},removeEvent:F,splat:p,stableSort:function(b,f){const c=b.length;\nlet d,k;for(k=0;knew z(l[1]));else if(\"string\"===typeof a){this.input=\na=z.names[a.toLowerCase()]||a;if(\"#\"===a.charAt(0)){var v=a.length;var l=parseInt(a.substr(1),16);7===v?B=[(l&16711680)>>16,(l&65280)>>8,l&255,1]:4===v&&(B=[(l&3840)>>4|(l&3840)>>8,(l&240)>>4|l&240,(l&15)<<4|l&15,1])}if(!B)for(l=z.parsers.length;l--&&!B;)u=z.parsers[l],(v=u.regex.exec(a))&&(B=u.parse(v))}B&&(this.rgba=B)}get(a){const B=this.input,u=this.rgba;if(\"object\"===typeof B&&\"undefined\"!==typeof this.stops){const v=L(B);v.stops=[].slice.call(v.stops);this.stops.forEach((l,p)=>{v.stops[p]=[v.stops[p][0],\nl.get(a)]});return v}return u&&x(u[0])?\"rgb\"===a||!a&&1===u[3]?\"rgb(\"+u[0]+\",\"+u[1]+\",\"+u[2]+\")\":\"a\"===a?`${u[3]}`:\"rgba(\"+u.join(\",\")+\")\":B}brighten(a){const B=this.rgba;if(this.stops)this.stops.forEach(function(u){u.brighten(a)});else if(x(a)&&0!==a)for(let u=0;3>u;u++)B[u]+=C(255*a),0>B[u]&&(B[u]=0),255k?\"AM\":\"PM\",P:12>k?\"am\":\"pm\",S:v(d.getSeconds()),L:v(Math.floor(g%1E3),3)},a.dateFormats);u(d,function(b,c){for(;-1!==e.indexOf(\"%\"+c);)e=e.replace(\"%\"+c,\"function\"===typeof b?b.call(m,g):b)});return h?e.substr(0,1).toUpperCase()+e.substr(1):e}resolveDTLFormat(e){return H(e,!0)?e:(e=p(e),{main:e[0],from:e[1],\nto:e[2]})}getTimeTicks(e,g,h,m){const d=this,k=[],r={};var q=new d.Date(g);const w=e.unitRange,b=e.count||1;let f;m=l(m,1);if(L(g)){d.set(\"Milliseconds\",q,w>=t.second?0:b*Math.floor(d.get(\"Milliseconds\",q)/b));w>=t.second&&d.set(\"Seconds\",q,w>=t.minute?0:b*Math.floor(d.get(\"Seconds\",q)/b));w>=t.minute&&d.set(\"Minutes\",q,w>=t.hour?0:b*Math.floor(d.get(\"Minutes\",q)/b));w>=t.hour&&d.set(\"Hours\",q,w>=t.day?0:b*Math.floor(d.get(\"Hours\",q)/b));w>=t.day&&d.set(\"Date\",q,w>=t.month?1:Math.max(1,b*Math.floor(d.get(\"Date\",\nq)/b)));if(w>=t.month){d.set(\"Month\",q,w>=t.year?0:b*Math.floor(d.get(\"Month\",q)/b));var c=d.get(\"FullYear\",q)}w>=t.year&&d.set(\"FullYear\",q,c-c%b);w===t.week&&(c=d.get(\"Day\",q),d.set(\"Date\",q,d.get(\"Date\",q)-c+m+(c4*t.month||d.getTimezoneOffset(g)!==d.getTimezoneOffset(h));g=q.getTime();for(q=1;gk.length&&k.forEach(function(b){0===b%18E5&&\"000000000\"===d.dateFormat(\"%H%M%S%L\",b)&&(r[b]=\"day\")})}k.info=z(e,{higherRanks:r,totalRange:w*b});return k}getDateFormat(e,g,h,m){const d=this.dateFormat(\"%m-%d %H:%M:%S.%L\",g),k={millisecond:15,second:12,minute:9,hour:6,day:3};let r,q=\"millisecond\";for(r in t){if(e===t.week&&+this.dateFormat(\"%w\",\ng)===h&&\"00:00:00.000\"===d.substr(6)){r=\"week\";break}if(t[r]>e){r=q;break}if(k[r]&&d.substr(k[r])!==\"01-01 00:00:00.000\".substr(k[r]))break;\"week\"!==r&&(q=r)}return this.resolveDTLFormat(m[r]).main}}\"\";return g});M(a,\"Core/Defaults.js\",[a[\"Core/Chart/ChartDefaults.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Color/Palettes.js\"],a[\"Core/Time.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z){const {isTouchDevice:x,svg:B}=I,{merge:u}=z,v={colors:L.colors,symbols:[\"circle\",\"diamond\",\"square\",\n\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),decimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,\ntimezoneOffset:0,useUTC:!0},chart:a,title:{style:{color:\"#333333\",fontWeight:\"bold\"},text:\"Chart title\",align:\"center\",margin:15,widthAdjust:-44},subtitle:{style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},legend:{enabled:!0,align:\"center\",alignColumns:!0,className:\"highcharts-no-tooltip\",layout:\"horizontal\",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},\nborderColor:\"#999999\",borderRadius:0,navigation:{style:{fontSize:\"0.8em\"},activeColor:\"#0022ff\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",textDecoration:\"none\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#666666\",textDecoration:\"line-through\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontSize:\"0.8em\",fontWeight:\"bold\"}}},\nloading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:B,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %e %b, %H:%M:%S.%L\",second:\"%A, %e %b, %H:%M:%S\",minute:\"%A, %e %b, %H:%M\",hour:\"%A, %e %b, %H:%M\",day:\"%A, %e %b %Y\",week:\"Week from %A, %e %b %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",headerShape:\"callout\",hideDelay:500,padding:8,shape:\"callout\",shared:!1,\nsnap:x?25:10,headerFormat:'{point.key}
',pointFormat:'\\u25cf {series.name}: {point.y}
',backgroundColor:\"#ffffff\",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"0.6em\"},\ntext:\"Highcharts.com\"}};v.chart.styledMode=!1;\"\";const l=new C(v.time);a={defaultOptions:v,defaultTime:l,getOptions:function(){return v},setOptions:function(a){u(!0,v,a);if(a.time||a.global)I.time?I.time.update(u(v.global,v.time,a.global,a.time)):I.time=l;return v}};\"\";return a});M(a,\"Core/Animation/Fx.js\",[a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {parse:x}=a,{win:C}=y,{isNumber:z,objectEach:H}=I;class B{constructor(a,v,l){this.pos=NaN;this.options=\nv;this.elem=a;this.prop=l}dSetter(){var a=this.paths;const v=a&&a[0];a=a&&a[1];const l=this.now||0;let p=[];if(1!==l&&v&&a)if(v.length===a.length&&1>l)for(let t=0;t=m+this.startTime?(this.now=this.end,this.pos=1,this.update(),g=h[this.prop]=!0,H(h,function(e){!0!==e&&(g=!1)}),g&&t&&t.call(p),a=!1):(this.pos=l.easing((v-this.startTime)/m),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0);return a}initPath(a,\nv,l){function p(d,k){for(;d.length{h=x(h.options.animation);\ne=m&&C(m.defer)?g.defer:Math.max(e,h.duration+h.defer);w=Math.min(g.duration,h.duration)});a.renderer.forExport&&(e=0);return{defer:Math.max(0,e-w),duration:Math.min(e,w)}},setAnimation:function(a,m){m.renderer.globalAnimation=p(a,m.options.chart.animation,!0)},stop:L}});M(a,\"Core/Renderer/HTML/AST.js\",[a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {SVG_NS:x,win:L}=a,{attr:C,createElement:z,css:H,error:B,isFunction:u,isString:v,objectEach:l,splat:p}=y;({trustedTypes:y}=L);const t=\ny&&u(y.createPolicy)&&y.createPolicy(\"highcharts\",{createHTML:e=>e});y=t?t.createHTML(\"\"):\"\";try{var m=!!(new DOMParser).parseFromString(y,\"text/html\")}catch(e){m=!1}const h=m;class g{static filterUserAttributes(e){l(e,(h,m)=>{let a=!0;-1===g.allowedAttributes.indexOf(m)&&(a=!1);-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\"].indexOf(m)&&(a=v(h)&&g.allowedReferences.some(d=>0===h.indexOf(d)));a||(B(33,!1,void 0,{\"Invalid attribute in config\":`${m}`}),delete e[m]);v(h)&&e[m]&&(e[m]=h.replace(/{g=g.split(\":\").map(d=>d.trim());const h=g.shift();h&&g.length&&(e[h.replace(/-([a-z])/g,d=>d[1].toUpperCase())]=g.join(\":\"));return e},{})}static setElementHTML(e,h){e.innerHTML=g.emptyHTML;h&&(new g(h)).addToDOM(e)}constructor(e){this.nodes=\"string\"===typeof e?this.parseMarkup(e):e}addToDOM(e){function h(e,m){let d;p(e).forEach(function(k){var e=k.tagName;const q=k.textContent?a.doc.createTextNode(k.textContent):void 0,w=\ng.bypassHTMLFiltering;let b;if(e)if(\"#text\"===e)b=q;else if(-1!==g.allowedTags.indexOf(e)||w){e=a.doc.createElementNS(\"svg\"===e?x:m.namespaceURI||x,e);const f=k.attributes||{};l(k,function(b,d){\"tagName\"!==d&&\"attributes\"!==d&&\"children\"!==d&&\"style\"!==d&&\"textContent\"!==d&&(f[d]=b)});C(e,w?f:g.filterUserAttributes(f));k.style&&H(e,k.style);q&&e.appendChild(q);h(k.children||[],e);b=e}else B(33,!1,void 0,{\"Invalid tagName in config\":e});b&&m.appendChild(b);d=b});return d}return h(this.nodes,e)}parseMarkup(e){const m=\n[];e=e.trim().replace(/ style=([\"'])/g,\" data-style=$1\");if(h)e=(new DOMParser).parseFromString(t?t.createHTML(e):e,\"text/html\");else{const g=z(\"div\");g.innerHTML=e;e={body:g}}const a=(e,d)=>{var k=e.nodeName.toLowerCase();const r={tagName:k};\"#text\"===k&&(r.textContent=e.textContent||\"\");if(k=e.attributes){const d={};[].forEach.call(k,k=>{\"data-style\"===k.name?r.style=g.parseStyle(k.value):d[k.name]=k.value});r.attributes=d}if(e.childNodes.length){const d=[];[].forEach.call(e.childNodes,k=>{a(k,\nd)});d.length&&(r.children=d)}d.push(r)};[].forEach.call(e.body.childNodes,e=>a(e,m));return m}}g.allowedAttributes=\"alt aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill flood-color flood-opacity height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align text-anchor textAnchor textLength title type valign width x x1 x2 xlink:href y y1 y2 zIndex\".split(\" \");\ng.allowedReferences=\"https:// http:// mailto: / ../ ./ #\".split(\" \");g.allowedTags=\"a abbr b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feDropShadow feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text textPath thead title tbody tspan td th tr u ul #text\".split(\" \");g.emptyHTML=y;g.bypassHTMLFiltering=\n!1;\"\";return g});M(a,\"Core/Templating.js\",[a[\"Core/Defaults.js\"],a[\"Core/Utilities.js\"]],function(a,y){function x(h=\"\",g,e){const a=/\\{([a-zA-Z0-9:\\.,;\\-\\/<>%_@\"'= #\\(\\)]+)\\}/g,l=/\\(([a-zA-Z0-9:\\.,;\\-\\/<>%_@\"'= ]+)\\)/g,v=[],d=/f$/,k=/\\.([0-9])/,r=C.lang,q=e&&e.time||z,G=e&&e.numberFormatter||L,b=(b=\"\")=>{let c;return\"true\"===b?!0:\"false\"===b?!1:(c=Number(b)).toString()===b?c:B(b,g)};let f,c,n=0,P;for(;null!==(f=a.exec(h));){const b=l.exec(f[1]);b&&(f=b,P=!0);c&&c.isBlock||(c={ctx:g,expression:f[1],\nfind:f[0],isBlock:\"#\"===f[1].charAt(0),start:f.index,startInner:f.index+f[0].length,length:f[0].length});var D=f[1].split(\" \")[0].replace(\"#\",\"\");m[D]&&(c.isBlock&&D===c.fn&&n++,c.fn||(c.fn=D));D=\"else\"===f[1];if(c.isBlock&&c.fn&&(f[1]===`/${c.fn}`||D))if(n)D||n--;else{var K=c.startInner;K=h.substr(K,f.index-K);void 0===c.body?(c.body=K,c.startInner=f.index+f[0].length):c.elseBody=K;c.find+=K+f[0];D||(v.push(c),c=void 0)}else c.isBlock||v.push(c);if(b&&(null===c||void 0===c||!c.isBlock))break}v.forEach(c=>\n{const {body:f,elseBody:n,expression:K,fn:e}=c;var A;if(e){var a=[c],w=K.split(\" \");for(A=m[e].length;A--;)a.unshift(b(w[A+1]));A=m[e].apply(g,a);c.isBlock&&\"boolean\"===typeof A&&(A=x(A?f:n,g))}else a=K.split(\":\"),A=b(a.shift()||\"\"),a.length&&\"number\"===typeof A&&(a=a.join(\":\"),d.test(a)?(w=parseInt((a.match(k)||[\"\",\"-1\"])[1],10),null!==A&&(A=G(A,w,r.decimalPoint,-1d[1]){var r=g+ +d[1];0<=r?(d[0]=(+d[0]).toExponential(r).split(\"e\")[0],g=r):(d[0]=d[0].split(\".\")[0]||0,h=20>g?(d[0]*Math.pow(10,d[1])).toFixed(g):0,d[1]=0)}r=(Math.abs(d[1]?d[0]:h)+Math.pow(10,-Math.max(g,w)-1)).toFixed(g);w=String(t(r));const q=3\nh?\"-\":\"\")+(q?w.substr(0,q)+a:\"\");h=0>+d[1]&&!k?\"0\":h+w.substr(q).replace(/(\\d{3})(?=\\d)/g,\"$1\"+a);g&&(h+=e+r.slice(-g));d[1]&&0!==+h&&(h+=\"e\"+d[1]);return h}const {defaultOptions:C,defaultTime:z}=a,{extend:H,getNestedProperty:B,isArray:u,isNumber:v,isObject:l,pick:p,pInt:t}=y,m={add:(h,g)=>h+g,divide:(h,g)=>0!==g?h/g:\"\",eq:(h,g)=>h==g,each:function(h){const g=arguments[arguments.length-1];return u(h)?h.map((e,a)=>x(g.body,H(l(e)?e:{\"@this\":e},{\"@index\":a,\"@first\":0===a,\"@last\":a===h.length-1}))).join(\"\"):\n!1},ge:(h,g)=>h>=g,gt:(h,g)=>h>g,\"if\":h=>!!h,le:(h,g)=>h<=g,lt:(h,g)=>hh*g,ne:(h,g)=>h!=g,subtract:(h,g)=>h-g,unless:h=>!h};return{dateFormat:function(h,g,e){return z.dateFormat(h,g,e)},format:x,helpers:m,numberFormat:L}});M(a,\"Core/Renderer/RendererUtilities.js\",[a[\"Core/Utilities.js\"]],function(a){const {clamp:x,pick:I,stableSort:L}=a;var C;(function(a){function y(a,u,v){const l=a;var p=l.reducedLen||u,t=(e,g)=>(g.rank||0)-(e.rank||0);const m=(e,g)=>e.target-g.target;let h,g=\n!0,e=[],w=0;for(h=a.length;h--;)w+=a[h].size;if(w>p){L(a,t);for(w=h=0;w<=p;)w+=a[h].size,h++;e=a.splice(h-1,a.length)}L(a,m);for(a=a.map(e=>({size:e.size,targets:[e.target],align:I(e.align,.5)}));g;){for(h=a.length;h--;)p=a[h],t=(Math.min.apply(0,p.targets)+Math.max.apply(0,p.targets))/2,p.pos=x(t-p.size*p.align,0,u-p.size);h=a.length;for(g=!1;h--;)0a[h].pos&&(a[h-1].size+=a[h].size,a[h-1].targets=a[h-1].targets.concat(a[h].targets),a[h-1].align=.5,a[h-1].pos+a[h-1].size>\nu&&(a[h-1].pos=u-a[h-1].size),a.splice(h,1),g=!0)}l.push.apply(l,e);h=0;a.some(e=>{let g=0;return(e.targets||[]).some(()=>{l[h].pos=e.pos+g;if(\"undefined\"!==typeof v&&Math.abs(l[h].pos-l[h].target)>v)return l.slice(0,h+1).forEach(d=>delete d.pos),l.reducedLen=(l.reducedLen||u)-.1*u,l.reducedLen>.1*u&&y(l,u,v),!0;g+=l[h].size;h++;return!1})});L(l,m);return l}a.distribute=y})(C||(C={}));return C});M(a,\"Core/Renderer/SVG/SVGElement.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Color/Color.js\"],\na[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L){const {animate:x,animObject:z,stop:H}=a,{deg2rad:B,doc:u,svg:v,SVG_NS:l,win:p}=I,{addEvent:t,attr:m,createElement:h,css:g,defined:e,erase:w,extend:E,fireEvent:F,isArray:d,isFunction:k,isObject:r,isString:q,merge:G,objectEach:b,pick:f,pInt:c,syncTimeout:n,uniqueKey:P}=L;class D{constructor(){this.element=void 0;this.onEvents={};this.opacity=1;this.renderer=void 0;this.SVG_NS=l}_defaultGetter(b){b=f(this[b+\"Value\"],this[b],this.element?\nthis.element.getAttribute(b):null,0);/^[\\-0-9\\.]+$/.test(b)&&(b=parseFloat(b));return b}_defaultSetter(b,c,f){f.setAttribute(c,b)}add(b){const c=this.renderer,f=this.element;let d;b&&(this.parentGroup=b);\"undefined\"!==typeof this.textStr&&\"text\"===this.element.nodeName&&c.buildText(this);this.added=!0;if(!b||b.handleZ||this.zIndex)d=this.zIndexSetter();d||(b?b.element:c.box).appendChild(f);if(this.onAdd)this.onAdd();return this}addClass(b,c){const f=c?\"\":this.attr(\"class\")||\"\";b=(b||\"\").split(/ /g).reduce(function(b,\nc){-1===f.indexOf(c)&&b.push(c);return b},f?[f]:[]).join(\" \");b!==f&&this.attr(\"class\",b);return this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(b,c,d){const k={};var n=this.renderer,e=n.alignedObjects,A;let K,g;if(b){if(this.alignOptions=b,this.alignByTranslate=c,!d||q(d))this.alignTo=A=d||\"renderer\",w(e,this),e.push(this),d=void 0}else b=this.alignOptions,c=this.alignByTranslate,A=this.alignTo;d=f(d,n[A],\"scrollablePlotBox\"===A?n.plotBox:void 0,n);A=b.align;\nconst a=b.verticalAlign;n=(d.x||0)+(b.x||0);e=(d.y||0)+(b.y||0);\"right\"===A?K=1:\"center\"===A&&(K=2);K&&(n+=(d.width-(b.width||0))/K);k[c?\"translateX\":\"x\"]=Math.round(n);\"bottom\"===a?g=1:\"middle\"===a&&(g=2);g&&(e+=(d.height-(b.height||0))/g);k[c?\"translateY\":\"y\"]=Math.round(e);this[this.placed?\"animate\":\"attr\"](k);this.placed=!0;this.alignAttr=k;return this}alignSetter(b){const c={left:\"start\",center:\"middle\",right:\"end\"};c[b]&&(this.alignValue=b,this.element.setAttribute(\"text-anchor\",c[b]))}animate(c,\nd,k){const e=z(f(d,this.renderer.globalAnimation,!0));d=e.defer;u.hidden&&(e.duration=0);0!==e.duration?(k&&(e.complete=k),n(()=>{this.element&&x(this,c,e)},d)):(this.attr(c,void 0,k||e.complete),b(c,function(b,c){e.step&&e.step.call(this,b,{prop:c,pos:1,elem:this})},this));return this}applyTextOutline(b){const c=this.element;-1!==b.indexOf(\"contrast\")&&(b=b.replace(/contrast/g,this.renderer.getContrast(c.style.fill)));var f=b.split(\" \");b=f[f.length-1];if((f=f[0])&&\"none\"!==f&&I.svg){this.fakeTS=\n!0;f=f.replace(/(^[\\d\\.]+)(.*?)$/g,function(b,c,f){return 2*Number(c)+f});this.removeTextOutline();const d=u.createElementNS(l,\"tspan\");m(d,{\"class\":\"highcharts-text-outline\",fill:b,stroke:b,\"stroke-width\":f,\"stroke-linejoin\":\"round\"});b=c.querySelector(\"textPath\")||c;[].forEach.call(b.childNodes,b=>{const c=b.cloneNode(!0);c.removeAttribute&&[\"fill\",\"stroke\",\"stroke-width\",\"stroke\"].forEach(b=>c.removeAttribute(b));d.appendChild(c)});let k=0;[].forEach.call(b.querySelectorAll(\"text tspan\"),b=>{k+=\nNumber(b.getAttribute(\"dy\"))});f=u.createElementNS(l,\"tspan\");f.textContent=\"\\u200b\";m(f,{x:Number(c.getAttribute(\"x\")),dy:-k});d.appendChild(f);b.insertBefore(d,b.firstChild)}}attr(c,f,d,k){const n=this.element,e=D.symbolCustomAttribs;let A,q,g=this,a,K;\"string\"===typeof c&&\"undefined\"!==typeof f&&(A=c,c={},c[A]=f);\"string\"===typeof c?g=(this[c+\"Getter\"]||this._defaultGetter).call(this,c,n):(b(c,function(b,f){a=!1;k||H(this,f);this.symbolName&&-1!==e.indexOf(f)&&(q||(this.symbolAttr(c),q=!0),a=!0);\n!this.rotation||\"x\"!==f&&\"y\"!==f||(this.doTransform=!0);a||(K=this[f+\"Setter\"]||this._defaultSetter,K.call(this,b,f,n))},this),this.afterSetters());d&&d.call(this);return g}clip(b){return this.attr(\"clip-path\",b?\"url(\"+this.renderer.url+\"#\"+b.id+\")\":\"none\")}crisp(b,c){c=c||b.strokeWidth||0;const f=Math.round(c)%2/2;b.x=Math.floor(b.x||this.x||0)+f;b.y=Math.floor(b.y||this.y||0)+f;b.width=Math.floor((b.width||this.width||0)-2*f);b.height=Math.floor((b.height||this.height||0)-2*f);e(b.strokeWidth)&&\n(b.strokeWidth=c);return b}complexColor(c,f,k){const n=this.renderer;let q,g,A,a,r,K,h,J,m,O,w=[],l;F(this.renderer,\"complexColor\",{args:arguments},function(){c.radialGradient?g=\"radialGradient\":c.linearGradient&&(g=\"linearGradient\");if(g){A=c[g];r=n.gradients;K=c.stops;m=k.radialReference;d(A)&&(c[g]=A={x1:A[0],y1:A[1],x2:A[2],y2:A[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===g&&m&&!e(A.gradientUnits)&&(a=A,A=G(A,n.getRadialAttr(m,a),{gradientUnits:\"userSpaceOnUse\"}));b(A,function(b,c){\"id\"!==\nc&&w.push(c,b)});b(K,function(b){w.push(b)});w=w.join(\",\");if(r[w])O=r[w].attr(\"id\");else{A.id=O=P();const b=r[w]=n.createElement(g).attr(A).add(n.defs);b.radAttr=a;b.stops=[];K.forEach(function(c){0===c[1].indexOf(\"rgba\")?(q=y.parse(c[1]),h=q.get(\"rgb\"),J=q.get(\"a\")):(h=c[1],J=1);c=n.createElement(\"stop\").attr({offset:c[0],\"stop-color\":h,\"stop-opacity\":J}).add(b);b.stops.push(c)})}l=\"url(\"+n.url+\"#\"+O+\")\";k.setAttribute(f,l);k.gradient=w;c.toString=function(){return l}}})}css(f){const d=this.styles,\nk={},n=this.element;let e,q=!d;d&&b(f,function(b,c){d&&d[c]!==b&&(k[c]=b,q=!0)});if(q){d&&(f=E(d,k));null===f.width||\"auto\"===f.width?delete this.textWidth:\"text\"===n.nodeName.toLowerCase()&&f.width&&(e=this.textWidth=c(f.width));this.styles=f;e&&!v&&this.renderer.forExport&&delete f.width;const b=G(f);n.namespaceURI===this.SVG_NS&&([\"textOutline\",\"textOverflow\",\"width\"].forEach(c=>b&&delete b[c]),b.color&&(b.fill=b.color));g(n,b)}this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),\nf.textOutline&&this.applyTextOutline(f.textOutline));return this}dashstyleSetter(b){let d=this[\"stroke-width\"];\"inherit\"===d&&(d=1);if(b=b&&b.toLowerCase()){const k=b.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(b=k.length;b--;)k[b]=\"\"+c(k[b])*f(d,NaN);b=k.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",\nb)}}destroy(){const c=this;var f=c.element||{};const d=c.renderer;var k=f.ownerSVGElement;let n=\"SPAN\"===f.nodeName&&c.parentGroup||void 0;f.onclick=f.onmouseout=f.onmouseover=f.onmousemove=f.point=null;H(c);if(c.clipPath&&k){const b=c.clipPath;[].forEach.call(k.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(c){-1c&&c.join?(f?b+\" \":\"\")+c.join(\" \"):(c||\"\").toString(),\"\"));/(NaN| {2}|^$)/.test(b)&&(b=\"M 0 0\");this[c]!==b&&(f.setAttribute(c,\nb),this[c]=b)}fadeOut(b){const c=this;c.animate({opacity:0},{duration:f(b,150),complete:function(){c.hide()}})}fillSetter(b,c,f){\"string\"===typeof b?f.setAttribute(c,b):b&&this.complexColor(b,c,f)}getBBox(b,c){const {alignValue:d,element:n,renderer:q,styles:a,textStr:A}=this,{cache:r,cacheKeys:h}=q;var m=n.namespaceURI===this.SVG_NS;c=f(c,this.rotation,0);var K=q.styledMode?n&&D.prototype.getStyle.call(n,\"font-size\"):a&&a.fontSize;let J;let N;e(A)&&(N=A.toString(),-1===N.indexOf(\"<\")&&(N=N.replace(/[0-9]/g,\n\"0\")),N+=[\"\",q.rootFontSize,K,c,this.textWidth,d,a&&a.textOverflow,a&&a.fontWeight].join());N&&!b&&(J=r[N]);if(!J){if(m||q.forExport){try{var O=this.fakeTS&&function(b){const c=n.querySelector(\".highcharts-text-outline\");c&&g(c,{display:b})};k(O)&&O(\"none\");J=n.getBBox?E({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0};k(O)&&O(\"\")}catch(fa){\"\"}if(!J||0>J.width)J={x:0,y:0,width:0,height:0}}else J=this.htmlGetBBox();O=J.width;b=J.height;m&&(J.height=b={\"11px,17\":14,\"13px,20\":16}[`${K||\n\"\"},${Math.round(b)}`]||b);if(c){m=Number(n.getAttribute(\"y\")||0)-J.y;K={right:1,center:.5}[d||0]||0;var w=c*B,l=(c-90)*B,p=O*Math.cos(w);c=O*Math.sin(w);var G=Math.cos(l);w=Math.sin(l);O=J.x+K*(O-p)+m*G;l=O+p;G=l-b*G;p=G-p;m=J.y+m-K*c+m*w;K=m+c;b=K-b*w;c=b-c;J.x=Math.min(O,l,G,p);J.y=Math.min(m,K,b,c);J.width=Math.max(O,l,G,p)-J.x;J.height=Math.max(m,K,b,c)-J.y}}if(N&&(\"\"===A||0{if(b&&A){let A=b.attr(\"id\");A||b.attr(\"id\",A=P());var k={x:0,y:0};e(n.dx)&&(k.dx=n.dx,delete n.dx);e(n.dy)&&(k.dy=n.dy,delete n.dy);d.attr(k);this.attr({transform:\"\"});this.box&&(this.box=this.box.destroy());k=c.nodes.slice(0);c.nodes.length=0;c.nodes[0]={tagName:\"textPath\",attributes:E(n,\n{\"text-anchor\":n.textAnchor,href:`${f}#${A}`}),children:k}}}),d.textPath={path:b,undo:c}):(d.attr({dx:0,dy:0}),delete d.textPath);this.added&&(d.textCache=\"\",this.renderer.buildText(d));return this}shadow(b){var c;const {renderer:f}=this,d=G(90===(null===(c=this.parentGroup)||void 0===c?void 0:c.rotation)?{offsetX:-1,offsetY:-1}:{},r(b)?b:{});c=f.shadowDefinition(d);return this.attr({filter:b?`url(${f.url}#${c})`:\"none\"})}show(b=!0){return this.attr({visibility:b?\"inherit\":\"visible\"})}[\"stroke-widthSetter\"](b,\nc,f){this[c]=b;f.setAttribute(c,b)}strokeWidth(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;const b=this.getStyle(\"stroke-width\");let f=0,d;b.indexOf(\"px\")===b.length-2?f=c(b):\"\"!==b&&(d=u.createElementNS(l,\"rect\"),m(d,{width:b,\"stroke-width\":0}),this.element.parentNode.appendChild(d),f=d.getBBox().width,d.parentNode.removeChild(d));return f}symbolAttr(b){const c=this;D.symbolCustomAttribs.forEach(function(d){c[d]=f(b[d],c[d])});c.attr({d:c.renderer.symbols[c.symbolName](c.x,c.y,\nc.width,c.height,c)})}textSetter(b){b!==this.textStr&&(delete this.textPxLength,this.textStr=b,this.added&&this.renderer.buildText(this))}titleSetter(b){const c=this.element,d=c.getElementsByTagName(\"title\")[0]||u.createElementNS(this.SVG_NS,\"title\");c.insertBefore?c.insertBefore(d,c.firstChild):c.appendChild(d);d.textContent=String(f(b,\"\")).replace(/<[^>]*>/g,\"\").replace(/</g,\"<\").replace(/>/g,\">\")}toFront(){const b=this.element;b.parentNode.appendChild(b);return this}translate(b,c){return this.attr({translateX:b,\ntranslateY:c})}updateTransform(){const {element:b,matrix:c,rotation:d=0,scaleX:k,scaleY:n,translateX:q=0,translateY:A=0}=this,g=[\"translate(\"+q+\",\"+A+\")\"];e(c)&&g.push(\"matrix(\"+c.join(\",\")+\")\");d&&g.push(\"rotate(\"+d+\" \"+f(this.rotationOriginX,b.getAttribute(\"x\"),0)+\" \"+f(this.rotationOriginY,b.getAttribute(\"y\")||0)+\")\");(e(k)||e(n))&&g.push(\"scale(\"+f(k,1)+\" \"+f(n,1)+\")\");g.length&&!(this.text||this).textPath&&b.setAttribute(\"transform\",g.join(\" \"))}visibilitySetter(b,c,f){\"inherit\"===b?f.removeAttribute(c):\nthis[c]!==b&&f.setAttribute(c,b);this[c]=b}xGetter(b){\"circle\"===this.element.nodeName&&(\"x\"===b?b=\"cx\":\"y\"===b&&(b=\"cy\"));return this._defaultGetter(b)}zIndexSetter(b,f){var d=this.renderer,k=this.parentGroup;const n=(k||d).element||d.box,q=this.element;d=n===d.box;let A=!1,g;var a=this.added;let r;e(b)?(q.setAttribute(\"data-z-index\",b),b=+b,this[f]===b&&(a=!1)):e(this[f])&&q.removeAttribute(\"data-z-index\");this[f]=b;if(a){(b=this.zIndex)&&k&&(k.handleZ=!0);f=n.childNodes;for(r=f.length-1;0<=r&&\n!A;r--)if(k=f[r],a=k.getAttribute(\"data-z-index\"),g=!e(a),k!==q)if(0>b&&g&&!d&&!r)n.insertBefore(q,f[r]),A=!0;else if(c(a)<=b||g&&(!e(b)||0<=b))n.insertBefore(q,f[r+1]),A=!0;A||(n.insertBefore(q,f[d?3:0]),A=!0)}return A}}D.symbolCustomAttribs=\"anchorX anchorY clockwise end height innerR r start width x y\".split(\" \");D.prototype.strokeSetter=D.prototype.fillSetter;D.prototype.yGetter=D.prototype.xGetter;D.prototype.matrixSetter=D.prototype.rotationOriginXSetter=D.prototype.rotationOriginYSetter=D.prototype.rotationSetter=\nD.prototype.scaleXSetter=D.prototype.scaleYSetter=D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.verticalAlignSetter=function(b,c){this[c]=b;this.doTransform=!0};\"\";return D});M(a,\"Core/Renderer/RendererRegistry.js\",[a[\"Core/Globals.js\"]],function(a){var x;(function(x){x.rendererTypes={};let y;x.getRendererType=function(a=y){return x.rendererTypes[a]||x.rendererTypes[y]};x.registerRendererType=function(C,z,H){x.rendererTypes[C]=z;if(!y||H)y=C,a.Renderer=z}})(x||(x={}));return x});\nM(a,\"Core/Renderer/SVG/SVGLabel.js\",[a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {defined:x,extend:L,isNumber:C,merge:z,pick:H,removeEvent:B}=y;class u extends a{constructor(a,l,p,t,m,h,g,e,w,E){super();this.paddingRightSetter=this.paddingLeftSetter=this.paddingSetter;this.init(a,\"g\");this.textStr=l;this.x=p;this.y=t;this.anchorX=h;this.anchorY=g;this.baseline=w;this.className=E;this.addClass(\"button\"===E?\"highcharts-no-tooltip\":\"highcharts-label\");E&&this.addClass(\"highcharts-\"+\nE);this.text=a.text(void 0,0,0,e).attr({zIndex:1});let v;\"string\"===typeof m&&((v=/^url\\((.*?)\\)$/.test(m))||this.renderer.symbols[m])&&(this.symbolKey=m);this.bBox=u.emptyBBox;this.padding=3;this.baselineOffset=0;this.needsBox=a.styledMode||v;this.deferredAttr={};this.alignFactor=0}alignSetter(a){a={left:0,center:.5,right:1}[a];a!==this.alignFactor&&(this.alignFactor=a,this.bBox&&C(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(a,l){this.anchorX=a;this.boxAttr(l,Math.round(a)-this.getCrispAdjust()-\nthis.xSetting)}anchorYSetter(a,l){this.anchorY=a;this.boxAttr(l,a-this.ySetting)}boxAttr(a,l){this.box?this.box.attr(a,l):this.deferredAttr[a]=l}css(v){if(v){const a={};v=z(v);u.textProps.forEach(l=>{\"undefined\"!==typeof v[l]&&(a[l]=v[l],delete v[l])});this.text.css(a);\"fontSize\"in a||\"fontWeight\"in a?this.updateTextPadding():(\"width\"in a||\"textOverflow\"in a)&&this.updateBoxSize()}return a.prototype.css.call(this,v)}destroy(){B(this.element,\"mouseenter\");B(this.element,\"mouseleave\");this.text&&this.text.destroy();\nthis.box&&(this.box=this.box.destroy());a.prototype.destroy.call(this)}fillSetter(a,l){a&&(this.needsBox=!0);this.fill=a;this.boxAttr(l,a)}getBBox(){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();const a=this.padding,l=H(this.paddingLeft,a);return{width:this.width,height:this.height,x:this.bBox.x-l,y:this.bBox.y-a}}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this[\"stroke-width\"]?parseInt(this[\"stroke-width\"],10):0)%2/2}heightSetter(a){this.heightSetting=\na}onAdd(){this.text.add(this);this.attr({text:H(this.textStr,\"\"),x:this.x||0,y:this.y||0});this.box&&x(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(a,l){C(a)?a!==this[l]&&(this[l]=a,this.updateTextPadding()):this[l]=void 0}rSetter(a,l){this.boxAttr(l,a)}strokeSetter(a,l){this.stroke=a;this.boxAttr(l,a)}[\"stroke-widthSetter\"](a,l){a&&(this.needsBox=!0);this[\"stroke-width\"]=a;this.boxAttr(l,a)}[\"text-alignSetter\"](a){this.textAlign=a}textSetter(a){\"undefined\"!==\ntypeof a&&this.text.attr({text:a});this.updateTextPadding()}updateBoxSize(){var a=this.text;const l={},p=this.padding,t=this.bBox=C(this.widthSetting)&&C(this.heightSetting)&&!this.textAlign||!x(a.textStr)?u.emptyBBox:a.getBBox();this.width=this.getPaddedWidth();this.height=(this.heightSetting||t.height||0)+2*p;const m=this.renderer.fontMetrics(a);this.baselineOffset=p+Math.min((this.text.firstLineMetrics||m).b,t.height||Infinity);this.heightSetting&&(this.baselineOffset+=(this.heightSetting-m.h)/\n2);this.needsBox&&!a.textPath&&(this.box||(a=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),a.addClass((\"button\"===this.className?\"\":\"highcharts-label-box\")+(this.className?\" highcharts-\"+this.className+\"-box\":\"\")),a.add(this)),a=this.getCrispAdjust(),l.x=a,l.y=(this.baseline?-this.baselineOffset:0)+a,l.width=Math.round(this.width),l.height=Math.round(this.height),this.box.attr(L(l,this.deferredAttr)),this.deferredAttr={})}updateTextPadding(){const a=this.text;if(!a.textPath){this.updateBoxSize();\nconst l=this.baseline?0:this.baselineOffset;let p=H(this.paddingLeft,this.padding);x(this.widthSetting)&&this.bBox&&(\"center\"===this.textAlign||\"right\"===this.textAlign)&&(p+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width));if(p!==a.x||l!==a.y)a.attr(\"x\",p),a.hasBoxWidthChanged&&(this.bBox=a.getBBox(!0)),\"undefined\"!==typeof l&&a.attr(\"y\",l);a.x=p;a.y=l}}widthSetter(a){this.widthSetting=C(a)?a:void 0}getPaddedWidth(){var a=this.padding;const l=H(this.paddingLeft,a);a=H(this.paddingRight,\na);return(this.widthSetting||this.bBox.width||0)+l+a}xSetter(a){this.x=a;this.alignFactor&&(a-=this.alignFactor*this.getPaddedWidth(),this[\"forceAnimate:x\"]=!0);this.xSetting=Math.round(a);this.attr(\"translateX\",this.xSetting)}ySetter(a){this.ySetting=this.y=Math.round(a);this.attr(\"translateY\",this.ySetting)}}u.emptyBBox={width:0,height:0,x:0,y:0};u.textProps=\"color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow whiteSpace width\".split(\" \");\nreturn u});M(a,\"Core/Renderer/SVG/Symbols.js\",[a[\"Core/Utilities.js\"]],function(a){function x(a,u,v,l,p){const t=[];if(p){const m=p.start||0,h=H(p.r,v);v=H(p.r,l||v);l=(p.end||0)-.001;const g=p.innerR,e=H(p.open,.001>Math.abs((p.end||0)-m-2*Math.PI)),w=Math.cos(m),E=Math.sin(m),F=Math.cos(l),d=Math.sin(l),k=H(p.longArc,.001>l-m-Math.PI?0:1);let r=[\"A\",h,v,0,k,H(p.clockwise,1),a+h*F,u+v*d];r.params={start:m,end:l,cx:a,cy:u};t.push([\"M\",a+h*w,u+v*E],r);C(g)&&(r=[\"A\",g,g,0,k,C(p.clockwise)?1-p.clockwise:\n0,a+g*w,u+g*E],r.params={start:l,end:m,cx:a,cy:u},t.push(e?[\"M\",a+g*F,u+g*d]:[\"L\",a+g*F,u+g*d],r));e||t.push([\"Z\"])}return t}function I(a,u,v,l,p){return p&&p.r?L(a,u,v,l,p):[[\"M\",a,u],[\"L\",a+v,u],[\"L\",a+v,u+l],[\"L\",a,u+l],[\"Z\"]]}function L(a,u,v,l,p){p=(null===p||void 0===p?void 0:p.r)||0;return[[\"M\",a+p,u],[\"L\",a+v-p,u],[\"A\",p,p,0,0,1,a+v,u+p],[\"L\",a+v,u+l-p],[\"A\",p,p,0,0,1,a+v-p,u+l],[\"L\",a+p,u+l],[\"A\",p,p,0,0,1,a,u+l-p],[\"L\",a,u+p],[\"A\",p,p,0,0,1,a+p,u],[\"Z\"]]}const {defined:C,isNumber:z,pick:H}=\na;return{arc:x,callout:function(a,u,v,l,p){const t=Math.min(p&&p.r||0,v,l),m=t+6,h=p&&p.anchorX;p=p&&p.anchorY||0;const g=L(a,u,v,l,{r:t});if(!z(h))return g;a+h>=v?p>u+m&&p=a+h?p>u+m&&pl&&h>a+m&&hp&&h>a+m&&h/g;var d=[e,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,m.getStyle(\"font-size\"),this.width].join();if(d!==m.textCache){m.textCache=d;delete m.actualWidth;for(d=l.length;d--;)h.removeChild(l[d]);w||this.ellipsis||this.width||m.textPath||-1!==e.indexOf(\" \")&&(!this.noWrap||t.test(e))?\n\"\"!==e&&(g&&g.appendChild(h),e=new a(e),this.modifyTree(e.nodes),e.addToDOM(h),this.modifyDOM(),this.ellipsis&&-1!==(h.textContent||\"\").indexOf(\"\\u2026\")&&m.attr(\"title\",this.unescapeEntities(m.textStr||\"\",[\"<\",\">\"])),g&&g.removeChild(h)):h.appendChild(x.createTextNode(this.unescapeEntities(e)));v(this.textOutline)&&m.applyTextOutline&&m.applyTextOutline(this.textOutline)}}modifyDOM(){const a=this.svgElement,h=H(a.element,\"x\");a.firstLineMetrics=void 0;let g;for(;g=a.element.firstChild;)if(/^[\\s\\u200B]*$/.test(g.textContent||\n\" \"))a.element.removeChild(g);else break;[].forEach.call(a.element.querySelectorAll(\"tspan.highcharts-br\"),(e,d)=>{e.nextSibling&&e.previousSibling&&(0===d&&1===e.previousSibling.nodeType&&(a.firstLineMetrics=a.renderer.fontMetrics(e.previousSibling)),H(e,{dy:this.getLineHeight(e.nextSibling),x:h}))});const e=this.width||0;if(e){var w=(g,d)=>{var k=g.textContent||\"\";const r=k.replace(/([^\\^])-/g,\"$1- \").split(\" \");var q=!this.noWrap&&(1b.substring(0,f)+\"\\u2026\");else if(q){k=[];for(q=[];d.firstChild&&d.firstChild!==g;)q.push(d.firstChild),d.removeChild(d.firstChild);for(;r.length;)r.length&&!this.noWrap&&0r.slice(0,f).join(\" \").replace(/- /g,\"-\")),f=a.actualWidth,b++;q.forEach(b=>{d.insertBefore(b,g)});k.forEach(b=>\n{d.insertBefore(x.createTextNode(b),g);b=x.createElementNS(C,\"tspan\");b.textContent=\"\\u200b\";H(b,{dy:m,x:h});d.insertBefore(b,g)})}},l=e=>{[].slice.call(e.childNodes).forEach(d=>{d.nodeType===z.Node.TEXT_NODE?w(d,e):(-1!==d.className.baseVal.indexOf(\"highcharts-br\")&&(a.actualWidth=0),l(d))})};l(a.element)}}getLineHeight(a){a=a.nodeType===z.Node.TEXT_NODE?a.parentElement:a;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(a||this.svgElement.element).h}modifyTree(a){const h=\n(g,e)=>{const {attributes:m={},children:l,style:p={},tagName:d}=g,k=this.renderer.styledMode;if(\"b\"===d||\"strong\"===d)k?m[\"class\"]=\"highcharts-strong\":p.fontWeight=\"bold\";else if(\"i\"===d||\"em\"===d)k?m[\"class\"]=\"highcharts-emphasized\":p.fontStyle=\"italic\";p&&p.color&&(p.fill=p.color);\"br\"===d?(m[\"class\"]=\"highcharts-br\",g.textContent=\"\\u200b\",(e=a[e+1])&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,\"\"))):\"a\"===d&&l&&l.some(d=>\"#text\"===d.tagName)&&(g.children=[{children:l,tagName:\"tspan\"}]);\n\"#text\"!==d&&\"a\"!==d&&(g.tagName=\"tspan\");B(g,{attributes:m,style:p});l&&l.filter(d=>\"#text\"!==d.tagName).forEach(h)};a.forEach(h);u(this.svgElement,\"afterModifyTree\",{nodes:a})}truncate(a,h,g,e,l,p){const m=this.svgElement,{rotation:d}=m,k=[];let r=g?1:0,q=(h||g||\"\").length,w=q,b,f;const c=function(b,c){b=c||b;if((c=a.parentNode)&&\"undefined\"===typeof k[b]&&c.getSubStringLength)try{k[b]=e+c.getSubStringLength(0,g?b+1:b)}catch(D){\"\"}return k[b]};m.rotation=0;f=c(a.textContent.length);if(e+f>l){for(;r<=\nq;)w=Math.ceil((r+q)/2),g&&(b=p(g,w)),f=c(w,b&&b.length-1),r===q?r=q+1:f>l?q=w-1:r=w;0===q?a.textContent=\"\":h&&q===h.length-1||(a.textContent=b||p(h||g,w))}g&&g.splice(0,w);m.actualWidth=f;m.rotation=d}unescapeEntities(a,h){l(this.renderer.escapes,function(g,e){h&&-1!==h.indexOf(g)||(a=a.toString().replace(new RegExp(g,\"g\"),e))});return a}}return t});M(a,\"Core/Renderer/SVG/SVGRenderer.js\",[a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Renderer/RendererRegistry.js\"],\na[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGLabel.js\"],a[\"Core/Renderer/SVG/Symbols.js\"],a[\"Core/Renderer/SVG/TextBuilder.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B,u){const {charts:v,deg2rad:l,doc:p,isFirefox:t,isMS:m,isWebKit:h,noop:g,SVG_NS:e,symbolSizes:w,win:E}=I,{addEvent:F,attr:d,createElement:k,css:r,defined:q,destroyObjectProperties:G,extend:b,isArray:f,isNumber:c,isObject:n,isString:P,merge:D,pick:K,pInt:x,uniqueKey:T}=u;let Z;class V{constructor(b,c,f,d,a,k,\nn){this.width=this.url=this.style=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0;this.init(b,c,f,d,a,k,n)}init(b,c,f,a,k,n,J){const A=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"}),e=A.element;J||A.css(this.getStyle(a));b.appendChild(e);d(b,\"dir\",\"ltr\");-1===b.innerHTML.indexOf(\"xmlns\")&&d(e,\"xmlns\",this.SVG_NS);this.box=e;this.boxWrapper=A;this.alignedObjects=\n[];this.url=this.getReferenceURL();this.createElement(\"desc\").add().element.appendChild(p.createTextNode(\"Created with Highcharts 11.1.0\"));this.defs=this.createElement(\"defs\").add();this.allowHTML=n;this.forExport=k;this.styledMode=J;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.rootFontSize=A.getStyle(\"font-size\");this.setSize(c,f,!1);let q;t&&b.getBoundingClientRect&&(c=function(){r(b,{left:0,top:0});q=b.getBoundingClientRect();r(b,{left:Math.ceil(q.left)-q.left+\"px\",top:Math.ceil(q.top)-\nq.top+\"px\"})},c(),this.unSubPixelFix=F(E,\"resize\",c))}definition(b){return(new a([b])).addToDOM(this.defs.element)}getReferenceURL(){if((t||h)&&p.getElementsByTagName(\"base\").length){if(!q(Z)){var b=T();b=(new a([{tagName:\"svg\",attributes:{width:8,height:8},children:[{tagName:\"defs\",children:[{tagName:\"clipPath\",attributes:{id:b},children:[{tagName:\"rect\",attributes:{width:4,height:4}}]}]},{tagName:\"rect\",attributes:{id:\"hitme\",width:8,height:8,\"clip-path\":`url(#${b})`,fill:\"rgba(0,0,0,0.001)\"}}]}])).addToDOM(p.body);\nr(b,{position:\"fixed\",top:0,left:0,zIndex:9E5});const c=p.elementFromPoint(6,6);Z=\"hitme\"===(c&&c.id);p.body.removeChild(b)}if(Z)return E.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\")}return\"\"}getStyle(c){return this.style=b({fontFamily:\"Helvetica, Arial, sans-serif\",fontSize:\"1rem\"},c)}setStyle(b){this.boxWrapper.css(this.getStyle(b))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){const b=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();\nG(this.gradients||{});this.gradients=null;this.defs=b.destroy();this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null}createElement(b){const c=new this.Element;c.init(this,b);return c}getRadialAttr(b,c){return{cx:b[0]-b[2]/2+(c.cx||0)*b[2],cy:b[1]-b[2]/2+(c.cy||0)*b[2],r:(c.r||0)*b[2]}}shadowDefinition(b){const c=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(b).map(c=>b[c])].join(\"-\").replace(/[^a-z0-9\\-]/g,\"\"),f=D({color:\"#000000\",offsetX:1,offsetY:1,opacity:.15,\nwidth:5},b);this.defs.element.querySelector(`#${c}`)||this.definition({tagName:\"filter\",attributes:{id:c},children:[{tagName:\"feDropShadow\",attributes:{dx:f.offsetX,dy:f.offsetY,\"flood-color\":f.color,\"flood-opacity\":Math.min(5*f.opacity,1),stdDeviation:f.width/2}}]});return c}buildText(b){(new B(b)).buildSVG()}getContrast(b){b=y.parse(b).rgba.map(b=>{b/=255;return.03928>=b?b/12.92:Math.pow((b+.055)/1.055,2.4)});b=.2126*b[0]+.7152*b[1]+.0722*b[2];return 1.05/(b+.05)>(b+.05)/.05?\"#FFFFFF\":\"#000000\"}button(c,\nf,d,k,e={},q,J,g,r,h){const A=this.label(c,f,d,r,void 0,void 0,h,void 0,\"button\"),O=this.styledMode;c=e.states||{};let N=0;e=D(e);delete e.states;const l=D({color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",fontWeight:\"normal\"},e.style);delete e.style;let w=a.filterUserAttributes(e);A.attr(D({padding:8,r:2},w));let p,G,R;O||(w=D({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1},w),q=D(w,{fill:\"#e6e6e6\"},a.filterUserAttributes(q||c.hover||{})),p=q.style,delete q.style,J=D(w,{fill:\"#e6e9ff\",style:{color:\"#000000\",\nfontWeight:\"bold\"}},a.filterUserAttributes(J||c.select||{})),G=J.style,delete J.style,g=D(w,{style:{color:\"#cccccc\"}},a.filterUserAttributes(g||c.disabled||{})),R=g.style,delete g.style);F(A.element,m?\"mouseover\":\"mouseenter\",function(){3!==N&&A.setState(1)});F(A.element,m?\"mouseout\":\"mouseleave\",function(){3!==N&&A.setState(N)});A.setState=function(b){1!==b&&(A.state=N=b);A.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\n\"disabled\"][b||0]);O||(A.attr([w,q,J,g][b||0]),b=[l,p,G,R][b||0],n(b)&&A.css(b))};O||(A.attr(w).css(b({cursor:\"default\"},l)),h&&A.text.css({pointerEvents:\"none\"}));return A.on(\"touchstart\",b=>b.stopPropagation()).on(\"click\",function(b){3!==N&&k.call(A,b)})}crispLine(b,c,f=\"round\"){const d=b[0],a=b[1];q(d[1])&&d[1]===a[1]&&(d[1]=a[1]=Math[f](d[1])-c%2/2);q(d[2])&&d[2]===a[2]&&(d[2]=a[2]=Math[f](d[2])+c%2/2);return b}path(c){const d=this.styledMode?{}:{fill:\"none\"};f(c)?d.d=c:n(c)&&b(d,c);return this.createElement(\"path\").attr(d)}circle(b,\nc,f){b=n(b)?b:\"undefined\"===typeof b?{}:{x:b,y:c,r:f};c=this.createElement(\"circle\");c.xSetter=c.ySetter=function(b,c,f){f.setAttribute(\"c\"+c,b)};return c.attr(b)}arc(b,c,f,d,a,k){n(b)?(d=b,c=d.y,f=d.r,b=d.x):d={innerR:d,start:a,end:k};b=this.symbol(\"arc\",b,c,f,f,d);b.r=f;return b}rect(c,f,a,k,e,q){c=n(c)?c:\"undefined\"===typeof c?{}:{x:c,y:f,r:e,width:Math.max(a||0,0),height:Math.max(k||0,0)};const A=this.createElement(\"rect\");this.styledMode||(\"undefined\"!==typeof q&&(c[\"stroke-width\"]=q,b(c,A.crisp(c))),\nc.fill=\"none\");A.rSetter=function(b,c,f){A.r=b;d(f,{rx:b,ry:b})};A.rGetter=function(){return A.r||0};return A.attr(c)}roundedRect(b){return this.symbol(\"roundedRect\").attr(b)}setSize(b,c,f){this.width=b;this.height=c;this.boxWrapper.animate({width:b,height:c},{step:function(){this.attr({viewBox:\"0 0 \"+this.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:K(f,!0)?void 0:0});this.alignElements()}g(b){const c=this.createElement(\"g\");return b?c.attr({\"class\":\"highcharts-\"+b}):c}image(b,f,d,a,k,n){const A=\n{preserveAspectRatio:\"none\"};c(f)&&(A.x=f);c(d)&&(A.y=d);c(a)&&(A.width=a);c(k)&&(A.height=k);const e=this.createElement(\"image\").attr(A);f=function(c){e.attr({href:b});n.call(e,c)};n?(e.attr({href:\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"}),d=new E.Image,F(d,\"load\",f),d.src=b,d.complete&&f({})):e.attr({href:b});return e}symbol(c,f,a,n,e,g){const A=this,h=/^url\\((.*?)\\)$/,O=h.test(c),m=!O&&(this.symbols[c]?c:\"circle\"),l=m&&this.symbols[m];let D,G,P,t;if(l)\"number\"===\ntypeof f&&(G=l.call(this.symbols,Math.round(f||0),Math.round(a||0),n||0,e||0,g)),D=this.path(G),A.styledMode||D.attr(\"fill\",\"none\"),b(D,{symbolName:m||void 0,x:f,y:a,width:n,height:e}),g&&b(D,g);else if(O){P=c.match(h)[1];const b=D=this.image(P);b.imgwidth=K(g&&g.width,w[P]&&w[P].width);b.imgheight=K(g&&g.height,w[P]&&w[P].height);t=b=>b.attr({width:b.width,height:b.height});[\"width\",\"height\"].forEach(function(c){b[c+\"Setter\"]=function(b,c){this[c]=b;const {alignByTranslate:f,element:a,width:k,height:A,\nimgwidth:n,imgheight:e}=this;b=this[\"img\"+c];if(q(b)){let J=1;g&&\"within\"===g.backgroundSize&&k&&A?(J=Math.min(k/n,A/e),d(a,{width:Math.round(n*J),height:Math.round(e*J)})):a&&a.setAttribute(c,b);f||this.translate(((k||0)-n*J)/2,((A||0)-e*J)/2)}}});q(f)&&b.attr({x:f,y:a});b.isImg=!0;q(b.imgwidth)&&q(b.imgheight)?t(b):(b.attr({width:0,height:0}),k(\"img\",{onload:function(){const c=v[A.chartIndex];0===this.width&&(r(this,{position:\"absolute\",top:\"-999em\"}),p.body.appendChild(this));w[P]={width:this.width,\nheight:this.height};b.imgwidth=this.width;b.imgheight=this.height;b.element&&t(b);this.parentNode&&this.parentNode.removeChild(this);A.imgCount--;if(!A.imgCount&&c&&!c.hasLoaded)c.onload()},src:P}),this.imgCount++)}return D}clipRect(b,c,f,d){const a=T()+\"-\",k=this.createElement(\"clipPath\").attr({id:a}).add(this.defs);b=this.rect(b,c,f,d,0).add(k);b.id=a;b.clipPath=k;b.count=0;return b}text(b,c,f,d){const a={};if(d&&(this.allowHTML||!this.forExport))return this.html(b,c,f);a.x=Math.round(c||0);f&&\n(a.y=Math.round(f));q(b)&&(a.text=b);b=this.createElement(\"text\").attr(a);if(!d||this.forExport&&!this.allowHTML)b.xSetter=function(b,c,f){const d=f.getElementsByTagName(\"tspan\"),a=f.getAttribute(c);for(let f=0,k;fb?b+3:Math.round(1.2*b);return{h:c,b:Math.round(.8*c),f:b}}rotCorr(b,c,f){let d=b;c&&f&&(d=Math.max(d*Math.cos(c*l),4));\nreturn{x:-b/3*Math.sin(c*l),y:d}}pathToSegments(b){const f=[],d=[],a={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let k=0;kb.align())}}b(V.prototype,{Element:C,SVG_NS:e,\nescapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},symbols:H,draw:g});L.registerRendererType(\"svg\",V,!0);\"\";return V});M(a,\"Core/Renderer/HTML/HTMLElement.js\",[a[\"Core/Globals.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {isFirefox:x,isMS:C,isWebKit:z,win:H}=a,{css:B,defined:u,extend:v,pick:l,pInt:p}=I,t=[];class m extends y{static compose(a){if(I.pushUnique(t,a)){const g=m.prototype,e=a.prototype;e.getSpanCorrection=g.getSpanCorrection;\ne.htmlCss=g.htmlCss;e.htmlGetBBox=g.htmlGetBBox;e.htmlUpdateTransform=g.htmlUpdateTransform;e.setSpanRotation=g.setSpanRotation}return a}getSpanCorrection(a,g,e){this.xCorr=-a*e;this.yCorr=-g}htmlCss(a){const g=\"SPAN\"===this.element.tagName&&a&&\"width\"in a,e=l(g&&a.width,void 0);let h;g&&(delete a.width,this.textWidth=e,h=!0);a&&\"ellipsis\"===a.textOverflow&&(a.whiteSpace=\"nowrap\",a.overflow=\"hidden\");this.styles=v(this.styles,a);B(this.element,a);h&&this.htmlUpdateTransform();return this}htmlGetBBox(){const a=\nthis.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}}htmlUpdateTransform(){if(this.added){var a=this.renderer,g=this.element,e=this.x||0,m=this.y||0,l=this.textAlign||\"left\",t={left:0,center:.5,right:1}[l],d=this.styles,k=d&&d.whiteSpace;B(g,{marginLeft:this.translateX||0,marginTop:this.translateY||0});if(\"SPAN\"===g.tagName){d=this.rotation;const q=this.textWidth&&p(this.textWidth),h=[d,l,g.innerHTML,this.textWidth,this.textAlign].join();let b=!1;if(q!==this.oldTextWidth){if(this.textPxLength)var r=\nthis.textPxLength;else B(g,{width:\"\",whiteSpace:k||\"nowrap\"}),r=g.offsetWidth;(q>this.oldTextWidth||r>q)&&(/[ \\-]/.test(g.textContent||g.innerText)||\"ellipsis\"===g.style.textOverflow)&&(B(g,{width:r>q||d?q+\"px\":\"auto\",display:\"block\",whiteSpace:k||\"normal\"}),this.oldTextWidth=q,b=!0)}this.hasBoxWidthChanged=b;h!==this.cTT&&(a=a.fontMetrics(g).b,!u(d)||d===(this.oldRotation||0)&&l===this.oldAlign||this.setSpanRotation(d,t,a),this.getSpanCorrection(!u(d)&&this.textPxLength||g.offsetWidth,a,t,d,l));\nB(g,{left:e+(this.xCorr||0)+\"px\",top:m+(this.yCorr||0)+\"px\"});this.cTT=h;this.oldRotation=d;this.oldAlign=l}}else this.alignOnAdd=!0}setSpanRotation(a,g,e){const h={},m=C&&!/Edge/.test(H.navigator.userAgent)?\"-ms-transform\":z?\"-webkit-transform\":x?\"MozTransform\":H.opera?\"-o-transform\":void 0;m&&(h[m]=h.transform=\"rotate(\"+a+\"deg)\",h[m+(x?\"Origin\":\"-origin\")]=h.transformOrigin=100*g+\"% \"+e+\"px\",B(this.element,h))}}return m});M(a,\"Core/Renderer/HTML/HTMLRenderer.js\",[a[\"Core/Renderer/HTML/AST.js\"],\na[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L){const {attr:x,createElement:z,extend:H,pick:B}=L,u=[];class v extends I{static compose(a){L.pushUnique(u,a)&&(a.prototype.html=v.prototype.html);return a}html(l,p,t){const m=this.createElement(\"span\"),h=m.element,g=m.renderer,e=function(a,e){[\"opacity\",\"visibility\"].forEach(function(g){a[g+\"Setter\"]=function(d,k,r){const q=a.div?a.div.style:e;y.prototype[g+\"Setter\"].call(this,d,k,r);\nq&&(q[k]=d)}});a.addedSetters=!0};m.textSetter=function(e){e!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,a.setElementHTML(this.element,B(e,\"\")),this.textStr=e,m.doTransform=!0)};e(m,m.element.style);m.xSetter=m.ySetter=m.alignSetter=m.rotationSetter=function(a,e){\"align\"===e?m.alignValue=m.textAlign=a:m[e]=a;m.doTransform=!0};m.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};m.attr({text:l,x:Math.round(p),y:Math.round(t)}).css({position:\"absolute\"});\ng.styledMode||m.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});h.style.whiteSpace=\"nowrap\";m.css=m.htmlCss;m.add=function(a){const l=g.box.parentNode,w=[];let d;if(this.parentGroup=a){if(d=a.div,!d){for(;a;)w.push(a),a=a.parentGroup;w.reverse().forEach(function(a){function k(f,c){a[c]=f;\"translateX\"===c?b.left=f+\"px\":b.top=f+\"px\";a.doTransform=!0}const q=x(a.element,\"class\"),g=a.styles||{};d=a.div=a.div||z(\"div\",q?{className:q}:void 0,{position:\"absolute\",left:(a.translateX||\n0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,visibility:a.visibility},d||l);const b=d.style;H(a,{classSetter:function(b){return function(c){this.element.setAttribute(\"class\",c);b.className=c}}(d),css:function(f){m.css.call(a,f);[\"cursor\",\"pointerEvents\"].forEach(c=>{f[c]&&(b[c]=f[c])});return a},on:function(){w[0].div&&m.on.apply({element:w[0].div,onEvents:a.onEvents},arguments);return a},translateXSetter:k,translateYSetter:k});a.addedSetters||e(a);a.css(g)})}}else d=l;d.appendChild(h);\nm.added=!0;m.alignOnAdd&&m.htmlUpdateTransform();return m};return m}}return v});M(a,\"Core/Axis/AxisDefaults.js\",[],function(){var a;(function(a){a.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",range:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e %b\"},week:{main:\"%e %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,gridLineDashStyle:\"Solid\",\ngridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:\"justify\",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"}},maxPadding:.01,minorGridLineDashStyle:\"Solid\",minorTickLength:2,minorTickPosition:\"outside\",minorTicksPerMajor:5,minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,\nstartOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",rotation:0,useHTML:!1,x:0,y:0,style:{color:\"#666666\",fontSize:\"0.8em\"}},type:\"linear\",uniqueNames:!0,visible:!0,minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#333333\",lineWidth:1,gridLineColor:\"#e6e6e6\",gridLineWidth:void 0,tickColor:\"#333333\"};a.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,\ntickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){const {numberFormatter:a}=this.axis.chart;return a(this.total||0,-1)},style:{color:\"#000000\",fontSize:\"0.7em\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};a.defaultLeftAxisOptions={title:{rotation:270}};a.defaultRightAxisOptions={title:{rotation:90}};a.defaultBottomAxisOptions=\n{labels:{autoRotation:[-45]},margin:15,title:{rotation:0}};a.defaultTopAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}}})(a||(a={}));return a});M(a,\"Core/Foundation.js\",[a[\"Core/Utilities.js\"]],function(a){const {addEvent:x,isFunction:I,objectEach:L,removeEvent:C}=a;var z;(function(a){a.registerEventOptions=function(a,u){a.eventOptions=a.eventOptions||{};L(u.events,function(v,l){a.eventOptions[l]!==v&&(a.eventOptions[l]&&(C(a,l,a.eventOptions[l]),delete a.eventOptions[l]),I(v)&&\n(a.eventOptions[l]=v,x(a,l,v,{order:0})))})}})(z||(z={}));return z});M(a,\"Core/Axis/Tick.js\",[a[\"Core/Templating.js\"],a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {deg2rad:x}=y,{clamp:C,correctFloat:z,defined:H,destroyObjectProperties:B,extend:u,fireEvent:v,isNumber:l,merge:p,objectEach:t,pick:m}=I;class h{constructor(a,e,h,m,l){this.isNewLabel=this.isNew=!0;this.axis=a;this.pos=e;this.type=h||\"\";this.parameters=l||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=\nthis.parameters.options;v(this,\"init\");h||m||this.addLabel()}addLabel(){const g=this,e=g.axis;var h=e.options;const p=e.chart;var t=e.categories;const d=e.logarithmic,k=e.names,r=g.pos,q=m(g.options&&g.options.labels,h.labels);var G=e.tickPositions;const b=r===G[0],f=r===G[G.length-1],c=(!q.step||1===q.step)&&1===e.tickInterval;G=G.info;let n=g.label,P,D,K;t=this.parameters.category||(t?m(t[r],k[r],r):r);d&&l(t)&&(t=z(d.lin2log(t)));e.dateTime&&(G?(D=p.time.resolveDTLFormat(h.dateTimeLabelFormats[!h.grid&&\nG.higherRanks[r]||G.unitName]),P=D.main):l(t)&&(P=e.dateTime.getXDateFormat(t,h.dateTimeLabelFormats||{})));g.isFirst=b;g.isLast=f;const x={axis:e,chart:p,dateTimeLabelFormat:P,isFirst:b,isLast:f,pos:r,tick:g,tickPositionInfo:G,value:t};v(this,\"labelFormat\",x);const B=b=>q.formatter?q.formatter.call(b,b):q.format?(b.text=e.defaultLabelFormatter.call(b,b),a.format(q.format,b,p)):e.defaultLabelFormatter.call(b,b);h=B.call(x,x);const y=D&&D.list;g.shortenLabel=y?function(){for(K=0;Kq&&h-p*bd&&(D=Math.round((l-h)/Math.cos(q*x)));else if(l=h+(1-p)*b,h-p*bd&&(n=d-a.x+n*p,t=-1),n=Math.min(f,n),nn||e.autoRotation&&(r.styles||{}).width)D=n;D&&\n(this.shortenLabel?this.shortenLabel():(c.width=Math.floor(D)+\"px\",(g.style||{}).textOverflow||(c.textOverflow=\"ellipsis\"),r.css(c)))}moveLabel(a,e){const g=this;var h=g.label;const m=g.axis;let d=!1;h&&h.textStr===a?(g.movedLabel=h,d=!0,delete g.label):t(m.ticks,function(k){d||k.isNew||k===g||!k.label||k.label.textStr!==a||(g.movedLabel=k.label,d=!0,k.labelPos=g.movedLabel.xy,delete k.label)});d||!g.labelPos&&!h||(h=g.labelPos||h.xy,g.movedLabel=g.createLabel(h,a,e),g.movedLabel&&g.movedLabel.attr({opacity:0}))}render(a,\ne,h){var g=this.axis,l=g.horiz,d=this.pos,k=m(this.tickmarkOffset,g.tickmarkOffset);d=this.getPosition(l,d,k,e);k=d.x;const r=d.y;g=l&&k===g.pos+g.len||!l&&r===g.pos?-1:1;l=m(h,this.label&&this.label.newOpacity,1);h=m(h,1);this.isActive=!0;this.renderGridLine(e,h,g);this.renderMark(d,h,g);this.renderLabel(d,e,l,a);this.isNew=!1;v(this,\"afterRender\")}renderGridLine(a,e,h){const g=this.axis,l=g.options,d={},k=this.pos,r=this.type,q=m(this.tickmarkOffset,g.tickmarkOffset),p=g.chart.renderer;let b=this.gridLine,\nf=l.gridLineWidth,c=l.gridLineColor,n=l.gridLineDashStyle;\"minor\"===this.type&&(f=l.minorGridLineWidth,c=l.minorGridLineColor,n=l.minorGridLineDashStyle);b||(g.chart.styledMode||(d.stroke=c,d[\"stroke-width\"]=f||0,d.dashstyle=n),r||(d.zIndex=1),a&&(e=0),this.gridLine=b=p.path().attr(d).addClass(\"highcharts-\"+(r?r+\"-\":\"\")+\"grid-line\").add(g.gridGroup));if(b&&(h=g.getPlotLinePath({value:k+q,lineWidth:b.strokeWidth()*h,force:\"pass\",old:a,acrossPanes:!1})))b[a||this.isNew?\"attr\":\"animate\"]({d:h,opacity:e})}renderMark(a,\ne,h){const g=this.axis;var l=g.options;const d=g.chart.renderer,k=this.type,r=g.tickSize(k?k+\"Tick\":\"tick\"),q=a.x;a=a.y;const p=m(l[\"minor\"!==k?\"tickWidth\":\"minorTickWidth\"],!k&&g.isXAxis?1:0);l=l[\"minor\"!==k?\"tickColor\":\"minorTickColor\"];let b=this.mark;const f=!b;r&&(g.opposite&&(r[0]=-r[0]),b||(this.mark=b=d.path().addClass(\"highcharts-\"+(k?k+\"-\":\"\")+\"tick\").add(g.axisGroup),g.chart.styledMode||b.attr({stroke:l,\"stroke-width\":p})),b[f?\"attr\":\"animate\"]({d:this.getMarkPath(q,a,r[0],b.strokeWidth()*\nh,g.horiz,d),opacity:e}))}renderLabel(a,e,h,p){var g=this.axis;const d=g.horiz,k=g.options,r=this.label,q=k.labels,t=q.step;g=m(this.tickmarkOffset,g.tickmarkOffset);const b=a.x;a=a.y;let f=!0;r&&l(b)&&(r.xy=a=this.getLabelPosition(b,a,r,d,q,g,p,t),this.isFirst&&!this.isLast&&!k.showFirstLabel||this.isLast&&!this.isFirst&&!k.showLastLabel?f=!1:!d||q.step||q.rotation||e||0===h||this.handleOverflow(a),t&&p%t&&(f=!1),f&&l(a.y)?(a.opacity=h,r[this.isNewLabel?\"attr\":\"animate\"](a).show(!0),this.isNewLabel=\n!1):(r.hide(),this.isNewLabel=!0))}replaceMovedLabel(){const a=this.label,e=this.axis;a&&!this.isNew&&(a.animate({opacity:0},void 0,a.destroy),delete this.label);e.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel}}\"\";return h});M(a,\"Core/Axis/Axis.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Axis/AxisDefaults.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Defaults.js\"],a[\"Core/Foundation.js\"],a[\"Core/Globals.js\"],a[\"Core/Axis/Tick.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B){const {animObject:u}=\na,{defaultOptions:v}=L,{registerEventOptions:l}=C,{deg2rad:p}=z,{arrayMax:t,arrayMin:m,clamp:h,correctFloat:g,defined:e,destroyObjectProperties:w,erase:x,error:F,extend:d,fireEvent:k,getClosestDistance:r,insertItem:q,isArray:G,isNumber:b,isString:f,merge:c,normalizeTickInterval:n,objectEach:P,pick:D,relativeLength:K,removeEvent:X,splat:T,syncTimeout:Z}=B,V=(b,c)=>n(c,void 0,void 0,D(b.options.allowDecimals,.5>c||void 0!==b.tickAmount),!!b.tickAmount);class Y{constructor(b,c,f){this.zoomEnabled=this.width=\nthis.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=\nthis.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.index=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.bottom=this.alternateBands=void 0;this.init(b,c,f)}init(c,f,a=this.coll){const d=\"xAxis\"===a;this.chart=c;this.horiz=this.isZAxis||(c.inverted?!d:d);this.isXAxis=d;this.coll=a;k(this,\"init\",{userOptions:f});this.opposite=D(f.opposite,this.opposite);this.side=D(f.side,this.side,this.horiz?this.opposite?0:2:\nthis.opposite?1:3);this.setOptions(f);a=this.options;const A=a.labels,n=a.type;this.userOptions=f;this.minPixelPadding=0;this.reversed=D(a.reversed,this.reversed);this.visible=a.visible;this.zoomEnabled=a.zoomEnabled;this.hasNames=\"category\"===n||!0===a.categories;this.categories=a.categories||(this.hasNames?[]:void 0);this.names||(this.names=[],this.names.keys={});this.plotLinesAndBandsGroups={};this.positiveValuesOnly=!!this.logarithmic;this.isLinked=e(a.linkedTo);this.ticks={};this.labelEdge=[];\nthis.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=a.minRange||a.maxZoom;this.range=a.range;this.offset=a.offset||0;this.min=this.max=null;f=D(a.crosshair,T(c.options.tooltip.crosshairs)[d?0:1]);this.crosshair=!0===f?{}:f;-1===c.axes.indexOf(this)&&(d?c.axes.splice(c.xAxis.length,0,this):c.axes.push(this),q(this,c[this.coll]));c.orderItems(this.coll);this.series=this.series||[];c.inverted&&!this.isZAxis&&d&&\"undefined\"===typeof this.reversed&&\n(this.reversed=!0);this.labelRotation=b(A.rotation)?A.rotation:void 0;l(this,a);k(this,\"afterInit\")}setOptions(b){this.options=c(y.defaultXAxisOptions,\"yAxis\"===this.coll&&y.defaultYAxisOptions,[y.defaultTopAxisOptions,y.defaultRightAxisOptions,y.defaultBottomAxisOptions,y.defaultLeftAxisOptions][this.side],c(v[this.coll],b));k(this,\"afterSetOptions\",{userOptions:b})}defaultLabelFormatter(c){var f=this.axis;({numberFormatter:c}=this.chart);const a=b(this.value)?this.value:NaN,d=f.chart.time,k=this.dateTimeLabelFormat;\nvar n=v.lang;const A=n.numericSymbols;n=n.numericSymbolMagnitude||1E3;const e=f.logarithmic?Math.abs(a):f.tickInterval;let q=A&&A.length,g;if(f.categories)g=`${this.value}`;else if(k)g=d.dateFormat(k,a);else if(q&&1E3<=e)for(;q--&&\"undefined\"===typeof g;)f=Math.pow(n,q+1),e>=f&&0===10*a%f&&null!==A[q]&&0!==a&&(g=c(a/f,-1)+A[q]);\"undefined\"===typeof g&&(g=1E4<=Math.abs(a)?c(a,-1):c(a,-1,void 0,\"\"));return g}getSeriesExtremes(){const c=this,f=c.chart;let a;k(this,\"getSeriesExtremes\",null,function(){c.hasVisibleSeries=\n!1;c.dataMin=c.dataMax=c.threshold=null;c.softThreshold=!c.isXAxis;c.series.forEach(function(d){if(d.visible||!f.options.chart.ignoreHiddenSeries){var k=d.options;let f=k.threshold,n,A;c.hasVisibleSeries=!0;c.positiveValuesOnly&&0>=f&&(f=null);if(c.isXAxis)(k=d.xData)&&k.length&&(k=c.logarithmic?k.filter(b=>0f)&&(t?b=h(b,c,f):K=!0);return b}const a=this,\nd=a.chart,n=a.left,e=a.top,A=c.old,q=c.value,g=c.lineWidth,r=A&&d.oldChartHeight||d.chartHeight,m=A&&d.oldChartWidth||d.chartWidth,l=a.transB;let p=c.translatedValue,t=c.force,P,w,R,Q,K;c={value:q,lineWidth:g,old:A,force:t,acrossPanes:c.acrossPanes,translatedValue:p};k(this,\"getPlotLinePath\",c,function(c){p=D(p,a.translate(q,void 0,void 0,A));p=h(p,-1E5,1E5);P=R=Math.round(p+l);w=Q=Math.round(r-p-l);b(p)?a.horiz?(w=e,Q=r-a.bottom,P=R=f(P,n,n+a.width)):(P=n,R=m-a.right,w=Q=f(w,e,e+a.height)):(K=!0,\nt=!1);c.path=K&&!t?null:d.renderer.crispLine([[\"M\",P,w],[\"L\",R,Q]],g||1)});return c.path}getLinearTickPositions(b,c,f){const a=g(Math.floor(c/b)*b);f=g(Math.ceil(f/b)*b);const d=[];let k,n;g(a+b)===a&&(n=20);if(this.single)return[c];for(c=a;c<=f;){d.push(c);c=g(c+b,n);if(c===k)break;k=c}return d}getMinorTickInterval(){const b=this.options;return!0===b.minorTicks?D(b.minorTickInterval,\"auto\"):!1===b.minorTicks?null:b.minorTickInterval}getMinorTickPositions(){var b=this.options;const c=this.tickPositions,\nf=this.minorTickInterval;var a=this.pointRangePadding||0;const d=this.min-a;a=this.max+a;const k=a-d;let n=[];if(k&&k/f{var c;return(b.xIncrement?null===(c=b.xData)||void 0===c?void 0:c.slice(0,2):b.xData)||[]}))||0;this.minRange=Math.min(5*n,this.dataMax-this.dataMin)}a-f=this.minRange,k=this.minRange,a=(k-a+f)/\n2,d=[f-a,D(b.min,f-a)],n&&(d[2]=c?c.log2lin(this.dataMin):this.dataMin),f=t(d),a=[f+k,D(b.max,f+k)],n&&(a[2]=c?c.log2lin(this.dataMax):this.dataMax),a=m(a),a-fb-c),b=r([f]))}return b&&c?Math.min(b,c):b||c}nameToX(b){const c=G(this.options.categories),f=c?this.categories:this.names;let a=b.options.x,d;b.series.requireSorting=!1;e(a)||(a=this.options.uniqueNames&&f?c?f.indexOf(b.name):D(f.keys[b.name],-1):b.series.autoIncrement());-1===a?!c&&f&&(d=f.length):d=a;\"undefined\"!==typeof d?(this.names[d]=b.name,this.names.keys[b.name]=d):b.x&&(d=b.x);return d}updateNames(){const b=this,c=this.names;0=t?(R=t,l=0):this.dataMax<=t&&(P=t,m=0)),this.min=D(w,R,this.dataMin),this.max=D(K,P,this.dataMax);a&&(this.positiveValuesOnly&&!c&&0>=Math.min(this.min,D(this.dataMin,\nthis.min))&&F(10,1,f),this.min=g(a.log2lin(this.min),16),this.max=g(a.log2lin(this.max),16));this.range&&e(this.max)&&(this.userMin=this.min=w=Math.max(this.dataMin,this.minFromRange()),this.userMax=K=this.max,this.range=null);k(this,\"foundExtremes\");this.beforePadding&&this.beforePadding();this.adjustForMinRange();!b(this.userMin)&&b(d.softMin)&&d.softMinthis.max&&(this.max=K=d.softMax);!(A||this.axisPointRange||this.stacking&&\nthis.stacking.usePercentage||q)&&e(this.min)&&e(this.max)&&(f=this.max-this.min)&&(!e(w)&&l&&(this.min-=f*l),!e(K)&&m&&(this.max+=f*m));!b(this.userMin)&&b(d.floor)&&(this.min=Math.max(this.min,d.floor));!b(this.userMax)&&b(d.ceiling)&&(this.max=Math.min(this.max,d.ceiling));r&&e(this.dataMin)&&(t=t||0,!e(w)&&this.min=t?this.min=this.options.minRange?Math.min(t,this.max-this.minRange):t:!e(K)&&this.max>t&&this.dataMax<=t&&(this.max=this.options.minRange?Math.max(t,this.min+this.minRange):\nt));b(this.min)&&b(this.max)&&!this.chart.polar&&this.min>this.max&&(e(this.options.min)?this.max=this.min:e(this.options.max)&&(this.min=this.max));this.tickInterval=this.min===this.max||\"undefined\"===typeof this.min||\"undefined\"===typeof this.max?1:q&&this.linkedParent&&!p&&h===this.linkedParent.options.tickPixelInterval?p=this.linkedParent.tickInterval:D(p,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,A?1:(this.max-this.min)*h/Math.max(this.len,h));if(n&&!c){const b=\nthis.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach(function(c){c.forceCrop=c.forceCropping&&c.forceCropping();c.processData(b)});k(this,\"postProcessData\",{hasExtremesChanged:b})}this.setAxisTranslation();k(this,\"initialAxisTranslation\");this.pointRange&&!p&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));c=D(d.minTickInterval,this.dateTime&&!this.series.some(b=>b.noSharedTooltip)?this.closestPointRange:0);!p&&this.tickIntervalMath.max(2*this.len,200)))if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,c.units),this.min,this.max,c.startOfWeek,this.ordinal&&this.ordinal.positions,\nthis.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else for(d=c=this.tickInterval;d<=2*c;)if(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount)this.tickInterval=V(this,d*=1.1);else break;else q=[this.min,this.max],F(19,!1,this.chart);q.length>this.len&&(q=[q[0],q[q.length-1]],q[0]===q[1]&&(q.length=1));a&&(this.tickPositions=q,(h=a.apply(this,[this.min,this.max]))&&\n(q=h))}this.tickPositions=q;this.paddedTicks=q.slice(0);this.trimTicks(q,g,n);!this.isLinked&&b(this.min)&&b(this.max)&&(this.single&&2>q.length&&!this.categories&&!this.series.some(b=>b.is(\"heatmap\")&&\"between\"===b.options.pointPlacement)&&(this.min-=.5,this.max+=.5),f||h||this.adjustTickAmount());k(this,\"afterSetTickPositions\")}trimTicks(b,c,f){const a=b[0],d=b[b.length-1],n=!this.isOrdinal&&this.minPointOffset||0;k(this,\"trimTicks\");if(!this.isLinked){if(c&&-Infinity!==a)this.min=a;else for(;this.min-\nn>b[0];)b.shift();if(f)this.max=d;else for(;this.max+n{const {horiz:c,options:f}=b;return[c?f.left:f.top,f.width,f.height,f.pane].join()},\na=b(this);this.chart[this.coll].forEach(function(d){const {series:k}=d;k.length&&k.some(b=>b.visible)&&d!==c&&b(d)===a&&(n=!0,f.push(d))})}if(n&&d){f.forEach(f=>{f=f.getThresholdAlignment(c);b(f)&&k.push(f)});const a=1b+c,0)/k.length:void 0;f.forEach(b=>{b.thresholdAlignment=a})}return n}getThresholdAlignment(c){(!b(this.dataMin)||this!==c&&this.series.some(b=>b.isDirty||b.isDirtyData))&&this.getSeriesExtremes();if(b(this.threshold))return c=h((this.threshold-(this.dataMin||\n0))/((this.dataMax||0)-(this.dataMin||0)),0,1),this.options.reversed&&(c=1-c),c}getTickAmount(){const b=this.options,c=b.tickPixelInterval;let f=b.tickAmount;!e(b.tickInterval)&&!f&&this.lenf&&(this.finalTickAmt=f,f=5);this.tickAmount=f}adjustTickAmount(){const c=this,{finalTickAmt:f,max:a,min:d,options:k,tickPositions:n,tickAmount:q,thresholdAlignment:h}=c,r=n&&n.length;\nvar m=D(c.threshold,c.softThreshold?0:null);var l=c.tickInterval;let p;b(h)&&(p=.5>h?Math.ceil(h*(q-1)):Math.floor(h*(q-1)),k.reversed&&(p=q-1-p));if(c.hasData()&&b(d)&&b(a)){const h=()=>{c.transA*=(r-1)/(q-1);c.min=k.startOnTick?n[0]:Math.min(d,n[0]);c.max=k.endOnTick?n[n.length-1]:Math.max(a,n[n.length-1])};if(b(p)&&b(c.threshold)){for(;n[p]!==m||n.length!==q||n[0]>d||n[n.length-1]c.threshold?n.unshift(g(n[0]-l)):n.push(g(n[n.length-\n1]+l));if(l>8*c.tickInterval)break;l*=2}h()}else if(r=f&&0g&&(c=g)),e(d)&&(ng&&(n=g))),f.displayBtn=\n\"undefined\"!==typeof c||\"undefined\"!==typeof n,f.setExtremes(c,n,!1,void 0,{trigger:\"zoom\"});b.zoomed=!0});return b.zoomed}setAxisSize(){const b=this.chart;var c=this.options;const f=c.offsets||[0,0,0,0],a=this.horiz,d=this.width=Math.round(K(D(c.width,b.plotWidth-f[3]+f[1]),b.plotWidth)),n=this.height=Math.round(K(D(c.height,b.plotHeight-f[0]+f[2]),b.plotHeight)),k=this.top=Math.round(K(D(c.top,b.plotTop+f[0]),b.plotHeight,b.plotTop));c=this.left=Math.round(K(D(c.left,b.plotLeft+f[3]),b.plotWidth,\nb.plotLeft));this.bottom=b.chartHeight-n-k;this.right=b.chartWidth-d-c;this.len=Math.max(a?d:n,0);this.pos=a?c:k}getExtremes(){const b=this.logarithmic;return{min:b?g(b.lin2log(this.min)):this.min,max:b?g(b.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(b){var c=this.logarithmic;const f=c?c.lin2log(this.min):this.min;c=c?c.lin2log(this.max):this.max;null===b||-Infinity===b?b=f:Infinity===b?b=c:f>b?b=f:cc?b.align=\"right\":195c&&(b.align=\"left\")});return b.align}tickSize(b){const c=this.options,f=D(c[\"tick\"===b?\"tickWidth\":\"minorTickWidth\"],\"tick\"===b&&this.isXAxis&&!this.categories?1:0);let a=c[\"tick\"===b?\"tickLength\":\"minorTickLength\"],d;f&&a&&(\"inside\"===c[b+\"Position\"]&&(a=-a),d=[a,f]);b={tickSize:d};k(this,\"afterTickSize\",b);return b.tickSize}labelMetrics(){const b=\nthis.chart.renderer;var c=this.ticks;c=c[Object.keys(c)[0]]||{};return this.chart.renderer.fontMetrics(c.label||c.movedLabel||b.box)}unsquish(){const c=this.options.labels;var f=this.horiz;const a=this.tickInterval,d=this.len/(((this.categories?1:0)+this.max-this.min)/a),n=c.rotation,k=.75*this.labelMetrics().h,e=Math.max(this.max-this.min,0),q=function(b){let c=b/(d||1);c=1e&&Infinity!==b&&Infinity!==d&&e&&(c=Math.ceil(e/a));return g(c*a)};let h=a,r,l=Number.MAX_VALUE,m;if(f){if(c.staggerLines||\n(b(n)?m=[n]:d=c)f=q(Math.abs(k/Math.sin(p*c))),b=f+Math.abs(c/360),bd.step)return d.rotation?0:(this.staggerLines||\n1)*this.len/n;if(!a){c=d.style.width;if(void 0!==c)return parseInt(String(c),10);if(k)return k-f.spacing[3]}return.33*f.chartWidth}renderUnsquish(){const b=this.chart,c=b.renderer,a=this.tickPositions,d=this.ticks,n=this.options.labels,k=n.style,e=this.horiz,q=this.getSlotWidth();var g=Math.max(1,Math.round(q-2*n.padding));const h={},r=this.labelMetrics(),m=k.textOverflow;let l,p,D=0;f(n.rotation)||(h.rotation=n.rotation||0);a.forEach(function(b){b=d[b];b.movedLabel&&b.replaceMovedLabel();b&&b.label&&\nb.label.textPxLength>D&&(D=b.label.textPxLength)});this.maxLabelLength=D;if(this.autoRotation)D>g&&D>r.h?h.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(l=g,!m))for(p=\"clip\",g=a.length;!e&&g--;){var t=a[g];if(t=d[t].label)t.styles&&\"ellipsis\"===t.styles.textOverflow?t.css({textOverflow:\"clip\"}):t.textPxLength>q&&t.css({width:q+\"px\"}),t.getBBox().height>this.len/a.length-(r.h-r.f)&&(t.specificTextOverflow=\"ellipsis\")}h.rotation&&(l=D>.5*b.chartHeight?.33*b.chartHeight:D,m||(p=\"ellipsis\"));\nif(this.labelAlign=n.align||this.autoLabelAlign(this.labelRotation))h.align=this.labelAlign;a.forEach(function(b){const c=(b=d[b])&&b.label,f=k.width,a={};c&&(c.attr(h),b.shortenLabel?b.shortenLabel():l&&!f&&\"nowrap\"!==k.whiteSpace&&(lm.g(b).attr({zIndex:f}).addClass(`highcharts-${h.toLowerCase()}${c} `+(this.isRadial?`highcharts-radial-axis${c} `:\"\")+(v||\"\")).add(r);c.gridGroup=b(\"grid\",\"-grid\",d.gridZIndex);c.axisGroup=b(\"axis\",\"\",d.zIndex);c.labelGroup=b(\"axis-labels\",\"-labels\",\nw.zIndex)}p||c.isLinked?(g.forEach(function(b){c.generateTick(b)}),c.renderUnsquish(),c.reserveSpaceDefault=0===n||2===n||{1:\"left\",3:\"right\"}[n]===c.labelAlign,D(w.reserveSpace,K?!1:null,\"center\"===c.labelAlign?!0:null,c.reserveSpaceDefault)&&g.forEach(function(b){F=Math.max(q[b].getLabelSize(),F)}),c.staggerLines&&(F*=c.staggerLines),c.labelOffset=F*(c.opposite?-1:1)):P(q,function(b,c){b.destroy();delete q[c]});t&&t.text&&!1!==t.enabled&&(c.addTitle(ja),ja&&!K&&!1!==t.reserveSpace&&(c.titleOffset=\nu=c.axisTitle.getBBox()[a?\"height\":\"width\"],x=t.offset,E=e(x)?0:D(t.margin,a?5:10)));c.renderLine();c.offset=Q*D(d.offset,G[n]?G[n]+(d.margin||0):0);c.tickRotCorr=c.tickRotCorr||{x:0,y:0};p=0===n?-c.labelMetrics().h:2===n?c.tickRotCorr.y:0;E=Math.abs(F)+E;F&&(E=E-p+Q*(a?D(w.y,c.tickRotCorr.y+Q*w.distance):D(w.x,Q*w.distance)));c.axisTitleMargin=D(x,E);c.getMaxLabelDimensions&&(c.maxLabelDimensions=c.getMaxLabelDimensions(q,g));\"colorAxis\"!==h&&(w=this.tickSize(\"tick\"),G[n]=Math.max(G[n],(c.axisTitleMargin||\n0)+u+Q*c.offset,E,g&&g.length&&w?w[0]+Q*c.offset:0),G=!c.axisLine||d.offset?0:2*Math.floor(c.axisLine.strokeWidth()/2),R[l]=Math.max(R[l],G));k(this,\"afterGetOffset\")}getLinePath(b){const c=this.chart,f=this.opposite;var a=this.offset;const d=this.horiz,n=this.left+(f?this.width:0)+a;a=c.chartHeight-this.bottom-(f?this.height:0)+a;f&&(b*=-1);return c.renderer.crispLine([[\"M\",d?this.left:n,d?a:this.top],[\"L\",d?c.chartWidth-this.right:n,d?a:c.chartHeight-this.bottom]],b)}renderLine(){this.axisLine||\n(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))}getTitlePosition(b){var c=this.horiz,f=this.left;const a=this.top;var d=this.len;const n=this.options.title,e=c?f:a,q=this.opposite,g=this.offset,h=n.x,r=n.y,l=this.chart.renderer.fontMetrics(b);b=b?Math.max(b.getBBox(!1,0).height-l.h-1,0):0;d={low:e+(c?0:d),middle:e+d/2,high:e+(c?d:\n0)}[n.align];f=(c?a+this.height:f)+(c?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-b,b,l.f,-b][this.side];c={x:c?d+h:f+(q?this.width:0)+g+h,y:c?f+r-(q?this.height:0)+g:d+r};k(this,\"afterGetTitlePosition\",{titlePosition:c});return c}renderMinorTick(b,c){const f=this.minorTicks;f[b]||(f[b]=new H(this,b,\"minor\"));c&&f[b].isNew&&f[b].render(null,!0);f[b].render(null,!1,1)}renderTick(b,c,f){const a=this.ticks;if(!this.isLinked||b>=this.min&&b<=this.max||this.grid&&this.grid.isColumn)a[b]||(a[b]=new H(this,\nb)),f&&a[b].isNew&&a[b].render(c,!0,-1),a[b].render(c)}render(){const c=this,f=c.chart,a=c.logarithmic,d=c.options,n=c.isLinked,e=c.tickPositions,q=c.axisTitle,g=c.ticks,h=c.minorTicks,r=c.alternateBands,l=d.stackLabels,m=d.alternateGridColor;var p=d.crossing;const D=c.tickmarkOffset,t=c.axisLine,w=c.showAxis,K=u(f.renderer.globalAnimation);let Q,G;c.labelEdge.length=0;c.overlap=!1;[g,h,r].forEach(function(b){P(b,function(b){b.isActive=!1})});if(b(p)){const b=this.isXAxis?f.yAxis[0]:f.xAxis[0],a=\n[1,-1,-1,1][this.side];b&&(p=b.toPixels(p,!0),c.horiz&&(p=b.len-p),c.offset=a*p)}if(c.hasData()||n){const n=c.chart.hasRendered&&c.old&&b(c.old.min);c.minorTickInterval&&!c.categories&&c.getMinorTickPositions().forEach(function(b){c.renderMinorTick(b,n)});e.length&&(e.forEach(function(b,f){c.renderTick(b,f,n)}),D&&(0===c.min||c.single)&&(g[-1]||(g[-1]=new H(c,-1,null,!0)),g[-1].render(-1)));m&&e.forEach(function(b,d){G=\"undefined\"!==typeof e[d+1]?e[d+1]+D:c.max-D;0===d%2&&bp&&(!m||k<=t)&&\"undefined\"!==typeof k&&l.push(k),k>t&&(r=!0),k=d}else p=this.lin2log(p),t=this.lin2log(t),a=m?h.getMinorTickInterval():e.tickInterval,a=L(\"auto\"===a?null:a,this.minorAutoInterval,e.tickPixelInterval/(m?5:1)*(t-p)/((m?g/h.tickPositions.length:g)||1)),a=I(a),l=h.getLinearTickPositions(a,p,t).map(this.log2lin),m||(this.minorAutoInterval=a/5);m||(h.tickInterval=a);return l}lin2log(a){return Math.pow(10,\na)}log2lin(a){return Math.log(a)/Math.LN10}}y.Additions=v})(C||(C={}));return C});M(a,\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\",[a[\"Core/Utilities.js\"]],function(a){const {erase:x,extend:I,isNumber:L}=a;var C;(function(y){function H(a){return this.addPlotBandOrLine(a,\"plotBands\")}function B(a,e){const g=this.userOptions;let l=new h(this,a);this.visible&&(l=l.render());if(l){this._addedPlotLB||(this._addedPlotLB=!0,(g.plotLines||[]).concat(g.plotBands||[]).forEach(a=>{this.addPlotBandOrLine(a)}));\nif(e){const h=g[e]||[];h.push(a);g[e]=h}this.plotLinesAndBands.push(l)}return l}function u(a){return this.addPlotBandOrLine(a,\"plotLines\")}function v(a,e,h=this.options){const g=this.getPlotLinePath({value:e,force:!0,acrossPanes:h.acrossPanes}),l=[],d=this.horiz;e=!L(this.min)||!L(this.max)||athis.max&&e>this.max;a=this.getPlotLinePath({value:a,force:!0,acrossPanes:h.acrossPanes});h=1;let k;if(a&&g)for(e&&(k=a.toString()===g.toString(),h=0),e=0;e{const k=\"x\"===n;return[n,k?g:h,k?a:d].concat(e?[k?a*r.scaleX:d*r.scaleY,k?r.left-c+(b.plotX+f.plotLeft)*r.scaleX:r.top-c+(b.plotY+f.plotTop)*r.scaleY,0,k?g:h]:[k?a:d,k?b.plotX+f.plotLeft:b.plotY+f.plotTop,k?f.plotLeft:f.plotTop,k?f.plotLeft+f.plotWidth:f.plotTop+f.plotHeight])};let l=q(\"y\"),m=q(\"x\"),\np;q=!!b.negative;!f.polar&&f.hoverSeries&&f.hoverSeries.yAxis&&f.hoverSeries.yAxis.reversed&&(q=!q);const t=!this.followPointer&&F(b.ttBelow,!f.inverted===q),w=function(b,a,f,d,q,g,h){const l=e?\"y\"===b?c*r.scaleY:c*r.scaleX:c,m=(f-d)/2,p=dD-k?D:D-k);else if(J)n[b]=Math.max(g,q+k+f>a?q:q+k);else return!1},G=function(b,a,f,d,k){let e;ka-c?e=!1:n[b]=ka-d/2?a-d-2:k-f/2;return e},v=function(b){const c=\nl;l=m;m=c;p=b},J=function(){!1!==w.apply(0,l)?!1!==G.apply(0,m)||p||(v(!0),J()):p?n.x=n.y=0:(v(!0),J())};(f.inverted||1c.isDirectTouch||b.series.shouldShowTooltip(d,\ng)))k=this.getLabel(),f.style.width&&!p||k.css({width:(this.outside?this.getPlayingField():b.spacingBox).width+\"px\"}),k.attr({text:r&&r.join?r.join(\"\"):r}),k.addClass(this.getClassName(e),!0),p||k.attr({stroke:f.borderColor||e.color||l.color||\"#666666\"}),this.updatePosition({plotX:v,plotY:G,negative:e.negative,ttBelow:e.ttBelow,h:a[2]||0});else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show();this.isHidden=!1}h(this,\"refresh\")}}renderSplit(a,d){function b(b,c,a,d,\nn=!0){a?(c=S?0:z,b=l(b-d/2,J.left,J.right-d-(f.outside?W:0))):(c-=da,b=n?b-d-x:b+x,b=l(b,n?b:J.left,J.right));return{x:b,y:c}}const f=this,{chart:c,chart:{chartWidth:n,chartHeight:k,plotHeight:e,plotLeft:g,plotTop:h,pointer:q,scrollablePixelsY:r=0,scrollablePixelsX:p,scrollingContainer:{scrollLeft:t,scrollTop:v}={scrollLeft:0,scrollTop:0},styledMode:G},distance:x,options:E,options:{positioner:y}}=f,J=f.outside&&\"number\"!==typeof p?H.documentElement.getBoundingClientRect():{left:t,right:t+n,top:v,\nbottom:v+k},N=f.getLabel(),O=this.renderer||c.renderer,S=!(!c.xAxis[0]||!c.xAxis[0].opposite),{left:W,top:ha}=q.getChartPosition();let da=h+v,C=0,z=e-r;w(a)&&(a=[!1,a]);a=a.slice(0,d.length+1).reduce(function(c,a,n){if(!1!==a&&\"\"!==a){n=d[n-1]||{isHeader:!0,plotX:d[0].plotX,plotY:e,series:{}};const D=n.isHeader;var k=D?f:n.series,q;{var r=n;a=a.toString();var m=k.tt;const {isHeader:b,series:c}=r;m||(m={padding:E.padding,r:E.borderRadius},G||(m.fill=E.backgroundColor,m[\"stroke-width\"]=null!==(q=E.borderWidth)&&\nvoid 0!==q?q:1),m=O.label(\"\",0,0,E[b?\"headerShape\":\"shape\"],void 0,void 0,E.useHTML).addClass(f.getClassName(r,!0,b)).attr(m).add(N));m.isActive=!0;m.attr({text:a});G||m.css(E.style).attr({stroke:E.borderColor||r.color||c.color||\"#333333\"});q=m}q=k.tt=q;r=q.getBBox();k=r.width+q.strokeWidth();D&&(C=r.height,z+=C,S&&(da-=C));{const {isHeader:b,plotX:c=0,plotY:f=0,series:d}=n;if(b){a=g+c;var p=h+e/2}else{const {xAxis:b,yAxis:n}=d;a=b.pos+l(c,-x,b.len+x);d.shouldShowTooltip(0,n.pos-h+f,{ignoreX:!0})&&\n(p=n.pos+f)}a=l(a,J.left-x,J.right+x);p={anchorX:a,anchorY:p}}const {anchorX:t,anchorY:Q}=p;\"number\"===typeof Q?(p=r.height+1,r=y?y.call(f,k,p,n):b(t,Q,D,k),c.push({align:y?0:void 0,anchorX:t,anchorY:Q,boxWidth:k,point:n,rank:F(r.rank,D?1:0),size:p,target:r.y,tt:q,x:r.x})):q.isActive=!1}return c},[]);!y&&a.some(b=>{var {outside:c}=f;c=(c?W:0)+b.anchorX;return cc})&&(a=a.map(c=>{const {x:a,y:f}=b(c.anchorX,c.anchorY,c.point.isHeader,\nc.boxWidth,!1);return m(c,{target:f,x:a})}));f.cleanSplit();u(a,z);var ca=W,L=W;a.forEach(function(b){const {x:c,boxWidth:a,isHeader:d}=b;d||(f.outside&&W+cL&&(L=W+c))});a.forEach(function(b){const {x:c,anchorX:a,anchorY:d,pos:n,point:{isHeader:k}}=b,e={visibility:\"undefined\"===typeof n?\"hidden\":\"inherit\",x:c,y:(n||0)+da,anchorX:a,anchorY:d};if(f.outside&&cb[0]?\nMath.max(Math.abs(b[0]),c.width-b[0]):Math.max(Math.abs(b[0]),c.width);f.height=0>b[1]?Math.max(Math.abs(b[1]),c.height-Math.abs(b[1])):Math.max(Math.abs(b[1]),c.height);this.tracker?this.tracker.attr(f):(this.tracker=d.renderer.rect(f).addClass(\"highcharts-tracker\").add(d),a.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}else this.tracker&&(this.tracker=this.tracker.destroy())}styledModeFormat(a){return a.replace('style=\"font-size: 0.8em\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,\n'class=\"highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}\"')}tooltipFooterHeaderFormatter(a,d){const b=a.series,f=b.tooltipOptions;var c=b.xAxis;const n=c&&c.dateTime;c={isFooter:d,labelConfig:a};let k=f.xDateFormat,g=f[d?\"footerFormat\":\"headerFormat\"];h(this,\"headerFormatter\",c,function(c){n&&!k&&e(a.key)&&(k=n.getXDateFormat(a.key,f.dateTimeLabelFormats));n&&k&&(a.point&&a.point.tooltipDateKeys||[\"key\"]).forEach(function(b){g=g.replace(\"{point.\"+b+\"}\",\"{point.\"+\nb+\":\"+k+\"}\")});b.chart.styledMode&&(g=this.styledModeFormat(g));c.text=x(g,{point:a,series:b},this.chart)});return c.text}update(a){this.destroy();this.init(this.chart,E(!0,this.options,a))}updatePosition(a){const {chart:d,distance:b,options:f}=this;var c=d.pointer;const n=this.getLabel(),{left:k,top:e,scaleX:g,scaleY:h}=c.getChartPosition();c=(f.positioner||this.getPosition).call(this,n.width,n.height,a);let q=(a.plotX||0)+d.plotLeft;a=(a.plotY||0)+d.plotTop;let r;if(this.outside){f.positioner&&\n(c.x+=k-b,c.y+=e-b);r=(f.borderWidth||0)+2*b;this.renderer.setSize(n.width+r,n.height+r,!1);if(1!==g||1!==h)p(this.container,{transform:`scale(${g}, ${h})`}),q*=g,a*=h;q+=k-c.x;a+=e-c.y}this.move(Math.round(c.x),Math.round(c.y||0),q,a)}}(function(a){const d=[];a.compose=function(b){C.pushUnique(d,b)&&v(b,\"afterInit\",function(){const b=this.chart;b.options.tooltip&&(b.tooltip=new a(b,b.options.tooltip))})}})(r||(r={}));\"\";return r});M(a,\"Core/Series/Point.js\",[a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Animation/AnimationUtilities.js\"],\na[\"Core/Defaults.js\"],a[\"Core/Templating.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C){const {animObject:x}=y,{defaultOptions:H}=I,{format:B}=L,{addEvent:u,defined:v,erase:l,extend:p,fireEvent:t,getNestedProperty:m,isArray:h,isFunction:g,isNumber:e,isObject:w,merge:E,objectEach:F,pick:d,syncTimeout:k,removeEvent:r,uniqueKey:q}=C;class G{constructor(){this.category=void 0;this.destroyed=!1;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=\n!1;this.total=this.shapeArgs=this.series=void 0;this.visible=!0;this.x=void 0}animateBeforeDestroy(){const b=this,a={x:b.startXPos,opacity:0},c=b.getGraphicalProps();c.singular.forEach(function(c){b[c]=b[c].animate(\"dataLabel\"===c?{x:b[c].startXPos,y:b[c].startYPos,opacity:0}:a)});c.plural.forEach(function(c){b[c].forEach(function(c){c.element&&c.animate(p({x:b.startXPos},c.startYPos?{x:c.startXPos,y:c.startYPos}:{}))})})}applyOptions(b,a){const c=this.series,f=c.options.pointValKey||c.pointValKey;\nb=G.prototype.optionsToObject.call(this,b);p(this,b);this.options=this.options?p(this.options,b):b;b.group&&delete this.group;b.dataLabels&&delete this.dataLabels;f&&(this.y=G.prototype.getNestedProperty.call(this,f));this.formatPrefix=(this.isNull=this.isValid&&!this.isValid())?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof a&&c.xAxis&&c.xAxis.hasNames&&(this.x=c.xAxis.nameToX(this));\"undefined\"===typeof this.x&&c?this.x=\"undefined\"===typeof a?c.autoIncrement():\na:e(b.x)&&c.options.relativeXValue&&(this.x=c.autoIncrement(b.x));return this}destroy(){if(!this.destroyed){const a=this;var b=a.series;const c=b.chart;b=b.options.dataSorting;const d=c.hoverPoints,e=x(a.series.chart.renderer.globalAnimation),g=()=>{if(a.graphic||a.graphics||a.dataLabel||a.dataLabels)r(a),a.destroyElements();for(const b in a)delete a[b]};a.legendItem&&c.legend.destroyItem(a);d&&(a.setState(),l(d,a),d.length||(c.hoverPoints=null));if(a===c.hoverPoint)a.onMouseOut();b&&b.enabled?(this.animateBeforeDestroy(),\nk(g,e.duration)):g();c.pointCount--}this.destroyed=!0}destroyElements(b){const a=this;b=a.getGraphicalProps(b);b.singular.forEach(function(b){a[b]=a[b].destroy()});b.plural.forEach(function(b){a[b].forEach(function(b){b&&b.element&&b.destroy()});delete a[b]})}firePointEvent(b,a,c){const f=this,d=this.series.options;(d.point.events[b]||f.options&&f.options.events&&f.options.events[b])&&f.importEvents();\"click\"===b&&d.allowPointSelect&&(c=function(b){f.select&&f.select(null,b.ctrlKey||b.metaKey||b.shiftKey)});\nt(f,b,a,c)}getClassName(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")}getGraphicalProps(b){const a=this,c=[],d={singular:[],plural:[]};let k,e;b=b||{graphic:1,dataLabel:1};\nb.graphic&&c.push(\"graphic\");b.dataLabel&&c.push(\"dataLabel\",\"dataLabelPath\",\"dataLabelUpper\",\"connector\");for(e=c.length;e--;)k=c[e],a[k]&&d.singular.push(k);[\"graphic\",\"dataLabel\",\"connector\"].forEach(function(c){const f=c+\"s\";b[c]&&a[f]&&d.plural.push(f)});return d}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(b){if(b)return 0===\nb.indexOf(\"custom.\")?m(b,this.options):this[b]}getZone(){var b=this.series;const a=b.zones;b=b.zoneAxis||\"y\";let c,d=0;for(c=a[d];this[b]>=c.value;)c=a[++d];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=c&&c.color&&!this.options.color?c.color:this.nonZonedColor;return c}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}init(b,a,c){this.series=b;this.applyOptions(a,c);this.id=v(this.id)?this.id:q();this.resolveColor();\nb.chart.pointCount++;t(this,\"afterInit\");return this}isValid(){return null!==this.x&&e(this.y)}optionsToObject(b){var a=this.series;const c=a.options.keys,d=c||a.pointArrayMap||[\"y\"],k=d.length;let g={},q=0,r=0;if(e(b)||null===b)g[d[0]]=b;else if(h(b))for(!c&&b.length>k&&(a=typeof b[0],\"string\"===a?g.name=b[0]:\"number\"===a&&(g.x=b[0]),q++);ra());this.eventsToUnbind=[];y.chartCount||(F.unbindDocumentMouseUp&&(F.unbindDocumentMouseUp=F.unbindDocumentMouseUp()),F.unbindDocumentTouchEnd&&(F.unbindDocumentTouchEnd=F.unbindDocumentTouchEnd()));clearInterval(a.tooltipTimeout);g(a,function(d,e){a[e]=void 0})}getSelectionMarkerAttrs(a,k){const d={args:{chartX:a,chartY:k},attrs:{},shapeType:\"rect\"};t(this,\"getSelectionMarkerAttrs\",d,d=>{const {chart:e,mouseDownX:b=0,mouseDownY:f=0,zoomHor:c,zoomVert:n}=this;\nd=d.attrs;let g;d.x=e.plotLeft;d.y=e.plotTop;d.width=c?1:e.plotWidth;d.height=n?1:e.plotHeight;c&&(g=a-b,d.width=Math.abs(g),d.x=(0g+b&&(t=g+b),wl+f&&(w=l+f),this.hasDragged=Math.sqrt(Math.pow(c-t,2)+Math.pow(n-w,2)),10{d.result={x:a.attr?+a.attr(\"x\"):a.x,y:a.attr?+a.attr(\"y\"):a.y,width:a.attr?a.attr(\"width\"):a.width,height:a.attr?a.attr(\"height\"):a.height}});return d.result}drop(a){const d=this,e=this.chart,g=this.hasPinched;if(this.selectionMarker){const {x:k,\ny:b,width:f,height:c}=this.getSelectionBox(this.selectionMarker),n={originalEvent:a,xAxis:[],yAxis:[],x:k,y:b,width:f,height:c};let h=!!e.mapView;if(this.hasDragged||g)e.axes.forEach(function(e){if(e.zoomEnabled&&v(e.min)&&(g||d[{xAxis:\"zoomX\",yAxis:\"zoomY\"}[e.coll]])&&m(k)&&m(b)&&m(f)&&m(c)){var q=e.horiz;const d=\"touchend\"===a.type?e.minPixelPadding:0,g=e.toValue((q?k:b)+d);q=e.toValue((q?k+f:b+c)-d);n[e.coll].push({axis:e,min:Math.min(g,q),max:Math.max(g,q)});h=!0}}),h&&t(e,\"selection\",n,function(b){e.zoom(l(b,\ng?{animation:!1}:null))});m(e.index)&&(this.selectionMarker=this.selectionMarker.destroy());g&&this.scaleGroups()}e&&m(e.index)&&(u(e.container,{cursor:e._cursor}),e.cancelClick=10a.options.findNearestPointBy.indexOf(\"y\");a=a.searchPoint(e,b);if((b=h(a,!0)&&a.series)&&!(b=!h(d,!0))){{b=d.distX-a.distX;const f=d.dist-a.dist,c=(a.series.group&&\na.series.group.zIndex)-(d.series.group&&d.series.group.zIndex);b=0!==b&&k?b:0!==f?f:0!==c?c:d.series.index>a.series.index?-1:1}b=0b.stickyTracking&&(q.filter||c)(b));const r=g||!b?a:this.findNearestKDPoint(d,l,b);k=r&&r.series;r&&(l&&!k.noSharedTooltip?(d=e.filter(function(b){return q.filter?q.filter(b):c(b)&&!b.noSharedTooltip}),d.forEach(function(b){let c=p(b.points,function(b){return b.x===r.x&&!b.isNull});h(c)&&(b.boosted&&b.boost&&\n(c=b.boost.getPoint(c)),f.push(c))})):f.push(r));q={hoverPoint:r};t(this,\"afterGetHoverData\",q);return{hoverPoint:q.hoverPoint,hoverSeries:k,hoverPoints:f}}getPointFromEvent(a){a=a.target;let d;for(;a&&!d;)d=a.point,a=a.parentNode;return d}onTrackerMouseOut(a){a=a.relatedTarget;const d=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!d||!a||d.stickyTracking||this.inClass(a,\"highcharts-tooltip\")||this.inClass(a,\"highcharts-series-\"+d.index)&&this.inClass(a,\"highcharts-tracker\")))d.onMouseOut()}inClass(a,\nk){let d;for(;a;){if(d=B(a,\"class\")){if(-1!==d.indexOf(k))return!0;if(-1!==d.indexOf(\"highcharts-container\"))return!1}a=a.parentElement}}init(a,k){this.options=k;this.chart=a;this.runChartClick=!(!k.chart.events||!k.chart.events.click);this.pinchDown=[];this.lastValidTouch={};this.setDOMEvents();t(this,\"afterInit\")}normalize(a,k){var d=a.touches,e=d?d.length?d.item(0):w(d.changedTouches,a.changedTouches)[0]:a;k||(k=this.getChartPosition());d=e.pageX-k.left;e=e.pageY-k.top;d/=k.scaleX;e/=k.scaleY;\nreturn l(a,{chartX:Math.round(d),chartY:Math.round(e)})}onContainerClick(a){const d=this.chart,e=d.hoverPoint;a=this.normalize(a);const g=d.plotLeft,h=d.plotTop;d.cancelClick||(e&&this.inClass(a.target,\"highcharts-tracker\")?(t(e.series,\"click\",l(a,{point:e})),d.hoverPoint&&e.firePointEvent(\"click\",a)):(l(a,this.getCoordinates(a)),d.isInsidePlot(a.chartX-g,a.chartY-h,{visiblePlotOnly:!0})&&t(d,\"click\",a)))}onContainerMouseDown(a){const d=1===((a.buttons||a.button)&1);a=this.normalize(a);if(y.isFirefox&&\n0!==a.button)this.onContainerMouseMove(a);if(\"undefined\"===typeof a.button||d)this.zoomOption(a),d&&a.preventDefault&&a.preventDefault(),this.dragStart(a)}onContainerMouseLeave(a){const d=C[w(F.hoverChartIndex,-1)];a=this.normalize(a);d&&a.relatedTarget&&!this.inClass(a.relatedTarget,\"highcharts-tooltip\")&&(d.pointer.reset(),d.pointer.chartPosition=void 0)}onContainerMouseEnter(a){delete this.chartPosition}onContainerMouseMove(a){const d=this.chart,e=d.tooltip;a=this.normalize(a);this.setHoverChartIndex();\n(\"mousedown\"===d.mouseIsDown||this.touchSelect(a))&&this.drag(a);d.openMenu||!this.inClass(a.target,\"highcharts-tracker\")&&!d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0})||e&&e.shouldStickOnContact(a)||(this.inClass(a.target,\"highcharts-no-tooltip\")?this.reset(!1,0):this.runPointActions(a))}onDocumentTouchEnd(a){const d=C[w(F.hoverChartIndex,-1)];d&&d.pointer.drop(a)}onContainerTouchMove(a){if(this.touchSelect(a))this.onContainerMouseMove(a);else this.touch(a)}onContainerTouchStart(a){if(this.touchSelect(a))this.onContainerMouseDown(a);\nelse this.zoomOption(a),this.touch(a,!0)}onDocumentMouseMove(a){const d=this.chart,e=d.tooltip,g=this.chartPosition;a=this.normalize(a,g);!g||d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0})||e&&e.shouldStickOnContact(a)||this.inClass(a.target,\"highcharts-tracker\")||this.reset()}onDocumentMouseUp(a){const d=C[w(F.hoverChartIndex,-1)];d&&d.pointer.drop(a)}pinch(a){const d=this,e=d.chart,g=d.pinchDown,h=a.touches||[],b=h.length,f=d.lastValidTouch,c=d.hasZoom,n={},m=1===b&&\n(d.inClass(a.target,\"highcharts-tracker\")&&e.runTrackerClick||d.runChartClick),p={};var v=d.chart.tooltip;v=1===b&&w(v&&v.options.followTouchMove,!0);let u=d.selectionMarker;1{u||(d.selectionMarker=u=l({destroy:z,touch:!0},e.plotBox));d.pinchTranslate(g,h,n,u,p,f);d.hasPinched=c;d.scaleGroups(n,p)}),d.res&&(d.res=!1,this.reset(!1,\n0)))}pinchTranslate(a,e,g,h,l,b){this.zoomHor&&this.pinchTranslateDirection(!0,a,e,g,h,l,b);this.zoomVert&&this.pinchTranslateDirection(!1,a,e,g,h,l,b)}pinchTranslateDirection(a,e,g,h,l,b,f,c){const d=this.chart,k=a?\"x\":\"y\",q=a?\"X\":\"Y\",m=\"chart\"+q,r=a?\"width\":\"height\",p=d[\"plot\"+(a?\"Left\":\"Top\")],t=d.inverted,w=d.bounds[a?\"h\":\"v\"],v=1===e.length,u=e[0][m],x=!v&&e[1][m];e=function(){\"number\"===typeof N&&20w.max&&(g=w.max-G,O=!0);O?(J-=.8*(J-f[k][0]),\"number\"===typeof N&&(N-=.8*(N-f[k][1])),e()):f[k]=[J,N];t||(b[k]=E-p,b[r]=G);b=t?1/F:F;l[r]=G;l[k]=g;h[t?a?\"scaleY\":\"scaleX\":\"scale\"+q]=F;h[\"translate\"+q]=b*p+(J-b*u)}reset(a,e){const d=this.chart,k=d.hoverSeries,g=d.hoverPoint,b=d.hoverPoints,f=d.tooltip,c=f&&f.shared?b:g;a&&c&&E(c).forEach(function(b){b.series.isCartesian&&\"undefined\"===typeof b.plotX&&(a=!1)});if(a)f&&c&&\nE(c).length&&(f.refresh(c),f.shared&&b?b.forEach(function(b){b.setState(b.state,!0);b.series.isCartesian&&(b.series.xAxis.crosshair&&b.series.xAxis.drawCrosshair(null,b),b.series.yAxis.crosshair&&b.series.yAxis.drawCrosshair(null,b))}):g&&(g.setState(g.state,!0),d.axes.forEach(function(b){b.crosshair&&g.series[b.coll]===b&&b.drawCrosshair(null,g)})));else{if(g)g.onMouseOut();b&&b.forEach(function(b){b.setState()});if(k)k.onMouseOut();f&&f.hide(e);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());\nd.axes.forEach(function(b){b.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}}runPointActions(a,e,g){const d=this.chart,k=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,b=k?k.shared:!1;let f=e||d.hoverPoint,c=f&&f.series||d.hoverSeries;e=this.getHoverData(f,c,d.series,(!a||\"touchmove\"!==a.type)&&(!!e||c&&c.directTouch&&this.isDirectTouch),b,a);f=e.hoverPoint;c=e.hoverSeries;const n=e.hoverPoints;e=c&&c.tooltipOptions.followPointer&&!c.tooltipOptions.split;const h=b&&c&&!c.noSharedTooltip;\nif(f&&(g||f!==d.hoverPoint||k&&k.isHidden)){(d.hoverPoints||[]).forEach(function(b){-1===n.indexOf(b)&&b.setState()});if(d.hoverSeries!==c)c.onMouseOver();this.applyInactiveState(n);(n||[]).forEach(function(b){b.setState(\"hover\")});d.hoverPoint&&d.hoverPoint.firePointEvent(\"mouseOut\");if(!f.series)return;d.hoverPoints=n;d.hoverPoint=f;f.firePointEvent(\"mouseOver\",void 0,()=>{k&&f&&k.refresh(h?n:f,a)})}else e&&k&&!k.isHidden&&(g=k.getAnchor([{}],a),d.isInsidePlot(g[0],g[1],{visiblePlotOnly:!0})&&k.updatePosition({plotX:g[0],\nplotY:g[1]}));this.unDocMouseMove||(this.unDocMouseMove=H(d.container.ownerDocument,\"mousemove\",function(b){const a=C[F.hoverChartIndex];if(a)a.pointer.onDocumentMouseMove(b)}),this.eventsToUnbind.push(this.unDocMouseMove));d.axes.forEach(function(b){const c=w((b.crosshair||{}).snap,!0);let f;c&&((f=d.hoverPoint)&&f.series[b.coll]===b||(f=p(n,a=>a.series&&a.series[b.coll]===b)));f||!c?b.drawCrosshair(a,f):b.hideCrosshair()})}scaleGroups(a,e){const d=this.chart;d.series.forEach(function(k){const g=\na||k.getPlotBox();k.group&&(k.xAxis&&k.xAxis.zoomEnabled||d.mapView)&&(k.group.attr(g),k.markerGroup&&(k.markerGroup.attr(g),k.markerGroup.clip(e?d.clipRect:null)),k.dataLabelsGroup&&k.dataLabelsGroup.attr(g))});d.clipRect.attr(e||d.clipBox)}setDOMEvents(){const a=this.chart.container,e=a.ownerDocument;a.onmousedown=this.onContainerMouseDown.bind(this);a.onmousemove=this.onContainerMouseMove.bind(this);a.onclick=this.onContainerClick.bind(this);this.eventsToUnbind.push(H(a,\"mouseenter\",this.onContainerMouseEnter.bind(this)));\nthis.eventsToUnbind.push(H(a,\"mouseleave\",this.onContainerMouseLeave.bind(this)));F.unbindDocumentMouseUp||(F.unbindDocumentMouseUp=H(e,\"mouseup\",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&\"BODY\"!==g.tagName;)this.eventsToUnbind.push(H(g,\"scroll\",()=>{delete this.chartPosition})),g=g.parentElement;y.hasTouch&&(this.eventsToUnbind.push(H(a,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(H(a,\"touchmove\",this.onContainerTouchMove.bind(this),\n{passive:!1})),F.unbindDocumentTouchEnd||(F.unbindDocumentTouchEnd=H(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})))}setHoverChartIndex(){const a=this.chart,e=y.charts[w(F.hoverChartIndex,-1)];if(e&&e!==a)e.pointer.onContainerMouseLeave({relatedTarget:a.container});e&&e.mouseIsDown||(F.hoverChartIndex=a.index)}touch(a,e){const d=this.chart;let g,k;this.setHoverChartIndex();1===a.touches.length?(a=this.normalize(a),(k=d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0}))&&\n!d.openMenu?(e&&this.runPointActions(a),\"touchmove\"===a.type&&(e=this.pinchDown,g=e[0]?4<=Math.sqrt(Math.pow(e[0].chartX-a.chartX,2)+Math.pow(e[0].chartY-a.chartY,2)):!1),w(g,!0)&&this.pinch(a)):e&&this.reset()):2===a.touches.length&&this.pinch(a)}touchSelect(a){return!(!this.chart.zooming.singleTouch||!a.touches||1!==a.touches.length)}zoomOption(a){const d=this.chart,e=d.inverted;var g=d.zooming.type||\"\";/touch/.test(a.type)&&(g=w(d.zooming.pinchType,g));this.zoomX=a=/x/.test(g);this.zoomY=g=/y/.test(g);\nthis.zoomHor=a&&!e||g&&e;this.zoomVert=g&&!e||a&&e;this.hasZoom=a||g}}(function(a){const d=[],e=[];a.compose=function(d){I.pushUnique(e,d)&&H(d,\"beforeRender\",function(){this.pointer=new a(this,this.options)})};a.dissolve=function(){for(let a=0,e=d.length;a{this.proximate&&(this.proximatePositions(),\nthis.positionItems())}))}setOptions(b){const a=d(b.padding,8);this.options=b;this.chart.styledMode||(this.itemStyle=b.itemStyle,this.itemHiddenStyle=F(this.itemStyle,b.itemHiddenStyle));this.itemMarginTop=b.itemMarginTop;this.itemMarginBottom=b.itemMarginBottom;this.padding=a;this.initialItemY=a-5;this.symbolWidth=d(b.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===b.layout&&!this.chart.inverted;this.baseline=void 0}update(b,a){const c=this.chart;this.setOptions(F(!0,this.options,b));this.destroy();\nc.isDirtyLegend=c.isDirtyBox=!0;d(a,!0)&&c.redraw();w(this,\"afterUpdate\")}colorizeItem(b,a){const {group:c,label:f,line:d,symbol:e}=b.legendItem||{};if(c)c[a?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){const {itemHiddenStyle:c}=this,g=c.color,k=a?b.color||g:g,n=b.options&&b.options.marker;let h={fill:k};null===f||void 0===f?void 0:f.css(F(a?this.itemStyle:c));null===d||void 0===d?void 0:d.attr({stroke:k});e&&(n&&e.isMarker&&(h=b.pointAttribs(),a||(h.stroke=\nh.fill=g)),e.attr(h))}w(this,\"afterColorizeItem\",{item:b,visible:a})}positionItems(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()}positionItem(b){const {group:a,x:c=0,y:d=0}=b.legendItem||{};var e=this.options,g=e.symbolPadding;const k=!e.rtl;e=b.checkbox;a&&a.element&&(g={translateX:k?c:this.legendWidth-c-2*g-4,translateY:d},a[h(a.translateY)?\"animate\":\"attr\"](g,void 0,()=>{w(this,\"afterPositionItem\",{item:b})}));e&&(e.x=c,e.y=d)}destroyItem(b){const a=\nb.checkbox,c=b.legendItem||{};for(const b of[\"group\",\"label\",\"line\",\"symbol\"])c[b]&&(c[b]=c[b].destroy());a&&g(a);b.legendItem=void 0}destroy(){for(const b of this.getAllItems())this.destroyItem(b);for(const b of\"clipRect up down pager nav box title group\".split(\" \"))this[b]&&(this[b]=this[b].destroy());this.display=null}positionCheckboxes(){const b=this.group&&this.group.alignAttr,a=this.clipHeight||this.legendHeight,c=this.titleHeight;let d;b&&(d=b.translateY,this.allItems.forEach(function(f){const e=\nf.checkbox;let g;e&&(g=d+c+e.y+(this.scrollOffset||0)+3,m(e,{left:b.translateX+f.checkboxOffset+e.x-20+\"px\",top:g+\"px\",display:this.proximate||g>d-6&&g1.5*e?c.height:e))}layoutItem(b){var a=this.options;const c=this.padding,e=\"horizontal\"===a.layout,\ng=b.itemHeight,k=this.itemMarginBottom,h=this.itemMarginTop,l=e?d(a.itemDistance,20):0,m=this.maxLegendWidth;a=a.alignColumns&&this.totalItemWidth>m?this.maxItemWidth:b.itemWidth;const q=b.legendItem||{};e&&this.itemX-c+a>m&&(this.itemX=c,this.lastLineHeight&&(this.itemY+=h+this.lastLineHeight+k),this.lastLineHeight=0);this.lastItemY=h+this.itemY+k;this.lastLineHeight=Math.max(g,this.lastLineHeight);q.x=this.itemX;q.y=this.itemY;e?this.itemX+=a:(this.itemY+=h+g+k,this.lastLineHeight=g);this.offsetWidth=\nthis.widthOption||Math.max((e?this.itemX-c-(b.checkbox?0:l):a)+c,this.offsetWidth)}getAllItems(){let b=[];this.chart.series.forEach(function(a){const c=a&&a.options;a&&d(c.showInLegend,h(c.linkedTo)?!1:void 0,!0)&&(b=b.concat((a.legendItem||{}).labels||(\"point\"===c.legendType?a.data:a)))});w(this,\"afterGetAllItems\",{allItems:b});return b}getAlignment(){const b=this.options;return this.proximate?b.align.charAt(0)+\"tv\":b.floating?\"\":b.align.charAt(0)+b.verticalAlign.charAt(0)+b.layout.charAt(0)}adjustMargins(b,\na){const c=this.chart,f=this.options,e=this.getAlignment();e&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(g,k){g.test(e)&&!h(b[k])&&(c[v[k]]=Math.max(c[v[k]],c.legend[(k+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][k]*f[k%2?\"x\":\"y\"]+d(f.margin,12)+a[k]+(c.titleOffset[k]||0)))})}proximatePositions(){const b=this.chart,a=[],c=\"left\"===this.options.align;this.allItems.forEach(function(d){var f;var g=c;let k;d.yAxis&&(d.xAxis.options.reversed&&(g=!g),d.points&&(f=\ne(g?d.points:d.points.slice(0).reverse(),function(b){return E(b.plotY)})),g=this.itemMarginTop+d.legendItem.label.getBBox().height+this.itemMarginBottom,k=d.yAxis.top-b.plotTop,d.visible?(f=f?f.plotY:d.yAxis.height,f+=k-.3*g):f=k+d.yAxis.height,a.push({target:f,size:g,item:d}))},this);let d;for(const c of l(a,b.plotHeight))d=c.item.legendItem||{},E(c.pos)&&(d.y=b.plotTop-b.spacing[0]+c.pos)}render(){const b=this.chart,a=b.renderer,c=this.options,d=this.padding;var e=this.getAllItems();let g,h=this.group,\nl=this.box;this.itemX=d;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=k(c.width,b.spacingBox.width-d);var m=b.spacingBox.width-2*d-c.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(m/=2);this.maxLegendWidth=this.widthOption||m;h||(this.group=h=a.g(\"legend\").addClass(c.className||\"\").attr({zIndex:7}).add(),this.contentGroup=a.g().attr({zIndex:1}).add(h),this.scrollGroup=a.g().add(this.contentGroup));this.renderTitle();r(e,(b,a)=>(b.options&&b.options.legendIndex||\n0)-(a.options&&a.options.legendIndex||0));c.reversed&&e.reverse();this.allItems=e;this.display=m=!!e.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;e.forEach(this.renderItem,this);e.forEach(this.layoutItem,this);e=(this.widthOption||this.offsetWidth)+d;g=this.lastItemY+this.lastLineHeight+this.titleHeight;g=this.handleOverflow(g);g+=d;l||(this.box=l=a.rect().addClass(\"highcharts-legend-box\").attr({r:c.borderRadius}).add(h));b.styledMode||l.attr({stroke:c.borderColor,\n\"stroke-width\":c.borderWidth||0,fill:c.backgroundColor||\"none\"}).shadow(c.shadow);if(0k&&!1!==q.enabled?(this.clipHeight=x=Math.max(k-20-this.titleHeight-l,0),this.currentPage=d(this.currentPage,1),this.fullHeight=b,w.forEach((b,a)=>{N=b.legendItem||{};b=N.y||0;const c=Math.round(N.label.getBBox().height);let d=t.length;if(!d||b-t[d-1]>x&&(J||b)!==t[d-1])t.push(J||b),d++;N.pageIx=d-1;J&&((w[a-1].legendItem||{}).pageIx=d-1);a===w.length-1&&b+c-t[d-1]>x&&b>t[d-1]&&(t.push(b),N.pageIx=d);b!==J&&(J=b)}),E||(E=a.clipRect=e.clipRect(0,l-2,9999,0),a.contentGroup.clip(E)),\nv(x),O||(this.nav=O=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol(\"triangle\",0,0,p,p).add(O),u(\"upTracker\").on(\"click\",function(){a.scroll(-1,r)}),this.pager=e.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),!c.styledMode&&q.style&&this.pager.css(q.style),this.pager.add(O),this.down=e.symbol(\"triangle-down\",0,0,p,p).add(O),u(\"downTracker\").on(\"click\",function(){a.scroll(1,r)})),a.scroll(0),b=k):O&&(v(),this.nav=O.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);\nreturn b}scroll(b,a){const c=this.chart,f=this.pages,e=f.length,g=this.clipHeight,k=this.options.navigation,h=this.pager,l=this.padding;let m=this.currentPage+b;m>e&&(m=e);0{w(this,\"afterScroll\",{currentPage:m})},b.duration))}setItemEvents(b,a,c){const d=this,f=b.legendItem||{},e=d.chart.renderer.boxWrapper,g=b instanceof L,k=\"highcharts-legend-\"+(g?\"point\":\"series\")+\"-active\",h=d.chart.styledMode;c=c?[a,f.symbol]:[f.group];const l=a=>{d.allItems.forEach(c=>{b!==c&&[c].concat(c.linkedSeries||[]).forEach(b=>{b.setState(a,!g)})})};for(const f of c)if(f)f.on(\"mouseover\",function(){b.visible&&l(\"inactive\");b.setState(\"hover\");\nb.visible&&e.addClass(k);h||a.css(d.options.itemHoverStyle)}).on(\"mouseout\",function(){d.chart.styledMode||a.css(F(b.visible?d.itemStyle:d.itemHiddenStyle));l(\"\");e.removeClass(k);b.setState()}).on(\"click\",function(a){const c=function(){b.setVisible&&b.setVisible();l(b.visible?\"inactive\":\"\")};e.removeClass(k);a={browserEvent:a};b.firePointEvent?b.firePointEvent(\"legendItemClick\",a,c):w(b,\"legendItemClick\",a,c)})}createCheckboxForItem(b){b.checkbox=t(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",\nchecked:b.selected,defaultChecked:b.selected},this.options.itemCheckboxStyle,this.chart.container);p(b.checkbox,\"click\",function(a){w(b.series||b,\"checkboxClick\",{checked:a.target.checked,item:b},function(){b.select()})})}}(function(b){const a=[];b.compose=function(c){z.pushUnique(a,c)&&p(c,\"beforeMargins\",function(){this.legend=new b(this,this.options.legend)})}})(G||(G={}));\"\";return G});M(a,\"Core/Legend/LegendSymbol.js\",[a[\"Core/Utilities.js\"]],function(a){const {extend:x,merge:I,pick:L}=a;var C;\n(function(a){a.lineMarker=function(a,B){B=this.legendItem=this.legendItem||{};var u=this.options;const v=a.symbolWidth,l=a.symbolHeight,p=l/2,t=this.chart.renderer,m=B.group;a=a.baseline-Math.round(.3*a.fontMetrics.b);let h={},g=u.marker,e=0;this.chart.styledMode||(h={\"stroke-width\":Math.min(u.lineWidth||0,24)},u.dashStyle?h.dashstyle=u.dashStyle:\"square\"!==u.linecap&&(h[\"stroke-linecap\"]=\"round\"));B.line=t.path().addClass(\"highcharts-graph\").attr(h).add(m);h[\"stroke-linecap\"]&&(e=Math.min(B.line.strokeWidth(),\nv)/2);v&&B.line.attr({d:[[\"M\",e,a],[\"L\",v-e,a]]});g&&!1!==g.enabled&&v&&(u=Math.min(L(g.radius,p),p),0===this.symbol.indexOf(\"url\")&&(g=I(g,{width:l,height:l}),u=0),B.symbol=B=t.symbol(this.symbol,v/2-u,a-u,2*u,2*u,x({context:\"legend\"},g)).addClass(\"highcharts-point\").add(m),B.isMarker=!0)};a.rectangle=function(a,x){x=x.legendItem||{};const u=a.symbolHeight,v=a.options.squareSymbol;x.symbol=this.chart.renderer.rect(v?(a.symbolWidth-u)/2:0,a.baseline-u+1,v?u:a.symbolWidth,u,L(a.options.symbolRadius,\nu/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(x.group)}})(C||(C={}));return C});M(a,\"Core/Series/SeriesDefaults.js\",[],function(){return{lineWidth:1,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},\ndataLabels:{animation:{},align:\"center\",borderWidth:0,defer:!0,formatter:function(){const {numberFormatter:a}=this.series.chart;return\"number\"!==typeof this.y?\"\":a(this.y,-1)},padding:5,style:{fontSize:\"0.7em\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},\ninactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"}});M(a,\"Core/Series/SeriesRegistry.js\",[a[\"Core/Globals.js\"],a[\"Core/Defaults.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L){const {defaultOptions:x}=y,{extendClass:z,merge:H}=L;var B;(function(u){function v(a,p){const l=x.plotOptions||{},m=p.defaultOptions,h=p.prototype;h.type=a;h.pointClass||(h.pointClass=I);m&&(l[a]=m);u.seriesTypes[a]=p}u.seriesTypes=a.seriesTypes;\nu.registerSeriesType=v;u.seriesType=function(a,p,t,m,h){const g=x.plotOptions||{};p=p||\"\";g[a]=H(g[p],t);v(a,z(u.seriesTypes[p]||function(){},m));u.seriesTypes[a].prototype.type=a;h&&(u.seriesTypes[a].prototype.pointClass=z(I,h));return u.seriesTypes[a]}})(B||(B={}));return B});M(a,\"Core/Series/Series.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Defaults.js\"],a[\"Core/Foundation.js\"],a[\"Core/Globals.js\"],a[\"Core/Legend/LegendSymbol.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Series/SeriesDefaults.js\"],\na[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B,u,v){const {animObject:l,setAnimation:p}=a,{defaultOptions:t}=y,{registerEventOptions:m}=I,{hasTouch:h,svg:g,win:e}=L,{seriesTypes:w}=B,{arrayMax:x,arrayMin:F,clamp:d,correctFloat:k,defined:r,diffObjects:q,erase:G,error:b,extend:f,find:c,fireEvent:n,getClosestDistance:P,getNestedProperty:D,insertItem:K,isArray:X,isNumber:T,isString:Z,merge:V,objectEach:Y,pick:A,removeEvent:M,splat:ia,\nsyncTimeout:ba}=v;class aa{constructor(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}init(b,a){n(this,\"init\",{options:a});const c=this,d=b.series;this.eventsToUnbind=[];c.chart=b;c.options=c.setOptions(a);a=c.options;c.linkedSeries=[];c.bindAxes();f(c,{name:a.name,state:\"\",visible:!1!==a.visible,selected:!0===\na.selected});m(this,a);const e=a.events;if(e&&e.click||a.point&&a.point.events&&a.point.events.click||a.allowPointSelect)b.runTrackerClick=!0;c.getColor();c.getSymbol();c.parallelArrays.forEach(function(b){c[b+\"Data\"]||(c[b+\"Data\"]=[])});c.isCartesian&&(b.hasCartesianSeries=!0);let g;d.length&&(g=d[d.length-1]);c._i=A(g&&g._i,-1)+1;c.opacity=c.options.opacity;b.orderItems(\"series\",K(this,d));a.dataSorting&&a.dataSorting.enabled?c.setDataSortingOptions():c.points||c.data||c.setData(a.data,!1);n(this,\n\"afterInit\")}is(b){return w[b]&&this instanceof w[b]}bindAxes(){const a=this,c=a.options,d=a.chart;let f;n(this,\"bindAxes\",null,function(){(a.axisTypes||[]).forEach(function(e){d[e].forEach(function(b){f=b.options;if(A(c[e],0)===b.index||\"undefined\"!==typeof c[e]&&c[e]===f.id)K(a,b.series),a[e]=b,b.isDirty=!0});a[e]||a.optionalAxis===e||b(18,!0,d)})});n(this,\"afterBindAxes\")}updateParallelArrays(b,a,c){const d=b.series,f=T(a)?function(c){const f=\"y\"===c&&d.toYData?d.toYData(b):b[c];d[c+\"Data\"][a]=\nf}:function(b){Array.prototype[a].apply(d[b+\"Data\"],c)};d.parallelArrays.forEach(f)}hasData(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0!a.touched&&a.index===b.index,g&&g.matchByName?k=a=>!a.touched&&a.name===b.name:\nthis.options.relativeXValue&&(k=a=>!a.touched&&a.options.x===b.x),k=c(e,k),!k)return;k&&(n=k&&k.index,\"undefined\"!==typeof n&&(h=!0));\"undefined\"===typeof n&&T(f)&&(n=this.xData.indexOf(f,a));-1!==n&&\"undefined\"!==typeof n&&this.cropped&&(n=n>=this.cropStart?n-this.cropStart:n);!h&&T(n)&&e[n]&&e[n].touched&&(n=void 0);return n}updateData(b,a){const c=this.options,d=c.dataSorting,f=this.points,e=[],g=this.requireSorting,k=b.length===f.length;let n,h,l,m=!0;this.xIncrement=null;b.forEach(function(b,\na){var h=r(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};const m=h.x;if(h.id||T(m)){if(h=this.findPointIndex(h,l),-1===h||\"undefined\"===typeof h?e.push(b):f[h]&&b!==c.data[h]?(f[h].update(b,!1,null,!1),f[h].touched=!0,g&&(l=h+1)):f[h]&&(f[h].touched=!0),!k||a!==h||d&&d.enabled||this.hasDerivedData)n=!0}else e.push(b)},this);if(n)for(b=f.length;b--;)(h=f[b])&&!h.touched&&h.remove&&h.remove(!1,a);else!k||d&&d.enabled?m=!1:(b.forEach(function(b,a){b===f[a].y||f[a].destroyed||\nf[a].update(b,!1,null,!1)}),e.length=0);f.forEach(function(b){b&&(b.touched=!1)});if(!m)return!1;e.forEach(function(b){this.addPoint(b,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=x(this.xData),this.autoIncrement());return!0}setData(a,c=!0,d,f){var e;const g=this,k=g.points,h=k&&k.length||0,n=g.options,l=g.chart,m=n.dataSorting,q=g.xAxis,p=n.turboThreshold,r=this.xData,t=this.yData;var w=g.pointArrayMap;w=w&&w.length;const J=n.keys;let v,u=0,O=1,\nx=null;if(!l.options.chart.allowMutatingData){n.data&&delete g.options.data;g.userOptions.data&&delete g.userOptions.data;var N=V(!0,a)}a=N||a||[];N=a.length;m&&m.enabled&&(a=this.sortData(a));l.options.chart.allowMutatingData&&!1!==f&&N&&h&&!g.cropped&&!g.hasGroupedData&&g.visible&&!g.boosted&&(v=this.updateData(a,d));if(!v){g.xIncrement=null;g.colorCounter=0;this.parallelArrays.forEach(function(b){g[b+\"Data\"].length=0});if(p&&N>p)if(x=g.getFirstValidPoint(a),T(x))for(d=0;d\n{b=D(c,b);a=D(c,a);return ab?1:0}).forEach(function(b,a){b.x=a},this);a.linkedSeries&&a.linkedSeries.forEach(function(a){const c=a.options,f=c.data;c.dataSorting&&c.dataSorting.enabled||!f||(f.forEach(function(c,e){f[e]=d(a,c);b[e]&&(f[e].x=b[e].x,f[e].index=e)}),a.setData(f,!1))});return b}getProcessedData(a){const c=this;var d=c.xAxis,f=c.options;const e=f.cropThreshold,g=a||c.getExtremesFromAll||f.getExtremesFromAll,k=null===d||void 0===d?void 0:d.logarithmic,h=c.isCartesian;let n=0;let l;\na=c.xData;f=c.yData;let m=!1;const q=a.length;if(d){var r=d.getExtremes();l=r.min;r=r.max;m=!(!d.categories||d.names.length)}if(h&&c.sorted&&!g&&(!e||q>e||c.forceCrop))if(a[q-1]r)a=[],f=[];else if(c.yData&&(a[0]r)){var p=this.cropData(c.xData,c.yData,l,r);a=p.xData;f=p.yData;n=p.start;p=!0}d=P([k?a.map(k.log2lin):a],()=>c.requireSorting&&!m&&b(15,!1,c.chart));return{xData:a,yData:f,cropped:p,cropStart:n,closestPointRange:d}}processData(b){const a=this.xAxis;if(this.isCartesian&&\n!this.isDirty&&!a.isDirty&&!this.yAxis.isDirty&&!b)return!1;b=this.getProcessedData();this.cropped=b.cropped;this.cropStart=b.cropStart;this.processedXData=b.xData;this.processedYData=b.yData;this.closestPointRange=this.basePointRange=b.closestPointRange;n(this,\"afterProcessData\")}cropData(b,a,c,d,f){const e=b.length;let g,k=0,h=e;f=A(f,this.cropShoulder);for(g=0;g=c){k=Math.max(0,g-f);break}for(c=g;cd){h=c+f;break}return{xData:b.slice(k,h),yData:a.slice(k,h),start:k,\nend:h}}generatePoints(){var b=this.options;const a=this.processedData||b.data,c=this.processedXData,d=this.processedYData,e=this.pointClass,g=c.length,k=this.cropStart||0,h=this.hasGroupedData,l=b.keys,m=[];b=b.dataGrouping&&b.dataGrouping.groupAll?k:0;let q;let r,p,t=this.data;if(!t&&!h){var w=[];w.length=a.length;t=this.data=w}l&&h&&(this.options.keys=!1);for(p=0;p=h&&(f[k-g]||r)<=l;if(t&&r)if(t=p.length)for(;t--;)T(p[t])&&(e[m++]=p[t]);else e[m++]=p}b={activeYData:e,dataMin:F(e),dataMax:x(e)};n(this,\"afterGetExtremes\",{dataExtremes:b});\nreturn b}applyExtremes(){const b=this.getExtremes();this.dataMin=b.dataMin;this.dataMax=b.dataMax;return b}getFirstValidPoint(b){const a=b.length;let c=0,d=null;for(;null===d&&c=O&&(O=void 0),n.total=n.stackTotal=\nA(J.total),n.percentage=r(n.y)&&J.total?n.y/J.total*100:void 0,n.stackY=R,this.irregularWidths||J.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis)));n.yBottom=r(O)?d(h.translate(O,!1,!0,!1,!0),-1E5,1E5):void 0;this.dataModify&&(R=this.dataModify.modifyValue(R,w));let N;T(R)&&void 0!==n.plotX&&(N=h.translate(R,!1,!0,!1,!0),N=T(N)?d(N,-1E5,1E5):void 0);n.plotY=N;n.isInside=this.isPointInside(n);n.clientX=p?k(f.translate(m,!1,!1,!1,!0,q)):v;n.negative=(n.y||0)<(t||0);n.category=\nA(e&&e[n.x],n.x);n.isNull||!1===n.visible||(\"undefined\"!==typeof u&&(D=Math.min(D,Math.abs(v-u))),u=v);n.zone=this.zones.length?n.getZone():void 0;!n.graphic&&this.group&&g&&(n.isNew=!0)}this.closestPointRangePx=D;n(this,\"afterTranslate\")}getValidPoints(b,a,c){const d=this.chart;return(b||this.points||[]).filter(function(b){const {plotX:f,plotY:e}=b;return!c&&(b.isNull||!T(e))||a&&!d.isInsidePlot(f,e,{inverted:d.inverted})?!1:!1!==b.visible})}getClipBox(){const {chart:b,xAxis:a,yAxis:c}=this,d=V(b.clipBox);\na&&a.len!==b.plotSizeX&&(d.width=a.len);c&&c.len!==b.plotSizeY&&(d.height=c.len);return d}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+\",\"+(this.options.yAxis||0)}setClip(){const {chart:b,group:a,markerGroup:c}=this,d=b.sharedClips,f=b.renderer,e=this.getClipBox(),g=this.getSharedClipKey();let k=d[g];k?k.animate(e):d[g]=k=f.clipRect(e);a&&a.clip(!1===this.options.clip?void 0:k);c&&c.clip()}animate(b){const {chart:a,group:c,markerGroup:d}=this,f=a.inverted;var e=l(this.options.animation),\ng=[this.getSharedClipKey(),e.duration,e.easing,e.defer].join();let k=a.sharedClips[g],n=a.sharedClips[g+\"m\"];if(b&&c)e=this.getClipBox(),k?k.attr(\"height\",e.height):(e.width=0,f&&(e.x=a.plotHeight),k=a.renderer.clipRect(e),a.sharedClips[g]=k,n=a.renderer.clipRect({x:-99,y:-99,width:f?a.plotWidth+199:99,height:f?99:a.plotHeight+199}),a.sharedClips[g+\"m\"]=n),c.clip(k),d&&d.clip(n);else if(k&&!k.hasClass(\"highcharts-animating\")){g=this.getClipBox();const b=e.step;d&&d.element.childNodes.length&&(e.step=\nfunction(a,c){b&&b.apply(c,arguments);\"width\"===c.prop&&n&&n.element&&n.attr(f?\"height\":\"width\",a+99)});k.addClass(\"highcharts-animating\").animate(g,e)}}afterAnimate(){this.setClip();Y(this.chart.sharedClips,(b,a,c)=>{b&&!this.chart.container.querySelector(`[clip-path=\"url(#${b.id})\"]`)&&(b.destroy(),delete c[a])});this.finishedAnimating=!0;n(this,\"afterAnimate\")}drawPoints(b=this.points){const a=this.chart,c=a.styledMode,{colorAxis:d,options:f}=this,e=f.marker,g=this[this.specialGroup||\"markerGroup\"],\nk=this.xAxis,n=A(e.enabled,!k||k.isRadial?!0:null,this.closestPointRangePx>=e.enabledThreshold*e.radius);let h,l,m,q;let p,r;if(!1!==e.enabled||this._hasPointMarkers)for(h=0;hb.destroy());v.clearTimeout(a.animationTimeout);Y(a,function(b,a){b instanceof u&&!b.survive&&(g=d&&\"group\"===a?\"hide\":\"destroy\",b[g]())});c.hoverSeries===a&&(c.hoverSeries=void 0);G(c.series,a);c.orderItems(\"series\");Y(a,function(c,d){b&&\"hcEvents\"===d||delete a[d]})}applyZones(){const b=\nthis,a=this.chart,c=a.renderer,f=this.zones,e=this.clips||[],g=this.graph,k=this.area,n=Math.max(a.plotWidth,a.plotHeight),h=this[(this.zoneAxis||\"y\")+\"Axis\"],l=a.inverted;let m,q,p,r,t,w,v,u,x,D,E,G=!1;f.length&&(g||k)&&h&&\"undefined\"!==typeof h.min?(t=h.reversed,w=h.horiz,g&&!this.showLine&&g.hide(),k&&k.hide(),r=h.getExtremes(),f.forEach(function(f,Q){m=t?w?a.plotWidth:0:w?0:h.toPixels(r.min)||0;m=d(A(q,m),0,n);q=d(Math.round(h.toPixels(A(f.value,r.max),!0)||0),0,n);G&&(m=q=h.toPixels(r.max));\nv=Math.abs(m-q);u=Math.min(m,q);x=Math.max(m,q);h.isXAxis?(p={x:l?x:u,y:0,width:v,height:n},w||(p.x=a.plotHeight-p.x)):(p={x:0,y:l?x:u,width:n,height:v},w&&(p.y=a.plotWidth-p.y));e[Q]?e[Q].animate(p):e[Q]=c.clipRect(p);D=b[\"zone-area-\"+Q];E=b[\"zone-graph-\"+Q];g&&E&&E.clip(e[Q]);k&&D&&D.clip(e[Q]);G=f.value>r.max;b.resetZones&&0===q&&(q=void 0)}),this.clips=e):b.visible&&(g&&g.show(),k&&k.show())}plotGroup(b,a,c,d,f){let e=this[b];const g=!e;c={visibility:c,zIndex:d||.1};\"undefined\"===typeof this.opacity||\nthis.chart.styledMode||\"inactive\"===this.state||(c.opacity=this.opacity);g&&(this[b]=e=this.chart.renderer.g().add(f));e.addClass(\"highcharts-\"+a+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(r(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(e.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);e.attr(c)[g?\"attr\":\"animate\"](this.getPlotBox(a));return e}getPlotBox(b){let a=this.xAxis,c=this.yAxis;const d=this.chart;b=d.inverted&&\n!d.polar&&a&&!1!==this.invertible&&\"series\"===b;d.inverted&&(a=c,c=this.xAxis);return{translateX:a?a.left:d.plotLeft,translateY:c?c.top:d.plotTop,rotation:b?90:0,rotationOriginX:b?(a.len-c.len)/2:0,rotationOriginY:b?(a.len+c.len)/2:0,scaleX:b?-1:1,scaleY:1}}removeEvents(b){b||M(this);this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(b){b()}),this.eventsToUnbind.length=0)}render(){const b=this;var a=b.chart;const c=b.options,d=l(c.animation),f=b.visible?\"inherit\":\"hidden\",e=c.zIndex,\ng=b.hasRendered;a=a.seriesGroup;let k=b.finishedAnimating?0:d.duration;n(this,\"render\");b.plotGroup(\"group\",\"series\",f,e,a);b.markerGroup=b.plotGroup(\"markerGroup\",\"markers\",f,e,a);!1!==c.clip&&b.setClip();b.animate&&k&&b.animate(!0);b.drawGraph&&(b.drawGraph(),b.applyZones());b.visible&&b.drawPoints();b.drawDataLabels&&b.drawDataLabels();b.redrawPoints&&b.redrawPoints();b.drawTracker&&c.enableMouseTracking&&b.drawTracker();b.animate&&k&&b.animate();g||(k&&d.defer&&(k+=d.defer),b.animationTimeout=\nba(function(){b.afterAnimate()},k||0));b.isDirty=!1;b.hasRendered=!0;n(b,\"afterRender\")}redraw(){const b=this.isDirty||this.isDirtyData;this.translate();this.render();b&&delete this.kdTree}searchPoint(b,a){const c=this.xAxis,d=this.yAxis,f=this.chart.inverted;return this.searchKDTree({clientX:f?c.len-b.chartY+c.pos:b.chartX-c.pos,plotY:f?d.len-b.chartX+d.pos:b.chartY-d.pos},a,b)}buildKDTree(b){function a(b,d,f){var e=b&&b.length;let g;if(e)return g=c.kdAxisArray[d%f],b.sort(function(b,a){return b[g]-\na[g]}),e=Math.floor(e/2),{point:b[e],left:a(b.slice(0,e),d+1,f),right:a(b.slice(e+1),d+1,f)}}this.buildingKdTree=!0;const c=this,d=-1l?\"left\":\"right\";q=0>l?\"right\":\"left\";a[p]&&(p=d(b,a[p],c+1,n),m=p[k]t;)p--;this.updateParallelArrays(r,\"splice\",[p,0,0]);this.updateParallelArrays(r,p);h&&r.name&&(h[t]=r.name);l.splice(p,0,b);if(q||this.processedData)this.data.splice(p,0,null),this.processData();\"point\"===e.legendType&&this.generatePoints();c&&(g[0]&&g[0].remove?g[0].remove(!1):(g.shift(),this.updateParallelArrays(r,\"shift\"),l.shift()));!1!==f&&n(this,\"addPoint\",{point:r});this.isDirtyData=this.isDirty=!0;a&&k.redraw(d)}removePoint(b,a,c){const d=\nthis,f=d.data,e=f[b],g=d.points,k=d.chart,h=function(){g&&g.length===f.length&&g.splice(b,1);f.splice(b,1);d.options.data.splice(b,1);d.updateParallelArrays(e||{series:d},\"splice\",[b,1]);e&&e.destroy();d.isDirty=!0;d.isDirtyData=!0;a&&k.redraw()};p(c,k);a=A(a,!0);e?e.firePointEvent(\"remove\",null,h):h()}remove(b,a,c,d){function f(){e.destroy(d);g.isDirtyLegend=g.isDirtyBox=!0;g.linkSeries(d);A(b,!0)&&g.redraw(a)}const e=this,g=e.chart;!1!==c?n(e,\"remove\",null,f):f()}update(a,c){a=q(a,this.userOptions);\nn(this,\"update\",{options:a});const d=this,e=d.chart;var g=d.userOptions;const k=d.initialType||d.type;var h=e.options.plotOptions;const l=w[k].prototype;var m=d.finishedAnimating&&{animation:!1};const p={};let r,t=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],v=a.type||g.type||e.options.chart.type;const u=!(this.hasDerivedData||v&&v!==this.type||\"undefined\"!==typeof a.pointStart||\"undefined\"!==typeof a.pointInterval||\"undefined\"!==typeof a.relativeXValue||a.joinBy||a.mapData||\nd.hasOptionChanged(\"dataGrouping\")||d.hasOptionChanged(\"pointStart\")||d.hasOptionChanged(\"pointInterval\")||d.hasOptionChanged(\"pointIntervalUnit\")||d.hasOptionChanged(\"keys\"));v=v||k;u&&(t.push(\"data\",\"isDirtyData\",\"points\",\"processedData\",\"processedXData\",\"processedYData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"_hasPointLabels\",\"clips\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==a.visible&&t.push(\"area\",\"graph\"),d.parallelArrays.forEach(function(b){t.push(b+\"Data\")}),\na.data&&(a.dataSorting&&f(d.options.dataSorting,a.dataSorting),this.setData(a.data,!1)));a=V(g,m,{index:\"undefined\"===typeof g.index?d.index:g.index,pointStart:A(h&&h.series&&h.series.pointStart,g.pointStart,d.xData[0])},!u&&{data:d.options.data},a);u&&a.data&&(a.data=d.options.data);t=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"].concat(t);t.forEach(function(b){t[b]=d[b];delete d[b]});h=!1;if(w[v]){if(h=v!==d.type,d.remove(!1,!1,!1,!0),h)if(Object.setPrototypeOf)Object.setPrototypeOf(d,\nw[v].prototype);else{m=Object.hasOwnProperty.call(d,\"hcEvents\")&&d.hcEvents;for(r in l)d[r]=void 0;f(d,w[v].prototype);m?d.hcEvents=m:delete d.hcEvents}}else b(17,!0,e,{missingModuleFor:v});t.forEach(function(b){d[b]=t[b]});d.init(e,a);if(u&&this.points){a=d.options;if(!1===a.visible)p.graphic=1,p.dataLabel=1;else if(!d._hasPointLabels){const {marker:b,dataLabels:c}=a;g=g.marker||{};!b||!1!==b.enabled&&g.symbol===b.symbol&&g.height===b.height&&g.width===b.width||(p.graphic=1);c&&!1===c.enabled&&(p.dataLabel=\n1)}for(const b of this.points)b&&b.series&&(b.resolveColor(),Object.keys(p).length&&b.destroyElements(p),!1===a.showInLegend&&b.legendItem&&e.legend.destroyItem(b))}d.initialType=k;e.linkSeries();h&&d.linkedSeries.length&&(d.isDirtyData=!0);n(this,\"afterUpdate\");A(c,!0)&&e.redraw(u?void 0:!1)}setName(b){this.name=this.options.name=this.userOptions.name=b;this.chart.isDirtyLegend=!0}hasOptionChanged(b){const a=this.options[b],c=this.chart.options.plotOptions,d=this.userOptions[b];return d?a!==d:a!==\nA(c&&c[this.type]&&c[this.type][b],c&&c.series&&c.series[b],a)}onMouseOver(){const b=this.chart,a=b.hoverSeries;b.pointer.setHoverChartIndex();if(a&&a!==this)a.onMouseOut();this.options.events.mouseOver&&n(this,\"mouseOver\");this.setState(\"hover\");b.hoverSeries=this}onMouseOut(){const b=this.options,a=this.chart,c=a.tooltip,d=a.hoverPoint;a.hoverSeries=null;if(d)d.onMouseOut();this&&b.events.mouseOut&&n(this,\"mouseOut\");!c||this.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide();a.series.forEach(function(b){b.setState(\"\",\n!0)})}setState(b,a){const c=this;var d=c.options;const f=c.graph,e=d.inactiveOtherPoints,g=d.states,k=A(g[b||\"normal\"]&&g[b||\"normal\"].animation,c.chart.options.chart.animation);let h=d.lineWidth,n=0,l=d.opacity;b=b||\"\";if(c.state!==b&&([c.group,c.markerGroup,c.dataLabelsGroup].forEach(function(a){a&&(c.state&&a.removeClass(\"highcharts-series-\"+c.state),b&&a.addClass(\"highcharts-series-\"+b))}),c.state=b,!c.chart.styledMode)){if(g[b]&&!1===g[b].enabled)return;b&&(h=g[b].lineWidth||h+(g[b].lineWidthPlus||\n0),l=A(g[b].opacity,l));if(f&&!f.dashstyle&&T(h))for(d={\"stroke-width\":h},f.animate(d,k);c[\"zone-graph-\"+n];)c[\"zone-graph-\"+n].animate(d,k),n+=1;e||[c.group,c.markerGroup,c.dataLabelsGroup,c.labelBySeries].forEach(function(b){b&&b.animate({opacity:l},k)})}a&&e&&c.points&&c.setAllPointsToState(b||void 0)}setAllPointsToState(b){this.points.forEach(function(a){a.setState&&a.setState(b)})}setVisible(b,a){const c=this,d=c.chart,f=d.options.chart.ignoreHiddenSeries,e=c.visible,g=(c.visible=b=c.options.visible=\nc.userOptions.visible=\"undefined\"===typeof b?!e:b)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(b){if(c[b])c[b][g]()});if(d.hoverSeries===c||(d.hoverPoint&&d.hoverPoint.series)===c)c.onMouseOut();c.legendItem&&d.legend.colorizeItem(c,b);c.isDirty=!0;c.options.stacking&&d.series.forEach(function(b){b.options.stacking&&b.visible&&(b.isDirty=!0)});c.linkedSeries.forEach(function(a){a.setVisible(b,!1)});f&&(d.isDirtyBox=!0);n(c,g);!1!==a&&d.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(b){this.selected=\nb=this.options.selected=\"undefined\"===typeof b?!this.selected:b;this.checkbox&&(this.checkbox.checked=b);n(this,b?\"select\":\"unselect\")}shouldShowTooltip(b,a,c={}){c.series=this;c.visiblePlotOnly=!0;return this.chart.isInsidePlot(b,a,c)}drawLegendSymbol(b,a){var c;null===(c=C[this.options.legendSymbol||\"rectangle\"])||void 0===c?void 0:c.call(this,b,a)}}aa.defaultOptions=H;aa.types=B.seriesTypes;aa.registerType=B.registerSeriesType;f(aa.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,\ncropShoulder:1,directTouch:!1,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:z,requireSorting:!0,sorted:!0});B.series=aa;\"\";\"\";return aa});M(a,\"Core/Chart/Chart.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Axis/Axis.js\"],a[\"Core/Defaults.js\"],a[\"Core/Templating.js\"],a[\"Core/Foundation.js\"],a[\"Core/Globals.js\"],a[\"Core/Renderer/RendererRegistry.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Time.js\"],\na[\"Core/Utilities.js\"],a[\"Core/Renderer/HTML/AST.js\"]],function(a,y,I,L,C,z,H,B,u,v,l,p,t){const {animate:m,animObject:h,setAnimation:g}=a,{defaultOptions:e,defaultTime:w}=I,{numberFormat:x}=L,{registerEventOptions:F}=C,{charts:d,doc:k,marginNames:r,svg:q,win:G}=z,{seriesTypes:b}=u,{addEvent:f,attr:c,createElement:n,css:P,defined:D,diffObjects:K,discardElement:X,erase:T,error:Z,extend:V,find:Y,fireEvent:A,getStyle:M,isArray:ia,isNumber:ba,isObject:aa,isString:J,merge:N,objectEach:O,pick:S,pInt:W,\nrelativeLength:ha,removeEvent:da,splat:fa,syncTimeout:ka,uniqueKey:ca}=p;class ea{static chart(b,a,c){return new ea(b,a,c)}constructor(b,a,c){this.series=this.renderTo=this.renderer=this.pointer=this.pointCount=this.plotWidth=this.plotTop=this.plotLeft=this.plotHeight=this.plotBox=this.options=this.numberFormatter=this.margin=this.labelCollectors=this.isResizing=this.index=this.eventOptions=this.container=this.colorCounter=this.clipBox=this.chartWidth=this.chartHeight=this.bounds=this.axisOffset=\nthis.axes=void 0;this.sharedClips={};this.zooming=this.yAxis=this.xAxis=this.userOptions=this.titleOffset=this.time=this.symbolCounter=this.spacingBox=this.spacing=void 0;this.getArgs(b,a,c)}getArgs(b,a,c){J(b)||b.nodeName?(this.renderTo=b,this.init(a,c)):this.init(b,a)}setZoomOptions(){const b=this.options.chart,a=b.zooming;this.zooming=Object.assign(Object.assign({},a),{type:S(b.zoomType,a.type),key:S(b.zoomKey,a.key),pinchType:S(b.pinchType,a.pinchType),singleTouch:S(b.zoomBySingleTouch,a.singleTouch,\n!1),resetButton:N(a.resetButton,b.resetZoomButton)})}init(b,a){A(this,\"init\",{args:arguments},function(){const c=N(e,b),f=c.chart;this.userOptions=V({},b);this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=a;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.time=b.time&&Object.keys(b.time).length?new l(b.time):z.time;this.numberFormatter=f.numberFormatter||x;this.styledMode=f.styledMode;this.hasCartesianSeries=f.showAxes;this.index=d.length;\nd.push(this);z.chartCount++;F(this,f);this.xAxis=[];this.yAxis=[];this.pointCount=this.colorCounter=this.symbolCounter=0;this.setZoomOptions();A(this,\"afterInit\");this.firstRender()})}initSeries(a){var c=this.options.chart;c=a.type||c.type;const d=b[c];d||Z(17,!0,this,{missingModuleFor:c});c=new d;\"function\"===typeof c.init&&c.init(this,a);return c}setSeriesData(){this.getSeriesOrderByLinks().forEach(function(b){b.points||b.data||!b.enabledDataSorting||b.setData(b.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(b,\na){return b.linkedSeries.length||a.linkedSeries.length?a.linkedSeries.length-b.linkedSeries.length:0})}orderItems(b,a=0){const c=this[b],d=this.options[b]=fa(this.options[b]).slice();b=this.userOptions[b]=this.userOptions[b]?fa(this.userOptions[b]).slice():[];this.hasRendered&&(d.splice(a),b.splice(a));if(c)for(let f=a,e=c.length;f=Math.max(h+e,a.pos)&&q<=Math.min(h+e+m.width,a.pos+a.len)||(b.isInsidePlot=!1)}!c.ignoreY&&b.isInsidePlot&&\n(h=!d&&c.axis&&!c.axis.isXAxis&&c.axis||l&&(d?l.xAxis:l.yAxis)||{pos:g,len:Infinity},c=c.paneCoordinates?h.pos+a:g+a,c>=Math.max(n+g,h.pos)&&c<=Math.min(n+g+m.height,h.pos+h.len)||(b.isInsidePlot=!1));A(this,\"afterIsInsidePlot\",b);return b.isInsidePlot}redraw(b){A(this,\"beforeRedraw\");const a=this.hasCartesianSeries?this.axes:this.colorAxis||[],c=this.series,d=this.pointer,f=this.legend,e=this.userOptions.legend,k=this.renderer,h=k.isHidden(),n=[];let l,m,q=this.isDirtyBox,p=this.isDirtyLegend,r;\nk.rootFontSize=k.boxWrapper.getStyle(\"font-size\");this.setResponsive&&this.setResponsive(!1);g(this.hasRendered?b:!1,this);h&&this.temporaryDisplay();this.layOutTitles(!1);for(b=c.length;b--;)if(r=c[b],r.options.stacking||r.options.centerInCategory)if(m=!0,r.isDirty){l=!0;break}if(l)for(b=c.length;b--;)r=c[b],r.options.stacking&&(r.isDirty=!0);c.forEach(function(b){b.isDirty&&(\"point\"===b.options.legendType?(\"function\"===typeof b.updateTotals&&b.updateTotals(),p=!0):e&&(e.labelFormatter||e.labelFormat)&&\n(p=!0));b.isDirtyData&&A(b,\"updatedData\")});p&&f&&f.options.enabled&&(f.render(),this.isDirtyLegend=!1);m&&this.getStacks();a.forEach(function(b){b.updateNames();b.setScale()});this.getMargins();a.forEach(function(b){b.isDirty&&(q=!0)});a.forEach(function(b){const a=b.min+\",\"+b.max;b.extKey!==a&&(b.extKey=a,n.push(function(){A(b,\"afterSetExtremes\",V(b.eventArgs,b.getExtremes()));delete b.eventArgs}));(q||m)&&b.redraw()});q&&this.drawChartBox();A(this,\"predraw\");c.forEach(function(b){(q||b.isDirty)&&\nb.visible&&b.redraw();b.isDirtyData=!1});d&&d.reset(!0);k.draw();A(this,\"redraw\");A(this,\"render\");h&&this.temporaryDisplay(!0);n.forEach(function(b){b.call()})}get(b){function a(a){return a.id===b||a.options&&a.options.id===b}const c=this.series;let d=Y(this.axes,a)||Y(this.series,a);for(let b=0;!d&&b{a.getPointsCollection().forEach(a=>{S(a.selectedStaging,a.selected)&&b.push(a)});return b},[])}getSelectedSeries(){return this.series.filter(function(b){return b.selected})}setTitle(b,a,c){this.applyDescription(\"title\",b);this.applyDescription(\"subtitle\",a);this.applyDescription(\"caption\",void 0);this.layOutTitles(c)}applyDescription(b,a){const c=this,d=this.options[b]=N(this.options[b],a);let f=this[b];f&&a&&(this[b]=f=f.destroy());d&&!f&&(f=this.renderer.text(d.text,0,0,d.useHTML).attr({align:d.align,\n\"class\":\"highcharts-\"+b,zIndex:d.zIndex||4}).add(),f.update=function(a,d){c.applyDescription(b,a);c.layOutTitles(d)},this.styledMode||f.css(V(\"title\"===b?{fontSize:this.options.isStock?\"1em\":\"1.2em\"}:{},d.style)),this[b]=f)}layOutTitles(b=!0){const a=[0,0,0],c=this.renderer,d=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(b){const f=this[b],e=this.options[b],g=e.verticalAlign||\"top\";b=\"title\"===b?\"top\"===g?-3:0:\"top\"===g?a[0]+2:0;if(f){f.css({width:(e.width||d.width+(e.widthAdjust||\n0))+\"px\"});const k=c.fontMetrics(f).b,h=Math.round(f.getBBox(e.useHTML).height);f.align(V({y:\"bottom\"===g?k:b+k,height:h},e),!1,\"spacingBox\");e.floating||(\"top\"===g?a[0]=Math.ceil(a[0]+h):\"bottom\"===g&&(a[2]=Math.ceil(a[2]+h)))}},this);a[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(a[0]+=this.options.title.margin);a[2]&&\"bottom\"===this.options.caption.verticalAlign&&(a[2]+=this.options.caption.margin);const f=!this.titleOffset||this.titleOffset.join(\",\")!==a.join(\",\");this.titleOffset=\na;A(this,\"afterLayOutTitles\");!this.isDirtyBox&&f&&(this.isDirtyBox=this.isDirtyLegend=f,this.hasRendered&&b&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:M(this.renderTo,\"width\",!0)||0,height:M(this.renderTo,\"height\",!0)||0}}getChartSize(){var b=this.options.chart;const a=b.width;b=b.height;const c=this.getContainerBox();this.chartWidth=Math.max(0,a||c.width||600);this.chartHeight=Math.max(0,ha(b,this.chartWidth)||(1{var c;(null===(c=b.options)||void 0===c?0:c.chart.reflow)&&b.hasLoaded&&b.reflow(a)};\"function\"===typeof ResizeObserver?(new ResizeObserver(a)).observe(b.renderTo):(a=f(G,\"resize\",a),f(this,\"destroy\",\na))}setSize(b,a,c){const d=this,f=d.renderer;d.isResizing+=1;g(c,d);c=f.globalAnimation;d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;\"undefined\"!==typeof b&&(d.options.chart.width=b);\"undefined\"!==typeof a&&(d.options.chart.height=a);d.getChartSize();d.styledMode||(c?m:P)(d.container,{width:d.chartWidth+\"px\",height:d.chartHeight+\"px\"},c);d.setChartSize(!0);f.setSize(d.chartWidth,d.chartHeight,c);d.axes.forEach(function(b){b.isDirty=!0;b.setScale()});d.isDirtyLegend=!0;d.isDirtyBox=\n!0;d.layOutTitles();d.getMargins();d.redraw(c);d.oldChartHeight=null;A(d,\"resize\");ka(function(){d&&A(d,\"endResize\",null,function(){--d.isResizing})},h(c).duration)}setChartSize(b){var a=this.inverted;const c=this.renderer;var d=this.chartWidth,f=this.chartHeight;const e=this.options.chart,g=this.spacing,k=this.clipOffset;let h,n,l,m;this.plotLeft=h=Math.round(this.plotLeft);this.plotTop=n=Math.round(this.plotTop);this.plotWidth=l=Math.max(0,Math.round(d-h-this.marginRight));this.plotHeight=m=Math.max(0,\nMath.round(f-n-this.marginBottom));this.plotSizeX=a?m:l;this.plotSizeY=a?l:m;this.plotBorderWidth=e.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:f-g[0]-g[2]};this.plotBox=c.plotBox={x:h,y:n,width:l,height:m};a=2*Math.floor(this.plotBorderWidth/2);d=Math.ceil(Math.max(a,k[3])/2);f=Math.ceil(Math.max(a,k[0])/2);this.clipBox={x:d,y:f,width:Math.floor(this.plotSizeX-Math.max(a,k[1])/2-d),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(a,k[2])/2-f))};b||\n(this.axes.forEach(function(b){b.setAxisSize();b.setAxisTranslation()}),c.alignElements());A(this,\"afterSetChartSize\",{skipAxes:b})}resetMargins(){A(this,\"resetMargins\");const b=this,a=b.options.chart;[\"margin\",\"spacing\"].forEach(function(c){const d=a[c],f=aa(d)?d:[d,d,d,d];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(d,e){b[c][e]=S(a[c+d],f[e])})});r.forEach(function(a,c){b[a]=S(b.margin[c],b.spacing[c])});b.axisOffset=[0,0,0,0];b.clipOffset=[0,0,0,0]}drawChartBox(){const b=this.options.chart,\na=this.renderer,c=this.chartWidth,d=this.chartHeight,f=this.styledMode,e=this.plotBGImage;var g=b.backgroundColor;const k=b.plotBackgroundColor,h=b.plotBackgroundImage,n=this.plotLeft,l=this.plotTop,m=this.plotWidth,q=this.plotHeight,p=this.plotBox,r=this.clipRect,t=this.clipBox;let w=this.chartBackground,v=this.plotBackground,u=this.plotBorder,x,D,E=\"animate\";w||(this.chartBackground=w=a.rect().addClass(\"highcharts-background\").add(),E=\"attr\");if(f)x=D=w.strokeWidth();else{x=b.borderWidth||0;D=x+\n(b.shadow?8:0);g={fill:g||\"none\"};if(x||w[\"stroke-width\"])g.stroke=b.borderColor,g[\"stroke-width\"]=x;w.attr(g).shadow(b.shadow)}w[E]({x:D/2,y:D/2,width:c-D-x%2,height:d-D-x%2,r:b.borderRadius});E=\"animate\";v||(E=\"attr\",this.plotBackground=v=a.rect().addClass(\"highcharts-plot-background\").add());v[E](p);f||(v.attr({fill:k||\"none\"}).shadow(b.plotShadow),h&&(e?(h!==e.attr(\"href\")&&e.attr(\"href\",h),e.animate(p)):this.plotBGImage=a.image(h,n,l,m,q).add()));r?r.animate({width:t.width,height:t.height}):\nthis.clipRect=a.clipRect(t);E=\"animate\";u||(E=\"attr\",this.plotBorder=u=a.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add());f||u.attr({stroke:b.plotBorderColor,\"stroke-width\":b.plotBorderWidth||0,fill:\"none\"});u[E](u.crisp({x:n,y:l,width:m,height:q},-u.strokeWidth()));this.isDirtyBox=!1;A(this,\"afterDrawChartBox\")}propFromSeries(){const a=this,c=a.options.chart,d=a.options.series;let f,e,g;[\"inverted\",\"angular\",\"polar\"].forEach(function(k){e=b[c.type];g=c[k]||e&&e.prototype[k];for(f=\nd&&d.length;!g&&f--;)(e=b[d[f].type])&&e.prototype[k]&&(g=!0);a[k]=g})}linkSeries(b){const a=this,c=a.series;c.forEach(function(b){b.linkedSeries.length=0});c.forEach(function(b){let c=b.options.linkedTo;J(c)&&(c=\":previous\"===c?a.series[b.index-1]:a.get(c))&&c.linkedParent!==b&&(c.linkedSeries.push(b),b.linkedParent=c,c.enabledDataSorting&&b.setDataSortingOptions(),b.visible=S(b.options.visible,c.options.visible,b.visible))});A(this,\"afterLinkSeries\",{isUpdating:b})}renderSeries(){this.series.forEach(function(b){b.translate();\nb.render()})}render(){const b=this.axes,a=this.colorAxis,c=this.renderer,d=function(b){b.forEach(function(b){b.visible&&b.render()})};let f=0;this.setTitle();A(this,\"beforeMargins\");this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();const e=this.plotWidth;b.some(function(b){if(b.horiz&&b.visible&&b.options.labels.enabled&&b.series.length)return f=21,!0});const g=this.plotHeight=Math.max(this.plotHeight-f,0);b.forEach(function(b){b.setScale()});this.getAxisMargins();const k=1.1<\ne/this.plotWidth,h=1.05a.pointCount))}pan(b,a){const c=this,d=c.hoverPoints;a=\"object\"===typeof a?a:{enabled:a,type:\"x\"};const f=c.options.chart;f&&f.panning&&(f.panning=a);const e=a.type;let g;A(this,\"pan\",{originalEvent:b},function(){d&&d.forEach(function(b){b.setState()});let a=c.xAxis;\"xy\"===e?a=a.concat(c.yAxis):\"y\"===e&&(a=c.yAxis);const f={};a.forEach(function(a){if(a.options.panningEnabled&&\n!a.options.isInternal){var d=a.horiz,k=b[d?\"chartX\":\"chartY\"];d=d?\"mouseDownX\":\"mouseDownY\";var h=c[d],n=a.minPointOffset||0,l=a.reversed&&!c.inverted||!a.reversed&&c.inverted?-1:1,m=a.getExtremes(),q=a.toValue(h-k,!0)+n*l,p=a.toValue(h+a.len-k,!0)-(n*l||a.isXAxis&&a.pointRangePadding||0),r=p=l&&q<=p&&(a.setExtremes(h,q,!1,!1,{trigger:\"pan\"}),!c.resetZoomButton&&h!==l&&q!==p&&e.match(\"y\")&&(c.showResetZoom(),a.displayBtn=!1),g=!0),f[d]=k)}});O(f,(b,a)=>{c[a]=b});g&&c.redraw(!1);P(c.container,{cursor:\"move\"})})}}V(ea.prototype,{callbacks:[],collectionsWithInit:{xAxis:[ea.prototype.addAxis,[!0]],yAxis:[ea.prototype.addAxis,[!1]],series:[ea.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),\npropsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),propsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \")});\"\";return ea});M(a,\"Extensions/ScrollablePlotArea.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Axis/Axis.js\"],a[\"Core/Chart/Chart.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Renderer/RendererRegistry.js\"],a[\"Core/Utilities.js\"]],\nfunction(a,y,I,L,C,z){const {stop:x}=a,{addEvent:B,createElement:u,defined:v,merge:l,pick:p}=z;B(I,\"afterSetChartSize\",function(a){var m=this.options.chart.scrollablePlotArea,h=m&&m.minWidth;m=m&&m.minHeight;let g;if(!this.renderer.forExport){if(h){if(this.scrollablePixelsX=h=Math.max(0,h-this.chartWidth))this.scrollablePlotBox=this.renderer.scrollablePlotBox=l(this.plotBox),this.plotBox.width=this.plotWidth+=h,this.inverted?this.clipBox.height+=h:this.clipBox.width+=h,g={1:{name:\"right\",value:h}}}else m&&\n(this.scrollablePixelsY=h=Math.max(0,m-this.chartHeight),v(h)&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=l(this.plotBox),this.plotBox.height=this.plotHeight+=h,this.inverted?this.clipBox.width+=h:this.clipBox.height+=h,g={2:{name:\"bottom\",value:h}}));g&&!a.skipAxes&&this.axes.forEach(function(a){g[a.side]?a.getPlotLinePath=function(){let e=g[a.side].name,h=this[e],l;this[e]=h-g[a.side].value;l=y.prototype.getPlotLinePath.apply(this,arguments);this[e]=h;return l}:(a.setAxisSize(),a.setAxisTranslation())})}});\nB(I,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});I.prototype.setUpScrolling=function(){const a={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(a.overflowX=\"auto\");this.scrollablePixelsY&&(a.overflowY=\"auto\");this.scrollingParent=u(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},this.renderTo);this.scrollingContainer=\nu(\"div\",{className:\"highcharts-scrolling\"},a,this.scrollingParent);let l;B(this.scrollingContainer,\"scroll\",()=>{this.pointer&&(delete this.pointer.chartPosition,this.hoverPoint&&(l=this.hoverPoint),this.pointer.runPointActions(void 0,l,!0))});this.innerContainer=u(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=null};I.prototype.moveFixedElements=function(){let a=this.container,l=this.fixedRenderer,h=\n\".highcharts-breadcrumbs-group .highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),g;this.scrollablePixelsX&&!this.inverted?g=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?g=\".highcharts-xaxis\":this.scrollablePixelsY&&\n!this.inverted?g=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(g=\".highcharts-yaxis\");g&&h.push(`${g}:not(.highcharts-radial-axis)`,`${g}-labels:not(.highcharts-radial-axis-labels)`);h.forEach(function(e){[].forEach.call(a.querySelectorAll(e),function(a){(a.namespaceURI===l.SVG_NS?l.box:l.box.parentNode).appendChild(a);a.style.pointerEvents=\"auto\"})})};I.prototype.applyFixed=function(){var a=!this.fixedDiv,l=this.options.chart,h=l.scrollablePlotArea,g=C.getRendererType();a?(this.fixedDiv=\nu(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(l.style&&l.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=l=new g(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=l.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":p(h.opacity,\n.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),B(this,\"afterShowResetZoom\",this.moveFixedElements),B(this,\"afterApplyDrilldown\",this.moveFixedElements),B(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);if(this.scrollableDirty||a)this.scrollableDirty=!1,this.moveFixedElements();l=this.chartWidth+(this.scrollablePixelsX||0);g=this.chartHeight+(this.scrollablePixelsY||0);x(this.container);this.container.style.width=l+\"px\";\nthis.container.style.height=g+\"px\";this.renderer.boxWrapper.attr({width:l,height:g,viewBox:[0,0,l,g].join(\" \")});this.chartBackground.attr({width:l,height:g});this.scrollingContainer.style.height=this.chartHeight+\"px\";a&&(h.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*h.scrollPositionX),h.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*h.scrollPositionY));g=this.axisOffset;a=this.plotTop-g[0]-1;h=this.plotLeft-g[3]-1;l=this.plotTop+this.plotHeight+\ng[2]+1;g=this.plotLeft+this.plotWidth+g[1]+1;let e=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),w=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);a=this.scrollablePixelsX?[[\"M\",0,a],[\"L\",this.plotLeft-1,a],[\"L\",this.plotLeft-1,l],[\"L\",0,l],[\"Z\"],[\"M\",e,a],[\"L\",this.chartWidth,a],[\"L\",this.chartWidth,l],[\"L\",e,l],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",h,0],[\"L\",h,this.plotTop-1],[\"L\",g,this.plotTop-1],[\"L\",g,0],[\"Z\"],[\"M\",h,w],[\"L\",h,this.chartHeight],[\"L\",g,this.chartHeight],[\"L\",\ng,w],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:a})};B(y,\"afterInit\",function(){this.chart.scrollableDirty=!0});B(L,\"show\",function(){this.chart.scrollableDirty=!0});\"\"});M(a,\"Core/Axis/Stacking/StackItem.js\",[a[\"Core/Templating.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {format:x}=a,{series:C}=y,{destroyObjectProperties:z,fireEvent:H,isNumber:B,pick:u}=I;class v{constructor(a,p,t,m,h){const g=a.chart.inverted,e=a.reversed;\nthis.axis=a;a=this.isNegative=!!t!==!!e;this.options=p=p||{};this.x=m;this.cumulative=this.total=null;this.points={};this.hasValidPoints=!1;this.stack=h;this.rightCliff=this.leftCliff=0;this.alignOptions={align:p.align||(g?a?\"left\":\"right\":\"center\"),verticalAlign:p.verticalAlign||(g?\"middle\":a?\"bottom\":\"top\"),y:p.y,x:p.x};this.textAlign=p.textAlign||(g?a?\"right\":\"left\":\"center\")}destroy(){z(this,this.axis)}render(a){const l=this.axis.chart,t=this.options;var m=t.format;m=m?x(m,this,l):t.formatter.call(this);\nthis.label?this.label.attr({text:m,visibility:\"hidden\"}):(this.label=l.renderer.label(m,null,void 0,t.shape,void 0,void 0,t.useHTML,!1,\"stack-labels\"),m={r:t.borderRadius||0,text:m,padding:u(t.padding,5),visibility:\"hidden\"},l.styledMode||(m.fill=t.backgroundColor,m.stroke=t.borderColor,m[\"stroke-width\"]=t.borderWidth,this.label.css(t.style||{})),this.label.attr(m),this.label.added||this.label.add(a));this.label.labelrank=l.plotSizeY;H(this,\"afterRender\")}setOffset(a,p,t,m,h,g){const {alignOptions:e,\naxis:l,label:v,options:x,textAlign:d}=this,k=l.chart;t=this.getStackBox({xOffset:a,width:p,boxBottom:t,boxTop:m,defaultX:h,xAxis:g});var {verticalAlign:r}=e;if(v&&t){m=v.getBBox();h=v.padding;g=\"justify\"===u(x.overflow,\"justify\");e.x=x.x||0;e.y=x.y||0;const {x:a,y:p}=this.adjustStackPosition({labelBox:m,verticalAlign:r,textAlign:d});t.x-=a;t.y-=p;v.align(e,!1,t);(r=k.isInsidePlot(v.alignAttr.x+e.x+a,v.alignAttr.y+e.y+p))||(g=!1);g&&C.prototype.justifyDataLabel.call(l,v,e,v.alignAttr,m,t);v.attr({x:v.alignAttr.x,\ny:v.alignAttr.y,rotation:x.rotation,rotationOriginX:m.width/2,rotationOriginY:m.height/2});u(!g&&x.crop,!0)&&(r=B(v.x)&&B(v.y)&&k.isInsidePlot(v.x-h+v.width,v.y)&&k.isInsidePlot(v.x+h,v.y));v[r?\"show\":\"hide\"]()}H(this,\"afterSetOffset\",{xOffset:a,width:p})}adjustStackPosition({labelBox:a,verticalAlign:p,textAlign:t}){const l={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:a.width/2+a.width/2*l[t],y:a.height/2*l[p]}}getStackBox(a){var l=this.axis;const t=l.chart,{boxTop:m,defaultX:h,xOffset:g,\nwidth:e,boxBottom:w}=a;var v=l.stacking.usePercentage?100:u(m,this.total,0);v=l.toPixels(v);a=a.xAxis||t.xAxis[0];const x=u(h,a.translate(this.x))+g;l=l.toPixels(w||B(l.min)&&l.logarithmic&&l.logarithmic.lin2log(l.min)||0);l=Math.abs(v-l);const d=this.isNegative;return t.inverted?{x:(d?v:v-l)-t.plotLeft,y:a.height-x-e,width:l,height:e}:{x:x+a.transB-t.plotLeft,y:(d?v-l:v)-t.plotTop,width:e,height:l}}}\"\";return v});M(a,\"Core/Axis/Stacking/StackingAxis.js\",[a[\"Core/Animation/AnimationUtilities.js\"],\na[\"Core/Axis/Axis.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Axis/Stacking/StackItem.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C){function x(){const b=this,a=b.inverted;b.yAxis.forEach(b=>{b.stacking&&b.stacking.stacks&&b.hasVisibleSeries&&(b.stacking.oldStacks=b.stacking.stacks)});b.series.forEach(c=>{const d=c.xAxis&&c.xAxis.options||{};!c.options.stacking||!0!==c.visible&&!1!==b.options.chart.ignoreHiddenSeries||(c.stackKey=[c.type,q(c.options.stack,\"\"),a?d.top:d.left,a?d.height:d.width].join())})}\nfunction H(){const b=this.stacking;if(b){var a=b.stacks;r(a,function(b,c){E(b);a[c]=null});b&&b.stackTotalGroup&&b.stackTotalGroup.destroy()}}function B(){\"yAxis\"!==this.coll||this.stacking||(this.stacking=new G(this))}function u(b,a,d,e){!w(b)||b.x!==a||e&&b.stackKey!==e?b={x:a,index:0,key:e,stackKey:e}:b.index++;b.key=[d,a,b.index].join();return b}function v(){const b=this,a=b.stackKey,d=b.yAxis.stacking.stacks,e=b.processedXData,g=b[b.options.stacking+\"Stacker\"];let k;g&&[a,\"-\"+a].forEach(a=>{let c=\ne.length;let f;for(;c--;){var h=e[c];k=b.getStackIndicator(k,h,b.index,a);(f=(h=d[a]&&d[a][h])&&h.points[k.key])&&g.call(b,f,h,c)}})}function l(b,a,d){a=a.total?100/a.total:0;b[0]=e(b[0]*a);b[1]=e(b[1]*a);this.stackedYData[d]=b[1]}function p(){const b=this.yAxis.stacking;this.options.centerInCategory&&(this.is(\"column\")||this.is(\"columnrange\"))&&!this.options.stacking&&1{\"group\"===d.slice(-5)&&(r(a,b=>b.destroy()),\ndelete b.stacks[d])})}function t(b){var a=this.chart;const f=b||this.options.stacking;if(f&&(!0===this.visible||!1===a.options.chart.ignoreHiddenSeries)){var g=this.processedXData,k=this.processedYData,h=[],l=k.length,m=this.options,p=m.threshold,r=q(m.startFromThreshold&&p,0);m=m.stack;b=b?`${this.type},${f}`:this.stackKey;var t=\"-\"+b,v=this.negStacks;a=\"group\"===f?a.yAxis[0]:this.yAxis;var u=a.stacking.stacks,x=a.stacking.oldStacks,E,G;a.stacking.stacksTouched+=1;for(G=0;G{r(b,(a,d)=>{k(a.touched)&&a.touchedt&&x.shadow));h&&(h.startX=u.xMap,h.isArea=u.isArea)})}getGraphPath(a,B,u){const v=this,l=v.options,p=[],t=[];let m,h=l.step;a=a||v.points;const g=a.reversed;g&&a.reverse();(h={right:1,center:2}[h]||h&&3)&&g&&(h=\n4-h);a=this.getValidPoints(a,!1,!(l.connectNulls&&!B&&!u));a.forEach(function(e,g){const w=e.plotX,F=e.plotY,d=a[g-1],k=e.isNull||\"number\"!==typeof F;(e.leftCliff||d&&d.rightCliff)&&!u&&(m=!0);k&&!x(B)&&0a.visible);t.forEach(function(a,q){let r=0,b,f;if(e[a]&&!e[a].isNull)p.push(e[a]),[-1,1].forEach(function(c){const h=1===c?\"rightNull\":\n\"leftNull\",m=g[t[q+c]];let p=0;if(m){let c=d;for(;0<=c&&ca&&m>l?(m=Math.max(a,l),h=2*l-m):mu&&h>l?(h=Math.max(u,l),m=2*l-h):h=Math.abs(d)&&.5{if(\"number\"===typeof e.x){const d=a[e.x.toString()];d&&(a=d.points[this.index],b?(a&&(c=k),d.hasValidPoints&&(f?k++:k--)):g(a)&&(a=Object.keys(d.points).filter(b=>!b.match(\",\")&&\nd.points[b]&&1a-b),c=a.indexOf(this.index),k=a.length))}});a=(e.plotX||0)+((k-1)*h.paddedWidth+d)/2-d-c*h.paddedWidth}return a}translate(){const a=this,d=a.chart,g=a.options;var l=a.dense=2>a.closestPointRange*a.xAxis.transA;l=a.borderWidth=E(g.borderWidth,l?0:1);const b=a.xAxis,f=a.yAxis,c=g.threshold,n=E(g.minPointLength,5),m=a.getColumnMetrics(),w=m.width,v=a.pointXOffset=m.offset,u=a.dataMin,x=a.dataMax;let F=a.barW=Math.max(w,1+2*l),y=a.translatedThreshold=\nf.getThreshold(c);d.inverted&&(y-=.5);g.pointPadding&&(F=Math.ceil(F));C.prototype.translate.apply(a);a.points.forEach(function(k){const h=E(k.yBottom,y);var l=999+Math.abs(h),q=k.plotX||0;l=p(k.plotY,-l,f.len+l);let r=Math.min(l,h),D=Math.max(l,h)-r,z=w,B=q+v,G=F;n&&Math.abs(D)n?h-n:y-(q?n:0));t(k.options.pointWidth)&&(z=G=Math.ceil(k.options.pointWidth),\nB-=Math.round((z-w)/2));g.centerInCategory&&(B=a.adjustForMissingColumns(B,z,k,m));k.barX=B;k.pointWidth=z;k.tooltipPos=d.inverted?[p(f.len+f.pos-d.plotLeft-l,f.pos-d.plotLeft,f.len+f.pos-d.plotLeft),b.len+b.pos-d.plotTop-B-G/2,D]:[b.left-d.plotLeft+B+G/2,p(l+f.pos-d.plotTop,f.pos-d.plotTop,f.len+f.pos-d.plotTop),D];k.shapeType=a.pointClass.prototype.shapeType||\"roundedRect\";k.shapeArgs=a.crispCol(B,k.isNull?y:r,G,k.isNull?0:D)});h(this,\"afterColumnTranslate\")}drawGraph(){this.group[this.dense?\"addClass\":\n\"removeClass\"](\"highcharts-dense-data\")}pointAttribs(a,d){const e=this.options;var g=this.pointAttrToOptions||{},b=g.stroke||\"borderColor\";const f=g[\"stroke-width\"]||\"borderWidth\";let c,k=a&&a.color||this.color,h=a&&a[b]||e[b]||k;g=a&&a.options.dashStyle||e.dashStyle;let l=a&&a[f]||e[f]||this[f]||0,m=E(a&&a.opacity,e.opacity,1);a&&this.zones.length&&(c=a.getZone(),k=a.options.color||c&&(c.color||a.nonZonedColor)||this.color,c&&(h=c.borderColor||h,g=c.dashStyle||g,l=c.borderWidth||l));d&&a&&(a=w(e.states[d],\na.options.states&&a.options.states[d]||{}),d=a.brightness,k=a.color||\"undefined\"!==typeof d&&u(k).brighten(a.brightness).get()||k,h=a[b]||h,l=a[f]||l,g=a.dashStyle||g,m=E(a.opacity,m));b={fill:k,stroke:h,\"stroke-width\":l,opacity:m};g&&(b.dashstyle=g);return b}drawPoints(a=this.points){const d=this,g=this.chart,k=d.options,b=g.renderer,f=k.animationLimit||250;let c;a.forEach(function(a){let h=a.graphic,l=!!h,n=h&&g.pointCount\"===d&&a>b||\"<\"===d&&a=\"===d&&a>=b||\"<=\"===d&&a<=b||\"==\"===d&&a==b||\"===\"===d&&a===b?!0:!1):!0}function h(){return this.plotGroup(\"dataLabelsGroup\",\"data-labels\",this.hasRendered?\"inherit\":\"hidden\",this.options.dataLabels.zIndex||\n6)}function F(a){const b=this.hasRendered||0,c=this.initDataLabelsGroup().attr({opacity:+b});!b&&c&&(this.visible&&c.show(),this.options.animation?c.animate({opacity:1},a):c.attr({opacity:1}));return c}function d(a=this.points){var b,c;const d=this,e=d.chart,k=d.options,h=e.renderer,{backgroundColor:l,plotBackgroundColor:q}=e.options.chart,w=e.options.plotOptions,E=h.getContrast(v(q)&&q||v(l)&&l||\"#000000\");let F=k.dataLabels,A,y;var G=m(F)[0];const H=G.animation;G=G.defer?x(e,H,d):{defer:0,duration:0};\nF=r(r(null===(b=null===w||void 0===w?void 0:w.series)||void 0===b?void 0:b.dataLabels,null===(c=null===w||void 0===w?void 0:w[d.type])||void 0===c?void 0:c.dataLabels),F);B(this,\"drawDataLabels\");if(u(F)||F.enabled||d._hasPointLabels)y=this.initDataLabels(G),a.forEach(a=>{var b;const c=a.dataLabels||[];A=m(r(F,a.dlOptions||(null===(b=a.options)||void 0===b?void 0:b.dataLabels)));A.forEach((b,f)=>{var l,m=b.enabled&&(!a.isNull||a.dataLabelOnNull)&&g(a,b);const n=a.connectors?a.connectors[f]:a.connector,\nq=b.style||{};let r={},w=c[f],u=!w;const x=t(b.distance,a.labelDistance);if(m){var A=t(b[a.formatPrefix+\"Format\"],b.format);var F=a.getLabelConfig();F=z(A)?C(A,F,e):(b[a.formatPrefix+\"Formatter\"]||b.formatter).call(F,b);A=b.rotation;e.styledMode||(q.color=t(b.color,q.color,v(d.color)?d.color:void 0,\"#000000\"),\"contrast\"===q.color?(a.contrastColor=h.getContrast(a.color||d.color),q.color=!z(x)&&b.inside||0>(x||0)||k.stacking?a.contrastColor:E):delete a.contrastColor,k.cursor&&(q.cursor=k.cursor));r=\n{r:b.borderRadius||0,rotation:A,padding:b.padding,zIndex:1};if(!e.styledMode){const {backgroundColor:c,borderColor:d}=b;r.fill=\"auto\"===c?a.color:c;r.stroke=\"auto\"===d?a.color:d;r[\"stroke-width\"]=b.borderWidth}p(r,(a,b)=>{\"undefined\"===typeof a&&delete r[b]})}!w||m&&z(F)&&!!w.div===!!b.useHTML&&(w.rotation&&b.rotation||w.rotation===b.rotation)||(w=void 0,u=!0,n&&a.connector&&(a.connector=a.connector.destroy(),a.connectors&&(1===a.connectors.length?delete a.connectors:delete a.connectors[f])));m&&\nz(F)&&(w?r.text=F:(w=A?h.text(F,0,0,b.useHTML).addClass(\"highcharts-data-label\"):h.label(F,0,0,b.shape,void 0,void 0,b.useHTML,void 0,\"data-label\"))&&w.addClass(\" highcharts-data-label-color-\"+a.colorIndex+\" \"+(b.className||\"\")+(b.useHTML?\" highcharts-tracker\":\"\")),w&&(w.options=b,w.attr(r),e.styledMode||w.css(q).shadow(b.shadow),(m=b[a.formatPrefix+\"TextPath\"]||b.textPath)&&!b.useHTML&&(w.setTextPath((null===(l=a.getDataLabelPath)||void 0===l?void 0:l.call(a,w))||a.graphic,m),a.dataLabelPath&&!m.enabled&&\n(a.dataLabelPath=a.dataLabelPath.destroy())),w.added||w.add(y),d.alignDataLabel(a,w,b,void 0,u),w.isActive=!0,c[f]&&c[f]!==w&&c[f].destroy(),c[f]=w))});for(b=c.length;b--;)c[b].isActive?c[b].isActive=!1:(c[b].destroy(),c.splice(b,1));a.dataLabel=c[0];a.dataLabels=c});B(this,\"afterDrawDataLabels\")}function k(a,d,c,e,g,k){const b=this.chart,f=d.align,h=d.verticalAlign,l=a.box?0:a.padding||0;let {x:m=0,y:n=0}=d,p,q;p=(c.x||0)+l;0>p&&(\"right\"===f&&0<=m?(d.align=\"left\",d.inside=!0):m-=p,q=!0);p=(c.x||\n0)+e.width-l;p>b.plotWidth&&(\"left\"===f&&0>=m?(d.align=\"right\",d.inside=!0):m+=b.plotWidth-p,q=!0);p=c.y+l;0>p&&(\"bottom\"===h&&0<=n?(d.verticalAlign=\"top\",d.inside=!0):n-=p,q=!0);p=(c.y||0)+e.height-l;p>b.plotHeight&&(\"top\"===h&&0>=n?(d.verticalAlign=\"bottom\",d.inside=!0):n+=b.plotHeight-p,q=!0);q&&(d.x=m,d.y=n,a.placed=!k,a.align(d,void 0,g));return q}function r(a,d){let b=[],f;if(u(a)&&!u(d))b=a.map(function(a){return l(a,d)});else if(u(d)&&!u(a))b=d.map(function(b){return l(a,b)});else if(!u(a)&&\n!u(d))b=l(a,d);else if(u(a)&&u(d))for(f=Math.max(a.length,d.length);f--;)b[f]=l(a[f],d[f]);return b}function q(a,d,c,e,g){const b=this.chart,f=b.inverted,k=this.xAxis,h=k.reversed,l=f?d.height/2:d.width/2;a=(a=a.pointWidth)?a/2:0;d.startXPos=f?g.x:h?-l-a:k.width-l+a;d.startYPos=f?h?this.yAxis.height-l+a:-l-a:g.y;e?\"hidden\"===d.visibility&&(d.show(),d.attr({opacity:0}).animate({opacity:1})):d.attr({opacity:1}).animate({opacity:0},void 0,d.hide);b.hasRendered&&(c&&d.attr({x:d.startXPos,y:d.startYPos}),\nd.placed=!0)}const y=[];a.compose=function(a){I.pushUnique(y,a)&&(a=a.prototype,a.initDataLabelsGroup=h,a.initDataLabels=F,a.alignDataLabel=e,a.drawDataLabels=d,a.justifyDataLabel=k,a.setDataLabelStartPos=q)}})(h||(h={}));\"\";return h});M(a,\"Series/Column/ColumnDataLabel.js\",[a[\"Core/Series/DataLabel.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {series:x}=y,{merge:C,pick:z}=I;var H;(function(y){function u(a,p,t,m,h){let g=this.chart.inverted;var e=a.series;\nlet l=(e.xAxis?e.xAxis.len:this.chart.plotSizeX)||0;e=(e.yAxis?e.yAxis.len:this.chart.plotSizeY)||0;var v=a.dlBox||a.shapeArgs;let u=z(a.below,a.plotY>z(this.translatedThreshold,e)),d=z(t.inside,!!this.options.stacking);v&&(m=C(v),0>m.y&&(m.height+=m.y,m.y=0),v=m.y+m.height-e,0\\u25cf {series.name}
',pointFormat:\"x: {point.x}
y: {point.y}
\"}}});M(a,\"Series/Scatter/ScatterSeries.js\",\n[a[\"Series/Scatter/ScatterSeriesDefaults.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {column:x,line:C}=y.seriesTypes,{addEvent:z,extend:H,merge:B}=I;class u extends C{constructor(){super(...arguments);this.points=this.options=this.data=void 0}applyJitter(){const a=this,l=this.options.jitter,p=this.points.length;l&&this.points.forEach(function(t,m){[\"x\",\"y\"].forEach(function(h,g){let e=\"plot\"+h.toUpperCase(),w,v;if(l[h]&&!t.isNull){var u=a[h+\"Axis\"];v=l[h]*\nu.transA;u&&!u.isLog&&(w=Math.max(0,t[e]-v),u=Math.min(u.len,t[e]+v),g=1E4*Math.sin(m+g*p),g-=Math.floor(g),t[e]=w+(u-w)*g,\"x\"===h&&(t.clientX=t.plotX))}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}u.defaultOptions=B(C.defaultOptions,a);H(u.prototype,{drawTracker:x.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1});z(u,\"afterTranslate\",function(){this.applyJitter()});\ny.registerSeriesType(\"scatter\",u);return u});M(a,\"Series/CenteredUtilities.js\",[a[\"Core/Globals.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {deg2rad:x}=a,{fireEvent:C,isNumber:z,pick:H,relativeLength:B}=I;var u;(function(a){a.getCenter=function(){var a=this.options,p=this.chart;const t=2*(a.slicedOffset||0),m=p.plotWidth-2*t,h=p.plotHeight-2*t;var g=a.center;const e=Math.min(m,h),w=a.thickness;var v=a.size;let u=a.innerSize||0;\"string\"===typeof v&&(v=parseFloat(v));\n\"string\"===typeof u&&(u=parseFloat(u));a=[H(g[0],\"50%\"),H(g[1],\"50%\"),H(v&&0>v?void 0:a.size,\"100%\"),H(u&&0>u?void 0:a.innerSize||0,\"0%\")];!p.angular||this instanceof y||(a[3]=0);for(g=0;4>g;++g)v=a[g],p=2>g||2===g&&/%$/.test(v),a[g]=B(v,[m,h,e,a[2]][g])+(p?t:0);a[3]>a[2]&&(a[3]=a[2]);z(w)&&2*wa&&360>p-a?p:a+360;return{start:x*(a+-90),end:x*(p+-90)}}})(u||(u={}));\n\"\";return u});M(a,\"Series/Pie/PiePoint.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {setAnimation:x}=a,{addEvent:C,defined:z,extend:H,isNumber:B,pick:u,relativeLength:v}=I;class l extends y{constructor(){super(...arguments);this.series=this.options=this.labelDistance=void 0}getConnectorPath(){const a=this.labelPosition,l=this.series.options.dataLabels,m=this.connectorShapes;let h=l.connectorShape;m[h]&&(h=m[h]);return h.call(this,\n{x:a.computed.x,y:a.computed.y,alignment:a.alignment},a.connectorPosition,l)}getTranslate(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}}haloPath(a){const l=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(l.x,l.y,l.r+a,l.r+a,{innerR:l.r-1,start:l.start,end:l.end,borderRadius:l.borderRadius})}init(){super.init.apply(this,arguments);this.name=u(this.name,\"Slice\");const a=a=>{this.slice(\"select\"===a.type)};C(this,\"select\",a);C(this,\n\"unselect\",a);return this}isValid(){return B(this.y)&&0<=this.y}setVisible(a,l){const m=this.series,h=m.chart,g=m.options.ignoreHiddenPoint;l=u(l,g);a!==this.visible&&(this.visible=this.options.visible=a=\"undefined\"===typeof a?!this.visible:a,m.options.data[m.data.indexOf(this)]=this.options,[\"graphic\",\"dataLabel\",\"connector\"].forEach(e=>{if(this[e])this[e][a?\"show\":\"hide\"](a)}),this.legendItem&&h.legend.colorizeItem(this,a),a||\"hover\"!==this.state||this.setState(\"\"),g&&(m.isDirty=!0),l&&h.redraw())}slice(a,\nl,m){const h=this.series;x(m,h.chart);u(l,!0);this.sliced=this.options.sliced=z(a)?a:!this.sliced;h.options.data[h.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate())}}H(l.prototype,{connectorShapes:{fixedOffset:function(a,l,m){const h=l.breakAt;l=l.touchingSliceAt;return[[\"M\",a.x,a.y],m.softConnector?[\"C\",a.x+(\"left\"===a.alignment?-5:5),a.y,2*h.x-l.x,2*h.y-l.y,h.x,h.y]:[\"L\",h.x,h.y],[\"L\",l.x,l.y]]},straight:function(a,l){l=l.touchingSliceAt;return[[\"M\",a.x,a.y],\n[\"L\",l.x,l.y]]},crookedLine:function(a,l,m){const {breakAt:h,touchingSliceAt:g}=l;({series:l}=this);const [e,p,t]=l.center,u=t/2,d=l.chart.plotWidth,k=l.chart.plotLeft;l=\"left\"===a.alignment;const {x:r,y:q}=a;m.crookDistance?(a=v(m.crookDistance,1),a=l?e+u+(d+k-e-u)*(1-a):k+(e-u)*a):a=e+(p-q)*Math.tan((this.angle||0)-Math.PI/2);m=[[\"M\",r,q]];(l?a<=r&&a>=h.x:a>=r&&a<=h.x)&&m.push([\"L\",a,q]);m.push([\"L\",h.x,h.y],[\"L\",g.x,g.y]);return m}}});return l});M(a,\"Series/Pie/PieSeriesDefaults.js\",[],function(){\"\";\nreturn{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:\"crookedLine\",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,\nstates:{hover:{brightness:.1}}}});M(a,\"Series/Pie/PieSeries.js\",[a[\"Series/CenteredUtilities.js\"],a[\"Series/Column/ColumnSeries.js\"],a[\"Core/Globals.js\"],a[\"Series/Pie/PiePoint.js\"],a[\"Series/Pie/PieSeriesDefaults.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/Symbols.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B,u){const {getStartAndEndRadians:v}=a;({noop:I}=I);const {clamp:l,extend:p,fireEvent:t,merge:m,pick:h,relativeLength:g}=u;class e extends z{constructor(){super(...arguments);\nthis.points=this.options=this.maxLabelDistance=this.data=this.center=void 0}animate(a){const e=this,g=e.points,d=e.startAngleRad;a||g.forEach(function(a){const g=a.graphic,k=a.shapeArgs;g&&k&&(g.attr({r:h(a.startR,e.center&&e.center[3]/2),start:d,end:d}),g.animate({r:k.r,start:k.start,end:k.end},e.options.animation))})}drawEmpty(){const a=this.startAngleRad,e=this.endAngleRad,g=this.options;let d,k;0===this.total&&this.center?(d=this.center[0],k=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(d,\nk,this.center[1]/2,0,a,e).addClass(\"highcharts-empty-series\").add(this.group)),this.graph.attr({d:B.arc(d,k,this.center[2]/2,0,{start:a,end:e,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({\"stroke-width\":g.borderWidth,fill:g.fillColor||\"none\",stroke:g.color||\"#cccccc\"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){const a=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy());e.graphic||(e.graphic=a[e.shapeType](e.shapeArgs).add(e.series.group),\ne.delayedRendering=!0)})}generatePoints(){super.generatePoints();this.updateTotals()}getX(a,e,g){const d=this.center,k=this.radii?this.radii[g.index]||0:d[2]/2;a=Math.asin(l((a-d[1])/(k+g.labelDistance),-1,1));return d[0]+(e?-1:1)*Math.cos(a)*(k+g.labelDistance)+(01.5*Math.PI?x-=2*Math.PI:x<-Math.PI/2&&(x+=2*Math.PI);n.slicedTranslation={translateX:Math.round(Math.cos(x)*l),translateY:Math.round(Math.sin(x)*l)};y=Math.cos(x)*a[2]/2;f=Math.sin(x)*a[2]/\n2;n.tooltipPos=[a[0]+.7*y,a[1]+.7*f];n.half=x<-Math.PI/2||x>Math.PI/2?1:0;n.angle=x;u=Math.min(d,n.labelDistance/5);n.labelPosition={natural:{x:a[0]+y+Math.cos(x)*n.labelDistance,y:a[1]+f+Math.sin(x)*n.labelDistance},computed:{},alignment:0>n.labelDistance?\"center\":n.half?\"right\":\"left\",connectorPosition:{breakAt:{x:a[0]+y+Math.cos(x)*u,y:a[1]+f+Math.sin(x)*u},touchingSliceAt:{x:a[0]+y,y:a[1]+f}}}}t(this,\"afterTranslate\")}updateTotals(){const a=this.points,e=a.length,g=this.options.ignoreHiddenPoint;\nlet d,k,h=0;for(d=0;dm&&(a.dataLabel.css({width:Math.round(.7*m)+\"px\"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),y.forEach((d,k)=>{const m=d.length,n=[];let q,p=0;if(m){a.sortByAngle(d,k-.5);if(0f-b&&0===k&&\n(r=Math.round(N+L-f+b),z[1]=Math.max(r,z[1])),0>O-J/2?z[0]=Math.max(Math.round(-O+J/2),z[0]):O+J/2>c&&(z[2]=Math.max(Math.round(O+J/2-c),z[2])),I.sideOverflow=r)}}}),0===u(z)||this.verifyDataLabelOverflow(z))&&(this.placeDataLabels(),this.points.forEach(function(b){U=p(g,b.options.dataLabels);if(A=t(U.connectorWidth,1)){let c;E=b.connector;if((I=b.dataLabel)&&I._pos&&b.visible&&0d.bottom-2?g:e,d.half,d)},justify:function(a,d,e){return e[0]+(a.half?-1:1)*(d+a.labelDistance)},alignToPlotEdges:function(a,d,e,g){a=a.getBBox().width;return d?a+g:e-a-g},alignToConnectors:function(a,d,e,g){let b=0,f;a.forEach(function(a){f=\na.dataLabel.getBBox().width;f>b&&(b=f)});return d?b+g:e-b-g}};g.compose=function(g){a.compose(B);C.pushUnique(z,g)&&(g=g.prototype,g.dataLabelPositioners=d,g.alignDataLabel=x,g.drawDataLabels=e,g.placeDataLabels=h,g.verifyDataLabelOverflow=y)}})(h||(h={}));return h});M(a,\"Extensions/OverlappingDataLabels.js\",[a[\"Core/Chart/Chart.js\"],a[\"Core/Utilities.js\"]],function(a,y){function x(a,l){let p,t=!1;a&&(p=a.newOpacity,a.oldOpacity!==p&&(a.alignAttr&&a.placed?(a[p?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),\nt=!0,a.alignAttr.opacity=p,a[a.isOld?\"animate\":\"attr\"](a.alignAttr,null,function(){l.styledMode||a.css({pointerEvents:p?\"auto\":\"none\"})}),C(l,\"afterHideOverlappingLabel\")):a.attr({opacity:p})),a.isOld=!0);return t}const {addEvent:L,fireEvent:C,isArray:z,isNumber:H,objectEach:B,pick:u}=y;L(a,\"render\",function(){let a=this,l=[];(this.labelCollectors||[]).forEach(function(a){l=l.concat(a())});(this.yAxis||[]).forEach(function(a){a.stacking&&a.options.stackLabels&&!a.options.stackLabels.allowOverlap&&\nB(a.stacking.stacks,function(a){B(a,function(a){a.label&&l.push(a.label)})})});(this.series||[]).forEach(function(p){var t=p.options.dataLabels;p.visible&&(!1!==t.enabled||p._hasPointLabels)&&(t=m=>m.forEach(h=>{h.visible&&(z(h.dataLabels)?h.dataLabels:h.dataLabel?[h.dataLabel]:[]).forEach(function(g){const e=g.options;g.labelrank=u(e.labelrank,h.labelrank,h.shapeArgs&&h.shapeArgs.height);e.allowOverlap?(g.oldOpacity=g.opacity,g.newOpacity=1,x(g,a)):l.push(g)})}),t(p.nodes||[]),t(p.points))});this.hideOverlappingLabels(l)});\na.prototype.hideOverlappingLabels=function(a){let l=this,p=a.length,t=l.renderer;var m;let h;let g,e,w,u=!1;var v=function(a){let d,e;var g;let h=a.box?0:a.padding||0,b=g=0,f,c;if(a&&(!a.alignAttr||a.placed))return d=a.alignAttr||{x:a.attr(\"x\"),y:a.attr(\"y\")},e=a.parentGroup,a.width||(g=a.getBBox(),a.width=g.width,a.height=g.height,g=t.fontMetrics(a.element).h),f=a.width-2*h,(c={left:\"0\",center:\"0.5\",right:\"1\"}[a.alignValue])?b=+c*f:H(a.x)&&Math.round(a.x)!==a.translateX&&(b=a.x-a.translateX),{x:d.x+\n(e.translateX||0)+h-(b||0),y:d.y+(e.translateY||0)+h-g,width:a.width-2*h,height:a.height-2*h}};for(h=0;h=e.x+e.width||w.x+w.width<=e.x||w.y>=e.y+e.height||w.y+w.height<=e.y||\n((v.labelrank{v(a)||(a={radius:a||0});return l(t,g,a)};if(-1===L.symbolCustomAttribs.indexOf(\"borderRadius\")){L.symbolCustomAttribs.push(\"borderRadius\",\"brBoxHeight\",\"brBoxY\");const h=C.prototype.symbols.arc;C.prototype.symbols.arc=function(a,g,l,m,d={}){a=h(a,g,l,m,d);const {innerR:e=0,r=l,start:q=0,end:t=0}=d;if(d.open||!d.borderRadius)return a;l=t-q;g=Math.sin(l/2);d=Math.max(Math.min(p(d.borderRadius||0,r-e),(r-e)/2,r*g/(1+g)),0);l=Math.min(d,l/Math.PI*2*e);for(g=a.length-1;g--;){{let e=\nvoid 0,h=void 0,k=void 0;m=a;var b=g,f=1this.borderWidth&&(t=\"all\");t||(t=\"end\");const v=Math.min(p(a.radius,b),b/2,\"all\"===t?f/2:Infinity)||0;\"end\"===t&&(m&&(l-=v),d+=v);u(h,{brBoxHeight:d,brBoxY:l,r:v})}}},{order:9})}y={optionsToObject:m};\"\";return y});M(a,\"Core/Responsive.js\",[a[\"Core/Utilities.js\"]],function(a){const {diffObjects:x,extend:I,find:L,merge:C,pick:z,uniqueKey:H}=a;var B;(function(u){function v(a,l){const h=a.condition;(h.callback||function(){return this.chartWidth<=\nz(h.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=z(h.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=z(h.minWidth,0)&&this.chartHeight>=z(h.minHeight,0)}).call(this)&&l.push(a._id)}function l(a,l){const h=this.options.responsive;var g=this.currentResponsive;let e=[];!l&&h&&h.rules&&h.rules.forEach(a=>{\"undefined\"===typeof a._id&&(a._id=H());this.matchResponsiveRule(a,e)},this);l=C(...e.map(a=>L((h||{}).rules||[],e=>e._id===a)).map(a=>a&&a.chartOptions));l.isResponsiveOptions=!0;e=e.toString()||void 0;\ne!==(g&&g.ruleIds)&&(g&&this.update(g.undoOptions,a,!0),e?(g=x(l,this.options,!0,this.collectionsWithUpdate),g.isResponsiveOptions=!0,this.currentResponsive={ruleIds:e,mergedOptions:l,undoOptions:g},this.update(l,a,!0)):this.currentResponsive=void 0)}const p=[];u.compose=function(t){a.pushUnique(p,t)&&I(t.prototype,{matchResponsiveRule:v,setResponsive:l});return t}})(B||(B={}));\"\";\"\";return B});M(a,\"masters/highcharts.src.js\",[a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"],a[\"Core/Defaults.js\"],a[\"Core/Animation/Fx.js\"],\na[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Templating.js\"],a[\"Core/Renderer/RendererUtilities.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Renderer/HTML/HTMLElement.js\"],a[\"Core/Renderer/HTML/HTMLRenderer.js\"],a[\"Core/Axis/Axis.js\"],a[\"Core/Axis/DateTimeAxis.js\"],a[\"Core/Axis/LogarithmicAxis.js\"],a[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"],a[\"Core/Axis/Tick.js\"],a[\"Core/Tooltip.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Pointer.js\"],\na[\"Core/Legend/Legend.js\"],a[\"Core/Chart/Chart.js\"],a[\"Core/Axis/Stacking/StackingAxis.js\"],a[\"Core/Axis/Stacking/StackItem.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Series/Column/ColumnSeries.js\"],a[\"Series/Column/ColumnDataLabel.js\"],a[\"Series/Pie/PieSeries.js\"],a[\"Series/Pie/PieDataLabel.js\"],a[\"Core/Series/DataLabel.js\"],a[\"Core/Responsive.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Time.js\"]],function(a,y,I,L,C,z,H,B,u,v,l,p,t,m,h,g,e,w,E,F,d,k,r,q,G,b,f,c,n,M,D,K,U,T){a.animate=\nC.animate;a.animObject=C.animObject;a.getDeferredAnimation=C.getDeferredAnimation;a.setAnimation=C.setAnimation;a.stop=C.stop;a.timers=L.timers;a.AST=z;a.Axis=t;a.Chart=k;a.chart=k.chart;a.Fx=L;a.Legend=d;a.PlotLineOrBand=g;a.Point=E;a.Pointer=F;a.Series=G;a.StackItem=q;a.SVGElement=u;a.SVGRenderer=v;a.Templating=H;a.Tick=e;a.Time=T;a.Tooltip=w;a.Color=U;a.color=U.parse;p.compose(v);l.compose(u);F.compose(k);d.compose(k);a.defaultOptions=I.defaultOptions;a.getOptions=I.getOptions;a.time=I.defaultTime;\na.setOptions=I.setOptions;a.dateFormat=H.dateFormat;a.format=H.format;a.numberFormat=H.numberFormat;a.addEvent=y.addEvent;a.arrayMax=y.arrayMax;a.arrayMin=y.arrayMin;a.attr=y.attr;a.clearTimeout=y.clearTimeout;a.correctFloat=y.correctFloat;a.createElement=y.createElement;a.css=y.css;a.defined=y.defined;a.destroyObjectProperties=y.destroyObjectProperties;a.discardElement=y.discardElement;a.distribute=B.distribute;a.erase=y.erase;a.error=y.error;a.extend=y.extend;a.extendClass=y.extendClass;a.find=\ny.find;a.fireEvent=y.fireEvent;a.getMagnitude=y.getMagnitude;a.getStyle=y.getStyle;a.inArray=y.inArray;a.isArray=y.isArray;a.isClass=y.isClass;a.isDOMElement=y.isDOMElement;a.isFunction=y.isFunction;a.isNumber=y.isNumber;a.isObject=y.isObject;a.isString=y.isString;a.keys=y.keys;a.merge=y.merge;a.normalizeTickInterval=y.normalizeTickInterval;a.objectEach=y.objectEach;a.offset=y.offset;a.pad=y.pad;a.pick=y.pick;a.pInt=y.pInt;a.relativeLength=y.relativeLength;a.removeEvent=y.removeEvent;a.seriesType=\nb.seriesType;a.splat=y.splat;a.stableSort=y.stableSort;a.syncTimeout=y.syncTimeout;a.timeUnits=y.timeUnits;a.uniqueKey=y.uniqueKey;a.useSerialIds=y.useSerialIds;a.wrap=y.wrap;c.compose(f);D.compose(G);m.compose(t);h.compose(t);M.compose(n);g.compose(t);K.compose(k);r.compose(t,k,G);w.compose(F);return a});a[\"masters/highcharts.src.js\"]._modules=a;return a[\"masters/highcharts.src.js\"]});\n//# sourceMappingURL=highcharts.js.map","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tcache['$' + typedArray] = callBind(arr.slice);\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, typedArray) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t}\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nvar trySlices = function tryAllSlices(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, name) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tgetter(value);\n\t\t\t\tfound = $slice(name, 1);\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","export*from\"@lit/reactive-element\";export*from\"lit-html\";export{LitElement,UpdatingElement,_$LE}from\"./lit-element.js\";export*from\"@lit/reactive-element/decorators/base.js\";export*from\"@lit/reactive-element/decorators/custom-element.js\";export*from\"@lit/reactive-element/decorators/property.js\";export*from\"@lit/reactive-element/decorators/state.js\";export*from\"@lit/reactive-element/decorators/event-options.js\";export*from\"@lit/reactive-element/decorators/query.js\";export*from\"@lit/reactive-element/decorators/query-all.js\";export*from\"@lit/reactive-element/decorators/query-async.js\";export*from\"@lit/reactive-element/decorators/query-assigned-elements.js\";export*from\"@lit/reactive-element/decorators/query-assigned-nodes.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */console.warn(\"The main 'lit-element' module entrypoint is deprecated. Please update your imports to use the 'lit' package: 'lit' and 'lit/decorators.ts' or import from 'lit-element/lit-element.ts'. See https://lit.dev/msg/deprecated-import-path for more information.\");\n//# sourceMappingURL=index.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"\":\"\",u=f;for(let i=0;i\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"\")+(2===i?\"\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","inspect","_require$types","isPromise","isRegExp","objectAssign","Object","assign","objectIs","is","Map","lazyLoadComparison","comparison","warned","assert","module","exports","ok","NO_EXCEPTION_SENTINEL","innerFail","message","Error","innerOk","fn","argLen","value","generatedMessage","err","actual","expected","operator","stackStartFn","_len","arguments","length","args","Array","_key","apply","concat","fail","internalMessage","argsLen","undefined","process","emitWarning","console","warn","bind","errArgs","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","keys","_this","this","instance","Constructor","TypeError","_classCallCheck","forEach","key","test","expectedException","msg","name","push","a","b","compareExceptionKey","isPrototypeOf","call","getActual","e","checkIsPromise","then","catch","waitForActual","promiseFn","Promise","resolve","resultPromise","expectsError","error","details","fnType","expectsNoError","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","result","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","split","shift","tmp1","i","pos","indexOf","slice","join","_defineProperty","defineProperty","enumerable","configurable","writable","_defineProperties","target","props","descriptor","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","toString","has","get","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","Reflect","construct","sham","Proxy","Date","isNativeReflectConstruct","o","p","setPrototypeOf","__proto__","getPrototypeOf","endsWith","str","search","this_len","substring","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","source","inspectValue","val","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","res","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","stderr","isTTY","columns","count","Math","floor","maxCount","log","repeat","pop","maxLines","max","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","options","limit","stackTraceLimit","String","getColorDepth","base","_res","knownOperators","code","captureStackTrace","protoProps","staticProps","subClass","superClass","_inherits","custom","recurseTimes","ctx","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","util","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","isArray","len","map","determiner","substr","replace","type","start","includes","reason","inspected","RangeError","input","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","_iterableToArrayLimit","_nonIterableRest","regexFlagsSupported","flags","arrayFromSet","array","arrayFromMap","objectGetOwnPropertySymbols","numberIsNaN","Number","isNaN","uncurryThis","f","hasOwnProperty","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","pow","getOwnNonIndexProperties","compare","x","y","min","kNoIterator","kIsArray","kIsSet","kIsMap","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","RegExp","byteLength","Uint8Array","buffer","byteOffset","areSimilarTypedArrays","offset","areSimilarFloatArrays","_keys","_keys2","size","valueOf","Boolean","BigInt","isEqualBoxedPrimitive","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","memo","aValues","Set","add","setMightHaveLoosePrim","bValues","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","item","mapHasEqualEntry","mapEquiv","keysA","objEquiv","delete","setValues","findLooseMatchingPrimitives","prim","altValue","curB","key1","key2","addMore","Highcharts","customElement","_dec","_class2","LitElement","properties","classes","data","attribute","reflect","super","wrapper","switchedView","firstUpdated","changedProperties","fetchData","fetch","response","json","errMsg","STRINGS","sort","Titlos","_enableChart","initGrid","shadowRoot","querySelector","info","paging","searching","title","width","Utils","amountColWidth","className","render","row","toLocaleString","getChartContainer","_switchView","classList","toggle","_download","exportData","Sinolo","ws","XLSX","json_to_sheet","wb","book_new","book_append_sheet","chart","colors","getHighchartColors","text","credits","enabled","xAxis","yAxis","legend","series","showInLegend","colorByPoint","plotOptions","states","inactive","opacity","tooltip","headerFormat","pointFormatter","round","useHTML","borderRadius","styles","fontAwesome","style","_class","css","t","_$AU","_$AM","_$AT","_$Ct","_$Ci","_$AS","update","_$litDirective$","values","strings","s","r","it","nt","element","remove","num","scale","sig","getPolicyColors","id","getFundsColors","getCohesionColors","unit","color","radialGradient","cx","cy","stops","brighten","html","classMap","tableOptions","getChartContainerSplit","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","customInspectSymbol","Buffer","K_MAX_LENGTH","createBuffer","buf","arg","encodingOrOffset","allocUnsafe","from","string","encoding","isEncoding","write","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","isBuffer","checked","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","equals","trim","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_BUFFER_OUT_OF_BOUNDS","received","isInteger","abs","INVALID_BASE64_RE","leadSurrogate","base64clean","src","dst","alphabet","table","i16","BufferBigIntNotDefined","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","func","applyBind","now","times","g","window","functions","label","time","duration","format","object","expression","tuple","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","defineProperties","predicates","firstSource","to","nextSource","keysArray","nextIndex","nextKey","desc","polyfill","isCallable","thisArg","receiver","forEachArray","charAt","forEachString","forEachObject","that","bound","boundLength","boundArgs","Empty","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","JSON","parseFloat","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","match","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","$Object","origSymbol","hasSymbolSham","symObj","getOwnPropertyNames","syms","toStringTag","d","CustomEvent","dispatchEvent","detail","path","_modules","G","z","sqrt","C","atan2","u","PI","ceil","addEvent","h","correctFloat","defined","extend","v","merge","pick","D","splat","collectionsWithUpdate","getHoverPane","pane","chartX","plotLeft","chartY","plotTop","center","polar","inverted","isInsidePlot","some","axis","normalizedStartAngleRad","normalizedEndAngleRad","hoverPane","visible","shared","directTouch","enableMouseTracking","hoverPoint","plotX","plotY","Pane","background","coll","defaultOptions","innerSize","startAngle","defaultBackgroundOptions","shape","borderWidth","borderColor","backgroundColor","linearGradient","x1","y1","x2","y2","MAX_VALUE","innerRadius","outerRadius","init","setOptions","angular","renderer","group","attr","zIndex","updateCenter","renderBackground","destroy","styledMode","stroke","getPlotBandPath","getCenter","axes","area","pointClass","seriesTypes","isNumber","low","high","setState","state","plotHigh","toPixels","plotLow","stateMarkerGraphic","lowerStateMarkerGraphic","upperStateMarkerGraphic","graphic","graphics","plotHighX","plotLowX","haloPath","isInside","isTopInside","isValid","noop","column","q","points","toYData","highToXY","postTranslate","rectPlotX","getGraphPath","connectEnds","connectNulls","l","step","yBottom","doCurve","isNull","polarPlotY","left","right","graphPath","areaPath","isArea","xMap","drawDataLabels","dataLabels","F","xHigh","yHigh","xLow","yLow","_hasPointLabels","inside","_plotY","dataLabel","dataLabelUpper","below","align","verticalAlign","alignDataLabel","drawPoints","origProps","negative","zone","threshold","zones","getZone","lineWidth","pointFormat","trackByArea","pointArrayMap","translate","dataModify","modifyValue","order","tooltipPos","deferTranslatePolar","pointValKey","setStackedPoints","registerSeriesType","spline","getPointSpline","pointAttribs","highPlot","A","Q","N","doQuartiles","I","whiskerLength","B","H","M","shapeArgs","J","O","P","q1Plot","lowPlot","q3Plot","stem","addClass","whiskers","box","medianShape","stemColor","stemWidth","dashstyle","stemDashStyle","dashStyle","whiskerColor","whiskerWidth","whiskerDashStyle","fillColor","lineColor","boxDashStyle","medianColor","medianWidth","medianDashStyle","strokeWidth","medianPlot","q1","median","q3","connectorClassName","connectorColor","connectorDistance","connectorWidth","labels","allowOverlap","formatter","fontSize","maxSize","minSize","legendIndex","ranges","sizeBy","sizeByAbsoluteValue","zThreshold","parse","arrayMax","arrayMin","stableSort","symbols","selected","movementX","maxLabel","addToLegend","drawLegendSymbol","itemDistance","legendItem","getMaxLabelSize","radius","labelWidth","labelHeight","height","bubbleLegend","autoRanges","seriesIndex","baseline","rtl","marker","fillOpacity","setOpacity","getRangeRadius","bubbleAttribs","connectorAttribs","labelAttribs","getRadius","connectors","bubbleItems","symbol","itemStyle","translateX","translateY","renderRange","hideOverlappingLabels","circle","colorIndex","crispLine","formatLabel","getBBox","placed","alignAttr","numberFormatter","newOpacity","oldOpacity","show","hide","getRanges","isBubble","ignoreSeries","zData","zMin","displayNegative","zMax","reverse","predictBubbleSizes","floating","layout","lastLineHeight","plotSizeX","plotSizeY","getPxExtremes","minPxSize","maxPxSize","updateRanges","correctSizes","allItems","getMargins","setScale","updateNames","ticks","isNew","isNewLabel","itemHeight","destroyItem","defaultPrevented","objectEach","wrap","compose","pushUnique","scatter","ttBelow","isXAxis","bubblePadding","ignoreHiddenSeries","allowZoomOutside","onPoint","getRadii","radii","dataMin","logarithmic","clamp","yData","beforePadding","animate","animationLimit","hasRendered","markerAttribs","animation","bubbleZExtremes","getZExtremes","hasData","processedXData","translateBubble","zoneAxis","dlBox","plotWidth","plotHeight","point","hover","radiusPlus","softThreshold","halo","turboThreshold","applyZones","buildKDTree","parallelArrays","trackerGroups","specialGroup","arearange","stacking","translate3dPoints","translate3dShapes","afterColumnTranslate","startAngleRad","isRadial","chartWidth","chartHeight","minPointLength","rectPlotY","barX","shapeType","arc","pointWidth","crispCol","where","pointRange","adjustForMissingColumns","drawGraph","getSymbol","drawTracker","getColumnMetrics","dense","closestPointRange","transA","translatedThreshold","getThreshold","barW","pointXOffset","pointPadding","total","grouping","linkedTo","linkedParent","columnMetrics","pInt","generatePoints","dial","baseLength","rearLength","baseWidth","topWidth","overshoot","endAngleRad","rotation","percentage","pivot","plotGroup","seriesGroup","clip","clipRect","setData","processData","redraw","crop","defer","fixedBox","forceDL","noSharedTooltip","container","hasDraggableNodes","draggable","onMouseDown","onMouseMove","ownerDocument","onMouseUp","pointer","normalize","fixedPosition","inDragMode","graphLayoutsLookup","hasDragged","redrawHalo","restartSimulation","enableSimulation","fixedDraggable","updateSimulation","stop","maxIterations","temperature","isStable","beforeStep","setAnimation","integrations","layouts","bubble","mass","degree","NaN","removeElementFromCollection","nodes","firePointEvent","isParentNode","parentNode","allowPointSelect","select","getSelectedPoints","getSelectedParentNodes","crisp","useSimulation","parentNodeFormatter","parentNodeTextPath","padding","transition","layoutAlgorithm","initialPositions","initialPositionRadius","parentNodeLimit","seriesInteraction","dragBetweenSeries","parentNodeOptions","gravitationalConstant","maxSpeed","integration","splitSeries","friction","attractive","getMass","diffTemperature","fromNode","toNode","attractiveForceFunction","barycenter","xFactor","yFactor","top","getK","integrate","dispX","prevX","dispY","prevY","vectorLength","repulsive","repulsiveForceFunction","getDegree","isInternal","isEmpty","body","boxSize","divideBox","getBoxPosition","insert","updateMassAndCenter","maxDepth","root","isRoot","calculateMassAndCenter","visitNodeRecursive","insertNodes","win","isFunction","fireEvent","attractiveForce","currentStep","initialRendering","links","repulsiveForce","quadTree","simulation","euler","verlet","setInitialRendering","approximation","forces","initPositions","finishedAnimating","setK","resetSimulation","createQuadTree","applyLimits","coolDown","startTemperature","prevSystemTemperature","systemTemperature","getSystemTemperature","cancelAnimationFrame","requestAnimationFrame","setArea","linkLength","addElementsToCollection","clear","forcedStop","setMaxIterations","setTemperature","setDiffTemperature","setCircularPositions","setRandomPositions","linksTo","linksFrom","cos","sin","force","barycenterForces","getBarycenter","barnesHutApproximation","getDistXY","theta","repulsiveForces","attractiveForces","applyLimitBox","getDistR","absX","absY","allDataPoints","index","packedbubble","calculateParentRadius","neighbours","parentNodeRadius","syncTimeout","animObject","initDataLabels","dataLabelsGroup","initDataLabelsGroup","initDataLabelsDefer","deferDataLabels","parentNodeMass","xData","accumulateAllPoints","addLayout","graphLayoutsStorage","forExport","collisionNmb","addSeriesLayout","parentNodeLayout","createParentNodes","seriesBox","calculateZExtremes","checkOverlap","normal","dataLabelOnNull","deferLayout","formatPrefix","parentNodesGroup","graph","div","getPointRadius","w","minRadius","maxRadius","eventsToUnbind","isDirty","removed","addPoint","placeBubbles","positionBubble","stages","rawPositions","resizeRadius","asin","acos","POSITIVE_INFINITY","NEGATIVE_INFINITY","diffY","diffX","setVisible","axisTypes","isCartesian","requireSorting","indexateNodes","searchPoint","line","stickyTracking","followPointer","legendSymbol","waterfall","stacks","changed","alreadyChanged","stackLabels","renderStackTotals","stackTotalGroup","dummyStackItem","stackTotal","Composition","getClassName","isSum","isIntermediateSum","stackKey","stackedYPos","stackedYNeg","processedYData","dataMax","updateParallelArrays","upColor","getCrispPath","reversed","connectorThreshold","minPointLengthOffset","stackState","K","usePercentage","negTotal","posTotal","stateIndex","absolutePos","absoluteNeg","getExtremes","lineWidthPlus","setOffset","isPointInside","getZonesGraphs","showLine","relativeLength","autoConnect","isCircular","userMax","categories","tickPositions","getPosition","horiz","open","innerR","xBounds","yBounds","angleRad","getOffset","axisOffset","side","L","thickness","gridLineInterpolation","getPlotLinePath","isCrosshair","getCrosshairPosition","getLinePath","middle","beforeSetTickPositions","createLabelCollector","getTitlePosition","R","setAxisSize","setAxisTranslation","endAngle","angle","preventDefault","labelCollectors","labelCollector","userOptions","isHidden","T","setTitle","setCategories","defaultPolarOptions","X","Y","defaultXAxisOptions","defaultYAxisOptions","Z","reversedStacks","U","V","S","distance","fontMetrics","tickInterval","sector","minPixelPadding","minPointOffset","plotBands","W","gridLineWidth","textOverflow","maxPadding","minPadding","showLastLabel","tickLength","minorGridLineWidth","minorTickInterval","minorTickLength","minorTickPosition","minorTickWidth","tickPosition","tickWidth","rightContX","rightContY","leftContX","leftContY","prevPointCont","startOnTick","endOnTick","mouseDownX","mouseDownY","zoomHor","toValue","zoomVert","attrs","isRadialSeries","isRadialBar","kdByAngle","findNearestPointBy","toXY","hasParallelCoordinates","MIN_VALUE","hasClipCircleSetter","clipCircle","createElement","defs","clipPath","setClip","searchKDTree","clientX","unshift","getStackIndicator","markerGroup","pie","scaleX","scaleY","find","uniqueKey","polarPlotX","Axis","Chart","Legend","Series","Pointer","Tick","areasplinerange","SVG_NS","product","version","doc","document","svg","createElementNS","createSVGRect","userAgent","navigator","isChrome","isFirefox","isMS","opera","isSafari","isTouchDevice","isWebKit","deg2rad","hasBidiBug","hasTouch","TouchEvent","marginNames","supportsPassiveEvents","addEventListener","removeEventListener","charts","dateFormats","symbolSizes","chartCount","params","messages","nodeType","setAttribute","getAttribute","removeAttribute","LN10","toPrecision","nodeName","hcEvents","createEvent","initEvent","easeInOutSine","each","grep","reduce","random","jQuery","highcharts","Point","runTrackerClick","passive","capture","clearTimeout","border","margin","appendChild","destroyObjectProperties","diffObjects","discardElement","parentElement","removeChild","erase","extendClass","getClosestDistance","getMagnitude","getNestedProperty","getStyle","offsetWidth","scrollWidth","getBoundingClientRect","offsetHeight","scrollHeight","getComputedStyle","getPropertyValue","inArray","insertItem","isClass","isDOMElement","isObject","isString","normalizeTickInterval","documentElement","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","pad","removeEvent","safeI","setTimeout","timeUnits","millisecond","second","minute","hour","day","week","month","year","useSerialIds","alignThresholds","panning","colorCount","allowMutatingData","spacing","resetZoomButton","theme","reflow","zooming","singleTouch","resetButton","plotBorderColor","None","rgba","Color","names","parsers","regex","tweenTo","black","Intl","DateTimeFormat","formatRange","variableTimezone","useUTC","getTimezoneOffset","timezoneOffsetFunction","timezoneOffset","setTime","timezone","makeTime","UTC","moment","tz","utcOffset","dateFormat","lang","invalidDate","weekdays","shortWeekdays","shortMonths","months","getSeconds","toUpperCase","resolveDTLFormat","main","getTimeTicks","unitRange","higherRanks","totalRange","getDateFormat","loading","decimalPoint","numericSymbols","resetZoom","resetZoomTitle","thousandsSep","global","fontWeight","widthAdjust","subtitle","caption","alignColumns","itemMarginBottom","itemMarginTop","labelFormatter","navigation","activeColor","inactiveColor","cursor","textDecoration","itemHoverStyle","itemHiddenStyle","shadow","itemCheckboxStyle","squareSymbol","symbolPadding","labelStyle","textAlign","dateTimeLabelFormats","footerFormat","headerShape","hideDelay","snap","stickOnContact","href","defaultTime","getOptions","elem","prop","dSetter","paths","toD","run","stopped","timers","startTime","curAnim","complete","easing","initPath","startX","endX","fillSetter","strokeSetter","pathArray","getDeferredAnimation","globalAnimation","trustedTypes","createPolicy","createHTML","DOMParser","parseFromString","filterUserAttributes","allowedAttributes","allowedReferences","parseStyle","setElementHTML","innerHTML","emptyHTML","addToDOM","parseMarkup","tagName","textContent","createTextNode","bypassHTMLFiltering","allowedTags","namespaceURI","attributes","children","childNodes","isBlock","startInner","elseBody","toExponential","toFixed","divide","eq","ge","gt","le","lt","multiply","ne","subtract","unless","helpers","numberFormat","distribute","reducedLen","rank","targets","onEvents","_defaultGetter","_defaultSetter","parentGroup","textStr","buildText","added","handleZ","zIndexSetter","onAdd","afterSetters","doTransform","updateTransform","alignedObjects","alignOptions","alignByTranslate","alignTo","plotBox","alignSetter","alignValue","hidden","applyTextOutline","getContrast","fakeTS","removeTextOutline","cloneNode","querySelectorAll","dy","insertBefore","firstChild","symbolCustomAttribs","symbolName","symbolAttr","url","complexColor","gradients","radialReference","gradientUnits","getRadialAttr","radAttr","gradient","textWidth","textOutline","dashstyleSetter","ownerSVGElement","onclick","onmouseout","onmouseover","onmousemove","safeRemoveChild","pathToSegments","fadeOut","cache","cacheKeys","rootFontSize","display","fa","htmlGetBBox","hasClass","visibility","on","opacitySetter","removeClass","setRadialReference","setTextPath","startOffset","textAnchor","textPath","undo","dx","transform","textCache","offsetX","offsetY","shadowDefinition","textSetter","textPxLength","titleSetter","getElementsByTagName","toFront","matrix","rotationOriginX","rotationOriginY","visibilitySetter","xGetter","yGetter","matrixSetter","rotationOriginXSetter","rotationOriginYSetter","rotationSetter","scaleXSetter","scaleYSetter","translateXSetter","translateYSetter","verticalAlignSetter","rendererTypes","getRendererType","registerRendererType","Renderer","paddingRightSetter","paddingLeftSetter","paddingSetter","anchorX","anchorY","symbolKey","bBox","emptyBBox","baselineOffset","needsBox","deferredAttr","alignFactor","xSetting","anchorXSetter","boxAttr","getCrispAdjust","anchorYSetter","ySetting","textProps","updateTextPadding","updateBoxSize","paddingLeft","heightSetter","heightSetting","rSetter","widthSetting","getPaddedWidth","firstLineMetrics","rect","hasBoxWidthChanged","widthSetter","paddingRight","xSetter","ySetter","longArc","clockwise","callout","diamond","roundedRect","square","triangle","svgElement","textLineHeight","lineHeight","ellipsis","noWrap","whiteSpace","buildSVG","actualWidth","modifyTree","modifyDOM","unescapeEntities","nextSibling","previousSibling","getLineHeight","truncate","Node","TEXT_NODE","baseVal","fontStyle","getSubStringLength","escapes","imgCount","chartIndex","boxWrapper","getReferenceURL","allowHTML","setSize","unSubPixelFix","definition","elementFromPoint","location","fontFamily","setStyle","Element","stdDeviation","button","disabled","pointerEvents","stopPropagation","rx","ry","rGetter","viewBox","alignElements","image","preserveAspectRatio","Image","imgwidth","imgheight","backgroundSize","isImg","onload","hasLoaded","rotCorr","draw","getSpanCorrection","htmlCss","htmlUpdateTransform","setSpanRotation","xCorr","yCorr","overflow","offsetLeft","offsetTop","marginLeft","marginTop","oldTextWidth","innerText","cTT","oldRotation","oldAlign","alignOnAdd","transformOrigin","addedSetters","classSetter","alignTicks","allowDecimals","panningEnabled","zoomEnabled","gridLineDashStyle","gridZIndex","autoRotation","autoRotationLimit","indentation","reserveSpace","staggerLines","minorGridLineDashStyle","minorTicksPerMajor","opposite","showEmpty","showFirstLabel","startOfWeek","tickPixelInterval","tickmarkPlacement","uniqueNames","minorGridLineColor","minorTickColor","gridLineColor","tickColor","defaultLeftAxisOptions","defaultRightAxisOptions","defaultBottomAxisOptions","defaultTopAxisOptions","registerEventOptions","eventOptions","events","parameters","tickmarkOffset","addLabel","category","lin2log","dateTime","grid","unitName","getXDateFormat","isFirst","isLast","dateTimeLabelFormat","tick","tickPositionInfo","defaultLabelFormatter","shortenLabel","getSlotWidth","_addedPlotLB","moveLabel","movedLabel","createLabel","labelGroup","oldChartHeight","transB","oldChartWidth","bottom","getLabelPosition","isLinked","tickRotCorr","reserveSpaceDefault","labelOffset","labelAlign","getLabelSize","getMarkPath","handleOverflow","labelLeft","labelRight","labelPos","xy","isActive","renderGridLine","renderMark","renderLabel","gridLine","gridGroup","old","acrossPanes","tickSize","mark","axisGroup","replaceMovedLabel","tickAmount","translationSlope","positiveValuesOnly","pointRangePadding","plotLinesAndBandsGroups","plotLinesAndBands","paddedTicks","overlap","minorTicks","maxLabelLength","labelEdge","hasVisibleSeries","hasNames","alternateBands","isZAxis","minRange","userMinRange","maxZoom","crosshair","crosshairs","orderItems","labelRotation","numericSymbolMagnitude","getSeriesExtremes","getXExtremes","applyExtremes","isOrdinal","brokenAxis","hasBreaks","lin2val","val2lin","translatedValue","getLinearTickPositions","single","getMinorTickInterval","getMinorTickPositions","getLogTickPositions","normalizeTimeTickInterval","trimTicks","adjustForMinRange","ceiling","xIncrement","log2lin","getClosest","nameToX","autoIncrement","isDirtyData","axisPointRange","pointPlacement","ordinal","slope","staticScale","minFromRange","setTickInterval","getTickAmount","userMin","softMin","softMax","forceCrop","forceCropping","hasExtremesChanged","minTickInterval","unsquish","setTickPositions","tickPositioner","hasVerticalPanning","positions","adjustTickAmount","alignToOthers","thresholdAlignment","getThresholdAlignment","finalTickAmt","forceRedraw","resetStacks","buildStacks","cleanStacks","panningState","setExtremes","kdTree","eventArgs","zoom","newMin","newMax","displayBtn","trigger","zoomed","offsets","autoLabelAlign","labelMetrics","slotWidth","renderUnsquish","specificTextOverflow","addTitle","axisTitle","generateTick","axisParent","crossing","clipOffset","ja","showAxis","titleOffset","renderLine","axisTitleMargin","getMaxLabelDimensions","maxLabelDimensions","axisLine","titlePosition","renderMinorTick","renderTick","isColumn","alternateGridColor","PlotLineOrBand","plotLines","addPlotBandOrLine","isPlaced","getKeepProps","keepProps","keepEvents","drawCrosshair","cross","crosshairPos","stackY","hideCrosshair","isDirtyBox","Additions","minorAutoInterval","isFlat","removePlotBandOrLine","addPlotBand","addPlotLine","removePlotBand","removePlotLine","svgElem","eventsAdded","getLabelText","allowShared","isSticky","outside","bodyFormatter","tooltipOptions","tooltipFormatter","cleanSplit","tt","defaultFormatter","tooltipFooterHeaderFormatter","hideTimer","tooltipTimeout","getAnchor","getLabel","shouldStickOnContact","getPlayingField","clientWidth","clientHeight","getChartPosition","hoverSeries","scrollablePixelsX","scrollablePixelsY","inClass","move","refresh","applyInactiveState","getLabelConfig","renderSplit","isDirectTouch","shouldShowTooltip","spacingBox","updatePosition","da","scrollingContainer","positioner","ha","isHeader","ignoreX","boxWidth","ca","la","hoverPoints","tracker","styledModeFormat","isFooter","labelConfig","xDateFormat","tooltipDateKeys","destroyed","animateBeforeDestroy","startXPos","getGraphicalProps","singular","startYPos","plural","applyOptions","optionsToObject","relativeXValue","dataSorting","destroyElements","onMouseOut","pointCount","importEvents","ctrlKey","metaKey","shiftKey","nonZonedColor","hasNewShapeType","resolveColor","setNestedProperty","_hasPointMarkers","colorCounter","shouldDraw","valueDecimals","valuePrefix","valueSuffix","hasMockGraphic","connector","hasCartesianSeries","legendType","isDirtyLegend","removePoint","selectedStaging","accumulate","inactiveOtherPoints","onMouseOver","getChartCoordinatesFromPoint","runPointActions","hasImportedEvents","currentSymbol","isCluster","lastValidTouch","pinchDown","runChartClick","linkedSeries","navigatorSeries","setAllPointsToState","unbindDocumentMouseUp","unbindDocumentTouchEnd","clearInterval","getSelectionMarkerAttrs","drag","panKey","selectionMarker","touch","visiblePlotOnly","mapView","zoomX","zoomY","selectionMarkerFill","pan","dragStart","mouseIsDown","cancelClick","getSelectionBox","drop","hasPinched","originalEvent","scaleGroups","_cursor","findNearestKDPoint","distX","dist","isNode","chartPosition","getCoordinates","getHoverData","boosted","boost","getPoint","getPointFromEvent","onTrackerMouseOut","relatedTarget","click","setDOMEvents","touches","changedTouches","pageX","pageY","onContainerClick","onContainerMouseDown","buttons","onContainerMouseMove","zoomOption","onContainerMouseLeave","hoverChartIndex","reset","onContainerMouseEnter","setHoverChartIndex","touchSelect","openMenu","onDocumentTouchEnd","onContainerTouchMove","onContainerTouchStart","onDocumentMouseMove","onDocumentMouseUp","pinch","hasZoom","followTouchMove","initiated","cancelable","bounds","pinchTranslate","pinchTranslateDirection","unDocMouseMove","hoverX","getPlotBox","clipBox","onmousedown","renderTo","pinchType","dissolve","contentGroup","maxLegendWidth","maxItemWidth","legendWidth","legendHeight","lastItemY","itemY","itemX","initialItemY","pages","proximate","scrollGroup","widthOption","totalItemWidth","titleHeight","symbolWidth","symbolHeight","positionCheckboxes","proximatePositions","positionItems","colorizeItem","isMarker","positionItem","isResizing","checkbox","getAllItems","clipHeight","scrollOffset","checkboxOffset","renderTitle","setText","labelFormat","renderItem","createCheckboxForItem","showCheckbox","setItemEvents","itemWidth","layoutItem","getAlignment","adjustMargins","maxHeight","arrowSize","nav","currentPage","fullHeight","pageIx","up","scroll","pager","down","upTracker","downTracker","browserEvent","defaultChecked","lineMarker","linecap","context","rectangle","symbolRadius","enabledThreshold","cropThreshold","seriesType","ia","ba","aa","bindAxes","getColor","setDataSortingOptions","optionalAxis","pointIntervalUnit","pointStart","pointInterval","enabledDataSorting","allowDG","negativeColor","negativeFillColor","getName","getCyclic","getPointsCollection","hasGroupedData","findPointIndex","touched","matchByName","cropped","cropStart","updateData","hasDerivedData","sortData","getFirstValidPoint","sortKey","getProcessedData","getExtremesFromAll","cropData","basePointRange","cropShoulder","processedData","dataGrouping","groupAll","dataGroup","groupMap","stackedYData","activeYData","dataExtremes","pointPlacementToXValue","startFromThreshold","negStacks","irregularWidths","closestPointRangePx","getValidPoints","getClipBox","getSharedClipKey","sharedClipKey","sharedClips","afterAnimate","colorAxis","hasImage","keepEventsForUpdate","removeEvents","clips","animationTimeout","survive","resetZones","invertible","redrawPoints","kdAxisArray","buildingKdTree","kdNow","linkSeries","initialType","joinBy","mapData","hasOptionChanged","missingModuleFor","setName","mouseOver","mouseOut","labelBySeries","types","registerType","ka","ea","symbolCounter","getArgs","setZoomOptions","zoomType","zoomKey","zoomBySingleTouch","callback","showAxes","firstRender","initSeries","setSeriesData","getSeriesOrderByLinks","scrollablePlotBox","paneCoordinates","ignoreY","setResponsive","temporaryDisplay","layOutTitles","centerInCategory","updateTotals","getStacks","extKey","drawChartBox","getAxes","getSelectedSeries","applyDescription","isStock","getContainerBox","getChartSize","containerBox","hcOrigStyle","hcOrigDetached","contains","hcOricDetached","setProperty","setClassName","getContainer","getElementById","skipClone","userSelect","outline","exporting","resetMargins","marginBottom","getAxisMargins","setChartSize","isPrinting","reflowTimeout","setReflow","ResizeObserver","observe","marginRight","plotBorderWidth","skipAxes","plotBGImage","plotBackgroundColor","plotBackgroundImage","chartBackground","plotBackground","plotBorder","plotShadow","propFromSeries","isUpdating","renderSeries","seriesGroupShadow","addCredits","mapCredits","scroller","callbacks","warnIfA11yModuleNotLoaded","accessibility","role","addSeries","addAxis","createAxis","addColorAxis","showLoading","loadingDiv","loadingSpan","loadingShown","showDuration","hideLoading","hideDuration","isResponsiveOptions","propsRequireUpdateSeries","propsRequireDirtyBox","propsRequireReflow","collectionsWithInit","setSubtitle","setCaption","showResetZoom","zoomOut","relativeTo","resetSelection","startMin","startMax","scrollablePlotArea","minWidth","minHeight","setUpScrolling","applyFixed","fixedDiv","WebkitOverflowScrolling","overflowX","overflowY","scrollingParent","innerContainer","moveFixedElements","fixedRenderer","scrollableMask","scrollableDirty","scrollPositionX","scrollPositionY","redrawTrigger","isNegative","cumulative","hasValidPoints","rightCliff","leftCliff","labelrank","getStackBox","xOffset","boxBottom","boxTop","defaultX","adjustStackPosition","labelBox","justifyDataLabel","oldStacks","stacksTouched","singleStacks","setGroupedPoints","modifyStacks","percentStacker","gappedPath","preventGraphAnimation","fillGraph","shiftUnit","isCliff","getStackPoints","leftNull","rightNull","groupPadding","brightness","columnIndex","maxPointWidth","paddedWidth","columnCount","pointAttrToOptions","allowShadow","_hasTracking","setDataLabelStartPos","dlOptions","property","labelDistance","contrastColor","getDataLabelPath","dataLabelPath","jitter","applyJitter","isLog","takeOrdinalPosition","slicedOffset","getStartAndEndRadians","getConnectorPath","labelPosition","connectorShapes","connectorShape","computed","alignment","connectorPosition","getTranslate","sliced","slicedTranslation","ignoreHiddenPoint","fixedOffset","breakAt","touchingSliceAt","softConnector","straight","crookedLine","crookDistance","tan","connectorPadding","maxLabelDistance","startR","drawEmpty","delayedRendering","getX","sortByAngle","half","natural","dataLabelPositioners","shortened","_pos","distributeBox","radialDistributionY","positionIndex","justify","alignToConnectors","alignToPlotEdges","radialDistributionX","_attr","sideOverflow","verifyDataLabelOverflow","placeDataLabels","moved","isOld","absoluteBox","scope","brBoxHeight","brBoxY","is3d","condition","maxWidth","_id","responsive","currentResponsive","rules","matchResponsiveRule","chartOptions","ruleIds","undoOptions","mergedOptions","AST","Fx","StackItem","SVGElement","SVGRenderer","Templating","Time","Tooltip","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ctor","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","_","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","all","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","define","getPolyfill","shim","whichTypedArray","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","isArgumentsObject","isGeneratorFunction","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","method","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","stringify","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","opts","seen","stylize","stylizeNoColor","isBoolean","_extend","isUndefined","stylizeWithColor","formatValue","styleType","primitive","simple","formatPrimitive","visibleKeys","hash","idx","arrayToHash","isError","formatError","braces","toUTCString","formatProperty","formatArray","prev","numLinesEst","reduceToSingleString","ar","re","debuglog","pid","isNullOrUndefined","isSymbol","isPrimitive","getHours","getMinutes","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","reject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","gOPD","globalThis","typedArrays","$slice","typedArray","superProto","tag","getter","trySlices","tryTypedArrays","possibleNames","HTMLSlotElement","assignedElements","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","cssText","styleSheet","replaceSync","adoptedStyleSheets","litNonce","cssRules","emptyScript","reactiveElementPolyfillSupport","toAttribute","fromAttribute","converter","hasChanged","HTMLElement","_$Ei","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","finalize","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","elementStyles","finalizeStyles","flat","_$E_","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","isConnected","hostConnected","removeController","createRenderRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","_$EC","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$Ek","_$AE","hostUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","renderOptions","host","_$Do","renderBefore","setConnected","finalized","_$litElement$","litElementHydrateSupport","litElementPolyfillSupport","litElementVersions","createComment","$","_$litType$","for","createTreeWalker","lastIndex","startsWith","el","currentNode","content","append","nextNode","hasAttributes","getAttributeNames","_$Co","_$Cl","_$AO","_$AV","_$AN","_$AD","creationScope","importNode","_$AI","_$AH","_$AA","_$AB","_$Cp","startNode","endNode","_$AR","_$AC","_$AP","handleEvent","litHtmlPolyfillSupport","litHtmlVersions","_$litPart$","customElements","kind","elements","finisher","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","utf16beread","$cptable","_getchar","_getansi","DENSE","Base64_map","Base64_encode","c1","c2","c3","e1","e2","e3","e4","Base64_decode","has_buf","node","Buffer_from","nbfs","enc","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","bconcat","bufs","maxlen","chr0","chr1","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","days","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","mixed","sgn","P_2","P_1","Q_2","Q_1","SSF_parse_date_code","b2","date","dow","dout","date1904","setDate","getFullYear","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","SSF_strip_decimal","SSF_general_num","LOG10E","SSF_small_exp","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","ss0","ss","outl","commaify","pct1","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","write_num_pct","ri","ff","aval","sign","den","rr","myn","myd","write_num_f1","carry","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","choose_fmt","in_str","SSF_split_fmt","lat","m1","m2","dateNF","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","eval_fmt","SSF_load","SSF_load_table","tbl","make_ssf","SSF_init_table","dateNFregex","CRC32","T0","signed_crc_table","TT","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","seed","CFB","fs","dirname","filename","write_dos_date","hms","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","file","parse_zip","di","mboundary","boundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","header","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","sl","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","files","mini","minifat_store","pl","namelen","__utf16le","clsid","ct","read_date","storage","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","entry","payload","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","fullPaths","HEADER_CLSID","namecmp","elt","_write","_opts","fileType","fp","fi","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","ctree","rev","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","mlen","len_eb","dst_eb","write_huff_fixed","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","bits","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","unsafe","ContentTypeMap","ctype","encoded","si","fdata","fname","cte","oi","parse_quoted_printable","fpath","utils","cfb_gc","UCFullPaths","UCPaths","UCPath","readFileSync","read_file","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","Blob","msSaveBlob","saveAs","URL","createObjectURL","chrome","downloads","download","revokeObjectURL","File","Folder","close","ks","o2","evert_key","evert","evert_num","basedate","datenum","refdate","dnthresh","refoffset","numdate","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","TextDecoder","decode","dup","fuzzynum","wt","lower_months","fuzzydate","getYear","lower","zip_add_file","zip","widx","ridx","utf8decode","zip_new","XML_HEADER","encodings","rencoding","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","htmldecode","entities","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","XMLNS","CORE_PROPS","CUST_PROPS","EXT_PROPS","CT","RELS","TCMNT","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","read_double_le","__double","is_buf","cpdoit","__readInt16LE","__readInt32BE","oI","oR","loc","oo","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","bs","av","write_double_le","hexstr","fld","parsenoop","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","XLSBRecordEnum","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","col","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","_R","_C","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","write_BrtCommentText","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","nTS","tint","rgb","VT_I2","VT_I4","VT_STRING","DocSummaryPIDDSI","SummaryPIDSI","rgbify","XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","dialogs","macros","metadata","write_ct","type2ct","evert_arr","xsd","xsi","f1","bookType","f2","f3","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","PEOPLE","VBA","get_rels_path","write_rels","rels","rid","add_rels","rId","relobj","targetmode","Id","Type","Target","TargetMode","write_rdf_type","write_meta_ods","cp_doit","write_core_props","dc","dcterms","dcmitype","Props","CreatedDate","WTF","ModifiedDate","PseudoPropsPairs","write_ext_props","Application","vt","Worksheets","baseType","write_cust_props","write_vt","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","write_TypedPropertyValue","write_FILETIME","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","PIDSI","hdr","piao","pr","pio","pinfo","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsebool","writebool","parseuint16","writeuint16","write_Bes","parse_ShortXLUnicodeString","cch","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","write_HyperlinkString","write_Hyperlink","hl","hashidx","Pretarget","write_XLSCell","ixfe","parse_XTI","parse_Ref8U","rwFirst","rwLast","write_Ref8U","write_BOF","write_BoundSheet8","hs","write_Format","b5","write_XF","ixfeP","parse_ExternSheet","parse_BIFF5ExternSheet","write_HLink","ref","write_HLinkTooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","level","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","to_sheet","from_sheet","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","RT","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","rows","px2pt","write_ws_rows_sylk","coord","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","meta","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","outer","prn_to_sheet_str","lines","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","rel","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_RANGE","max_R","book_to_wk3","wscnt","write_BOF_WK3","straywsregex","write_sst_xml","sst","bookSST","xmlns","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","Verifier","PasswordDecoded","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","rgb2Hex","DEF_MDW","MDW","px","char2width","chr","customWidth","PPI","pt","write_sty_xml","SSF","NF","formatCode","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","font","grbit","italic","strike","condense","write_FontFlags","bold","sss","vertAlign","underline","family","charset","scheme","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","patternType","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_BrtBorder","write_STYLES_bin","xfId","builtinId","write_BrtStyle","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","write_theme","Themes","themeXLSX","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","cm","write_BrtBeginEsmdb","mdb","write_BrtMdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","fillparm","fillxml","fillcolor","strokecolor","write_comments_xml","iauthor","ID","lastauthor","ts","write_tcmnt_xml","people","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","comment","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","delta","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","cce","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","Ptg19","bitIf","bitGoto","parse_RgbExtra","rgce","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","Name","get_ixti","ixtiraw","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","lbl","xlfn","externbook","bookidx","itab","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","write_Formula","os","o1","write_FormulaValue","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","browser_has_Map","get_sst_id","revarr","col_obj_w","outlineLevel","default_margins","margins","footer","get_cell_style","revssf","ssf","applyNumberFormat","check_ws","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","CodeName","codeName","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","_cell","ht","customHeight","write_ws_xml_data","password","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","miyRw","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","ncell","write_BrtShortIsst","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_MERGECELLS","write_BrtBeginMergeCells","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_BrtSheetProtection","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_BrtMargins","write_LEGACYDRAWING","WBPropsDef","badchars","check_ws_name","safe","_good","check_wb","cn","write_wb_xml","write_names","workbookPr","WBProps","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_BOOKVIEWS","vistab","write_BrtBookView","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","write_BUNDLESHS","write_ws","write_cmnt","write_props_xlml","xlml_write_docprops","Custprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","marr","mi","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xf","write_sty_xlml","write_names_xlml","PSCLSID","SI","DSI","UDI","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xls_props","vba","newpath","fill_vba_xls","cellFormula","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","icv","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","rfx","fAlwaysCalc","relId","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_cols_biff8","write_ColInfo","write_ws_biff8_cell","write_Number","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","make_html_row","rowspan","colspan","editable","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","midx","is_dom_element_hidden","elts","hasAttribute","_t","Aelts","Aelti","parse_dom_table","get_computed_style","defaultView","get_get_computed_style_function","write_styles_ods","master_styles","write_content_ods","null_cell_xml","ods","ROWS","textp","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","stru8","u8concat","u8a","acc","u8","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","parse_iwa_file","_a","ai","fl","write_iwa_file","ias","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","write_new_storage","dv","exp","mantissa","writeDecimal128LE","setFloat64","setUint32","write_old_storage","parse_TSP_Reference","write_tile_row","tri","_b","_c","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","defaults","numbers","trunc","dependents","indices","packet2","deps","indices_varint","ivi","mess","u8contains","docroot","xi","packet","sheetrootref","pb","cruidsref","oldbucket","_x","cruids","uuid","store","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sx","sxi","sstdata","newsst","raw32","tile","tl","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","raw3","write_numbers_iwa","wbrels","wbext","vbafmt","threadedcomments","coreprops","extprops","custprops","themes","calcchains","drawings","TODO","_sn","wsrels","need_vml","cf","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsxb","write_zip_xlsx","needtc","person","displayName","userId","providerId","write_people_xml","write_cfb_ctr","write_zip_denouement","oopts","ftype","generate","encrypt_agile","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","rs","txt","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","RC","roll","cell_set_hyperlink","split_cell","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","author","sheet_set_array_formula","dynamic","rng","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN"],"sourceRoot":""}