"use strict";function _createForOfIteratorHelper2(o){if(typeof Symbol==="undefined"||o[Symbol.iterator]==null){if(Array.isArray(o)||(o=_unsupportedIterableToArray2(o))){var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e3){throw _e3;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var it,normalCompletion=true,didErr=false,err;return{s:function s(){it=o[Symbol.iterator]();},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e4){didErr=true;err=_e4;},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return();}finally{if(didErr)throw err;}}};}function _toConsumableArray2(arr){return _arrayWithoutHoles2(arr)||_iterableToArray2(arr)||_unsupportedIterableToArray2(arr)||_nonIterableSpread2();}function _nonIterableSpread2(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray2(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray2(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray2(o,minLen);}function _iterableToArray2(iter){if(typeof Symbol!=="undefined"&&Symbol.iterator in Object(iter))return Array.from(iter);}function _arrayWithoutHoles2(arr){if(Array.isArray(arr))return _arrayLikeToArray2(arr);}function _arrayLikeToArray2(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i2&&arguments[2]!==undefined?arguments[2]:0;_classCallCheck(this,Anchor);if(!address){this.nativeCol=0;this.nativeColOff=0;this.nativeRow=0;this.nativeRowOff=0;}else if(typeof address==='string'){var decoded=colCache.decodeAddress(address);this.nativeCol=decoded.col+offset;this.nativeColOff=0;this.nativeRow=decoded.row+offset;this.nativeRowOff=0;}else if(address.nativeCol!==undefined){this.nativeCol=address.nativeCol||0;this.nativeColOff=address.nativeColOff||0;this.nativeRow=address.nativeRow||0;this.nativeRowOff=address.nativeRowOff||0;}else if(address.col!==undefined){this.col=address.col+offset;this.row=address.row+offset;}else{this.nativeCol=0;this.nativeColOff=0;this.nativeRow=0;this.nativeRowOff=0;}this.worksheet=worksheet;}_createClass(Anchor,[{key:"col",get:function get(){return this.nativeCol+Math.min(this.colWidth-1,this.nativeColOff)/this.colWidth;},set:function set(v){this.nativeCol=Math.floor(v);this.nativeColOff=Math.floor((v-this.nativeCol)*this.colWidth);}},{key:"row",get:function get(){return this.nativeRow+Math.min(this.rowHeight-1,this.nativeRowOff)/this.rowHeight;},set:function set(v){this.nativeRow=Math.floor(v);this.nativeRowOff=Math.floor((v-this.nativeRow)*this.rowHeight);}},{key:"colWidth",get:function get(){return this.worksheet&&this.worksheet.getColumn(this.nativeCol+1)&&this.worksheet.getColumn(this.nativeCol+1).isCustomWidth?Math.floor(this.worksheet.getColumn(this.nativeCol+1).width*10000):640000;}},{key:"rowHeight",get:function get(){return this.worksheet&&this.worksheet.getRow(this.nativeRow+1)&&this.worksheet.getRow(this.nativeRow+1).height?Math.floor(this.worksheet.getRow(this.nativeRow+1).height*10000):180000;}},{key:"model",get:function get(){return{nativeCol:this.nativeCol,nativeColOff:this.nativeColOff,nativeRow:this.nativeRow,nativeRowOff:this.nativeRowOff};},set:function set(value){this.nativeCol=value.nativeCol;this.nativeColOff=value.nativeColOff;this.nativeRow=value.nativeRow;this.nativeRowOff=value.nativeRowOff;}}],[{key:"asInstance",value:function asInstance(model){return model instanceof Anchor||model==null?model:new Anchor(model);}}]);return Anchor;}();module.exports=Anchor;},{"../utils/col-cache":17}],3:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i0||this.type===Cell.Types.Merge;}},{key:"master",get:function get(){if(this.type===Cell.Types.Merge){return this._value.master;}return this;// an unmerged cell is its own master }},{key:"isHyperlink",get:function get(){return this._value.type===Cell.Types.Hyperlink;}},{key:"hyperlink",get:function get(){return this._value.hyperlink;}// return the value },{key:"value",get:function get(){return this._value.value;}// set the value - can be number, string or raw ,set:function set(v){// special case - merge cells set their master's value if(this.type===Cell.Types.Merge){this._value.master.value=v;return;}this._value.release();// assign value this._value=Value.create(Value.getType(v),this,v);}},{key:"note",get:function get(){return this._comment&&this._comment.note;},set:function set(note){this._comment=new Note(note);}},{key:"text",get:function get(){return this._value.toString();}},{key:"html",get:function get(){return _.escapeHtml(this.text);}},{key:"formula",get:function get(){return this._value.formula;}},{key:"result",get:function get(){return this._value.result;}},{key:"formulaType",get:function get(){return this._value.formulaType;}// ========================================================================= // Name stuff },{key:"fullAddress",get:function get(){var worksheet=this._row.worksheet;return{sheetName:worksheet.name,address:this.address,row:this.row,col:this.col};}},{key:"name",get:function get(){return this.names[0];},set:function set(value){this.names=[value];}},{key:"names",get:function get(){return this.workbook.definedNames.getNamesEx(this.fullAddress);},set:function set(value){var _this=this;var definedNames=this.workbook.definedNames;definedNames.removeAllNames(this.fullAddress);value.forEach(function(name){definedNames.addEx(_this.fullAddress,name);});}},{key:"_dataValidations",get:function get(){return this.worksheet.dataValidations;}},{key:"dataValidation",get:function get(){return this._dataValidations.find(this.address);},set:function set(value){this._dataValidations.add(this.address,value);}// ========================================================================= // Model stuff },{key:"model",get:function get(){var model=this._value.model;model.style=this.style;if(this._comment){model.comment=this._comment.model;}return model;},set:function set(value){this._value.release();this._value=Value.create(value.type,this);this._value.model=value;if(value.comment){switch(value.comment.type){case'note':this._comment=Note.fromModel(value.comment);break;}}if(value.style){this.style=value.style;}else{this.style={};}}}]);return Cell;}();Cell.Types=Enums.ValueType;// ============================================================================= // Internal Value Types var NullValue=/*#__PURE__*/function(){function NullValue(cell){_classCallCheck(this,NullValue);this.model={address:cell.address,type:Cell.Types.Null};}_createClass(NullValue,[{key:"toCsvString",value:function toCsvString(){return'';}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return'';}},{key:"value",get:function get(){return null;},set:function set(value){// nothing to do }},{key:"type",get:function get(){return Cell.Types.Null;}},{key:"effectiveType",get:function get(){return Cell.Types.Null;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return NullValue;}();var NumberValue=/*#__PURE__*/function(){function NumberValue(cell,value){_classCallCheck(this,NumberValue);this.model={address:cell.address,type:Cell.Types.Number,value:value};}_createClass(NumberValue,[{key:"toCsvString",value:function toCsvString(){return this.model.value.toString();}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value.toString();}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.Number;}},{key:"effectiveType",get:function get(){return Cell.Types.Number;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return NumberValue;}();var StringValue=/*#__PURE__*/function(){function StringValue(cell,value){_classCallCheck(this,StringValue);this.model={address:cell.address,type:Cell.Types.String,value:value};}_createClass(StringValue,[{key:"toCsvString",value:function toCsvString(){return"\"".concat(this.model.value.replace(/"/g,'""'),"\"");}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value;}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.String;}},{key:"effectiveType",get:function get(){return Cell.Types.String;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return StringValue;}();var RichTextValue=/*#__PURE__*/function(){function RichTextValue(cell,value){_classCallCheck(this,RichTextValue);this.model={address:cell.address,type:Cell.Types.String,value:value};}_createClass(RichTextValue,[{key:"toString",value:function toString(){return this.model.value.richText.map(function(t){return t.text;}).join('');}},{key:"toCsvString",value:function toCsvString(){return"\"".concat(this.text.replace(/"/g,'""'),"\"");}},{key:"release",value:function release(){}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.RichText;}},{key:"effectiveType",get:function get(){return Cell.Types.RichText;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return RichTextValue;}();var DateValue=/*#__PURE__*/function(){function DateValue(cell,value){_classCallCheck(this,DateValue);this.model={address:cell.address,type:Cell.Types.Date,value:value};}_createClass(DateValue,[{key:"toCsvString",value:function toCsvString(){return this.model.value.toISOString();}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value.toString();}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.Date;}},{key:"effectiveType",get:function get(){return Cell.Types.Date;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return DateValue;}();var HyperlinkValue=/*#__PURE__*/function(){function HyperlinkValue(cell,value){_classCallCheck(this,HyperlinkValue);this.model={address:cell.address,type:Cell.Types.Hyperlink,text:value?value.text:undefined,hyperlink:value?value.hyperlink:undefined};if(value&&value.tooltip){this.model.tooltip=value.tooltip;}}_createClass(HyperlinkValue,[{key:"toCsvString",value:function toCsvString(){return this.model.hyperlink;}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.text;}},{key:"value",get:function get(){var v={text:this.model.text,hyperlink:this.model.hyperlink};if(this.model.tooltip){v.tooltip=this.model.tooltip;}return v;},set:function set(value){this.model={text:value.text,hyperlink:value.hyperlink};if(value.tooltip){this.model.tooltip=value.tooltip;}}},{key:"text",get:function get(){return this.model.text;},set:function set(value){this.model.text=value;}/* get tooltip() { return this.model.tooltip; } set tooltip(value) { this.model.tooltip = value; } */},{key:"hyperlink",get:function get(){return this.model.hyperlink;},set:function set(value){this.model.hyperlink=value;}},{key:"type",get:function get(){return Cell.Types.Hyperlink;}},{key:"effectiveType",get:function get(){return Cell.Types.Hyperlink;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return HyperlinkValue;}();var MergeValue=/*#__PURE__*/function(){function MergeValue(cell,master){_classCallCheck(this,MergeValue);this.model={address:cell.address,type:Cell.Types.Merge,master:master?master.address:undefined};this._master=master;if(master){master.addMergeRef();}}_createClass(MergeValue,[{key:"isMergedTo",value:function isMergedTo(master){return master===this._master;}},{key:"toCsvString",value:function toCsvString(){return'';}},{key:"release",value:function release(){this._master.releaseMergeRef();}},{key:"toString",value:function toString(){return this.value.toString();}},{key:"value",get:function get(){return this._master.value;},set:function set(value){if(value instanceof Cell){if(this._master){this._master.releaseMergeRef();}value.addMergeRef();this._master=value;}else{this._master.value=value;}}},{key:"master",get:function get(){return this._master;}},{key:"type",get:function get(){return Cell.Types.Merge;}},{key:"effectiveType",get:function get(){return this._master.effectiveType;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return MergeValue;}();var FormulaValue=/*#__PURE__*/function(){function FormulaValue(cell,value){_classCallCheck(this,FormulaValue);this.cell=cell;this.model={address:cell.address,type:Cell.Types.Formula,shareType:value?value.shareType:undefined,ref:value?value.ref:undefined,formula:value?value.formula:undefined,sharedFormula:value?value.sharedFormula:undefined,result:value?value.result:undefined};}_createClass(FormulaValue,[{key:"_copyModel",value:function _copyModel(model){var copy={};var cp=function cp(name){var value=model[name];if(value){copy[name]=value;}};cp('formula');cp('result');cp('ref');cp('shareType');cp('sharedFormula');return copy;}},{key:"validate",value:function validate(value){switch(Value.getType(value)){case Cell.Types.Null:case Cell.Types.String:case Cell.Types.Number:case Cell.Types.Date:break;case Cell.Types.Hyperlink:case Cell.Types.Formula:default:throw new Error('Cannot process that type of result value');}}},{key:"_getTranslatedFormula",value:function _getTranslatedFormula(){if(!this._translatedFormula&&this.model.sharedFormula){var worksheet=this.cell.worksheet;var master=worksheet.findCell(this.model.sharedFormula);this._translatedFormula=master&&slideFormula(master.formula,master.address,this.model.address);}return this._translatedFormula;}},{key:"toCsvString",value:function toCsvString(){return"".concat(this.model.result||'');}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.result?this.model.result.toString():'';}},{key:"value",get:function get(){return this._copyModel(this.model);},set:function set(value){this.model=this._copyModel(value);}},{key:"dependencies",get:function get(){// find all the ranges and cells mentioned in the formula var ranges=this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}:[A-Z]{1,3}\d{1,4}/g);var cells=this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}:[A-Z]{1,3}\d{1,4}/g,'').match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}/g);return{ranges:ranges,cells:cells};}},{key:"formula",get:function get(){return this.model.formula||this._getTranslatedFormula();},set:function set(value){this.model.formula=value;}},{key:"formulaType",get:function get(){if(this.model.formula){return Enums.FormulaType.Master;}if(this.model.sharedFormula){return Enums.FormulaType.Shared;}return Enums.FormulaType.None;}},{key:"result",get:function get(){return this.model.result;},set:function set(value){this.model.result=value;}},{key:"type",get:function get(){return Cell.Types.Formula;}},{key:"effectiveType",get:function get(){var v=this.model.result;if(v===null||v===undefined){return Enums.ValueType.Null;}if(v instanceof String||typeof v==='string'){return Enums.ValueType.String;}if(typeof v==='number'){return Enums.ValueType.Number;}if(v instanceof Date){return Enums.ValueType.Date;}if(v.text&&v.hyperlink){return Enums.ValueType.Hyperlink;}if(v.formula){return Enums.ValueType.Formula;}return Enums.ValueType.Null;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return FormulaValue;}();var SharedStringValue=/*#__PURE__*/function(){function SharedStringValue(cell,value){_classCallCheck(this,SharedStringValue);this.model={address:cell.address,type:Cell.Types.SharedString,value:value};}_createClass(SharedStringValue,[{key:"toCsvString",value:function toCsvString(){return this.model.value.toString();}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value.toString();}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.SharedString;}},{key:"effectiveType",get:function get(){return Cell.Types.SharedString;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return SharedStringValue;}();var BooleanValue=/*#__PURE__*/function(){function BooleanValue(cell,value){_classCallCheck(this,BooleanValue);this.model={address:cell.address,type:Cell.Types.Boolean,value:value};}_createClass(BooleanValue,[{key:"toCsvString",value:function toCsvString(){return this.model.value?1:0;}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value.toString();}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.Boolean;}},{key:"effectiveType",get:function get(){return Cell.Types.Boolean;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return BooleanValue;}();var ErrorValue=/*#__PURE__*/function(){function ErrorValue(cell,value){_classCallCheck(this,ErrorValue);this.model={address:cell.address,type:Cell.Types.Error,value:value};}_createClass(ErrorValue,[{key:"toCsvString",value:function toCsvString(){return this.toString();}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value.error.toString();}},{key:"value",get:function get(){return this.model.value;},set:function set(value){this.model.value=value;}},{key:"type",get:function get(){return Cell.Types.Error;}},{key:"effectiveType",get:function get(){return Cell.Types.Error;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return ErrorValue;}();var JSONValue=/*#__PURE__*/function(){function JSONValue(cell,value){_classCallCheck(this,JSONValue);this.model={address:cell.address,type:Cell.Types.String,value:JSON.stringify(value),rawValue:value};}_createClass(JSONValue,[{key:"toCsvString",value:function toCsvString(){return this.model.value;}},{key:"release",value:function release(){}},{key:"toString",value:function toString(){return this.model.value;}},{key:"value",get:function get(){return this.model.rawValue;},set:function set(value){this.model.rawValue=value;this.model.value=JSON.stringify(value);}},{key:"type",get:function get(){return Cell.Types.String;}},{key:"effectiveType",get:function get(){return Cell.Types.String;}},{key:"address",get:function get(){return this.model.address;},set:function set(value){this.model.address=value;}}]);return JSONValue;}();// Value is a place to hold common static Value type functions var Value={getType:function getType(value){if(value===null||value===undefined){return Cell.Types.Null;}if(value instanceof String||typeof value==='string'){return Cell.Types.String;}if(typeof value==='number'){return Cell.Types.Number;}if(typeof value==='boolean'){return Cell.Types.Boolean;}if(value instanceof Date){return Cell.Types.Date;}if(value.text&&value.hyperlink){return Cell.Types.Hyperlink;}if(value.formula||value.sharedFormula){return Cell.Types.Formula;}if(value.richText){return Cell.Types.RichText;}if(value.sharedString){return Cell.Types.SharedString;}if(value.error){return Cell.Types.Error;}return Cell.Types.JSON;},// map valueType to constructor types:[{t:Cell.Types.Null,f:NullValue},{t:Cell.Types.Number,f:NumberValue},{t:Cell.Types.String,f:StringValue},{t:Cell.Types.Date,f:DateValue},{t:Cell.Types.Hyperlink,f:HyperlinkValue},{t:Cell.Types.Formula,f:FormulaValue},{t:Cell.Types.Merge,f:MergeValue},{t:Cell.Types.JSON,f:JSONValue},{t:Cell.Types.SharedString,f:SharedStringValue},{t:Cell.Types.RichText,f:RichTextValue},{t:Cell.Types.Boolean,f:BooleanValue},{t:Cell.Types.Error,f:ErrorValue}].reduce(function(p,t){p[t.t]=t.f;return p;},[]),create:function create(type,cell,value){var T=this.types[type];if(!T){throw new Error("Could not create Value of type ".concat(type));}return new T(cell,value);}};module.exports=Cell;},{"../utils/col-cache":17,"../utils/shared-formula":20,"../utils/under-dash":23,"./enums":7,"./note":9}],4:[function(require,module,exports){'use strict';function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i=this._worksheet.properties.outlineLevelCol);}},{key:"isDefault",get:function get(){if(this.isCustomWidth){return false;}if(this.hidden){return false;}if(this.outlineLevel){return false;}var s=this.style;if(s&&(s.font||s.numFmt||s.alignment||s.border||s.fill||s.protection)){return false;}return true;}},{key:"headerCount",get:function get(){return this.headers.length;}},{key:"values",get:function get(){var v=[];this.eachCell(function(cell,rowNumber){if(cell&&cell.type!==Enums.ValueType.Null){v[rowNumber]=cell.value;}});return v;},set:function set(v){var _this2=this;if(!v){return;}var colNumber=this.number;var offset=0;if(v.hasOwnProperty('0')){// assume contiguous array, start at row 1 offset=1;}v.forEach(function(value,index){_this2._worksheet.getCell(index+offset,colNumber).value=value;});}},{key:"numFmt",get:function get(){return this.style.numFmt;},set:function set(value){this._applyStyle('numFmt',value);}},{key:"font",get:function get(){return this.style.font;},set:function set(value){this._applyStyle('font',value);}},{key:"alignment",get:function get(){return this.style.alignment;},set:function set(value){this._applyStyle('alignment',value);}},{key:"protection",get:function get(){return this.style.protection;},set:function set(value){this._applyStyle('protection',value);}},{key:"border",get:function get(){return this.style.border;},set:function set(value){this._applyStyle('border',value);}},{key:"fill",get:function get(){return this.style.fill;},set:function set(value){this._applyStyle('fill',value);}// ============================================================================= // static functions }],[{key:"toModel",value:function toModel(columns){// Convert array of Column into compressed list cols var cols=[];var col=null;if(columns){columns.forEach(function(column,index){if(column.isDefault){if(col){col=null;}}else if(!col||!column.equivalentTo(col)){col={min:index+1,max:index+1,width:column.width!==undefined?column.width:DEFAULT_COLUMN_WIDTH,style:column.style,isCustomWidth:column.isCustomWidth,hidden:column.hidden,outlineLevel:column.outlineLevel,collapsed:column.collapsed};cols.push(col);}else{col.max=index+1;}});}return cols.length?cols:undefined;}},{key:"fromModel",value:function fromModel(worksheet,cols){cols=cols||[];var columns=[];var count=1;var index=0;while(indexthis.bottom)this.bottom=bottom;if(!this.model.right||right>this.right)this.right=right;}},{key:"expandRow",value:function expandRow(row){if(row){var dimensions=row.dimensions,number=row.number;if(dimensions){this.expand(number,dimensions.min,number,dimensions.max);}}}},{key:"expandToAddress",value:function expandToAddress(addressStr){var address=colCache.decodeEx(addressStr);this.expand(address.row,address.col,address.row,address.col);}},{key:"toString",value:function toString(){return this.range;}},{key:"intersects",value:function intersects(other){if(other.sheetName&&this.sheetName&&other.sheetName!==this.sheetName)return false;if(other.bottomthis.bottom)return false;if(other.rightthis.right)return false;return true;}},{key:"contains",value:function contains(addressStr){var address=colCache.decodeEx(addressStr);return this.containsEx(address);}},{key:"containsEx",value:function containsEx(address){if(address.sheetName&&this.sheetName&&address.sheetName!==this.sheetName)return false;return address.row>=this.top&&address.row<=this.bottom&&address.col>=this.left&&address.col<=this.right;}},{key:"forEachAddress",value:function forEachAddress(cb){for(var col=this.left;col<=this.right;col++){for(var row=this.top;row<=this.bottom;row++){cb(colCache.encodeAddress(row,col),row,col);}}}},{key:"top",get:function get(){return this.model.top||1;},set:function set(value){this.model.top=value;}},{key:"left",get:function get(){return this.model.left||1;},set:function set(value){this.model.left=value;}},{key:"bottom",get:function get(){return this.model.bottom||1;},set:function set(value){this.model.bottom=value;}},{key:"right",get:function get(){return this.model.right||1;},set:function set(value){this.model.right=value;}},{key:"sheetName",get:function get(){return this.model.sheetName;},set:function set(value){this.model.sheetName=value;}},{key:"_serialisedSheetName",get:function get(){var sheetName=this.model.sheetName;if(sheetName){if(/^[a-zA-Z0-9]*$/.test(sheetName)){return"".concat(sheetName,"!");}return"'".concat(sheetName,"'!");}return'';}},{key:"tl",get:function get(){return colCache.n2l(this.left)+this.top;}},{key:"$t$l",get:function get(){return"$".concat(colCache.n2l(this.left),"$").concat(this.top);}},{key:"br",get:function get(){return colCache.n2l(this.right)+this.bottom;}},{key:"$b$r",get:function get(){return"$".concat(colCache.n2l(this.right),"$").concat(this.bottom);}},{key:"range",get:function get(){return"".concat(this._serialisedSheetName+this.tl,":").concat(this.br);}},{key:"$range",get:function get(){return"".concat(this._serialisedSheetName+this.$t$l,":").concat(this.$b$r);}},{key:"shortRange",get:function get(){return this.count>1?this.range:this._serialisedSheetName+this.tl;}},{key:"$shortRange",get:function get(){return this.count>1?this.$range:this._serialisedSheetName+this.$t$l;}},{key:"count",get:function get(){return(1+this.bottom-this.top)*(1+this.right-this.left);}}]);return Range;}();module.exports=Range;},{"./../utils/col-cache":17}],11:[function(require,module,exports){'use strict';function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i2?_len-2:0),_key=2;_key<_len;_key++){inserts[_key-2]=arguments[_key];}var nExpand=inserts.length-count;var nEnd=this._cells.length;var i;var cSrc;var cDst;if(nExpand<0){// remove cells for(i=start+inserts.length;i<=nEnd;i++){cDst=this._cells[i-1];cSrc=this._cells[i-nExpand-1];if(cSrc){cDst=this.getCell(i);cDst.value=cSrc.value;cDst.style=cSrc.style;}else if(cDst){cDst.value=null;cDst.style={};}}}else if(nExpand>0){// insert new cells for(i=nEnd;i>=nKeep;i--){cSrc=this._cells[i-1];if(cSrc){cDst=this.getCell(i+nExpand);cDst.value=cSrc.value;cDst.style=cSrc.style;}else{this._cells[i+nExpand-1]=undefined;}}}// now add the new values for(i=0;icell.col){min=cell.col;}if(max0?{min:min,max:max}:null;}},{key:"numFmt",get:function get(){return this.style.numFmt;},set:function set(value){this._applyStyle('numFmt',value);}},{key:"font",get:function get(){return this.style.font;},set:function set(value){this._applyStyle('font',value);}},{key:"alignment",get:function get(){return this.style.alignment;},set:function set(value){this._applyStyle('alignment',value);}},{key:"protection",get:function get(){return this.style.protection;},set:function set(value){this._applyStyle('protection',value);}},{key:"border",get:function get(){return this.style.border;},set:function set(value){this._applyStyle('border',value);}},{key:"fill",get:function get(){return this.style.fill;},set:function set(value){this._applyStyle('fill',value);}},{key:"hidden",get:function get(){return!!this._hidden;},set:function set(value){this._hidden=value;}},{key:"outlineLevel",get:function get(){return this._outlineLevel||0;},set:function set(value){this._outlineLevel=value;}},{key:"collapsed",get:function get(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelRow);}// ========================================================================= },{key:"model",get:function get(){var cells=[];var min=0;var max=0;this._cells.forEach(function(cell){if(cell){var cellModel=cell.model;if(cellModel){if(!min||min>cell.col){min=cell.col;}if(max element without an r attribute // Assume that it's the cell for the next column var _previousAddress=previousAddress,row=_previousAddress.row;var col=previousAddress.col+1;address={row:row,col:col,address:colCache.encodeAddress(row,col),$col$row:"$".concat(colCache.n2l(col),"$").concat(row)};}previousAddress=address;var cell=_this2.getCellEx(address);cell.model=cellModel;break;}}});if(value.height){this.height=value.height;}else{delete this.height;}this.hidden=value.hidden;this.outlineLevel=value.outlineLevel||0;this.style=value.style&&JSON.parse(JSON.stringify(value.style))||{};}}]);return Row;}();module.exports=Row;},{"../utils/col-cache":17,"../utils/under-dash":23,"./cell":3,"./enums":7}],12:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i0,'Table must be on valid row');assert(col>0,'Table must be on valid col');var width=this.width,filterHeight=this.filterHeight,tableHeight=this.tableHeight;// autoFilterRef is a range that includes optional headers only table.autoFilterRef=colCache.encode(row,col,row+filterHeight-1,col+width-1);// tableRef is a range that includes optional headers and totals table.tableRef=colCache.encode(row,col,row+tableHeight-1,col+width-1);table.columns.forEach(function(column,i){assert(column.name,"Column ".concat(i," must have a name"));if(i===0){assign(column,'totalsRowLabel','Total');}else{assign(column,'totalsRowFunction','none');column.totalsRowFormula=_this.getFormula(column);}});}},{key:"store",value:function store(){var _this2=this;// where the table needs to store table data, headers, footers in // the sheet... var assignStyle=function assignStyle(cell,style){if(style){Object.keys(style).forEach(function(key){cell[key]=style[key];});}};var worksheet=this.worksheet,table=this.table;var _table$tl2=table.tl,row=_table$tl2.row,col=_table$tl2.col;var count=0;if(table.headerRow){var r=worksheet.getRow(row+count++);table.columns.forEach(function(column,j){var style=column.style,name=column.name;var cell=r.getCell(col+j);cell.value=name;assignStyle(cell,style);});}table.rows.forEach(function(data){var r=worksheet.getRow(row+count++);data.forEach(function(value,j){var cell=r.getCell(col+j);cell.value=value;assignStyle(cell,table.columns[j].style);});});if(table.totalsRow){var _r=worksheet.getRow(row+count++);table.columns.forEach(function(column,j){var cell=_r.getCell(col+j);if(j===0){cell.value=column.totalsRowLabel;}else{var formula=_this2.getFormula(column);if(formula){cell.value={formula:column.totalsRowFormula,result:column.totalsRowResult};}else{cell.value=null;}}assignStyle(cell,column.style);});}}},{key:"load",value:function load(worksheet){var _this3=this;// where the table will read necessary features from a loaded sheet var table=this.table;var _table$tl3=table.tl,row=_table$tl3.row,col=_table$tl3.col;var count=0;if(table.headerRow){var r=worksheet.getRow(row+count++);table.columns.forEach(function(column,j){var cell=r.getCell(col+j);cell.value=column.name;});}table.rows.forEach(function(data){var r=worksheet.getRow(row+count++);data.forEach(function(value,j){var cell=r.getCell(col+j);cell.value=value;});});if(table.totalsRow){var _r2=worksheet.getRow(row+count++);table.columns.forEach(function(column,j){var cell=_r2.getCell(col+j);if(j===0){cell.value=column.totalsRowLabel;}else{var formula=_this3.getFormula(column);if(formula){cell.value={formula:column.totalsRowFormula,result:column.totalsRowResult};}}});}}},{key:"cacheState",// ================================================================ // TODO: Mutating methods value:function cacheState(){if(!this._cache){this._cache={ref:this.ref,width:this.width,tableHeight:this.tableHeight};}}},{key:"commit",value:function commit(){// changes may have been made that might have on-sheet effects if(!this._cache){return;}// check things are ok first this.validate();var ref=colCache.decodeAddress(this._cache.ref);if(this.ref!==this._cache.ref){// wipe out whole table footprint at previous location for(var i=0;i1&&arguments[1]!==undefined?arguments[1]:1;// Remove a rows of data this.cacheState();this.table.rows.splice(rowIndex,count);}},{key:"getColumn",value:function getColumn(colIndex){var column=this.table.columns[colIndex];return new Column(this,column,colIndex);}},{key:"addColumn",value:function addColumn(column,values,colIndex){// Add a new column, including column defn and values // Inserts at colNumber or adds to the right this.cacheState();if(colIndex===undefined){this.table.columns.push(column);this.table.rows.forEach(function(row,i){row.push(values[i]);});}else{this.table.columns.splice(colIndex,0,column);this.table.rows.forEach(function(row,i){row.splice(colIndex,0,values[i]);});}}},{key:"removeColumns",value:function removeColumns(colIndex){var count=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;// Remove a column with data this.cacheState();this.table.columns.splice(colIndex,count);this.table.rows.forEach(function(row){row.splice(colIndex,count);});}},{key:"_assign",value:function _assign(target,prop,value){this.cacheState();target[prop]=value;}/* eslint-disable lines-between-class-members */},{key:"width",get:function get(){// width of the table return this.table.columns.length;}},{key:"height",get:function get(){// height of the table data return this.table.rows.length;}},{key:"filterHeight",get:function get(){// height of the table data plus optional header row return this.height+(this.table.headerRow?1:0);}},{key:"tableHeight",get:function get(){// full height of the table on the sheet return this.filterHeight+(this.table.totalsRow?1:0);}},{key:"model",get:function get(){return this.table;},set:function set(value){this.table=value;}},{key:"ref",get:function get(){return this.table.ref;},set:function set(value){this._assign(this.table,'ref',value);}},{key:"name",get:function get(){return this.table.name;},set:function set(value){this.table.name=value;}},{key:"displayName",get:function get(){return this.table.displyName||this.table.name;}},{key:"displayNamename",set:function set(value){this.table.displayName=value;}},{key:"headerRow",get:function get(){return this.table.headerRow;},set:function set(value){this._assign(this.table,'headerRow',value);}},{key:"totalsRow",get:function get(){return this.table.totalsRow;},set:function set(value){this._assign(this.table,'totalsRow',value);}},{key:"theme",get:function get(){return this.table.style.name;},set:function set(value){this.table.style.name=value;}},{key:"showFirstColumn",get:function get(){return this.table.style.showFirstColumn;},set:function set(value){this.table.style.showFirstColumn=value;}},{key:"showLastColumn",get:function get(){return this.table.style.showLastColumn;},set:function set(value){this.table.style.showLastColumn=value;}},{key:"showRowStripes",get:function get(){return this.table.style.showRowStripes;},set:function set(value){this.table.style.showRowStripes=value;}},{key:"showColumnStripes",get:function get(){return this.table.style.showColumnStripes;},set:function set(value){this.table.style.showColumnStripes=value;}/* eslint-enable lines-between-class-members */}]);return Table;}();module.exports=Table;},{"./../utils/col-cache":17}],13:[function(require,module,exports){'use strict';function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i31){// eslint-disable-next-line no-console console.warn("Worksheet name ".concat(name," exceeds 31 chars. This will be truncated"));}name=(name||"sheet".concat(id)).substring(0,31);if(this._worksheets.find(function(ws){return ws&&ws.name.toLowerCase()===name.toLowerCase();})){throw new Error("Worksheet name already exists: ".concat(name));}// if options is a color, call it tabColor (and signal deprecated message) if(options){if(typeof options==='string'){// eslint-disable-next-line no-console console.trace('tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { argb: "rbg value" } }');options={properties:{tabColor:{argb:options}}};}else if(options.argb||options.theme||options.indexed){// eslint-disable-next-line no-console console.trace('tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { ... } }');options={properties:{tabColor:options}};}}var lastOrderNo=this._worksheets.reduce(function(acc,ws){return(ws&&ws.orderNo)>acc?ws.orderNo:acc;},0);var worksheetOptions=Object.assign({},options,{id:id,name:name,orderNo:lastOrderNo+1,workbook:this});var worksheet=new Worksheet(worksheetOptions);this._worksheets[id]=worksheet;return worksheet;}},{key:"removeWorksheetEx",value:function removeWorksheetEx(worksheet){delete this._worksheets[worksheet.id];}},{key:"removeWorksheet",value:function removeWorksheet(id){var worksheet=this.getWorksheet(id);if(worksheet){worksheet.destroy();}}},{key:"getWorksheet",value:function getWorksheet(id){if(id===undefined){return this._worksheets.find(Boolean);}if(typeof id==='number'){return this._worksheets[id];}if(typeof id==='string'){return this._worksheets.find(function(worksheet){return worksheet&&worksheet.name===id;});}return undefined;}},{key:"eachSheet",value:function eachSheet(iteratee){this.worksheets.forEach(function(sheet){iteratee(sheet,sheet.id);});}},{key:"clearThemes",value:function clearThemes(){// Note: themes are not an exposed feature, meddle at your peril! this._themes=undefined;}},{key:"addImage",value:function addImage(image){// TODO: validation? var id=this.media.length;this.media.push(Object.assign({},image,{type:'image'}));return id;}},{key:"getImage",value:function getImage(id){return this.media[id];}},{key:"xlsx",get:function get(){if(!this._xlsx)this._xlsx=new XLSX(this);return this._xlsx;}},{key:"csv",get:function get(){if(!this._csv)this._csv=new CSV(this);return this._csv;}},{key:"nextId",get:function get(){// find the next unique spot to add worksheet for(var i=1;iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i this._collumns index this._keys={};// keep record of all merges this._merges={};// record of all row and column pageBreaks this.rowBreaks=[];this._workbook=options.workbook;// for tabColor, default row height, outline levels, etc this.properties=Object.assign({},{defaultRowHeight:15,dyDescent:55,outlineLevelCol:0,outlineLevelRow:0},options.properties);// for all things printing this.pageSetup=Object.assign({},{margins:{left:0.7,right:0.7,top:0.75,bottom:0.75,header:0.3,footer:0.3},orientation:'portrait',horizontalDpi:4294967295,verticalDpi:4294967295,fitToPage:!!(options.pageSetup&&(options.pageSetup.fitToWidth||options.pageSetup.fitToHeight)&&!options.pageSetup.scale),pageOrder:'downThenOver',blackAndWhite:false,draft:false,cellComments:'None',errors:'displayed',scale:100,fitToWidth:1,fitToHeight:1,paperSize:undefined,showRowColHeaders:false,showGridLines:false,firstPageNumber:undefined,horizontalCentered:false,verticalCentered:false,rowBreaks:null,colBreaks:null},options.pageSetup);this.headerFooter=Object.assign({},{differentFirst:false,differentOddEven:false,oddHeader:null,oddFooter:null,evenHeader:null,evenFooter:null,firstHeader:null,firstFooter:null},options.headerFooter);this.dataValidations=new DataValidations();// for freezepanes, split, zoom, gridlines, etc this.views=options.views||[];this.autoFilter=options.autoFilter||null;// for images, etc this._media=[];// worksheet protection this.sheetProtection=null;// for tables this.tables={};this.conditionalFormattings=[];}_createClass(Worksheet,[{key:"destroy",// when you're done with this worksheet, call this to remove from workbook value:function destroy(){this._workbook.removeWorksheetEx(this);}// Get the bounding range of the cells in this worksheet },{key:"getColumnKey",value:function getColumnKey(key){return this._keys[key];}},{key:"setColumnKey",value:function setColumnKey(key,value){this._keys[key]=value;}},{key:"deleteColumnKey",value:function deleteColumnKey(key){delete this._keys[key];}},{key:"eachColumnKey",value:function eachColumnKey(f){_.each(this._keys,f);}// get a single column by col number. If it doesn't exist, create it and any gaps before it },{key:"getColumn",value:function getColumn(c){if(typeof c==='string'){// if it matches a key'd column, return that var col=this._keys[c];if(col)return col;// otherwise, assume letter c=colCache.l2n(c);}if(!this._columns){this._columns=[];}if(c>this._columns.length){var n=this._columns.length+1;while(n<=c){this._columns.push(new Column(this,n++));}}return this._columns[c-1];}},{key:"spliceColumns",value:function spliceColumns(start,count){var _this=this;var rows=this._rows;var nRows=rows.length;for(var _len=arguments.length,inserts=new Array(_len>2?_len-2:0),_key=2;_key<_len;_key++){inserts[_key-2]=arguments[_key];}if(inserts.length>0){var _loop=function _loop(i){var rowArguments=[start,count];// eslint-disable-next-line no-loop-func inserts.forEach(function(insert){rowArguments.push(insert[i]||null);});var row=_this.getRow(i+1);// eslint-disable-next-line prefer-spread row.splice.apply(row,rowArguments);};// must iterate over all rows whether they exist yet or not for(var i=0;i0){for(var _i2=nEnd;_i2>=nKeep;_i2--){this.getColumn(_i2+nExpand).defn=this.getColumn(_i2).defn;}}for(var _i3=start;_i32&&arguments[2]!==undefined?arguments[2]:false;// create count duplicates of rowNum // either inserting new or overwriting existing rows var rSrc=this._rows[rowNum-1];var inserts=new Array(count).fill(rSrc.values);this.spliceRows.apply(this,[rowNum+1,insert?0:count].concat(_toConsumableArray(inserts)));// now copy styles... var _loop2=function _loop2(i){var rDst=_this3._rows[rowNum+i];rDst.style=rSrc.style;rDst.height=rSrc.height;// eslint-disable-next-line no-loop-func rSrc.eachCell({includeEmpty:true},function(cell,colNumber){rDst.getCell(colNumber).style=cell.style;});};for(var i=0;i2?_len2-2:0),_key2=2;_key2<_len2;_key2++){inserts[_key2-2]=arguments[_key2];}var nExpand=inserts.length-count;var nEnd=this._rows.length;var i;var rSrc;if(nExpand<0){// remove rows for(i=nKeep;i<=nEnd;i++){rSrc=this._rows[i-1];if(rSrc){(function(){var rDst=_this4.getRow(i+nExpand);rDst.values=rSrc.values;rDst.style=rSrc.style;rDst.height=rSrc.height;// eslint-disable-next-line no-loop-func rSrc.eachCell({includeEmpty:true},function(cell,colNumber){rDst.getCell(colNumber).style=cell.style;});_this4._rows[i-1]=undefined;})();}else{this._rows[i+nExpand-1]=undefined;}}}else if(nExpand>0){// insert new cells for(i=nEnd;i>=nKeep;i--){rSrc=this._rows[i-1];if(rSrc){(function(){var rDst=_this4.getRow(i+nExpand);rDst.values=rSrc.values;rDst.style=rSrc.style;rDst.height=rSrc.height;// eslint-disable-next-line no-loop-func rSrc.eachCell({includeEmpty:true},function(cell,colNumber){rDst.getCell(colNumber).style=cell.style;});})();}else{this._rows[i+nExpand-1]=undefined;}}}// now copy over the new values for(i=0;idimensions.top||j>dimensions.left){this.getCell(i,j).merge(master,ignoreStyle);}}}// index merge this._merges[master.address]=dimensions;}},{key:"_unMergeMaster",value:function _unMergeMaster(master){// master is always top left of a rectangle var merge=this._merges[master.address];if(merge){for(var i=merge.top;i<=merge.bottom;i++){for(var j=merge.left;j<=merge.right;j++){this.getCell(i,j).unmerge();}}delete this._merges[master.address];}}},{key:"unMergeCells",// scan the range defined by ['tl:br'], [tl,br] or [t,l,b,r] and if any cell is part of a merge, // un-merge the group. Note this function can affect multiple merges and merge-blocks are // atomic - either they're all merged or all un-merged. value:function unMergeCells(){for(var _len5=arguments.length,cells=new Array(_len5),_key5=0;_key5<_len5;_key5++){cells[_key5]=arguments[_key5];}var dimensions=new Range(cells);// find any cells in that range and unmerge them for(var i=dimensions.top;i<=dimensions.bottom;i++){for(var j=dimensions.left;j<=dimensions.right;j++){var cell=this.findCell(i,j);if(cell){if(cell.type===Enums.ValueType.Merge){// this cell merges to another master this._unMergeMaster(cell.master);}else if(this._merges[cell.address]){// this cell is a master this._unMergeMaster(cell);}}}}}// =========================================================================== // Shared/Array Formula },{key:"fillFormula",value:function fillFormula(range,formula,results){var shareType=arguments.length>3&&arguments[3]!==undefined?arguments[3]:'shared';// Define formula for top-left cell and share to rest var decoded=colCache.decode(range);var top=decoded.top,left=decoded.left,bottom=decoded.bottom,right=decoded.right;var width=right-left+1;var masterAddress=colCache.encodeAddress(top,left);var isShared=shareType==='shared';// work out result accessor var getResult;if(typeof results==='function'){getResult=results;}else if(Array.isArray(results)){if(Array.isArray(results[0])){getResult=function getResult(row,col){return results[row-top][col-left];};}else{// eslint-disable-next-line no-mixed-operators getResult=function getResult(row,col){return results[(row-top)*width+(col-left)];};}}else{getResult=function getResult(){return undefined;};}var first=true;for(var r=top;r<=bottom;r++){for(var c=left;c<=right;c++){if(first){this.getCell(r,c).value={shareType:shareType,formula:formula,ref:range,result:getResult(r,c)};first=false;}else{this.getCell(r,c).value=isShared?{sharedFormula:masterAddress,result:getResult(r,c)}:getResult(r,c);}}}}// ========================================================================= // Images },{key:"addImage",value:function addImage(imageId,range){var model={type:'image',imageId:imageId,range:range};this._media.push(new Image(this,model));}},{key:"getImages",value:function getImages(){return this._media.filter(function(m){return m.type==='image';});}},{key:"addBackgroundImage",value:function addBackgroundImage(imageId){var model={type:'background',imageId:imageId};this._media.push(new Image(this,model));}},{key:"getBackgroundImageId",value:function getBackgroundImageId(){var image=this._media.find(function(m){return m.type==='background';});return image&&image.imageId;}// ========================================================================= // Worksheet Protection },{key:"protect",value:function protect(password,options){var _this5=this;// TODO: make this function truly async // perhaps marshal to worker thread or something return new Promise(function(resolve){_this5.sheetProtection={sheet:true};if(options&&'spinCount'in options){// force spinCount to be integer >= 0 options.spinCount=Number.isFinite(options.spinCount)?Math.round(Math.max(0,options.spinCount)):100000;}if(password){_this5.sheetProtection.algorithmName='SHA-512';_this5.sheetProtection.saltValue=Encryptor.randomBytes(16).toString('base64');_this5.sheetProtection.spinCount=options&&'spinCount'in options?options.spinCount:100000;// allow user specified spinCount _this5.sheetProtection.hashValue=Encryptor.convertPasswordToHash(password,'SHA512',_this5.sheetProtection.saltValue,_this5.sheetProtection.spinCount);}if(options){_this5.sheetProtection=Object.assign(_this5.sheetProtection,options);if(!password&&'spinCount'in options){delete _this5.sheetProtection.spinCount;}}resolve();});}},{key:"unprotect",value:function unprotect(){this.sheetProtection=null;}// ========================================================================= // Tables },{key:"addTable",value:function addTable(model){var table=new Table(this,model);this.tables[model.name]=table;return table;}},{key:"getTable",value:function getTable(name){return this.tables[name];}},{key:"removeTable",value:function removeTable(name){delete this.tables[name];}},{key:"getTables",value:function getTables(){return Object.values(this.tables);}// =========================================================================== // Conditional Formatting },{key:"addConditionalFormatting",value:function addConditionalFormatting(cf){this.conditionalFormattings.push(cf);}},{key:"removeConditionalFormatting",value:function removeConditionalFormatting(filter){if(typeof filter==='number'){this.conditionalFormattings.splice(filter,1);}else if(filter instanceof Function){this.conditionalFormattings=this.conditionalFormattings.filter(filter);}else{this.conditionalFormattings=[];}}// =========================================================================== // Deprecated },{key:"_parseRows",value:function _parseRows(model){var _this6=this;this._rows=[];model.rows.forEach(function(rowModel){var row=new Row(_this6,rowModel.number);_this6._rows[row.number-1]=row;row.model=rowModel;});}},{key:"_parseMergeCells",value:function _parseMergeCells(model){var _this7=this;_.each(model.mergeCells,function(merge){// Do not merge styles when importing an Excel file // since each cell may have different styles intentionally. _this7.mergeCellsWithoutStyle(merge);});}},{key:"workbook",get:function get(){return this._workbook;}},{key:"dimensions",get:function get(){var dimensions=new Range();this._rows.forEach(function(row){if(row){var rowDims=row.dimensions;if(rowDims){dimensions.expand(row.number,rowDims.min,row.number,rowDims.max);}}});return dimensions;}// ========================================================================= // Columns // get the current columns array. },{key:"columns",get:function get(){return this._columns;}// set the columns from an array of column definitions. // Note: any headers defined will overwrite existing values. ,set:function set(value){var _this8=this;// calculate max header row count this._headerRowCount=value.reduce(function(pv,cv){var headerCount=cv.header&&1||cv.headers&&cv.headers.length||0;return Math.max(pv,headerCount);},0);// construct Column objects var count=1;var columns=this._columns=[];value.forEach(function(defn){var column=new Column(_this8,count++,false);columns.push(column);column.defn=defn;});}},{key:"columnCount",get:function get(){var maxCount=0;this.eachRow(function(row){maxCount=Math.max(maxCount,row.cellCount);});return maxCount;}},{key:"actualColumnCount",get:function get(){// performance nightmare - for each row, counts all the columns used var counts=[];var count=0;this.eachRow(function(row){row.eachCell(function(_ref){var col=_ref.col;if(!counts[col]){counts[col]=true;count++;}});});return count;}},{key:"_lastRowNumber",get:function get(){// need to cope with results of splice var rows=this._rows;var n=rows.length;while(n>0&&rows[n-1]===undefined){n--;}return n;}},{key:"_nextRow",get:function get(){return this._lastRowNumber+1;}},{key:"lastRow",get:function get(){if(this._rows.length){return this._rows[this._rows.length-1];}return undefined;}},{key:"rowCount",get:function get(){return this._lastRowNumber;}},{key:"actualRowCount",get:function get(){// counts actual rows that have actual data var count=0;this.eachRow(function(){count++;});return count;}},{key:"hasMerges",get:function get(){// return true if this._merges has a merge object return _.some(this._merges,Boolean);}},{key:"tabColor",get:function get(){// eslint-disable-next-line no-console console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');return this.properties.tabColor;},set:function set(value){// eslint-disable-next-line no-console console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');this.properties.tabColor=value;}// =========================================================================== // Model },{key:"model",get:function get(){var model={id:this.id,name:this.name,dataValidations:this.dataValidations.model,properties:this.properties,state:this.state,pageSetup:this.pageSetup,headerFooter:this.headerFooter,rowBreaks:this.rowBreaks,views:this.views,autoFilter:this.autoFilter,media:this._media.map(function(medium){return medium.model;}),sheetProtection:this.sheetProtection,tables:Object.values(this.tables).map(function(table){return table.model;}),conditionalFormattings:this.conditionalFormattings};// ================================================= // columns model.cols=Column.toModel(this.columns);// ========================================================== // Rows var rows=model.rows=[];var dimensions=model.dimensions=new Range();this._rows.forEach(function(row){var rowModel=row&&row.model;if(rowModel){dimensions.expand(rowModel.number,rowModel.min,rowModel.number,rowModel.max);rows.push(rowModel);}});// ========================================================== // Merges model.merges=[];_.each(this._merges,function(merge){model.merges.push(merge.range);});return model;},set:function set(value){var _this9=this;this.name=value.name;this._columns=Column.fromModel(this,value.cols);this._parseRows(value);this._parseMergeCells(value);this.dataValidations=new DataValidations(value.dataValidations);this.properties=value.properties;this.pageSetup=value.pageSetup;this.headerFooter=value.headerFooter;this.views=value.views;this.autoFilter=value.autoFilter;this._media=value.media.map(function(medium){return new Image(_this9,medium);});this.sheetProtection=value.sheetProtection;this.tables=value.tables.reduce(function(tables,table){var t=new Table();t.model=table;tables[table.name]=t;return tables;},{});this.conditionalFormattings=value.conditionalFormattings;}}]);return Worksheet;}();module.exports=Worksheet;},{"../utils/col-cache":17,"../utils/encryptor":18,"../utils/under-dash":23,"./column":4,"./data-validations":5,"./enums":7,"./image":8,"./range":10,"./row":11,"./table":12}],15:[function(require,module,exports){"use strict";/* eslint-disable import/no-extraneous-dependencies,node/no-unpublished-require */require('core-js/modules/es.promise');require('core-js/modules/es.object.assign');require('core-js/modules/es.object.keys');require('core-js/modules/es.symbol');require('core-js/modules/es.symbol.async-iterator');require('regenerator-runtime/runtime');var ExcelJS={Workbook:require('./doc/workbook')};// Object.assign mono-fill var Enums=require('./doc/enums');Object.keys(Enums).forEach(function(key){ExcelJS[key]=Enums[key];});module.exports=ExcelJS;},{"./doc/enums":7,"./doc/workbook":13,"core-js/modules/es.object.assign":300,"core-js/modules/es.object.keys":301,"core-js/modules/es.promise":302,"core-js/modules/es.symbol":304,"core-js/modules/es.symbol.async-iterator":303,"regenerator-runtime/runtime":468}],16:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i=1){while(n<=26){c=this._dictionary[n-1];this._n2l[n]=c;this._l2n[c]=n;n++;}}if(level>=2){while(n<=26+26*26){v=n-(26+1);l1=v%26;l2=Math.floor(v/26);c=this._dictionary[l2]+this._dictionary[l1];this._n2l[n]=c;this._l2n[c]=n;n++;}}if(level>=3){while(n<=16384){v=n-(26*26+26+1);l1=v%26;l2=Math.floor(v/26)%26;l3=Math.floor(v/(26*26));c=this._dictionary[l3]+this._dictionary[l2]+this._dictionary[l1];this._n2l[n]=c;this._l2n[c]=n;n++;}}},l2n:function l2n(l){if(!this._l2n[l]){this._fill(l.length);}if(!this._l2n[l]){throw new Error("Out of bounds. Invalid column letter: ".concat(l));}return this._l2n[l];},n2l:function n2l(n){if(n<1||n>16384){throw new Error("".concat(n," is out of bounds. Excel supports columns from 1 to 16384"));}if(!this._n2l[n]){this._fill(this._level(n));}return this._n2l[n];},// ========================================================================= // Address processing _hash:{},// check if value looks like an address validateAddress:function validateAddress(value){if(!value.match(/^[A-Z]+\d+$/)){throw new Error("Invalid Address: ".concat(value));}return true;},// convert address string into structure decodeAddress:function decodeAddress(value){var addr=this._hash[value];if(addr){return addr;}var matchCol=value.match(/[A-Z]+/);var col;var colNumber;if(matchCol){col=matchCol[0];colNumber=this.l2n(col);}var matchRow=value.match(/\d+/);var row;var rowNumber;if(matchRow){row=matchRow[0];rowNumber=parseInt(row,10);}// in case $row$col value=(col||'')+(row||'');var address={address:value,col:colNumber,row:rowNumber,$col$row:"$".concat(col||'',"$").concat(row||'')};// mem fix - cache only the tl 100x100 square if(colNumber<=100&&rowNumber<=100){this._hash[value]=address;this._hash[address.$col$row]=address;}return address;},// convert r,c into structure (if only 1 arg, assume r is address string) getAddress:function getAddress(r,c){if(c){var address=this.n2l(c)+r;return this.decodeAddress(address);}return this.decodeAddress(r);},// convert [address], [tl:br] into address structures decode:function decode(value){var parts=value.split(':');if(parts.length===2){var tl=this.decodeAddress(parts[0]);var br=this.decodeAddress(parts[1]);var result={top:Math.min(tl.row,br.row),left:Math.min(tl.col,br.col),bottom:Math.max(tl.row,br.row),right:Math.max(tl.col,br.col)};// reconstruct tl, br and dimensions result.tl=this.n2l(result.left)+result.top;result.br=this.n2l(result.right)+result.bottom;result.dimensions="".concat(result.tl,":").concat(result.br);return result;}return this.decodeAddress(value);},// convert [sheetName!][$]col[$]row[[$]col[$]row] into address or range structures decodeEx:function decodeEx(value){var groups=value.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/);var sheetName=groups[1]||groups[2];// Qouted and unqouted groups var reference=groups[3];// Remaining address var parts=reference.split(':');if(parts.length>1){var tl=this.decodeAddress(parts[0]);var br=this.decodeAddress(parts[1]);var top=Math.min(tl.row,br.row);var left=Math.min(tl.col,br.col);var bottom=Math.max(tl.row,br.row);var right=Math.max(tl.col,br.col);tl=this.n2l(left)+top;br=this.n2l(right)+bottom;return{top:top,left:left,bottom:bottom,right:right,sheetName:sheetName,tl:{address:tl,col:left,row:top,$col$row:"$".concat(this.n2l(left),"$").concat(top),sheetName:sheetName},br:{address:br,col:right,row:bottom,$col$row:"$".concat(this.n2l(right),"$").concat(bottom),sheetName:sheetName},dimensions:"".concat(tl,":").concat(br)};}if(reference.startsWith('#')){return sheetName?{sheetName:sheetName,error:reference}:{error:reference};}var address=this.decodeAddress(reference);return sheetName?_objectSpread({sheetName:sheetName},address):address;},// convert row,col into address string encodeAddress:function encodeAddress(row,col){return colCache.n2l(col)+row;},// convert row,col into string address or t,l,b,r into range encode:function encode(){switch(arguments.length){case 2:return colCache.encodeAddress(arguments[0],arguments[1]);case 4:return"".concat(colCache.encodeAddress(arguments[0],arguments[1]),":").concat(colCache.encodeAddress(arguments[2],arguments[3]));default:throw new Error('Can only encode with 2 or 4 arguments');}},// return true if address is contained within range inRange:function inRange(range,address){var _range=_slicedToArray(range,5),left=_range[0],top=_range[1],right=_range[3],bottom=_range[4];var _address=_slicedToArray(address,2),col=_address[0],row=_address[1];return col>=left&&col<=right&&row>=top&&row<=bottom;}};module.exports=colCache;},{}],18:[function(require,module,exports){(function(Buffer){'use strict';var crypto=require('crypto');var Encryptor={/** * Calculate a hash of the concatenated buffers with the given algorithm. * @param {string} algorithm - The hash algorithm. * @returns {Buffer} The hash */hash:function hash(algorithm){var hash=crypto.createHash(algorithm);for(var _len=arguments.length,buffers=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){buffers[_key-1]=arguments[_key];}hash.update(Buffer.concat(buffers));return hash.digest();},/** * Convert a password into an encryption key * @param {string} password - The password * @param {string} hashAlgorithm - The hash algoritm * @param {string} saltValue - The salt value * @param {number} spinCount - The spin count * @param {number} keyBits - The length of the key in bits * @param {Buffer} blockKey - The block key * @returns {Buffer} The encryption key */convertPasswordToHash:function convertPasswordToHash(password,hashAlgorithm,saltValue,spinCount){hashAlgorithm=hashAlgorithm.toLowerCase();var hashes=crypto.getHashes();if(hashes.indexOf(hashAlgorithm)<0){throw new Error("Hash algorithm '".concat(hashAlgorithm,"' not supported!"));}// Password must be in unicode buffer var passwordBuffer=Buffer.from(password,'utf16le');// Generate the initial hash var key=this.hash(hashAlgorithm,Buffer.from(saltValue,'base64'),passwordBuffer);// Now regenerate until spin count for(var i=0;i3||colStr.length===3&&colStr>'XFD'){// > XFD is the highest col number in excel 2007 and beyond, so this is a named range return refMatch;}var col=colCache.l2n(colStr);var row=parseInt(rowStr,10);if(!colDollar){col+=to.col-offset.col;}if(!rowDollar){row+=to.row-offset.row;}var res=(sheet||'')+(colDollar||'')+colCache.n2l(col)+(rowDollar||'')+row;return res;}return refMatch;});}module.exports={slideFormula:slideFormula};},{"./col-cache":17}],21:[function(require,module,exports){(function(process,Buffer){"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i=this.length){// if no size specified or size is at least what we have then return all of the bytes buf=this.toBuffer();this.iRead=this.iWrite;return buf;}// otherwise return a chunk buf=Buffer.alloc(size);this.buffer.copy(buf,0,this.iRead,size);this.iRead+=size;return buf;}},{key:"write",value:function write(chunk,offset,length){// write as many bytes from data from optional source offset // and return number of bytes written var size=Math.min(length,this.size-this.iWrite);chunk.copy(this.buffer,this.iWrite,offset,offset+size);this.iWrite+=size;return size;}},{key:"length",get:function get(){return this.iWrite-this.iRead;}},{key:"eod",get:function get(){return this.iRead===this.iWrite;}},{key:"full",get:function get(){return this.iWrite===this.size;}}]);return ReadWriteBuf;}();// ============================================================================= // StreamBuf - a multi-purpose read-write stream // As MemBuf - write as much data as you like. Then call toBuffer() to consolidate // As StreamHub - pipe to multiple writables // As readable stream - feed data into the writable part and have some other code read from it. // Note: Not sure why but StreamBuf does not like JS "class" sugar. It fails the // integration tests var StreamBuf=function StreamBuf(options){options=options||{};this.bufSize=options.bufSize||1024*1024;this.buffers=[];// batch mode fills a buffer completely before passing the data on // to pipes or 'readable' event listeners this.batch=options.batch||false;this.corked=false;// where in the current writable buffer we're up to this.inPos=0;// where in the current readable buffer we've read up to this.outPos=0;// consuming pipe streams go here this.pipes=[];// controls emit('data') this.paused=false;this.encoding=null;};utils.inherits(StreamBuf,Stream.Duplex,{toBuffer:function toBuffer(){switch(this.buffers.length){case 0:return null;case 1:return this.buffers[0].toBuffer();default:return Buffer.concat(this.buffers.map(function(rwBuf){return rwBuf.toBuffer();}));}},// writable // event drain - if write returns false (which it won't), indicates when safe to write again. // finish - end() has been called // pipe(src) - pipe() has been called on readable // unpipe(src) - unpipe() has been called on readable // error - duh _getWritableBuffer:function _getWritableBuffer(){if(this.buffers.length){var last=this.buffers[this.buffers.length-1];if(!last.full){return last;}}var buf=new ReadWriteBuf(this.bufSize);this.buffers.push(buf);return buf;},_pipe:function _pipe(chunk){var _this=this;return _asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee(){var write;return regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:write=function write(pipe){return new Promise(function(resolve){pipe.write(chunk.toBuffer(),function(){resolve();});});};_context.next=3;return Promise.all(_this.pipes.map(write));case 3:case"end":return _context.stop();}}},_callee);}))();},_writeToBuffers:function _writeToBuffers(chunk){var inPos=0;var inLen=chunk.length;while(inPos1){_this2._pipe(_this2.buffers.shift());}_context2.next=29;break;case 21:if(_this2.corked){_context2.next=27;break;}_context2.next=24;return _this2._pipe(chunk);case 24:callback();_context2.next=29;break;case 27:_this2._writeToBuffers(chunk);process.nextTick(callback);case 29:_context2.next=34;break;case 31:if(!_this2.paused){_this2.emit('data',chunk.toBuffer());}_this2._writeToBuffers(chunk);_this2.emit('readable');case 34:return _context2.abrupt("return",true);case 35:case"end":return _context2.stop();}}},_callee2);}))();},cork:function cork(){this.corked=true;},_flush:function _flush()/* destination */{// if we have comsumers... if(this.pipes.length){// and there's stuff not written while(this.buffers.length){this._pipe(this.buffers.shift());}}},uncork:function uncork(){this.corked=false;this._flush();},end:function end(chunk,encoding,callback){var _this3=this;var writeComplete=function writeComplete(error){if(error){callback(error);}else{_this3._flush();_this3.pipes.forEach(function(pipe){pipe.end();});_this3.emit('finish');}};if(chunk){this.write(chunk,encoding,writeComplete);}else{writeComplete();}},// readable // event readable - some data is now available // event data - switch to flowing mode - feeds chunks to handler // event end - no more data // event close - optional, indicates upstream close // event error - duh read:function read(size){var buffers;// read min(buffer, size || infinity) if(size){buffers=[];while(size&&this.buffers.length&&!this.buffers[0].eod){var first=this.buffers[0];var buffer=first.read(size);size-=buffer.length;buffers.push(buffer);if(first.eod&&first.full){this.buffers.shift();}}return Buffer.concat(buffers);}buffers=this.buffers.map(function(buf){return buf.toBuffer();}).filter(Boolean);this.buffers=[];return Buffer.concat(buffers);},setEncoding:function setEncoding(encoding){// causes stream.read or stream.on('data) to return strings of encoding instead of Buffer objects this.encoding=encoding;},pause:function pause(){this.paused=true;},resume:function resume(){this.paused=false;},isPaused:function isPaused(){return!!this.paused;},pipe:function pipe(destination){// add destination to pipe list & write current buffer this.pipes.push(destination);if(!this.paused&&this.buffers.length){this.end();}},unpipe:function unpipe(destination){// remove destination from pipe list this.pipes=this.pipes.filter(function(pipe){return pipe!==destination;});},unshift:function unshift()/* chunk */{// some numpty has read some data that's not for them and they want to put it back! // Might implement this some day throw new Error('Not Implemented');},wrap:function wrap()/* stream */{// not implemented throw new Error('Not Implemented');}});module.exports=StreamBuf;}).call(this,require('_process'),require("buffer").Buffer);},{"./string-buf":22,"./utils":24,"_process":443,"buffer":214,"readable-stream":467}],22:[function(require,module,exports){(function(Buffer){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i=this._buf.length-4){this._grow(this._inPos+text.length);// keep trying to write until we've completely written the text inPos=this._inPos+this._buf.write(text,this._inPos,this._encoding);}this._inPos=inPos;}},{key:"addStringBuf",value:function addStringBuf(inBuf){if(inBuf.length){this._buffer=undefined;if(this.length+inBuf.length>this.capacity){this._grow(this.length+inBuf.length);}// eslint-disable-next-line no-underscore-dangle inBuf._buf.copy(this._buf,this._inPos,0,inBuf.length);this._inPos+=inBuf.length;}}},{key:"length",get:function get(){return this._inPos;}},{key:"capacity",get:function get(){return this._buf.length;}},{key:"buffer",get:function get(){return this._buf;}}]);return StringBuf;}();module.exports=StringBuf;}).call(this,require("buffer").Buffer);},{"buffer":214}],23:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}var toString=Object.prototype.toString;var _={each:function each(obj,cb){if(obj){if(Array.isArray(obj)){obj.forEach(cb);}else{Object.keys(obj).forEach(function(key){cb(obj[key],key);});}}},some:function some(obj,cb){if(obj){if(Array.isArray(obj)){return obj.some(cb);}return Object.keys(obj).some(function(key){return cb(obj[key],key);});}return false;},every:function every(obj,cb){if(obj){if(Array.isArray(obj)){return obj.every(cb);}return Object.keys(obj).every(function(key){return cb(obj[key],key);});}return true;},map:function map(obj,cb){if(obj){if(Array.isArray(obj)){return obj.map(cb);}return Object.keys(obj).map(function(key){return cb(obj[key],key);});}return[];},keyBy:function keyBy(a,p){return a.reduce(function(o,v){o[v[p]]=v;return o;},{});},isEqual:function isEqual(a,b){var aType=_typeof(a);var bType=_typeof(b);var aArray=Array.isArray(a);var bArray=Array.isArray(b);if(aType!==bType){return false;}switch(_typeof(a)){case'object':if(aArray||bArray){if(aArray&&bArray){return a.length===b.length&&a.every(function(aValue,index){var bValue=b[index];return _.isEqual(aValue,bValue);});}return false;}return _.every(a,function(aValue,key){var bValue=b[key];return _.isEqual(aValue,bValue);});default:return a===b;}},escapeHtml:function escapeHtml(html){return html.replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''');},strcmp:function strcmp(a,b){if(ab)return 1;return 0;},isUndefined:function isUndefined(val){return toString.call(val)==='[object Undefined]';},isObject:function isObject(val){return toString.call(val)==='[object Object]';},deepMerge:function deepMerge(){var target=arguments[0]||{};var length=arguments.length;// eslint-disable-next-line one-var var src,clone,copyIsArray;function assignValue(val,key){src=target[key];copyIsArray=Array.isArray(val);if(_.isObject(val)||copyIsArray){if(copyIsArray){copyIsArray=false;clone=src&&Array.isArray(src)?src:[];}else{clone=src&&_.isObject(src)?src:{};}target[key]=_.deepMerge(clone,val);}else if(!_.isUndefined(val)){target[key]=val;}}for(var i=0;i&'"\x7F\x00-\x08\x0B-\x0C\x0E-\x1F]/g,function(c){switch(c){case'<':return'<';case'>':return'>';case'&':return'&';case'\'':return''';case'"':return'"';default:return'';}});},xmlDecode:function xmlDecode(text){return text.replace(/&([a-z]*);/,function(c){switch(c){case'<':return'<';case'>':return'>';case'&':return'&';case''':return'\'';case'"':return'"';default:return c;}});},validInt:function validInt(value){var i=parseInt(value,10);return!Number.isNaN(i)?i:0;},isDateFmt:function isDateFmt(fmt){if(!fmt){return false;}// must remove all chars inside quotes and [] fmt=fmt.replace(/\[[^\]]*]/g,'');fmt=fmt.replace(/"[^"]*"/g,'');// then check for date formatting chars var result=fmt.match(/[ymdhMsb]+/)!==null;return result;},fs:{exists:function exists(path){return new Promise(function(resolve){fs.access(path,fs.constants.F_OK,function(err){resolve(!err);});});}},toIsoDateString:function toIsoDateString(dt){return dt.toIsoString().subsstr(0,10);}};module.exports=utils;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("timers").setImmediate);},{"fs":213,"timers":496}],25:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i xml.push('\n');}},{key:"openNode",value:function openNode(name,attributes){var parent=this.tos;var xml=this._xml;if(parent&&this.open){xml.push(CLOSE_ANGLE);}this._stack.push(name);// start streaming node xml.push(OPEN_ANGLE);xml.push(name);pushAttributes(xml,attributes);this.leaf=true;this.open=true;}},{key:"addAttribute",value:function addAttribute(name,value){if(!this.open){throw new Error('Cannot write attributes to node if it is not open');}if(value!==undefined){pushAttribute(this._xml,name,value);}}},{key:"addAttributes",value:function addAttributes(attrs){if(!this.open){throw new Error('Cannot write attributes to node if it is not open');}pushAttributes(this._xml,attrs);}},{key:"writeText",value:function writeText(text){var xml=this._xml;if(this.open){xml.push(CLOSE_ANGLE);this.open=false;}this.leaf=false;xml.push(utils.xmlEncode(text.toString()));}},{key:"writeXml",value:function writeXml(xml){if(this.open){this._xml.push(CLOSE_ANGLE);this.open=false;}this.leaf=false;this._xml.push(xml);}},{key:"closeNode",value:function closeNode(){var node=this._stack.pop();var xml=this._xml;if(this.leaf){xml.push(CLOSE_SLASH_ANGLE);}else{xml.push(OPEN_ANGLE_SLASH);xml.push(node);xml.push(CLOSE_ANGLE);}this.open=false;this.leaf=false;}},{key:"leafNode",value:function leafNode(name,attributes,text){this.openNode(name,attributes);if(text!==undefined){// zeros need to be written this.writeText(text);}this.closeNode();}},{key:"closeAll",value:function closeAll(){while(this._stack.length){this.closeNode();}}},{key:"addRollback",value:function addRollback(){this._rollbacks.push({xml:this._xml.length,stack:this._stack.length,leaf:this.leaf,open:this.open});return this.cursor;}},{key:"commit",value:function commit(){this._rollbacks.pop();}},{key:"rollback",value:function rollback(){var r=this._rollbacks.pop();if(this._xml.length>r.xml){this._xml.splice(r.xml,this._xml.length-r.xml);}if(this._stack.length>r.stack){this._stack.splice(r.stack,this._stack.length-r.stack);}this.leaf=r.leaf;this.open=r.open;}},{key:"tos",get:function get(){return this._stack.length?this._stack[this._stack.length-1]:undefined;}},{key:"cursor",get:function get(){// handy way to track whether anything has been added return this._xml.length;}},{key:"xml",get:function get(){this.closeAll();return this._xml.join('');}}]);return XmlStream;}();XmlStream.StdDocAttributes={version:'1.0',encoding:'UTF-8',standalone:'yes'};module.exports=XmlStream;},{"./under-dash":23,"./utils":24}],26:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e){throw _e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var it,normalCompletion=true,didErr=false,err;return{s:function s(){it=o[Symbol.iterator]();},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e2){didErr=true;err=_e2;},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return();}finally{if(didErr)throw err;}}};}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i2&&arguments[2]!==undefined?arguments[2]:false;if(value===undefined){if(always){return dflt;}}else if(always||value!==dflt){return value.toString();}return undefined;}},{key:"toStringAttribute",value:function toStringAttribute(value,dflt){var always=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return BaseXform.toAttribute(value,dflt,always);}},{key:"toStringValue",value:function toStringValue(attr,dflt){return attr===undefined?dflt:attr;}},{key:"toBoolAttribute",value:function toBoolAttribute(value,dflt){var always=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(value===undefined){if(always){return dflt;}}else if(always||value!==dflt){return value?'1':'0';}return undefined;}},{key:"toBoolValue",value:function toBoolValue(attr,dflt){return attr===undefined?dflt:attr==='1';}},{key:"toIntAttribute",value:function toIntAttribute(value,dflt){var always=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return BaseXform.toAttribute(value,dflt,always);}},{key:"toIntValue",value:function toIntValue(attr,dflt){return attr===undefined?dflt:parseInt(attr,10);}},{key:"toFloatAttribute",value:function toFloatAttribute(value,dflt){var always=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return BaseXform.toAttribute(value,dflt,always);}},{key:"toFloatValue",value:function toFloatValue(attr,dflt){return attr===undefined?dflt:parseFloat(attr);}}]);return BaseXform;}();module.exports=BaseXform;},{"../../utils/parse-sax":19,"../../utils/xml-stream":25}],30:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i // name.ranges.join(',') // name.ranges.join(',') // xmlStream.openNode('definedName',{name:model.name,localSheetId:model.localSheetId});xmlStream.writeText(model.ranges.join(','));xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){switch(node.name){case'definedName':this._parsedName=node.attributes.name;this._parsedLocalSheetId=node.attributes.localSheetId;this._parsedText=[];return true;default:return false;}}},{key:"parseText",value:function parseText(text){this._parsedText.push(text);}},{key:"parseClose",value:function parseClose(){this.model={name:this._parsedName,ranges:extractRanges(this._parsedText.join(''))};if(this._parsedLocalSheetId!==undefined){this.model.localSheetId=parseInt(this._parsedLocalSheetId,10);}return false;}}]);return DefinedNamesXform;}(BaseXform);function isValidRange(range){try{colCache.decodeEx(range);return true;}catch(err){return false;}}function extractRanges(parsedText){var ranges=[];var quotesOpened=false;var last='';parsedText.split(',').forEach(function(item){if(!item){return;}var quotes=(item.match(/'/g)||[]).length;if(!quotes){if(quotesOpened){last+="".concat(item,",");}else if(isValidRange(item)){ranges.push(item);}return;}var quotesEven=quotes%2===0;if(!quotesOpened&"esEven&&isValidRange(item)){ranges.push(item);}else if(quotesOpened&&!quotesEven){quotesOpened=false;if(isValidRange(last+item)){ranges.push(last+item);}last='';}else{quotesOpened=true;last+="".concat(item,",");}});return ranges;}module.exports=DefinedNamesXform;},{"../../../utils/col-cache":17,"../base-xform":29}],31:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i 51422: test */var CommentXform=module.exports=function(model){this.model=model;};utils.inherits(CommentXform,BaseXform,{get tag(){return'r';},get richTextXform(){if(!this._richTextXform){this._richTextXform=new RichTextXform();}return this._richTextXform;},render:function render(xmlStream,model){var _this=this;model=model||this.model;xmlStream.openNode('comment',{ref:model.ref,authorId:0});xmlStream.openNode('text');if(model&&model.note&&model.note.texts){model.note.texts.forEach(function(text){_this.richTextXform.render(xmlStream,text);});}xmlStream.closeNode();xmlStream.closeNode();},parseOpen:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case'comment':this.model=_objectSpread({type:'note',note:{texts:[]}},node.attributes);return true;case'r':this.parser=this.richTextXform;this.parser.parseOpen(node);return true;default:return false;}},parseText:function parseText(text){if(this.parser){this.parser.parseText(text);}},parseClose:function parseClose(name){switch(name){case'comment':return false;case'r':this.model.note.texts.push(this.parser.model);this.parser=undefined;return true;default:if(this.parser){this.parser.parseClose(name);}return true;}}});},{"../../../utils/utils":24,"../base-xform":29,"../strings/rich-text-xform":119}],37:[function(require,module,exports){"use strict";var XmlStream=require('../../../utils/xml-stream');var utils=require('../../../utils/utils');var BaseXform=require('../base-xform');var CommentXform=require('./comment-xform');var CommentsXform=module.exports=function(){this.map={comment:new CommentXform()};};utils.inherits(CommentsXform,BaseXform,{COMMENTS_ATTRIBUTES:{xmlns:'http://schemas.openxmlformats.org/spreadsheetml/2006/main'}},{render:function render(xmlStream,model){var _this=this;model=model||this.model;xmlStream.openXml(XmlStream.StdDocAttributes);xmlStream.openNode('comments',CommentsXform.COMMENTS_ATTRIBUTES);// authors // TODO: support authors properly xmlStream.openNode('authors');xmlStream.leafNode('author',null,'Author');xmlStream.closeNode();// comments xmlStream.openNode('commentList');model.comments.forEach(function(comment){_this.map.comment.render(xmlStream,comment);});xmlStream.closeNode();xmlStream.closeNode();},parseOpen:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case'commentList':this.model={comments:[]};return true;case'comment':this.parser=this.map.comment;this.parser.parseOpen(node);return true;default:return false;}},parseText:function parseText(text){if(this.parser){this.parser.parseText(text);}},parseClose:function parseClose(name){switch(name){case'commentList':return false;case'comment':this.model.comments.push(this.parser.model);this.parser=undefined;return true;default:if(this.parser){this.parser.parseClose(name);}return true;}}});},{"../../../utils/utils":24,"../../../utils/xml-stream":25,"../base-xform":29,"./comment-xform":36}],38:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;ia:ext=>a14:useLocalDpi }},{key:"parseOpen",value:function parseOpen(node){switch(node.name){case this.tag:this.model={rId:node.attributes['r:embed']};return true;default:return true;}}},{key:"parseText",value:function parseText(){}},{key:"parseClose",value:function parseClose(name){switch(name){case this.tag:return false;default:// unprocessed internal nodes return true;}}},{key:"tag",get:function get(){return'a:blip';}}]);return BlipXform;}(BaseXform);module.exports=BlipXform;},{"../base-xform":29}],56:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;ithis.maxItems){throw new Error("Max ".concat(this.childXform.tag," count (").concat(this.maxItems,") exceeded"));}}return true;}return false;}},{key:"reconcile",value:function reconcile(model,options){if(model){var childXform=this.childXform;model.forEach(function(childModel){childXform.reconcile(childModel,options);});}}}]);return ListXform;}(BaseXform);module.exports=ListXform;},{"./base-xform":29}],69:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i }},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case'c':// const address = colCache.decodeAddress(node.attributes.r); this.model={address:node.attributes.r};this.t=node.attributes.t;if(node.attributes.s){this.model.styleId=parseInt(node.attributes.s,10);}return true;case'f':this.currentNode='f';this.model.si=node.attributes.si;this.model.shareType=node.attributes.t;this.model.ref=node.attributes.ref;return true;case'v':this.currentNode='v';return true;case't':this.currentNode='t';return true;case'r':this.parser=this.richTextXForm;this.parser.parseOpen(node);return true;default:return false;}}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);return;}switch(this.currentNode){case'f':this.model.formula=this.model.formula?this.model.formula+text:text;break;case'v':case't':if(this.model.value&&this.model.value.richText){this.model.value.richText.text=this.model.value.richText.text?this.model.value.richText.text+text:text;}else{this.model.value=this.model.value?this.model.value+text:text;}break;default:break;}}},{key:"parseClose",value:function parseClose(name){switch(name){case'c':{var model=this.model;// first guess on cell type if(model.formula||model.shareType){model.type=Enums.ValueType.Formula;if(model.value){if(this.t==='str'){model.result=utils.xmlDecode(model.value);}else if(this.t==='b'){model.result=parseInt(model.value,10)!==0;}else if(this.t==='e'){model.result={error:model.value};}else{model.result=parseFloat(model.value);}model.value=undefined;}}else if(model.value!==undefined){switch(this.t){case's':model.type=Enums.ValueType.String;model.value=parseInt(model.value,10);break;case'str':model.type=Enums.ValueType.String;model.value=utils.xmlDecode(model.value);break;case'inlineStr':model.type=Enums.ValueType.String;break;case'b':model.type=Enums.ValueType.Boolean;model.value=parseInt(model.value,10)!==0;break;case'e':model.type=Enums.ValueType.Error;model.value={error:model.value};break;default:model.type=Enums.ValueType.Number;model.value=parseFloat(model.value);break;}}else if(model.styleId){model.type=Enums.ValueType.Null;}else{model.type=Enums.ValueType.Merge;}return false;}case'f':case'v':case'is':this.currentNode=undefined;return true;case't':if(this.parser){this.parser.parseClose(name);return true;}this.currentNode=undefined;return true;case'r':this.model.value=this.model.value||{};this.model.value.richText=this.model.value.richText||[];this.model.value.richText.push(this.parser.model);this.parser=undefined;this.currentNode=undefined;return true;default:if(this.parser){this.parser.parseClose(name);return true;}return false;}}},{key:"reconcile",value:function reconcile(model,options){var style=model.styleId&&options.styles&&options.styles.getStyleModel(model.styleId);if(style){model.style=style;}if(model.styleId!==undefined){model.styleId=undefined;}switch(model.type){case Enums.ValueType.String:if(typeof model.value==='number'){if(options.sharedStrings){model.value=options.sharedStrings.getString(model.value);}}if(model.value.richText){model.type=Enums.ValueType.RichText;}break;case Enums.ValueType.Number:if(style&&utils.isDateFmt(style.numFmt)){model.type=Enums.ValueType.Date;model.value=utils.excelToDate(model.value,options.date1904);}break;case Enums.ValueType.Formula:if(model.result!==undefined&&style&&utils.isDateFmt(style.numFmt)){model.result=utils.excelToDate(model.result,options.date1904);}if(model.shareType==='shared'){if(model.ref){// master options.formulae[model.si]=model.address;}else{// slave model.sharedFormula=options.formulae[model.si];delete model.shareType;}delete model.si;}break;default:break;}// look for hyperlink var hyperlink=options.hyperlinkMap[model.address];if(hyperlink){if(model.type===Enums.ValueType.Formula){model.text=model.result;model.result=undefined;}else{model.text=model.value;model.value=undefined;}model.type=Enums.ValueType.Hyperlink;model.hyperlink=hyperlink;}var comment=options.commentsMap&&options.commentsMap[model.address];if(comment){model.comment=comment;}}},{key:"tag",get:function get(){return'c';}}]);return CellXform;}(BaseXform);module.exports=CellXform;},{"../../../doc/enums":7,"../../../doc/range":10,"../../../utils/utils":24,"../base-xform":29,"../strings/rich-text-xform":119}],71:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i node to be after the rules this.sqRef.render(xmlStream,model.ref);xmlStream.closeNode();}},{key:"createNewModel",value:function createNewModel(){return{rules:[]};}},{key:"onParserClose",value:function onParserClose(name,parser){switch(name){case'xm:sqref':this.model.ref=parser.model;break;case'x14:cfRule':this.model.rules.push(parser.model);break;}}},{key:"tag",get:function get(){return'x14:conditionalFormatting';}}]);return ConditionalFormattingExtXform;}(CompositeXform);module.exports=ConditionalFormattingExtXform;},{"../../composite-xform":45,"./cf-rule-ext-xform":72,"./sqref-ext-xform":79}],75:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i0");case'containsErrors':return"ISERROR(".concat(tl,")");case'notContainsErrors':return"NOT(ISERROR(".concat(tl,"))");default:return undefined;}};var getTimePeriodFormula=function getTimePeriodFormula(model){if(model.formulae&&model.formulae[0]){return model.formulae[0];}var range=new Range(model.ref);var tl=range.tl;switch(model.timePeriod){case'thisWeek':return"AND(TODAY()-ROUNDDOWN(".concat(tl,",0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(").concat(tl,",0)-TODAY()<=7-WEEKDAY(TODAY()))");case'lastWeek':return"AND(TODAY()-ROUNDDOWN(".concat(tl,",0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(").concat(tl,",0)<(WEEKDAY(TODAY())+7))");case'nextWeek':return"AND(ROUNDDOWN(".concat(tl,",0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(").concat(tl,",0)-TODAY()<(15-WEEKDAY(TODAY())))");case'yesterday':return"FLOOR(".concat(tl,",1)=TODAY()-1");case'today':return"FLOOR(".concat(tl,",1)=TODAY()");case'tomorrow':return"FLOOR(".concat(tl,",1)=TODAY()+1");case'last7Days':return"AND(TODAY()-FLOOR(".concat(tl,",1)<=6,FLOOR(").concat(tl,",1)<=TODAY())");case'lastMonth':return"AND(MONTH(".concat(tl,")=MONTH(EDATE(TODAY(),0-1)),YEAR(").concat(tl,")=YEAR(EDATE(TODAY(),0-1)))");case'thisMonth':return"AND(MONTH(".concat(tl,")=MONTH(TODAY()),YEAR(").concat(tl,")=YEAR(TODAY()))");case'nextMonth':return"AND(MONTH(".concat(tl,")=MONTH(EDATE(TODAY(),0+1)),YEAR(").concat(tl,")=YEAR(EDATE(TODAY(),0+1)))");default:return undefined;}};var opType=function opType(attributes){var type=attributes.type,operator=attributes.operator;switch(type){case'containsText':case'containsBlanks':case'notContainsBlanks':case'containsErrors':case'notContainsErrors':return{type:'containsText',operator:type};default:return{type:type,operator:operator};}};var CfRuleXform=/*#__PURE__*/function(_CompositeXform){_inherits(CfRuleXform,_CompositeXform);var _super=_createSuper(CfRuleXform);function CfRuleXform(){var _this;_classCallCheck(this,CfRuleXform);_this=_super.call(this);_this.map={dataBar:_this.databarXform=new DatabarXform(),extLst:_this.extLstRefXform=new ExtLstRefXform(),formula:_this.formulaXform=new FormulaXform(),colorScale:_this.colorScaleXform=new ColorScaleXform(),iconSet:_this.iconSetXform=new IconSetXform()};return _this;}_createClass(CfRuleXform,[{key:"render",value:function render(xmlStream,model){switch(model.type){case'expression':this.renderExpression(xmlStream,model);break;case'cellIs':this.renderCellIs(xmlStream,model);break;case'top10':this.renderTop10(xmlStream,model);break;case'aboveAverage':this.renderAboveAverage(xmlStream,model);break;case'dataBar':this.renderDataBar(xmlStream,model);break;case'colorScale':this.renderColorScale(xmlStream,model);break;case'iconSet':this.renderIconSet(xmlStream,model);break;case'containsText':this.renderText(xmlStream,model);break;case'timePeriod':this.renderTimePeriod(xmlStream,model);break;}}},{key:"renderExpression",value:function renderExpression(xmlStream,model){xmlStream.openNode(this.tag,{type:'expression',dxfId:model.dxfId,priority:model.priority});this.formulaXform.render(xmlStream,model.formulae[0]);xmlStream.closeNode();}},{key:"renderCellIs",value:function renderCellIs(xmlStream,model){var _this2=this;xmlStream.openNode(this.tag,{type:'cellIs',dxfId:model.dxfId,priority:model.priority,operator:model.operator});model.formulae.forEach(function(formula){_this2.formulaXform.render(xmlStream,formula);});xmlStream.closeNode();}},{key:"renderTop10",value:function renderTop10(xmlStream,model){xmlStream.leafNode(this.tag,{type:'top10',dxfId:model.dxfId,priority:model.priority,percent:BaseXform.toBoolAttribute(model.percent,false),bottom:BaseXform.toBoolAttribute(model.bottom,false),rank:BaseXform.toIntValue(model.rank,10,true)});}},{key:"renderAboveAverage",value:function renderAboveAverage(xmlStream,model){xmlStream.leafNode(this.tag,{type:'aboveAverage',dxfId:model.dxfId,priority:model.priority,aboveAverage:BaseXform.toBoolAttribute(model.aboveAverage,true)});}},{key:"renderDataBar",value:function renderDataBar(xmlStream,model){xmlStream.openNode(this.tag,{type:'dataBar',priority:model.priority});this.databarXform.render(xmlStream,model);this.extLstRefXform.render(xmlStream,model);xmlStream.closeNode();}},{key:"renderColorScale",value:function renderColorScale(xmlStream,model){xmlStream.openNode(this.tag,{type:'colorScale',priority:model.priority});this.colorScaleXform.render(xmlStream,model);xmlStream.closeNode();}},{key:"renderIconSet",value:function renderIconSet(xmlStream,model){// iconset is all primitive or all extLst if(!CfRuleXform.isPrimitive(model)){return;}xmlStream.openNode(this.tag,{type:'iconSet',priority:model.priority});this.iconSetXform.render(xmlStream,model);xmlStream.closeNode();}},{key:"renderText",value:function renderText(xmlStream,model){xmlStream.openNode(this.tag,{type:model.operator,dxfId:model.dxfId,priority:model.priority,operator:BaseXform.toStringAttribute(model.operator,'containsText')});var formula=getTextFormula(model);if(formula){this.formulaXform.render(xmlStream,formula);}xmlStream.closeNode();}},{key:"renderTimePeriod",value:function renderTimePeriod(xmlStream,model){xmlStream.openNode(this.tag,{type:'timePeriod',dxfId:model.dxfId,priority:model.priority,timePeriod:model.timePeriod});var formula=getTimePeriodFormula(model);if(formula){this.formulaXform.render(xmlStream,formula);}xmlStream.closeNode();}},{key:"createNewModel",value:function createNewModel(_ref){var attributes=_ref.attributes;return _objectSpread(_objectSpread({},opType(attributes)),{},{dxfId:BaseXform.toIntValue(attributes.dxfId),priority:BaseXform.toIntValue(attributes.priority),timePeriod:attributes.timePeriod,percent:BaseXform.toBoolValue(attributes.percent),bottom:BaseXform.toBoolValue(attributes.bottom),rank:BaseXform.toIntValue(attributes.rank),aboveAverage:BaseXform.toBoolValue(attributes.aboveAverage)});}},{key:"onParserClose",value:function onParserClose(name,parser){switch(name){case'dataBar':case'extLst':case'colorScale':case'iconSet':// merge parser model with ours Object.assign(this.model,parser.model);break;case'formula':// except - formula is a string and appends to formulae this.model.formulae=this.model.formulae||[];this.model.formulae.push(parser.model);break;}}},{key:"tag",get:function get(){return'cfRule';}}],[{key:"isPrimitive",value:function isPrimitive(rule){// is this rule primitive? if(rule.type==='iconSet'){if(rule.custom||extIcons[rule.iconSet]){return false;}}return true;}}]);return CfRuleXform;}(CompositeXform);module.exports=CfRuleXform;},{"../../../../doc/range":10,"../../base-xform":29,"../../composite-xform":45,"./color-scale-xform":82,"./databar-xform":85,"./ext-lst-ref-xform":86,"./formula-xform":87,"./icon-set-xform":88}],81:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i1||width>1){var bottom=addr.row+(height-1);var right=addr.col+(width-1);return _objectSpread(_objectSpread({},dv.dataValidation),{},{sqref:"".concat(dv.address,":").concat(colCache.encodeAddress(bottom,right))});}return _objectSpread(_objectSpread({},dv.dataValidation),{},{sqref:dv.address});}return null;}).filter(Boolean);}var DataValidationsXform=/*#__PURE__*/function(_BaseXform){_inherits(DataValidationsXform,_BaseXform);var _super=_createSuper(DataValidationsXform);function DataValidationsXform(){_classCallCheck(this,DataValidationsXform);return _super.apply(this,arguments);}_createClass(DataValidationsXform,[{key:"render",value:function render(xmlStream,model){var optimizedModel=optimiseDataValidations(model);if(optimizedModel.length){xmlStream.openNode('dataValidations',{count:optimizedModel.length});optimizedModel.forEach(function(value){xmlStream.openNode('dataValidation');if(value.type!=='any'){xmlStream.addAttribute('type',value.type);if(value.operator&&value.type!=='list'&&value.operator!=='between'){xmlStream.addAttribute('operator',value.operator);}if(value.allowBlank){xmlStream.addAttribute('allowBlank','1');}}if(value.showInputMessage){xmlStream.addAttribute('showInputMessage','1');}if(value.promptTitle){xmlStream.addAttribute('promptTitle',value.promptTitle);}if(value.prompt){xmlStream.addAttribute('prompt',value.prompt);}if(value.showErrorMessage){xmlStream.addAttribute('showErrorMessage','1');}if(value.errorStyle){xmlStream.addAttribute('errorStyle',value.errorStyle);}if(value.errorTitle){xmlStream.addAttribute('errorTitle',value.errorTitle);}if(value.error){xmlStream.addAttribute('error',value.error);}xmlStream.addAttribute('sqref',value.sqref);(value.formulae||[]).forEach(function(formula,index){xmlStream.openNode("formula".concat(index+1));if(value.type==='date'){xmlStream.writeText(utils.dateToExcel(new Date(formula)));}else{xmlStream.writeText(formula);}xmlStream.closeNode();});xmlStream.closeNode();});xmlStream.closeNode();}}},{key:"parseOpen",value:function parseOpen(node){switch(node.name){case'dataValidations':this.model={};return true;case'dataValidation':{this._address=node.attributes.sqref;var dataValidation={type:node.attributes.type||'any',formulae:[]};if(node.attributes.type){assignBool(dataValidation,node.attributes,'allowBlank');}assignBool(dataValidation,node.attributes,'showInputMessage');assignBool(dataValidation,node.attributes,'showErrorMessage');switch(dataValidation.type){case'any':case'list':case'custom':break;default:assign(dataValidation,node.attributes,'operator','between');break;}assign(dataValidation,node.attributes,'promptTitle');assign(dataValidation,node.attributes,'prompt');assign(dataValidation,node.attributes,'errorStyle');assign(dataValidation,node.attributes,'errorTitle');assign(dataValidation,node.attributes,'error');this._dataValidation=dataValidation;return true;}case'formula1':case'formula2':this._formula=[];return true;default:return false;}}},{key:"parseText",value:function parseText(text){if(this._formula){this._formula.push(text);}}},{key:"parseClose",value:function parseClose(name){var _this=this;switch(name){case'dataValidations':return false;case'dataValidation':{if(!this._dataValidation.formulae||!this._dataValidation.formulae.length){delete this._dataValidation.formulae;delete this._dataValidation.operator;}// The four known cases: 1. E4:L9 N4:U9 2.E4 L9 3. N4:U9 4. E4 var list=this._address.split(/\s+/g)||[];list.forEach(function(addr){if(addr.includes(':')){var range=new Range(addr);range.forEachAddress(function(address){_this.model[address]=_this._dataValidation;});}else{_this.model[addr]=_this._dataValidation;}});return true;}case'formula1':case'formula2':{var formula=this._formula.join('');switch(this._dataValidation.type){case'whole':case'textLength':formula=parseInt(formula,10);break;case'decimal':formula=parseFloat(formula);break;case'date':formula=utils.excelToDate(parseFloat(formula));break;default:break;}this._dataValidation.formulae.push(formula);this._formula=undefined;return true;}default:return true;}}},{key:"tag",get:function get(){return'dataValidations';}}]);return DataValidationsXform;}(BaseXform);module.exports=DataValidationsXform;},{"../../../doc/range":10,"../../../utils/col-cache":17,"../../../utils/under-dash":23,"../../../utils/utils":24,"../base-xform":29}],91:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i0&&model.max>0&&model.min<=model.max){xmlStream.addAttribute('spans',"".concat(model.min,":").concat(model.max));}if(model.styleId){xmlStream.addAttribute('s',model.styleId);xmlStream.addAttribute('customFormat','1');}xmlStream.addAttribute('x14ac:dyDescent','0.25');if(model.outlineLevel){xmlStream.addAttribute('outlineLevel',model.outlineLevel);}if(model.collapsed){xmlStream.addAttribute('collapsed','1');}var cellXform=this.map.c;model.cells.forEach(function(cellModel){cellXform.render(xmlStream,cellModel,options);});xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}if(node.name==='row'){this.numRowsSeen+=1;var spans=node.attributes.spans?node.attributes.spans.split(':').map(function(span){return parseInt(span,10);}):[undefined,undefined];var model=this.model={number:parseInt(node.attributes.r,10),min:spans[0],max:spans[1],cells:[]};if(node.attributes.s){model.styleId=parseInt(node.attributes.s,10);}if(node.attributes.hidden===true||node.attributes.hidden==='true'||node.attributes.hidden===1||node.attributes.hidden==='1'){model.hidden=true;}if(node.attributes.bestFit){model.bestFit=true;}if(node.attributes.ht){model.height=parseFloat(node.attributes.ht);}if(node.attributes.outlineLevel){model.outlineLevel=parseInt(node.attributes.outlineLevel,10);}if(node.attributes.collapsed){model.collapsed=true;}return true;}this.parser=this.map[node.name];if(this.parser){this.parser.parseOpen(node);return true;}return false;}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){this.model.cells.push(this.parser.model);if(this.maxItems&&this.model.cells.length>this.maxItems){throw new Error("Max column count (".concat(this.maxItems,") exceeded"));}this.parser=undefined;}return true;}return false;}},{key:"reconcile",value:function reconcile(model,options){model.style=model.styleId?options.styles.getStyleModel(model.styleId):{};if(model.styleId!==undefined){model.styleId=undefined;}var cellXform=this.map.c;model.cells.forEach(function(cellModel){cellXform.reconcile(cellModel,options);});}},{key:"tag",get:function get(){return'row';}}]);return RowXform;}(BaseXform);module.exports=RowXform;},{"../base-xform":29,"./cell-xform":70}],107:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i0){var comment={Id:nextRid(rels),Type:RelType.Comments,Target:"../comments".concat(model.id,".xml")};rels.push(comment);var vmlDrawing={Id:nextRid(rels),Type:RelType.VmlDrawing,Target:"../drawings/vmlDrawing".concat(model.id,".vml")};rels.push(vmlDrawing);model.comments.forEach(function(item){item.refAddress=colCache.decodeAddress(item.ref);});options.commentRefs.push({commentName:"comments".concat(model.id),vmlDrawing:"vmlDrawing".concat(model.id)});}var drawingRelsHash=[];var bookImage;model.media.forEach(function(medium){if(medium.type==='background'){var rId=nextRid(rels);bookImage=options.media[medium.imageId];rels.push({Id:rId,Type:RelType.Image,Target:"../media/".concat(bookImage.name,".").concat(bookImage.extension)});model.background={rId:rId};model.image=options.media[medium.imageId];}else if(medium.type==='image'){var drawing=model.drawing;bookImage=options.media[medium.imageId];if(!drawing){drawing=model.drawing={rId:nextRid(rels),name:"drawing".concat(++options.drawingsCount),anchors:[],rels:[]};options.drawings.push(drawing);rels.push({Id:drawing.rId,Type:'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',Target:"../drawings/".concat(drawing.name,".xml")});}var rIdImage=_this2.preImageId===medium.imageId?drawingRelsHash[medium.imageId]:drawingRelsHash[drawing.rels.length];if(!rIdImage){rIdImage=nextRid(drawing.rels);drawingRelsHash[drawing.rels.length]=rIdImage;drawing.rels.push({Id:rIdImage,Type:'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',Target:"../media/".concat(bookImage.name,".").concat(bookImage.extension)});}var anchor={picture:{rId:rIdImage},range:medium.range};if(medium.hyperlinks&&medium.hyperlinks.hyperlink){var rIdHyperLink=nextRid(drawing.rels);drawingRelsHash[drawing.rels.length]=rIdHyperLink;anchor.picture.hyperlinks={tooltip:medium.hyperlinks.tooltip,rId:rIdHyperLink};drawing.rels.push({Id:rIdHyperLink,Type:RelType.Hyperlink,Target:medium.hyperlinks.hyperlink,TargetMode:'External'});}_this2.preImageId=medium.imageId;drawing.anchors.push(anchor);}});// prepare tables model.tables.forEach(function(table){// relationships var rId=nextRid(rels);table.rId=rId;rels.push({Id:rId,Type:RelType.Table,Target:"../tables/".concat(table.target)});// dynamic styles table.columns.forEach(function(column){var style=column.style;if(style){column.dxfId=options.styles.addDxfStyle(style);}});});// prepare ext items this.map.extLst.prepare(model,options);}},{key:"render",value:function render(xmlStream,model){xmlStream.openXml(XmlStream.StdDocAttributes);xmlStream.openNode('worksheet',WorkSheetXform.WORKSHEET_ATTRIBUTES);var sheetFormatPropertiesModel=model.properties?{defaultRowHeight:model.properties.defaultRowHeight,dyDescent:model.properties.dyDescent,outlineLevelCol:model.properties.outlineLevelCol,outlineLevelRow:model.properties.outlineLevelRow}:undefined;if(model.properties&&model.properties.defaultColWidth){sheetFormatPropertiesModel.defaultColWidth=model.properties.defaultColWidth;}var sheetPropertiesModel={outlineProperties:model.properties&&model.properties.outlineProperties,tabColor:model.properties&&model.properties.tabColor,pageSetup:model.pageSetup&&model.pageSetup.fitToPage?{fitToPage:model.pageSetup.fitToPage}:undefined};var pageMarginsModel=model.pageSetup&&model.pageSetup.margins;var printOptionsModel={showRowColHeaders:model.pageSetup&&model.pageSetup.showRowColHeaders,showGridLines:model.pageSetup&&model.pageSetup.showGridLines,horizontalCentered:model.pageSetup&&model.pageSetup.horizontalCentered,verticalCentered:model.pageSetup&&model.pageSetup.verticalCentered};var sheetProtectionModel=model.sheetProtection;this.map.sheetPr.render(xmlStream,sheetPropertiesModel);this.map.dimension.render(xmlStream,model.dimensions);this.map.sheetViews.render(xmlStream,model.views);this.map.sheetFormatPr.render(xmlStream,sheetFormatPropertiesModel);this.map.cols.render(xmlStream,model.cols);this.map.sheetData.render(xmlStream,model.rows);this.map.sheetProtection.render(xmlStream,sheetProtectionModel);// Note: must be after sheetData and before autoFilter this.map.autoFilter.render(xmlStream,model.autoFilter);this.map.mergeCells.render(xmlStream,model.mergeCells);this.map.conditionalFormatting.render(xmlStream,model.conditionalFormattings);// Note: must be before dataValidations this.map.dataValidations.render(xmlStream,model.dataValidations);// For some reason hyperlinks have to be after the data validations this.map.hyperlinks.render(xmlStream,model.hyperlinks);this.map.printOptions.render(xmlStream,printOptionsModel);// Note: must be before pageMargins this.map.pageMargins.render(xmlStream,pageMarginsModel);this.map.pageSetup.render(xmlStream,model.pageSetup);this.map.headerFooter.render(xmlStream,model.headerFooter);this.map.rowBreaks.render(xmlStream,model.rowBreaks);this.map.drawing.render(xmlStream,model.drawing);// Note: must be after rowBreaks this.map.picture.render(xmlStream,model.background);// Note: must be after drawing this.map.tableParts.render(xmlStream,model.tables);this.map.extLst.render(xmlStream,model);if(model.rels){// add a node for each comment model.rels.forEach(function(rel){if(rel.Type===RelType.VmlDrawing){xmlStream.leafNode('legacyDrawing',{'r:id':rel.Id});}});}xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}if(node.name==='worksheet'){_.each(this.map,function(xform){xform.reset();});return true;}this.parser=this.map[node.name];if(this.parser){this.parser.parseOpen(node);}return true;}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){this.parser=undefined;}return true;}switch(name){case'worksheet':{var properties=this.map.sheetFormatPr.model||{};if(this.map.sheetPr.model&&this.map.sheetPr.model.tabColor){properties.tabColor=this.map.sheetPr.model.tabColor;}if(this.map.sheetPr.model&&this.map.sheetPr.model.outlineProperties){properties.outlineProperties=this.map.sheetPr.model.outlineProperties;}var sheetProperties={fitToPage:this.map.sheetPr.model&&this.map.sheetPr.model.pageSetup&&this.map.sheetPr.model.pageSetup.fitToPage||false,margins:this.map.pageMargins.model};var pageSetup=Object.assign(sheetProperties,this.map.pageSetup.model,this.map.printOptions.model);var conditionalFormattings=mergeConditionalFormattings(this.map.conditionalFormatting.model,this.map.extLst.model&&this.map.extLst.model['x14:conditionalFormattings']);this.model={dimensions:this.map.dimension.model,cols:this.map.cols.model,rows:this.map.sheetData.model,mergeCells:this.map.mergeCells.model,hyperlinks:this.map.hyperlinks.model,dataValidations:this.map.dataValidations.model,properties:properties,views:this.map.sheetViews.model,pageSetup:pageSetup,headerFooter:this.map.headerFooter.model,background:this.map.picture.model,drawing:this.map.drawing.model,tables:this.map.tableParts.model,conditionalFormattings:conditionalFormattings};if(this.map.autoFilter.model){this.model.autoFilter=this.map.autoFilter.model;}if(this.map.sheetProtection.model){this.model.sheetProtection=this.map.sheetProtection.model;}return false;}default:// not quite sure how we get here! return true;}}},{key:"reconcile",value:function reconcile(model,options){// options.merges = new Merges(); // options.merges.reconcile(model.mergeCells, model.rows); var rels=(model.relationships||[]).reduce(function(h,rel){h[rel.Id]=rel;if(rel.Type===RelType.Comments){model.comments=options.comments[rel.Target].comments;}if(rel.Type===RelType.VmlDrawing&&model.comments&&model.comments.length){var vmlComment=options.vmlDrawings[rel.Target].comments;model.comments.forEach(function(comment,index){comment.note=Object.assign({},comment.note,vmlComment[index]);});}return h;},{});options.commentsMap=(model.comments||[]).reduce(function(h,comment){if(comment.ref){h[comment.ref]=comment;}return h;},{});options.hyperlinkMap=(model.hyperlinks||[]).reduce(function(h,hyperlink){if(hyperlink.rId){h[hyperlink.address]=rels[hyperlink.rId].Target;}return h;},{});options.formulae={};// compact the rows and cells model.rows=model.rows&&model.rows.filter(Boolean)||[];model.rows.forEach(function(row){row.cells=row.cells&&row.cells.filter(Boolean)||[];});this.map.cols.reconcile(model.cols,options);this.map.sheetData.reconcile(model.rows,options);this.map.conditionalFormatting.reconcile(model.conditionalFormattings,options);model.media=[];if(model.drawing){var drawingRel=rels[model.drawing.rId];var match=drawingRel.Target.match(/\/drawings\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);if(match){var drawingName=match[1];var drawing=options.drawings[drawingName];drawing.anchors.forEach(function(anchor){if(anchor.medium){var image={type:'image',imageId:anchor.medium.index,range:anchor.range,hyperlinks:anchor.picture.hyperlinks};model.media.push(image);}});}}var backgroundRel=model.background&&rels[model.background.rId];if(backgroundRel){var target=backgroundRel.Target.split('/media/')[1];var imageId=options.mediaIndex&&options.mediaIndex[target];if(imageId!==undefined){model.media.push({type:'background',imageId:imageId});}}model.tables=(model.tables||[]).map(function(tablePart){var rel=rels[tablePart.rId];return options.tables[rel.Target];});delete model.relationships;delete model.hyperlinks;delete model.comments;}}]);return WorkSheetXform;}(BaseXform);WorkSheetXform.WORKSHEET_ATTRIBUTES={xmlns:'http://schemas.openxmlformats.org/spreadsheetml/2006/main','xmlns:r':'http://schemas.openxmlformats.org/officeDocument/2006/relationships','xmlns:mc':'http://schemas.openxmlformats.org/markup-compatibility/2006','mc:Ignorable':'x14ac','xmlns:x14ac':'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'};module.exports=WorkSheetXform;},{"../../../utils/col-cache":17,"../../../utils/under-dash":23,"../../../utils/xml-stream":25,"../../rel-type":28,"../base-xform":29,"../list-xform":68,"./auto-filter-xform":69,"./cf/conditional-formattings-xform":84,"./col-xform":89,"./data-validations-xform":90,"./dimension-xform":91,"./drawing-xform":92,"./ext-lst-xform":93,"./header-footer-xform":94,"./hyperlink-xform":95,"./merge-cell-xform":96,"./merges":97,"./page-margins-xform":100,"./page-setup-xform":102,"./picture-xform":103,"./print-options-xform":104,"./row-breaks-xform":105,"./row-xform":106,"./sheet-format-properties-xform":107,"./sheet-properties-xform":108,"./sheet-protection-xform":109,"./sheet-view-xform":110,"./table-part-xform":111}],113:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i // (its pronounciation in KATAKANA) // var PhoneticTextXform=/*#__PURE__*/function(_BaseXform){_inherits(PhoneticTextXform,_BaseXform);var _super=_createSuper(PhoneticTextXform);function PhoneticTextXform(){var _this;_classCallCheck(this,PhoneticTextXform);_this=_super.call(this);_this.map={r:new RichTextXform(),t:new TextXform()};return _this;}_createClass(PhoneticTextXform,[{key:"render",value:function render(xmlStream,model){xmlStream.openNode(this.tag,{sb:model.sb||0,eb:model.eb||0});if(model&&model.hasOwnProperty('richText')&&model.richText){var r=this.map.r;model.richText.forEach(function(text){r.render(xmlStream,text);});}else if(model){this.map.t.render(xmlStream,model.text);}xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){var name=node.name;if(this.parser){this.parser.parseOpen(node);return true;}if(name===this.tag){this.model={sb:parseInt(node.attributes.sb,10),eb:parseInt(node.attributes.eb,10)};return true;}this.parser=this.map[name];if(this.parser){this.parser.parseOpen(node);return true;}return false;}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){switch(name){case'r':{var rt=this.model.richText;if(!rt){rt=this.model.richText=[];}rt.push(this.parser.model);break;}case't':this.model.text=this.parser.model;break;default:break;}this.parser=undefined;}return true;}switch(name){case this.tag:return false;default:return true;}}},{key:"tag",get:function get(){return'rPh';}}]);return PhoneticTextXform;}(BaseXform);module.exports=PhoneticTextXform;},{"../base-xform":29,"./rich-text-xform":119,"./text-xform":122}],119:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i // // // // // // // // is // var RichTextXform=/*#__PURE__*/function(_BaseXform){_inherits(RichTextXform,_BaseXform);var _super=_createSuper(RichTextXform);function RichTextXform(model){var _this;_classCallCheck(this,RichTextXform);_this=_super.call(this);_this.model=model;return _this;}_createClass(RichTextXform,[{key:"render",value:function render(xmlStream,model){model=model||this.model;xmlStream.openNode('r');if(model.font){this.fontXform.render(xmlStream,model.font);}this.textXform.render(xmlStream,model.text);xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case'r':this.model={};return true;case't':this.parser=this.textXform;this.parser.parseOpen(node);return true;case'rPr':this.parser=this.fontXform;this.parser.parseOpen(node);return true;default:return false;}}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){switch(name){case'r':return false;case't':this.model.text=this.parser.model;this.parser=undefined;return true;case'rPr':this.model.font=this.parser.model;this.parser=undefined;return true;default:if(this.parser){this.parser.parseClose(name);}return true;}}},{key:"tag",get:function get(){return'r';}},{key:"textXform",get:function get(){return this._textXform||(this._textXform=new TextXform());}},{key:"fontXform",get:function get(){return this._fontXform||(this._fontXform=new FontXform(RichTextXform.FONT_OPTIONS));}}]);return RichTextXform;}(BaseXform);RichTextXform.FONT_OPTIONS={tagName:'rPr',fontNameTag:'rFont'};module.exports=RichTextXform;},{"../base-xform":29,"../style/font-xform":128,"./text-xform":122}],120:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i // ... // // // // var SharedStringXform=/*#__PURE__*/function(_BaseXform){_inherits(SharedStringXform,_BaseXform);var _super=_createSuper(SharedStringXform);function SharedStringXform(model){var _this;_classCallCheck(this,SharedStringXform);_this=_super.call(this);_this.model=model;_this.map={r:new RichTextXform(),t:new TextXform(),rPh:new PhoneticTextXform()};return _this;}_createClass(SharedStringXform,[{key:"render",value:function render(xmlStream,model){var _this2=this;xmlStream.openNode(this.tag);if(model&&model.hasOwnProperty('richText')&&model.richText){if(model.richText.length){model.richText.forEach(function(text){_this2.map.r.render(xmlStream,text);});}else{this.map.t.render(xmlStream,'');}}else if(model!==undefined&&model!==null){this.map.t.render(xmlStream,model);}xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){var name=node.name;if(this.parser){this.parser.parseOpen(node);return true;}if(name===this.tag){this.model={};return true;}this.parser=this.map[name];if(this.parser){this.parser.parseOpen(node);return true;}return false;}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){switch(name){case'r':{var rt=this.model.richText;if(!rt){rt=this.model.richText=[];}rt.push(this.parser.model);break;}case't':this.model=this.parser.model;break;default:break;}this.parser=undefined;}return true;}switch(name){case this.tag:return false;default:return true;}}},{key:"tag",get:function get(){return'si';}}]);return SharedStringXform;}(BaseXform);module.exports=SharedStringXform;},{"../base-xform":29,"./phonetic-text-xform":118,"./rich-text-xform":119,"./text-xform":122}],121:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i // // <%=text%> // // },{key:"render",value:function render(xmlStream,model){model=model||this._values;xmlStream.openXml(XmlStream.StdDocAttributes);xmlStream.openNode('sst',{xmlns:'http://schemas.openxmlformats.org/spreadsheetml/2006/main',count:model.count,uniqueCount:model.values.length});var sx=this.sharedStringXform;model.values.forEach(function(sharedString){sx.render(xmlStream,sharedString);});xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case'sst':return true;case'si':this.parser=this.sharedStringXform;this.parser.parseOpen(node);return true;default:throw new Error("Unexpected xml node in parseOpen: ".concat(JSON.stringify(node)));}}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){this.model.values.push(this.parser.model);this.model.count++;this.parser=undefined;}return true;}switch(name){case'sst':return false;default:throw new Error("Unexpected xml node in parseClose: ".concat(name));}}},{key:"sharedStringXform",get:function get(){return this._sharedStringXform||(this._sharedStringXform=new SharedStringXform());}},{key:"values",get:function get(){return this.model.values;}},{key:"uniqueCount",get:function get(){return this.model.values.length;}},{key:"count",get:function get(){return this.model.count;}}]);return SharedStringsXform;}(BaseXform);module.exports=SharedStringsXform;},{"../../../utils/xml-stream":25,"../base-xform":29,"./shared-string-xform":120}],122:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i is var TextXform=/*#__PURE__*/function(_BaseXform){_inherits(TextXform,_BaseXform);var _super=_createSuper(TextXform);function TextXform(){_classCallCheck(this,TextXform);return _super.apply(this,arguments);}_createClass(TextXform,[{key:"render",value:function render(xmlStream,model){xmlStream.openNode('t');if(/^\s|\n|\s$/.test(model)){xmlStream.addAttribute('xml:space','preserve');}xmlStream.writeText(model);xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){switch(node.name){case't':this._text=[];return true;default:return false;}}},{key:"parseText",value:function parseText(text){this._text.push(text);}},{key:"parseClose",value:function parseClose(){return false;}},{key:"tag",get:function get(){return't';}},{key:"model",get:function get(){return this._text.join('').replace(/_x([0-9A-F]{4})_/g,function($0,$1){return String.fromCharCode(parseInt($1,16));});}}]);return TextXform;}(BaseXform);module.exports=TextXform;},{"../base-xform":29}],123:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i=-90&&value<=90?value:undefined;}},indent:function indent(value){value=utils.validInt(value);return Math.max(0,value);},readingOrder:function readingOrder(value){switch(value){case'ltr':return Enums.ReadingOrder.LeftToRight;case'rtl':return Enums.ReadingOrder.RightToLeft;default:return undefined;}}};var textRotationXform={toXml:function toXml(textRotation){textRotation=validation.textRotation(textRotation);if(textRotation){if(textRotation==='vertical'){return 255;}var tr=Math.round(textRotation);if(tr>=0&&tr<=90){return tr;}if(tr<0&&tr>=-90){return 90-tr;}}return undefined;},toModel:function toModel(textRotation){var tr=utils.validInt(textRotation);if(tr!==undefined){if(tr===255){return'vertical';}if(tr>=0&&tr<=90){return tr;}if(tr>90&&tr<=180){return 90-tr;}}return undefined;}};// Alignment encapsulates translation from style.alignment model to/from xlsx var AlignmentXform=/*#__PURE__*/function(_BaseXform){_inherits(AlignmentXform,_BaseXform);var _super=_createSuper(AlignmentXform);function AlignmentXform(){_classCallCheck(this,AlignmentXform);return _super.apply(this,arguments);}_createClass(AlignmentXform,[{key:"render",value:function render(xmlStream,model){xmlStream.addRollback();xmlStream.openNode('alignment');var isValid=false;function add(name,value){if(value){xmlStream.addAttribute(name,value);isValid=true;}}add('horizontal',validation.horizontal(model.horizontal));add('vertical',validation.vertical(model.vertical));add('wrapText',validation.wrapText(model.wrapText)?'1':false);add('shrinkToFit',validation.shrinkToFit(model.shrinkToFit)?'1':false);add('indent',validation.indent(model.indent));add('textRotation',textRotationXform.toXml(model.textRotation));add('readingOrder',validation.readingOrder(model.readingOrder));xmlStream.closeNode();if(isValid){xmlStream.commit();}else{xmlStream.rollback();}}},{key:"parseOpen",value:function parseOpen(node){var model={};var valid=false;function add(truthy,name,value){if(truthy){model[name]=value;valid=true;}}add(node.attributes.horizontal,'horizontal',node.attributes.horizontal);add(node.attributes.vertical,'vertical',node.attributes.vertical==='center'?'middle':node.attributes.vertical);add(node.attributes.wrapText,'wrapText',!!node.attributes.wrapText);add(node.attributes.shrinkToFit,'shrinkToFit',!!node.attributes.shrinkToFit);add(node.attributes.indent,'indent',parseInt(node.attributes.indent,10));add(node.attributes.textRotation,'textRotation',textRotationXform.toModel(node.attributes.textRotation));add(node.attributes.readingOrder,'readingOrder',node.attributes.readingOrder==='2'?'rtl':'ltr');this.model=valid?model:null;}},{key:"parseText",value:function parseText(){}},{key:"parseClose",value:function parseClose(){return false;}},{key:"tag",get:function get(){return'alignment';}}]);return AlignmentXform;}(BaseXform);module.exports=AlignmentXform;},{"../../../doc/enums":7,"../../../utils/utils":24,"../base-xform":29}],124:[function(require,module,exports){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i // Optional // Optional // // Style assists translation from style model to/from xlsx var DxfXform=/*#__PURE__*/function(_BaseXform){_inherits(DxfXform,_BaseXform);var _super=_createSuper(DxfXform);function DxfXform(){var _this;_classCallCheck(this,DxfXform);_this=_super.call(this);_this.map={alignment:new AlignmentXform(),border:new BorderXform(),fill:new FillXform(),font:new FontXform(),numFmt:new NumFmtXform(),protection:new ProtectionXform()};return _this;}_createClass(DxfXform,[{key:"render",// how do we generate dxfid? value:function render(xmlStream,model){xmlStream.openNode(this.tag);if(model.alignment){this.map.alignment.render(xmlStream,model.alignment);}if(model.border){this.map.border.render(xmlStream,model.border);}if(model.fill){this.map.fill.render(xmlStream,model.fill);}if(model.font){this.map.font.render(xmlStream,model.font);}if(model.numFmt){this.map.numFmt.render(xmlStream,model.numFmt);}if(model.protection){this.map.protection.render(xmlStream,model.protection);}xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case this.tag:// this node is often repeated. Need to reset children this.reset();return true;default:this.parser=this.map[node.name];if(this.parser){this.parser.parseOpen(node);}return true;}}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){this.parser=undefined;}return true;}if(name===this.tag){this.model={alignment:this.map.alignment.model,border:this.map.border.model,fill:this.map.fill.model,font:this.map.font.model,numFmt:this.map.numFmt.model,protection:this.map.protection.model};return false;}return true;}},{key:"tag",get:function get(){return'dxf';}}]);return DxfXform;}(BaseXform);module.exports=DxfXform;},{"../base-xform":29,"./alignment-xform":123,"./border-xform":124,"./fill-xform":127,"./font-xform":128,"./numfmt-xform":129,"./protection-xform":130}],127:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i // Optional // Optional // // Style assists translation from style model to/from xlsx var StyleXform=/*#__PURE__*/function(_BaseXform){_inherits(StyleXform,_BaseXform);var _super=_createSuper(StyleXform);function StyleXform(options){var _this;_classCallCheck(this,StyleXform);_this=_super.call(this);_this.xfId=!!(options&&options.xfId);_this.map={alignment:new AlignmentXform(),protection:new ProtectionXform()};return _this;}_createClass(StyleXform,[{key:"render",value:function render(xmlStream,model){xmlStream.openNode('xf',{numFmtId:model.numFmtId||0,fontId:model.fontId||0,fillId:model.fillId||0,borderId:model.borderId||0});if(this.xfId){xmlStream.addAttribute('xfId',model.xfId||0);}if(model.numFmtId){xmlStream.addAttribute('applyNumberFormat','1');}if(model.fontId){xmlStream.addAttribute('applyFont','1');}if(model.fillId){xmlStream.addAttribute('applyFill','1');}if(model.borderId){xmlStream.addAttribute('applyBorder','1');}if(model.alignment){xmlStream.addAttribute('applyAlignment','1');}if(model.protection){xmlStream.addAttribute('applyProtection','1');}/** * Rendering tags causes close of XML stream. * Therefore adding attributes must be done before rendering tags. */if(model.alignment){this.map.alignment.render(xmlStream,model.alignment);}if(model.protection){this.map.protection.render(xmlStream,model.protection);}xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}// used during sax parsing of xml to build font object switch(node.name){case'xf':this.model={numFmtId:parseInt(node.attributes.numFmtId,10),fontId:parseInt(node.attributes.fontId,10),fillId:parseInt(node.attributes.fillId,10),borderId:parseInt(node.attributes.borderId,10)};if(this.xfId){this.model.xfId=parseInt(node.attributes.xfId,10);}return true;case'alignment':this.parser=this.map.alignment;this.parser.parseOpen(node);return true;case'protection':this.parser=this.map.protection;this.parser.parseOpen(node);return true;default:return false;}}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){if(this.parser){if(!this.parser.parseClose(name)){if(this.map.protection===this.parser){this.model.protection=this.parser.model;}else{this.model.alignment=this.parser.model;}this.parser=undefined;}return true;}return name!=='xf';}},{key:"tag",get:function get(){return'xf';}}]);return StyleXform;}(BaseXform);module.exports=StyleXform;},{"../base-xform":29,"./alignment-xform":123,"./protection-xform":130}],132:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i xmlStream.openXml(XmlStream.StdDocAttributes);xmlStream.openNode('styleSheet',StylesXform.STYLESHEET_ATTRIBUTES);if(this.index){// model has been built by style manager role (contains xml) if(model.numFmts&&model.numFmts.length){xmlStream.openNode('numFmts',{count:model.numFmts.length});model.numFmts.forEach(function(numFmtXml){xmlStream.writeXml(numFmtXml);});xmlStream.closeNode();}if(!model.fonts.length){// default (zero) font this._addFont({size:11,color:{theme:1},name:'Calibri',family:2,scheme:'minor'});}xmlStream.openNode('fonts',{count:model.fonts.length,'x14ac:knownFonts':1});model.fonts.forEach(function(fontXml){xmlStream.writeXml(fontXml);});xmlStream.closeNode();xmlStream.openNode('fills',{count:model.fills.length});model.fills.forEach(function(fillXml){xmlStream.writeXml(fillXml);});xmlStream.closeNode();xmlStream.openNode('borders',{count:model.borders.length});model.borders.forEach(function(borderXml){xmlStream.writeXml(borderXml);});xmlStream.closeNode();this.map.cellStyleXfs.render(xmlStream,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]);xmlStream.openNode('cellXfs',{count:model.styles.length});model.styles.forEach(function(styleXml){xmlStream.writeXml(styleXml);});xmlStream.closeNode();}else{// model is plain JSON and needs to be xformed this.map.numFmts.render(xmlStream,model.numFmts);this.map.fonts.render(xmlStream,model.fonts);this.map.fills.render(xmlStream,model.fills);this.map.borders.render(xmlStream,model.borders);this.map.cellStyleXfs.render(xmlStream,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]);this.map.cellXfs.render(xmlStream,model.styles);}StylesXform.STATIC_XFORMS.cellStyles.render(xmlStream);this.map.dxfs.render(xmlStream,model.dxfs);StylesXform.STATIC_XFORMS.tableStyles.render(xmlStream);StylesXform.STATIC_XFORMS.extLst.render(xmlStream);xmlStream.closeNode();}},{key:"parseOpen",value:function parseOpen(node){if(this.parser){this.parser.parseOpen(node);return true;}switch(node.name){case'styleSheet':this.initIndex();return true;default:this.parser=this.map[node.name];if(this.parser){this.parser.parseOpen(node);}return true;}}},{key:"parseText",value:function parseText(text){if(this.parser){this.parser.parseText(text);}}},{key:"parseClose",value:function parseClose(name){var _this2=this;if(this.parser){if(!this.parser.parseClose(name)){this.parser=undefined;}return true;}switch(name){case'styleSheet':{this.model={};var add=function add(propName,xform){if(xform.model&&xform.model.length){_this2.model[propName]=xform.model;}};add('numFmts',this.map.numFmts);add('fonts',this.map.fonts);add('fills',this.map.fills);add('borders',this.map.borders);add('styles',this.map.cellXfs);add('dxfs',this.map.dxfs);// index numFmts this.index={model:[],numFmt:[]};if(this.model.numFmts){var numFmtIndex=this.index.numFmt;this.model.numFmts.forEach(function(numFmt){numFmtIndex[numFmt.id]=numFmt.formatCode;});}return false;}default:// not quite sure how we get here! return true;}}// add a cell's style model to the collection // each style property is processed and cross-referenced, etc. // the styleId is returned. Note: cellType is used when numFmt not defined },{key:"addStyleModel",value:function addStyleModel(model,cellType){if(!model){return 0;}// if we have no default font, add it here now if(!this.model.fonts.length){// default (zero) font this._addFont({size:11,color:{theme:1},name:'Calibri',family:2,scheme:'minor'});}// if we have seen this style object before, assume it has the same styleId if(this.weakMap&&this.weakMap.has(model)){return this.weakMap.get(model);}var style={};cellType=cellType||Enums.ValueType.Number;if(model.numFmt){style.numFmtId=this._addNumFmtStr(model.numFmt);}else{switch(cellType){case Enums.ValueType.Number:style.numFmtId=this._addNumFmtStr('General');break;case Enums.ValueType.Date:style.numFmtId=this._addNumFmtStr('mm-dd-yy');break;default:break;}}if(model.font){style.fontId=this._addFont(model.font);}if(model.border){style.borderId=this._addBorder(model.border);}if(model.fill){style.fillId=this._addFill(model.fill);}if(model.alignment){style.alignment=model.alignment;}if(model.protection){style.protection=model.protection;}var styleId=this._addStyle(style);if(this.weakMap){this.weakMap.set(model,styleId);}return styleId;}// given a styleId (i.e. s="n"), get the cell's style model // objects are shared where possible. },{key:"getStyleModel",value:function getStyleModel(id){// if the style doesn't exist return null var style=this.model.styles[id];if(!style)return null;// have we built this model before? var model=this.index.model[id];if(model)return model;// build a new model model=this.index.model[id]={};// ------------------------------------------------------- // number format if(style.numFmtId){var numFmt=this.index.numFmt[style.numFmtId]||NumFmtXform.getDefaultFmtCode(style.numFmtId);if(numFmt){model.numFmt=numFmt;}}function addStyle(name,group,styleId){if(styleId||styleId===0){var part=group[styleId];if(part){model[name]=part;}}}addStyle('font',this.model.fonts,style.fontId);addStyle('border',this.model.borders,style.borderId);addStyle('fill',this.model.fills,style.fillId);// ------------------------------------------------------- // alignment if(style.alignment){model.alignment=style.alignment;}// ------------------------------------------------------- // protection if(style.protection){model.protection=style.protection;}return model;}},{key:"addDxfStyle",value:function addDxfStyle(style){this.model.dxfs.push(style);return this.model.dxfs.length-1;}},{key:"getDxfStyle",value:function getDxfStyle(id){return this.model.dxfs[id];}// ========================================================================= // Private Interface },{key:"_addStyle",value:function _addStyle(style){var xml=this.map.style.toXml(style);var index=this.index.style[xml];if(index===undefined){index=this.index.style[xml]=this.model.styles.length;this.model.styles.push(xml);}return index;}// ========================================================================= // Number Formats },{key:"_addNumFmtStr",value:function _addNumFmtStr(formatCode){// check if default format var index=NumFmtXform.getDefaultFmtId(formatCode);if(index!==undefined)return index;// check if already in index=this.index.numFmt[formatCode];if(index!==undefined)return index;index=this.index.numFmt[formatCode]=NUMFMT_BASE+this.model.numFmts.length;var xml=this.map.numFmt.toXml({id:index,formatCode:formatCode});this.model.numFmts.push(xml);return index;}// ========================================================================= // Fonts },{key:"_addFont",value:function _addFont(font){var xml=this.map.font.toXml(font);var index=this.index.font[xml];if(index===undefined){index=this.index.font[xml]=this.model.fonts.length;this.model.fonts.push(xml);}return index;}// ========================================================================= // Borders },{key:"_addBorder",value:function _addBorder(border){var xml=this.map.border.toXml(border);var index=this.index.border[xml];if(index===undefined){index=this.index.border[xml]=this.model.borders.length;this.model.borders.push(xml);}return index;}// ========================================================================= // Fills },{key:"_addFill",value:function _addFill(fill){var xml=this.map.fill.toXml(fill);var index=this.index.fill[xml];if(index===undefined){index=this.index.fill[xml]=this.model.fills.length;this.model.fills.push(xml);}return index;}// ========================================================================= }]);return StylesXform;}(BaseXform);StylesXform.STYLESHEET_ATTRIBUTES={xmlns:'http://schemas.openxmlformats.org/spreadsheetml/2006/main','xmlns:mc':'http://schemas.openxmlformats.org/markup-compatibility/2006','mc:Ignorable':'x14ac x16r2','xmlns:x14ac':'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac','xmlns:x16r2':'http://schemas.microsoft.com/office/spreadsheetml/2015/02/main'};StylesXform.STATIC_XFORMS={cellStyles:new StaticXform({tag:'cellStyles',$:{count:1},c:[{tag:'cellStyle',$:{name:'Normal',xfId:0,builtinId:0}}]}),dxfs:new StaticXform({tag:'dxfs',$:{count:0}}),tableStyles:new StaticXform({tag:'tableStyles',$:{count:0,defaultTableStyle:'TableStyleMedium2',defaultPivotStyle:'PivotStyleLight16'}}),extLst:new StaticXform({tag:'extLst',c:[{tag:'ext',$:{uri:'{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}','xmlns:x14':'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main'},c:[{tag:'x14:slicerStyles',$:{defaultSlicerStyle:'SlicerStyleLight1'}}]},{tag:'ext',$:{uri:'{9260A510-F301-46a8-8635-F512D64BE5F5}','xmlns:x15':'http://schemas.microsoft.com/office/spreadsheetml/2010/11/main'},c:[{tag:'x15:timelineStyles',$:{defaultTimelineStyle:'TimeSlicerStyleLight1'}}]}]})};// the stylemanager mock acts like StyleManager except that it always returns 0 or {} var StylesXformMock=/*#__PURE__*/function(_StylesXform){_inherits(StylesXformMock,_StylesXform);var _super2=_createSuper(StylesXformMock);function StylesXformMock(){var _this3;_classCallCheck(this,StylesXformMock);_this3=_super2.call(this);_this3.model={styles:[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}],numFmts:[],fonts:[{size:11,color:{theme:1},name:'Calibri',family:2,scheme:'minor'}],borders:[{}],fills:[{type:'pattern',pattern:'none'},{type:'pattern',pattern:'gray125'}]};return _this3;}// ========================================================================= // Style Manager Interface // override normal behaviour - consume and dispose _createClass(StylesXformMock,[{key:"parseStream",value:function parseStream(stream){stream.autodrain();return Promise.resolve();}// add a cell's style model to the collection // each style property is processed and cross-referenced, etc. // the styleId is returned. Note: cellType is used when numFmt not defined },{key:"addStyleModel",value:function addStyleModel(model,cellType){switch(cellType){case Enums.ValueType.Date:return this.dateStyleId;default:return 0;}}},{key:"getStyleModel",// given a styleId (i.e. s="n"), get the cell's style model // objects are shared where possible. value:function getStyleModel()/* id */{return{};}},{key:"dateStyleId",get:function get(){if(!this._dateStyleId){var dateStyle={numFmtId:NumFmtXform.getDefaultFmtId('mm-dd-yy')};this._dateStyleId=this.model.styles.length;this.model.styles.push(dateStyle);}return this._dateStyleId;}}]);return StylesXformMock;}(StylesXform);StylesXform.Mock=StylesXformMock;module.exports=StylesXform;},{"../../../doc/enums":7,"../../../utils/xml-stream":25,"../base-xform":29,"../list-xform":68,"../static-xform":117,"./border-xform":124,"./dxf-xform":126,"./fill-xform":127,"./font-xform":128,"./numfmt-xform":129,"./style-xform":131}],133:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i=1)){_context6.next=6;break;}extension=filename.substr(lastDot+1);name=filename.substr(0,lastDot);_context6.next=6;return new Promise(function(resolve,reject){var streamBuf=new StreamBuf();streamBuf.on('finish',function(){model.mediaIndex[filename]=model.media.length;model.mediaIndex[name]=model.media.length;var medium={type:'image',name:name,extension:extension,buffer:streamBuf.toBuffer()};model.media.push(medium);resolve();});entry.on('error',function(error){reject(error);});entry.pipe(streamBuf);});case 6:case"end":return _context6.stop();}}},_callee6);}));function _processMediaEntry(_x17,_x18,_x19){return _processMediaEntry2.apply(this,arguments);}return _processMediaEntry;}()},{key:"_processDrawingEntry",value:function(){var _processDrawingEntry2=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee7(entry,model,name){var xform,drawing;return regeneratorRuntime.wrap(function _callee7$(_context7){while(1){switch(_context7.prev=_context7.next){case 0:xform=new DrawingXform();_context7.next=3;return xform.parseStream(entry);case 3:drawing=_context7.sent;model.drawings[name]=drawing;case 5:case"end":return _context7.stop();}}},_callee7);}));function _processDrawingEntry(_x20,_x21,_x22){return _processDrawingEntry2.apply(this,arguments);}return _processDrawingEntry;}()},{key:"_processDrawingRelsEntry",value:function(){var _processDrawingRelsEntry2=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee8(entry,model,name){var xform,relationships;return regeneratorRuntime.wrap(function _callee8$(_context8){while(1){switch(_context8.prev=_context8.next){case 0:xform=new RelationshipsXform();_context8.next=3;return xform.parseStream(entry);case 3:relationships=_context8.sent;model.drawingRels[name]=relationships;case 5:case"end":return _context8.stop();}}},_callee8);}));function _processDrawingRelsEntry(_x23,_x24,_x25){return _processDrawingRelsEntry2.apply(this,arguments);}return _processDrawingRelsEntry;}()},{key:"_processVmlDrawingEntry",value:function(){var _processVmlDrawingEntry2=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee9(entry,model,name){var xform,vmlDrawing;return regeneratorRuntime.wrap(function _callee9$(_context9){while(1){switch(_context9.prev=_context9.next){case 0:xform=new VmlNotesXform();_context9.next=3;return xform.parseStream(entry);case 3:vmlDrawing=_context9.sent;model.vmlDrawings["../drawings/".concat(name,".vml")]=vmlDrawing;case 5:case"end":return _context9.stop();}}},_callee9);}));function _processVmlDrawingEntry(_x26,_x27,_x28){return _processVmlDrawingEntry2.apply(this,arguments);}return _processVmlDrawingEntry;}()},{key:"_processThemeEntry",value:function(){var _processThemeEntry2=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee10(entry,model,name){return regeneratorRuntime.wrap(function _callee10$(_context10){while(1){switch(_context10.prev=_context10.next){case 0:_context10.next=2;return new Promise(function(resolve,reject){// TODO: stream entry into buffer and store the xml in the model.themes[] var stream=new StreamBuf();entry.on('error',reject);stream.on('error',reject);stream.on('finish',function(){model.themes[name]=stream.read().toString();resolve();});entry.pipe(stream);});case 2:case"end":return _context10.stop();}}},_callee10);}));function _processThemeEntry(_x29,_x30,_x31){return _processThemeEntry2.apply(this,arguments);}return _processThemeEntry;}()/** * @deprecated since version 4.0. You should use `#read` instead. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md */},{key:"createInputStream",value:function createInputStream(){throw new Error('`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md');}},{key:"read",value:function(){var _read=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee11(stream,options){var chunks,_iteratorNormalCompletion,_didIteratorError,_iteratorError,_iterator,_step,_value,chunk;return regeneratorRuntime.wrap(function _callee11$(_context11){while(1){switch(_context11.prev=_context11.next){case 0:// TODO: Remove once node v8 is deprecated // Detect and upgrade old streams if(!stream[Symbol.asyncIterator]&&stream.pipe){stream=stream.pipe(new PassThrough());}chunks=[];_iteratorNormalCompletion=true;_didIteratorError=false;_context11.prev=4;_iterator=_asyncIterator(stream);case 6:_context11.next=8;return _iterator.next();case 8:_step=_context11.sent;_iteratorNormalCompletion=_step.done;_context11.next=12;return _step.value;case 12:_value=_context11.sent;if(_iteratorNormalCompletion){_context11.next=19;break;}chunk=_value;chunks.push(chunk);case 16:_iteratorNormalCompletion=true;_context11.next=6;break;case 19:_context11.next=25;break;case 21:_context11.prev=21;_context11.t0=_context11["catch"](4);_didIteratorError=true;_iteratorError=_context11.t0;case 25:_context11.prev=25;_context11.prev=26;if(!(!_iteratorNormalCompletion&&_iterator.return!=null)){_context11.next=30;break;}_context11.next=30;return _iterator.return();case 30:_context11.prev=30;if(!_didIteratorError){_context11.next=33;break;}throw _iteratorError;case 33:return _context11.finish(30);case 34:return _context11.finish(25);case 35:return _context11.abrupt("return",this.load(Buffer.concat(chunks),options));case 36:case"end":return _context11.stop();}}},_callee11,this,[[4,21,25,35],[26,,30,34]]);}));function read(_x32,_x33){return _read.apply(this,arguments);}return read;}()},{key:"load",value:function(){var _load=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee12(data,options){var buffer,model,zip,_i,_Object$values,entry,entryName,stream,content,chunkSize,i,workbook,appXform,appProperties,coreXform,coreProperties,match;return regeneratorRuntime.wrap(function _callee12$(_context12){while(1){switch(_context12.prev=_context12.next){case 0:if(options&&options.base64){buffer=Buffer.from(data.toString(),'base64');}else{buffer=data;}model={worksheets:[],worksheetHash:{},worksheetRels:[],themes:{},media:[],mediaIndex:{},drawings:{},drawingRels:{},comments:{},tables:{},vmlDrawings:{}};_context12.next=4;return JSZip.loadAsync(buffer);case 4:zip=_context12.sent;_i=0,_Object$values=Object.values(zip.files);case 6:if(!(_i<_Object$values.length)){_context12.next=115;break;}entry=_Object$values[_i];if(entry.dir){_context12.next=112;break;}entryName=entry.name;if(entryName[0]==='/'){entryName=entryName.substr(1);}stream=new PassThrough();if(!entryName.match(/xl\/media\//)){_context12.next=20;break;}_context12.t0=stream;_context12.next=16;return entry.async('nodebuffer');case 16:_context12.t1=_context12.sent;_context12.t0.write.call(_context12.t0,_context12.t1);_context12.next=25;break;case 20:_context12.next=22;return entry.async('string');case 22:content=_context12.sent;chunkSize=16*1024;for(i=0;i0){xmlStream=new XmlStream();commentsXform.render(xmlStream,worksheet);zip.append(xmlStream.xml,{name:"xl/comments".concat(worksheet.id,".xml")});xmlStream=new XmlStream();vmlNotesXform.render(xmlStream,worksheet);zip.append(xmlStream.xml,{name:"xl/drawings/vmlDrawing".concat(worksheet.id,".vml")});}});case 5:case"end":return _context24.stop();}}},_callee24);}));function addWorksheets(_x56,_x57){return _addWorksheets.apply(this,arguments);}return addWorksheets;}()},{key:"_finalize",value:function _finalize(zip){var _this=this;return new Promise(function(resolve,reject){zip.on('finish',function(){resolve(_this);});zip.on('error',reject);zip.finalize();});}},{key:"prepareModel",value:function prepareModel(model,options){// ensure following properties have sane values model.creator=model.creator||'ExcelJS';model.lastModifiedBy=model.lastModifiedBy||'ExcelJS';model.created=model.created||new Date();model.modified=model.modified||new Date();model.useSharedStrings=options.useSharedStrings!==undefined?options.useSharedStrings:true;model.useStyles=options.useStyles!==undefined?options.useStyles:true;// Manage the shared strings model.sharedStrings=new SharedStringsXform();// add a style manager to handle cell formats, fonts, etc. model.styles=model.useStyles?new StylesXform(true):new StylesXform.Mock();// prepare all of the things before the render var workbookXform=new WorkbookXform();var worksheetXform=new WorksheetXform();workbookXform.prepare(model);var worksheetOptions={sharedStrings:model.sharedStrings,styles:model.styles,date1904:model.properties.date1904,drawingsCount:0,media:model.media};worksheetOptions.drawings=model.drawings=[];worksheetOptions.commentRefs=model.commentRefs=[];var tableCount=0;model.tables=[];model.worksheets.forEach(function(worksheet){// assign unique filenames to tables worksheet.tables.forEach(function(table){tableCount++;table.target="table".concat(tableCount,".xml");table.id=tableCount;model.tables.push(table);});worksheetXform.prepare(worksheet,worksheetOptions);});// TODO: workbook drawing list }},{key:"write",value:function(){var _write=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee25(stream,options){var model,zip;return regeneratorRuntime.wrap(function _callee25$(_context25){while(1){switch(_context25.prev=_context25.next){case 0:options=options||{};model=this.workbook.model;zip=new ZipStream.ZipWriter(options.zip);zip.pipe(stream);this.prepareModel(model,options);// render _context25.next=7;return this.addContentTypes(zip,model);case 7:_context25.next=9;return this.addOfficeRels(zip,model);case 9:_context25.next=11;return this.addWorkbookRels(zip,model);case 11:_context25.next=13;return this.addWorksheets(zip,model);case 13:_context25.next=15;return this.addSharedStrings(zip,model);case 15:_context25.next=17;return this.addDrawings(zip,model);case 17:_context25.next=19;return this.addTables(zip,model);case 19:_context25.next=21;return Promise.all([this.addThemes(zip,model),this.addStyles(zip,model)]);case 21:_context25.next=23;return this.addMedia(zip,model);case 23:_context25.next=25;return Promise.all([this.addApp(zip,model),this.addCore(zip,model)]);case 25:_context25.next=27;return this.addWorkbook(zip,model);case 27:return _context25.abrupt("return",this._finalize(zip));case 28:case"end":return _context25.stop();}}},_callee25,this);}));function write(_x58,_x59){return _write.apply(this,arguments);}return write;}()},{key:"writeFile",value:function writeFile(filename,options){var _this2=this;var stream=fs.createWriteStream(filename);return new Promise(function(resolve,reject){stream.on('finish',function(){resolve();});stream.on('error',function(error){reject(error);});_this2.write(stream,options).then(function(){stream.end();});});}},{key:"writeBuffer",value:function(){var _writeBuffer=_asyncToGenerator(/*#__PURE__*/regeneratorRuntime.mark(function _callee26(options){var stream;return regeneratorRuntime.wrap(function _callee26$(_context26){while(1){switch(_context26.prev=_context26.next){case 0:stream=new StreamBuf();_context26.next=3;return this.write(stream,options);case 3:return _context26.abrupt("return",stream.read());case 4:case"end":return _context26.stop();}}},_callee26,this);}));function writeBuffer(_x60){return _writeBuffer.apply(this,arguments);}return writeBuffer;}()}]);return XLSX;}();XLSX.RelType=require('./rel-type');module.exports=XLSX;}).call(this,require("buffer").Buffer);},{"../utils/stream-buf":21,"../utils/utils":24,"../utils/xml-stream":25,"../utils/zip-stream":26,"./rel-type":28,"./xform/book/workbook-xform":35,"./xform/comment/comments-xform":37,"./xform/comment/vml-notes-xform":42,"./xform/core/app-xform":48,"./xform/core/content-types-xform":49,"./xform/core/core-xform":50,"./xform/core/relationships-xform":52,"./xform/drawing/drawing-xform":59,"./xform/sheet/worksheet-xform":112,"./xform/strings/shared-strings-xform":121,"./xform/style/styles-xform":132,"./xform/table/table-xform":138,"./xml/theme1.js":140,"buffer":214,"fs":213,"jszip":376,"readable-stream":467}],140:[function(require,module,exports){"use strict";/* eslint-disable */module.exports='\n ';},{}],141:[function(require,module,exports){(function(Buffer){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.CsvFormatterStream=void 0;var stream_1=require("stream");var formatter_1=require("./formatter");var CsvFormatterStream=/*#__PURE__*/function(_stream_1$Transform){_inherits2(CsvFormatterStream,_stream_1$Transform);var _super5=_createSuper2(CsvFormatterStream);function CsvFormatterStream(formatterOptions){var _this10;_classCallCheck2(this,CsvFormatterStream);_this10=_super5.call(this,{writableObjectMode:formatterOptions.objectMode});_this10.hasWrittenBOM=false;_this10.formatterOptions=formatterOptions;_this10.rowFormatter=new formatter_1.RowFormatter(formatterOptions);// if writeBOM is false then set to true // if writeBOM is true then set to false by default so it is written out _this10.hasWrittenBOM=!formatterOptions.writeBOM;return _this10;}_createClass2(CsvFormatterStream,[{key:"transform",value:function transform(transformFunction){this.rowFormatter.rowTransform=transformFunction;return this;}},{key:"_transform",value:function _transform(row,encoding,cb){var _this11=this;var cbCalled=false;try{if(!this.hasWrittenBOM){this.push(this.formatterOptions.BOM);this.hasWrittenBOM=true;}this.rowFormatter.format(row,function(err,rows){if(err){cbCalled=true;return cb(err);}if(rows){rows.forEach(function(r){_this11.push(Buffer.from(r,'utf8'));});}cbCalled=true;return cb();});}catch(e){if(cbCalled){throw e;}cb(e);}}},{key:"_flush",value:function _flush(cb){var _this12=this;this.rowFormatter.finish(function(err,rows){if(err){return cb(err);}if(rows){rows.forEach(function(r){_this12.push(Buffer.from(r,'utf8'));});}return cb();});}}]);return CsvFormatterStream;}(stream_1.Transform);exports.CsvFormatterStream=CsvFormatterStream;}).call(this,require("buffer").Buffer);},{"./formatter":145,"buffer":214,"stream":481}],142:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FormatterOptions=void 0;var FormatterOptions=function FormatterOptions(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};_classCallCheck2(this,FormatterOptions);var _a;this.objectMode=true;this.delimiter=',';this.rowDelimiter='\n';this.quote='"';this.escape=this.quote;this.quoteColumns=false;this.quoteHeaders=this.quoteColumns;this.headers=null;this.includeEndRowDelimiter=false;this.writeBOM=false;this.BOM="\uFEFF";this.alwaysWriteHeaders=false;Object.assign(this,opts||{});if(typeof(opts===null||opts===void 0?void 0:opts.quoteHeaders)==='undefined'){this.quoteHeaders=this.quoteColumns;}if((opts===null||opts===void 0?void 0:opts.quote)===true){this.quote='"';}else if((opts===null||opts===void 0?void 0:opts.quote)===false){this.quote='';}if(typeof(opts===null||opts===void 0?void 0:opts.escape)!=='string'){this.escape=this.quote;}this.shouldWriteHeaders=!!this.headers&&((_a=opts.writeHeaders)!==null&&_a!==void 0?_a:true);this.headers=Array.isArray(this.headers)?this.headers:null;this.escapedQuote="".concat(this.escape).concat(this.quote);};exports.FormatterOptions=FormatterOptions;},{}],143:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.FieldFormatter=void 0;var lodash_isboolean_1=__importDefault(require("lodash.isboolean"));var lodash_isnil_1=__importDefault(require("lodash.isnil"));var lodash_escaperegexp_1=__importDefault(require("lodash.escaperegexp"));var FieldFormatter=/*#__PURE__*/function(){function FieldFormatter(formatterOptions){_classCallCheck2(this,FieldFormatter);this._headers=null;this.formatterOptions=formatterOptions;if(formatterOptions.headers!==null){this.headers=formatterOptions.headers;}this.REPLACE_REGEXP=new RegExp(formatterOptions.quote,'g');var escapePattern="[".concat(formatterOptions.delimiter).concat(lodash_escaperegexp_1.default(formatterOptions.rowDelimiter),"|\r|\n']");this.ESCAPE_REGEXP=new RegExp(escapePattern);}_createClass2(FieldFormatter,[{key:"shouldQuote",value:function shouldQuote(fieldIndex,isHeader){var quoteConfig=isHeader?this.formatterOptions.quoteHeaders:this.formatterOptions.quoteColumns;if(lodash_isboolean_1.default(quoteConfig)){return quoteConfig;}if(Array.isArray(quoteConfig)){return quoteConfig[fieldIndex];}if(this._headers!==null){return quoteConfig[this._headers[fieldIndex]];}return false;}},{key:"format",value:function format(field,fieldIndex,isHeader){var preparedField="".concat(lodash_isnil_1.default(field)?'':field).replace(/\0/g,'');var formatterOptions=this.formatterOptions;if(formatterOptions.quote!==''){var shouldEscape=preparedField.indexOf(formatterOptions.quote)!==-1;if(shouldEscape){return this.quoteField(preparedField.replace(this.REPLACE_REGEXP,formatterOptions.escapedQuote));}}var hasEscapeCharacters=preparedField.search(this.ESCAPE_REGEXP)!==-1;if(hasEscapeCharacters||this.shouldQuote(fieldIndex,isHeader)){return this.quoteField(preparedField);}return preparedField;}},{key:"quoteField",value:function quoteField(field){var quote=this.formatterOptions.quote;return"".concat(quote).concat(field).concat(quote);}},{key:"headers",set:function set(headers){this._headers=headers;}}]);return FieldFormatter;}();exports.FieldFormatter=FieldFormatter;},{"lodash.escaperegexp":403,"lodash.isboolean":405,"lodash.isnil":408}],144:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.RowFormatter=void 0;var lodash_isfunction_1=__importDefault(require("lodash.isfunction"));var lodash_isequal_1=__importDefault(require("lodash.isequal"));var FieldFormatter_1=require("./FieldFormatter");var types_1=require("../types");var RowFormatter=/*#__PURE__*/function(){function RowFormatter(formatterOptions){_classCallCheck2(this,RowFormatter);this.rowCount=0;this.formatterOptions=formatterOptions;this.fieldFormatter=new FieldFormatter_1.FieldFormatter(formatterOptions);this.headers=formatterOptions.headers;this.shouldWriteHeaders=formatterOptions.shouldWriteHeaders;this.hasWrittenHeaders=false;if(this.headers!==null){this.fieldFormatter.headers=this.headers;}if(formatterOptions.transform){this.rowTransform=formatterOptions.transform;}}_createClass2(RowFormatter,[{key:"format",value:function format(row,cb){var _this13=this;this.callTransformer(row,function(err,transformedRow){if(err){return cb(err);}if(!row){return cb(null);}var rows=[];if(transformedRow){var _this13$checkHeaders=_this13.checkHeaders(transformedRow),shouldFormatColumns=_this13$checkHeaders.shouldFormatColumns,headers=_this13$checkHeaders.headers;if(_this13.shouldWriteHeaders&&headers&&!_this13.hasWrittenHeaders){rows.push(_this13.formatColumns(headers,true));_this13.hasWrittenHeaders=true;}if(shouldFormatColumns){var columns=_this13.gatherColumns(transformedRow);rows.push(_this13.formatColumns(columns,false));}}return cb(null,rows);});}},{key:"finish",value:function finish(cb){var rows=[];// check if we should write headers and we didnt get any rows if(this.formatterOptions.alwaysWriteHeaders&&this.rowCount===0){if(!this.headers){return cb(new Error('`alwaysWriteHeaders` option is set to true but `headers` option not provided.'));}rows.push(this.formatColumns(this.headers,true));}if(this.formatterOptions.includeEndRowDelimiter){rows.push(this.formatterOptions.rowDelimiter);}return cb(null,rows);}// check if we need to write header return true if we should also write a row // could be false if headers is true and the header row(first item) is passed in },{key:"checkHeaders",value:function checkHeaders(row){if(this.headers){// either the headers were provided by the user or we have already gathered them. return{shouldFormatColumns:true,headers:this.headers};}var headers=RowFormatter.gatherHeaders(row);this.headers=headers;this.fieldFormatter.headers=headers;if(!this.shouldWriteHeaders){// if we are not supposed to write the headers then // always format the columns return{shouldFormatColumns:true,headers:null};}// if the row is equal to headers dont format return{shouldFormatColumns:!lodash_isequal_1.default(headers,row),headers:headers};}// todo change this method to unknown[] },{key:"gatherColumns",value:function gatherColumns(row){if(this.headers===null){throw new Error('Headers is currently null');}if(!Array.isArray(row)){return this.headers.map(function(header){return row[header];});}if(RowFormatter.isHashArray(row)){return this.headers.map(function(header,i){var col=row[i];if(col){return col[1];}return'';});}return this.headers.map(function(header,i){return row[i];});}},{key:"callTransformer",value:function callTransformer(row,cb){if(!this._rowTransform){return cb(null,row);}return this._rowTransform(row,cb);}},{key:"formatColumns",value:function formatColumns(columns,isHeadersRow){var _this14=this;var formattedCols=columns.map(function(field,i){return _this14.fieldFormatter.format(field,i,isHeadersRow);}).join(this.formatterOptions.delimiter);var rowCount=this.rowCount;this.rowCount+=1;if(rowCount){return[this.formatterOptions.rowDelimiter,formattedCols].join('');}return formattedCols;}},{key:"rowTransform",set:function set(transformFunction){if(!lodash_isfunction_1.default(transformFunction)){throw new TypeError('The transform should be a function');}this._rowTransform=RowFormatter.createTransform(transformFunction);}}],[{key:"isHashArray",value:function isHashArray(row){if(Array.isArray(row)){return Array.isArray(row[0])&&row[0].length===2;}return false;}// get headers from a row item },{key:"gatherHeaders",value:function gatherHeaders(row){if(RowFormatter.isHashArray(row)){// lets assume a multi-dimesional array with item 0 being the header return row.map(function(it){return it[0];});}if(Array.isArray(row)){return row;}return Object.keys(row);}},{key:"createTransform",value:function createTransform(transformFunction){if(types_1.isSyncTransform(transformFunction)){return function(row,cb){var transformedRow=null;try{transformedRow=transformFunction(row);}catch(e){return cb(e);}return cb(null,transformedRow);};}return function(row,cb){transformFunction(row,cb);};}}]);return RowFormatter;}();exports.RowFormatter=RowFormatter;},{"../types":147,"./FieldFormatter":143,"lodash.isequal":406,"lodash.isfunction":407}],145:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var RowFormatter_1=require("./RowFormatter");Object.defineProperty(exports,"RowFormatter",{enumerable:true,get:function get(){return RowFormatter_1.RowFormatter;}});var FieldFormatter_1=require("./FieldFormatter");Object.defineProperty(exports,"FieldFormatter",{enumerable:true,get:function get(){return FieldFormatter_1.FieldFormatter;}});},{"./FieldFormatter":143,"./RowFormatter":144}],146:[function(require,module,exports){(function(Buffer){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;Object.defineProperty(o,k2,{enumerable:true,get:function get(){return m[k];}});}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k];});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v});}:function(o,v){o["default"]=v;});var __importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod){if(Object.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);}__setModuleDefault(result,mod);return result;};var __exportStar=this&&this.__exportStar||function(m,exports){for(var p in m){if(p!=="default"&&!exports.hasOwnProperty(p))__createBinding(exports,m,p);}};Object.defineProperty(exports,"__esModule",{value:true});exports.writeToPath=exports.writeToString=exports.writeToBuffer=exports.writeToStream=exports.write=exports.format=void 0;var util_1=require("util");var stream_1=require("stream");var fs=__importStar(require("fs"));var FormatterOptions_1=require("./FormatterOptions");var CsvFormatterStream_1=require("./CsvFormatterStream");__exportStar(require("./types"),exports);var CsvFormatterStream_2=require("./CsvFormatterStream");Object.defineProperty(exports,"CsvFormatterStream",{enumerable:true,get:function get(){return CsvFormatterStream_2.CsvFormatterStream;}});var FormatterOptions_2=require("./FormatterOptions");Object.defineProperty(exports,"FormatterOptions",{enumerable:true,get:function get(){return FormatterOptions_2.FormatterOptions;}});exports.format=function(options){return new CsvFormatterStream_1.CsvFormatterStream(new FormatterOptions_1.FormatterOptions(options));};exports.write=function(rows,options){var csvStream=exports.format(options);var promiseWrite=util_1.promisify(function(row,cb){csvStream.write(row,undefined,cb);});rows.reduce(function(prev,row){return prev.then(function(){return promiseWrite(row);});},Promise.resolve()).then(function(){return csvStream.end();}).catch(function(err){csvStream.emit('error',err);});return csvStream;};exports.writeToStream=function(ws,rows,options){return exports.write(rows,options).pipe(ws);};exports.writeToBuffer=function(rows){var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var buffers=[];var ws=new stream_1.Writable({write:function write(data,enc,writeCb){buffers.push(data);writeCb();}});return new Promise(function(res,rej){ws.on('error',rej).on('finish',function(){return res(Buffer.concat(buffers));});exports.write(rows,opts).pipe(ws);});};exports.writeToString=function(rows,options){return exports.writeToBuffer(rows,options).then(function(buffer){return buffer.toString();});};exports.writeToPath=function(path,rows,options){var stream=fs.createWriteStream(path,{encoding:'utf8'});return exports.write(rows,options).pipe(stream);};}).call(this,require("buffer").Buffer);},{"./CsvFormatterStream":141,"./FormatterOptions":142,"./types":147,"buffer":214,"fs":213,"stream":481,"util":500}],147:[function(require,module,exports){"use strict";/* eslint-disable @typescript-eslint/no-explicit-any */Object.defineProperty(exports,"__esModule",{value:true});exports.isSyncTransform=void 0;exports.isSyncTransform=function(transform){return transform.length===1;};},{}],148:[function(require,module,exports){(function(setImmediate){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.CsvParserStream=void 0;var string_decoder_1=require("string_decoder");var stream_1=require("stream");var transforms_1=require("./transforms");var parser_1=require("./parser");var CsvParserStream=/*#__PURE__*/function(_stream_1$Transform2){_inherits2(CsvParserStream,_stream_1$Transform2);var _super6=_createSuper2(CsvParserStream);function CsvParserStream(parserOptions){var _this15;_classCallCheck2(this,CsvParserStream);_this15=_super6.call(this,{objectMode:parserOptions.objectMode});_this15.lines='';_this15.rowCount=0;_this15.parsedRowCount=0;_this15.parsedLineCount=0;_this15.endEmitted=false;_this15.headersEmitted=false;_this15.parserOptions=parserOptions;_this15.parser=new parser_1.Parser(parserOptions);_this15.headerTransformer=new transforms_1.HeaderTransformer(parserOptions);_this15.decoder=new string_decoder_1.StringDecoder(parserOptions.encoding);_this15.rowTransformerValidator=new transforms_1.RowTransformerValidator();return _this15;}_createClass2(CsvParserStream,[{key:"transform",value:function transform(transformFunction){this.rowTransformerValidator.rowTransform=transformFunction;return this;}},{key:"validate",value:function validate(validateFunction){this.rowTransformerValidator.rowValidator=validateFunction;return this;}// eslint-disable-next-line @typescript-eslint/no-explicit-any },{key:"emit",value:function emit(event){var _get2;if(event==='end'){if(!this.endEmitted){this.endEmitted=true;_get(_getPrototypeOf2(CsvParserStream.prototype),"emit",this).call(this,'end',this.rowCount);}return false;}for(var _len6=arguments.length,rest=new Array(_len6>1?_len6-1:0),_key6=1;_key6<_len6;_key6++){rest[_key6-1]=arguments[_key6];}return(_get2=_get(_getPrototypeOf2(CsvParserStream.prototype),"emit",this)).call.apply(_get2,[this,event].concat(rest));}},{key:"_transform",value:function _transform(data,encoding,done){// if we have hit our maxRows parsing limit then skip parsing if(this.hasHitRowLimit){return done();}try{var lines=this.lines;var newLine=lines+this.decoder.write(data);var rows=this.parse(newLine,true);return this.processRows(rows,done);}catch(e){return this.destroy(e);}}},{key:"_flush",value:function _flush(done){// if we have hit our maxRows parsing limit then skip parsing if(this.hasHitRowLimit){return done();}try{var newLine=this.lines+this.decoder.end();var rows=this.parse(newLine,false);return this.processRows(rows,done);}catch(e){return done(e);}}},{key:"parse",value:function parse(data,hasMoreData){if(!data){return[];}var _this$parser$parse=this.parser.parse(data,hasMoreData),line=_this$parser$parse.line,rows=_this$parser$parse.rows;this.lines=line;return rows;}},{key:"processRows",value:function processRows(rows,cb){var _this16=this;var rowsLength=rows.length;var iterate=function iterate(i){var callNext=function callNext(err){if(err){return _this16.destroy(err);}if(i%100===0){// incase the transform are sync insert a next tick to prevent stack overflow setImmediate(function(){return iterate(i+1);});return undefined;}return iterate(i+1);};_this16.checkAndEmitHeaders();// if we have emitted all rows or we have hit the maxRows limit option // then end if(i>=rowsLength||_this16.hasHitRowLimit){return cb();}_this16.parsedLineCount+=1;if(_this16.shouldSkipLine){return callNext();}var row=rows[i];_this16.rowCount+=1;_this16.parsedRowCount+=1;var nextRowCount=_this16.rowCount;return _this16.transformRow(row,function(err,transformResult){if(err){_this16.rowCount-=1;return callNext(err);}if(!transformResult){return callNext(new Error('expected transform result'));}if(!transformResult.isValid){_this16.emit('data-invalid',transformResult.row,nextRowCount,transformResult.reason);}else if(transformResult.row){return _this16.pushRow(transformResult.row,callNext);}return callNext();});};iterate(0);}},{key:"transformRow",value:function transformRow(parsedRow,cb){var _this17=this;try{this.headerTransformer.transform(parsedRow,function(err,withHeaders){if(err){return cb(err);}if(!withHeaders){return cb(new Error('Expected result from header transform'));}if(!withHeaders.isValid){if(_this17.shouldEmitRows){return cb(null,{isValid:false,row:parsedRow});}// skipped because of skipRows option remove from total row count return _this17.skipRow(cb);}if(withHeaders.row){if(_this17.shouldEmitRows){return _this17.rowTransformerValidator.transformAndValidate(withHeaders.row,cb);}// skipped because of skipRows option remove from total row count return _this17.skipRow(cb);}// this is a header row dont include in the rowCount or parsedRowCount _this17.rowCount-=1;_this17.parsedRowCount-=1;return cb(null,{row:null,isValid:true});});}catch(e){cb(e);}}},{key:"checkAndEmitHeaders",value:function checkAndEmitHeaders(){if(!this.headersEmitted&&this.headerTransformer.headers){this.headersEmitted=true;this.emit('headers',this.headerTransformer.headers);}}},{key:"skipRow",value:function skipRow(cb){// skipped because of skipRows option remove from total row count this.rowCount-=1;return cb(null,{row:null,isValid:true});}},{key:"pushRow",value:function pushRow(row,cb){try{if(!this.parserOptions.objectMode){this.push(JSON.stringify(row));}else{this.push(row);}cb();}catch(e){cb(e);}}},{key:"hasHitRowLimit",get:function get(){return this.parserOptions.limitRows&&this.rowCount>=this.parserOptions.maxRows;}},{key:"shouldEmitRows",get:function get(){return this.parsedRowCount>this.parserOptions.skipRows;}},{key:"shouldSkipLine",get:function get(){return this.parsedLineCount<=this.parserOptions.skipLines;}}]);return CsvParserStream;}(stream_1.Transform);exports.CsvParserStream=CsvParserStream;}).call(this,require("timers").setImmediate);},{"./parser":160,"./transforms":163,"stream":481,"string_decoder":495,"timers":496}],149:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.ParserOptions=void 0;var lodash_escaperegexp_1=__importDefault(require("lodash.escaperegexp"));var lodash_isnil_1=__importDefault(require("lodash.isnil"));var ParserOptions=function ParserOptions(opts){_classCallCheck2(this,ParserOptions);var _a;this.objectMode=true;this.delimiter=',';this.ignoreEmpty=false;this.quote='"';this.escape=null;this.escapeChar=this.quote;this.comment=null;this.supportsComments=false;this.ltrim=false;this.rtrim=false;this.trim=false;this.headers=null;this.renameHeaders=false;this.strictColumnHandling=false;this.discardUnmappedColumns=false;this.carriageReturn='\r';this.encoding='utf8';this.limitRows=false;this.maxRows=0;this.skipLines=0;this.skipRows=0;Object.assign(this,opts||{});if(this.delimiter.length>1){throw new Error('delimiter option must be one character long');}this.escapedDelimiter=lodash_escaperegexp_1.default(this.delimiter);this.escapeChar=(_a=this.escape)!==null&&_a!==void 0?_a:this.quote;this.supportsComments=!lodash_isnil_1.default(this.comment);this.NEXT_TOKEN_REGEXP=new RegExp("([^\\s]|\\r\\n|\\n|\\r|".concat(this.escapedDelimiter,")"));if(this.maxRows>0){this.limitRows=true;}};exports.ParserOptions=ParserOptions;},{"lodash.escaperegexp":403,"lodash.isnil":408}],150:[function(require,module,exports){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;Object.defineProperty(o,k2,{enumerable:true,get:function get(){return m[k];}});}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k];});var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v});}:function(o,v){o["default"]=v;});var __importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod){if(Object.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);}__setModuleDefault(result,mod);return result;};var __exportStar=this&&this.__exportStar||function(m,exports){for(var p in m){if(p!=="default"&&!exports.hasOwnProperty(p))__createBinding(exports,m,p);}};Object.defineProperty(exports,"__esModule",{value:true});exports.parseString=exports.parseFile=exports.parseStream=exports.parse=void 0;var fs=__importStar(require("fs"));var stream_1=require("stream");var ParserOptions_1=require("./ParserOptions");var CsvParserStream_1=require("./CsvParserStream");__exportStar(require("./types"),exports);var CsvParserStream_2=require("./CsvParserStream");Object.defineProperty(exports,"CsvParserStream",{enumerable:true,get:function get(){return CsvParserStream_2.CsvParserStream;}});var ParserOptions_2=require("./ParserOptions");Object.defineProperty(exports,"ParserOptions",{enumerable:true,get:function get(){return ParserOptions_2.ParserOptions;}});exports.parse=function(args){return new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(args));};exports.parseStream=function(stream,options){return stream.pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));};exports.parseFile=function(location){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return fs.createReadStream(location).pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));};exports.parseString=function(string,options){var rs=new stream_1.Readable();rs.push(string);rs.push(null);return rs.pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));};},{"./CsvParserStream":148,"./ParserOptions":149,"./types":164,"fs":213,"stream":481}],151:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Parser=void 0;var Scanner_1=require("./Scanner");var RowParser_1=require("./RowParser");var Token_1=require("./Token");var EMPTY_ROW_REGEXP=/^\s*(?:''|"")?\s*(?:,\s*(?:''|"")?\s*)*$/;var Parser=/*#__PURE__*/function(){function Parser(parserOptions){_classCallCheck2(this,Parser);this.parserOptions=parserOptions;this.rowParser=new RowParser_1.RowParser(this.parserOptions);}_createClass2(Parser,[{key:"parse",value:function parse(line,hasMoreData){var scanner=new Scanner_1.Scanner({line:Parser.removeBOM(line),parserOptions:this.parserOptions,hasMoreData:hasMoreData});if(this.parserOptions.supportsComments){return this.parseWithComments(scanner);}return this.parseWithoutComments(scanner);}},{key:"parseWithoutComments",value:function parseWithoutComments(scanner){var rows=[];var shouldContinue=true;while(shouldContinue){shouldContinue=this.parseRow(scanner,rows);}return{line:scanner.line,rows:rows};}},{key:"parseWithComments",value:function parseWithComments(scanner){var parserOptions=this.parserOptions;var rows=[];for(var nextToken=scanner.nextCharacterToken;nextToken!==null;nextToken=scanner.nextCharacterToken){if(Token_1.Token.isTokenComment(nextToken,parserOptions)){var cursor=scanner.advancePastLine();if(cursor===null){return{line:scanner.lineFromCursor,rows:rows};}if(!scanner.hasMoreCharacters){return{line:scanner.lineFromCursor,rows:rows};}scanner.truncateToCursor();}else if(!this.parseRow(scanner,rows)){break;}}return{line:scanner.line,rows:rows};}},{key:"parseRow",value:function parseRow(scanner,rows){var nextToken=scanner.nextNonSpaceToken;if(!nextToken){return false;}var row=this.rowParser.parse(scanner);if(row===null){return false;}if(this.parserOptions.ignoreEmpty&&EMPTY_ROW_REGEXP.test(row.join(''))){return true;}rows.push(row);return true;}}],[{key:"removeBOM",value:function removeBOM(line){// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string // conversion translates it to FEFF (UTF-16 BOM) if(line&&line.charCodeAt(0)===0xfeff){return line.slice(1);}return line;}}]);return Parser;}();exports.Parser=Parser;},{"./RowParser":152,"./Scanner":153,"./Token":154}],152:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.RowParser=void 0;var column_1=require("./column");var Token_1=require("./Token");var _Token_1$Token=Token_1.Token,isTokenRowDelimiter=_Token_1$Token.isTokenRowDelimiter,isTokenCarriageReturn=_Token_1$Token.isTokenCarriageReturn,isTokenDelimiter=_Token_1$Token.isTokenDelimiter;var RowParser=/*#__PURE__*/function(){function RowParser(parserOptions){_classCallCheck2(this,RowParser);this.parserOptions=parserOptions;this.columnParser=new column_1.ColumnParser(parserOptions);}_createClass2(RowParser,[{key:"parse",value:function parse(scanner){var parserOptions=this.parserOptions;var hasMoreData=scanner.hasMoreData;var currentScanner=scanner;var columns=[];var currentToken=this.getStartToken(currentScanner,columns);while(currentToken){if(isTokenRowDelimiter(currentToken)){currentScanner.advancePastToken(currentToken);// if ends with CR and there is more data, keep unparsed due to possible // coming LF in CRLF if(!currentScanner.hasMoreCharacters&&isTokenCarriageReturn(currentToken,parserOptions)&&hasMoreData){return null;}currentScanner.truncateToCursor();return columns;}if(!this.shouldSkipColumnParse(currentScanner,currentToken,columns)){var item=this.columnParser.parse(currentScanner);if(item===null){return null;}columns.push(item);}currentToken=currentScanner.nextNonSpaceToken;}if(!hasMoreData){currentScanner.truncateToCursor();return columns;}return null;}},{key:"getStartToken",value:function getStartToken(scanner,columns){var currentToken=scanner.nextNonSpaceToken;if(currentToken!==null&&isTokenDelimiter(currentToken,this.parserOptions)){columns.push('');return scanner.nextNonSpaceToken;}return currentToken;}},{key:"shouldSkipColumnParse",value:function shouldSkipColumnParse(scanner,currentToken,columns){var parserOptions=this.parserOptions;if(isTokenDelimiter(currentToken,parserOptions)){scanner.advancePastToken(currentToken);// if the delimiter is at the end of a line var nextToken=scanner.nextCharacterToken;if(!scanner.hasMoreCharacters||nextToken!==null&&isTokenRowDelimiter(nextToken)){columns.push('');return true;}if(nextToken!==null&&isTokenDelimiter(nextToken,parserOptions)){columns.push('');return true;}}return false;}}]);return RowParser;}();exports.RowParser=RowParser;},{"./Token":154,"./column":159}],153:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Scanner=void 0;var Token_1=require("./Token");var ROW_DELIMITER=/((?:\r\n)|\n|\r)/;var Scanner=/*#__PURE__*/function(){function Scanner(args){_classCallCheck2(this,Scanner);this.cursor=0;this.line=args.line;this.lineLength=this.line.length;this.parserOptions=args.parserOptions;this.hasMoreData=args.hasMoreData;this.cursor=args.cursor||0;}_createClass2(Scanner,[{key:"advancePastLine",value:function advancePastLine(){var match=ROW_DELIMITER.exec(this.lineFromCursor);if(!match){if(this.hasMoreData){return null;}this.cursor=this.lineLength;return this;}this.cursor+=(match.index||0)+match[0].length;return this;}},{key:"advanceTo",value:function advanceTo(cursor){this.cursor=cursor;return this;}},{key:"advanceToToken",value:function advanceToToken(token){this.cursor=token.startCursor;return this;}},{key:"advancePastToken",value:function advancePastToken(token){this.cursor=token.endCursor+1;return this;}},{key:"truncateToCursor",value:function truncateToCursor(){this.line=this.lineFromCursor;this.lineLength=this.line.length;this.cursor=0;return this;}},{key:"hasMoreCharacters",get:function get(){return this.lineLength>this.cursor;}},{key:"nextNonSpaceToken",get:function get(){var lineFromCursor=this.lineFromCursor;var regex=this.parserOptions.NEXT_TOKEN_REGEXP;if(lineFromCursor.search(regex)===-1){return null;}var match=regex.exec(lineFromCursor);if(match==null){return null;}var token=match[1];var startCursor=this.cursor+(match.index||0);return new Token_1.Token({token:token,startCursor:startCursor,endCursor:startCursor+token.length-1});}},{key:"nextCharacterToken",get:function get(){var cursor=this.cursor,lineLength=this.lineLength;if(lineLength<=cursor){return null;}return new Token_1.Token({token:this.line[cursor],startCursor:cursor,endCursor:cursor});}},{key:"lineFromCursor",get:function get(){return this.line.substr(this.cursor);}}]);return Scanner;}();exports.Scanner=Scanner;},{"./Token":154}],154:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Token=void 0;var Token=/*#__PURE__*/function(){function Token(tokenArgs){_classCallCheck2(this,Token);this.token=tokenArgs.token;this.startCursor=tokenArgs.startCursor;this.endCursor=tokenArgs.endCursor;}_createClass2(Token,null,[{key:"isTokenRowDelimiter",value:function isTokenRowDelimiter(token){var content=token.token;return content==='\r'||content==='\n'||content==='\r\n';}},{key:"isTokenCarriageReturn",value:function isTokenCarriageReturn(token,parserOptions){return token.token===parserOptions.carriageReturn;}},{key:"isTokenComment",value:function isTokenComment(token,parserOptions){return parserOptions.supportsComments&&!!token&&token.token===parserOptions.comment;}},{key:"isTokenEscapeCharacter",value:function isTokenEscapeCharacter(token,parserOptions){return token.token===parserOptions.escapeChar;}},{key:"isTokenQuote",value:function isTokenQuote(token,parserOptions){return token.token===parserOptions.quote;}},{key:"isTokenDelimiter",value:function isTokenDelimiter(token,parserOptions){return token.token===parserOptions.delimiter;}}]);return Token;}();exports.Token=Token;},{}],155:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ColumnFormatter=void 0;var ColumnFormatter=function ColumnFormatter(parserOptions){_classCallCheck2(this,ColumnFormatter);if(parserOptions.trim){this.format=function(col){return col.trim();};}else if(parserOptions.ltrim){this.format=function(col){return col.trimLeft();};}else if(parserOptions.rtrim){this.format=function(col){return col.trimRight();};}else{this.format=function(col){return col;};}};exports.ColumnFormatter=ColumnFormatter;},{}],156:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ColumnParser=void 0;var NonQuotedColumnParser_1=require("./NonQuotedColumnParser");var QuotedColumnParser_1=require("./QuotedColumnParser");var Token_1=require("../Token");var ColumnParser=/*#__PURE__*/function(){function ColumnParser(parserOptions){_classCallCheck2(this,ColumnParser);this.parserOptions=parserOptions;this.quotedColumnParser=new QuotedColumnParser_1.QuotedColumnParser(parserOptions);this.nonQuotedColumnParser=new NonQuotedColumnParser_1.NonQuotedColumnParser(parserOptions);}_createClass2(ColumnParser,[{key:"parse",value:function parse(scanner){var nextNonSpaceToken=scanner.nextNonSpaceToken;if(nextNonSpaceToken!==null&&Token_1.Token.isTokenQuote(nextNonSpaceToken,this.parserOptions)){scanner.advanceToToken(nextNonSpaceToken);return this.quotedColumnParser.parse(scanner);}return this.nonQuotedColumnParser.parse(scanner);}}]);return ColumnParser;}();exports.ColumnParser=ColumnParser;},{"../Token":154,"./NonQuotedColumnParser":157,"./QuotedColumnParser":158}],157:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NonQuotedColumnParser=void 0;var ColumnFormatter_1=require("./ColumnFormatter");var Token_1=require("../Token");var _Token_1$Token2=Token_1.Token,isTokenDelimiter=_Token_1$Token2.isTokenDelimiter,isTokenRowDelimiter=_Token_1$Token2.isTokenRowDelimiter;var NonQuotedColumnParser=/*#__PURE__*/function(){function NonQuotedColumnParser(parserOptions){_classCallCheck2(this,NonQuotedColumnParser);this.parserOptions=parserOptions;this.columnFormatter=new ColumnFormatter_1.ColumnFormatter(parserOptions);}_createClass2(NonQuotedColumnParser,[{key:"parse",value:function parse(scanner){if(!scanner.hasMoreCharacters){return null;}var parserOptions=this.parserOptions;var characters=[];var nextToken=scanner.nextCharacterToken;for(;nextToken;nextToken=scanner.nextCharacterToken){if(isTokenDelimiter(nextToken,parserOptions)||isTokenRowDelimiter(nextToken)){break;}characters.push(nextToken.token);scanner.advancePastToken(nextToken);}return this.columnFormatter.format(characters.join(''));}}]);return NonQuotedColumnParser;}();exports.NonQuotedColumnParser=NonQuotedColumnParser;},{"../Token":154,"./ColumnFormatter":155}],158:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.QuotedColumnParser=void 0;var ColumnFormatter_1=require("./ColumnFormatter");var Token_1=require("../Token");var _Token_1$Token3=Token_1.Token,isTokenDelimiter=_Token_1$Token3.isTokenDelimiter,isTokenRowDelimiter=_Token_1$Token3.isTokenRowDelimiter,isTokenEscapeCharacter=_Token_1$Token3.isTokenEscapeCharacter,isTokenQuote=_Token_1$Token3.isTokenQuote;var QuotedColumnParser=/*#__PURE__*/function(){function QuotedColumnParser(parserOptions){_classCallCheck2(this,QuotedColumnParser);this.parserOptions=parserOptions;this.columnFormatter=new ColumnFormatter_1.ColumnFormatter(parserOptions);}_createClass2(QuotedColumnParser,[{key:"parse",value:function parse(scanner){if(!scanner.hasMoreCharacters){return null;}var originalCursor=scanner.cursor;var _this$gatherDataBetwe=this.gatherDataBetweenQuotes(scanner),foundClosingQuote=_this$gatherDataBetwe.foundClosingQuote,col=_this$gatherDataBetwe.col;if(!foundClosingQuote){// reset the cursor to the original scanner.advanceTo(originalCursor);// if we didnt find a closing quote but we potentially have more data then skip the parsing // and return the original scanner. if(!scanner.hasMoreData){throw new Error("Parse Error: missing closing: '".concat(this.parserOptions.quote||'',"' in line: at '").concat(scanner.lineFromCursor.replace(/[\r\n]/g,"\\n'"),"'"));}return null;}this.checkForMalformedColumn(scanner);return col;}},{key:"gatherDataBetweenQuotes",value:function gatherDataBetweenQuotes(scanner){var parserOptions=this.parserOptions;var foundStartingQuote=false;var foundClosingQuote=false;var characters=[];var nextToken=scanner.nextCharacterToken;for(;!foundClosingQuote&&nextToken!==null;nextToken=scanner.nextCharacterToken){var isQuote=isTokenQuote(nextToken,parserOptions);// ignore first quote if(!foundStartingQuote&&isQuote){foundStartingQuote=true;}else if(foundStartingQuote){if(isTokenEscapeCharacter(nextToken,parserOptions)){// advance past the escape character so we can get the next one in line scanner.advancePastToken(nextToken);var tokenFollowingEscape=scanner.nextCharacterToken;// if the character following the escape is a quote character then just add // the quote and advance to that character if(tokenFollowingEscape!==null&&(isTokenQuote(tokenFollowingEscape,parserOptions)||isTokenEscapeCharacter(tokenFollowingEscape,parserOptions))){characters.push(tokenFollowingEscape.token);nextToken=tokenFollowingEscape;}else if(isQuote){// if the escape is also a quote then we found our closing quote and finish early foundClosingQuote=true;}else{// other wise add the escape token to the characters since it wast escaping anything characters.push(nextToken.token);}}else if(isQuote){// we found our closing quote! foundClosingQuote=true;}else{// add the token to the characters characters.push(nextToken.token);}}scanner.advancePastToken(nextToken);}return{col:this.columnFormatter.format(characters.join('')),foundClosingQuote:foundClosingQuote};}},{key:"checkForMalformedColumn",value:function checkForMalformedColumn(scanner){var parserOptions=this.parserOptions;var nextNonSpaceToken=scanner.nextNonSpaceToken;if(nextNonSpaceToken){var isNextTokenADelimiter=isTokenDelimiter(nextNonSpaceToken,parserOptions);var isNextTokenARowDelimiter=isTokenRowDelimiter(nextNonSpaceToken);if(!(isNextTokenADelimiter||isNextTokenARowDelimiter)){// if the final quote was NOT followed by a column (,) or row(\n) delimiter then its a bad column // tldr: only part of the column was quoted var linePreview=scanner.lineFromCursor.substr(0,10).replace(/[\r\n]/g,"\\n'");throw new Error("Parse Error: expected: '".concat(parserOptions.escapedDelimiter,"' OR new line got: '").concat(nextNonSpaceToken.token,"'. at '").concat(linePreview));}scanner.advanceToToken(nextNonSpaceToken);}else if(!scanner.hasMoreData){scanner.advancePastLine();}}}]);return QuotedColumnParser;}();exports.QuotedColumnParser=QuotedColumnParser;},{"../Token":154,"./ColumnFormatter":155}],159:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var ColumnParser_1=require("./ColumnParser");Object.defineProperty(exports,"ColumnParser",{enumerable:true,get:function get(){return ColumnParser_1.ColumnParser;}});var NonQuotedColumnParser_1=require("./NonQuotedColumnParser");Object.defineProperty(exports,"NonQuotedColumnParser",{enumerable:true,get:function get(){return NonQuotedColumnParser_1.NonQuotedColumnParser;}});var QuotedColumnParser_1=require("./QuotedColumnParser");Object.defineProperty(exports,"QuotedColumnParser",{enumerable:true,get:function get(){return QuotedColumnParser_1.QuotedColumnParser;}});var ColumnFormatter_1=require("./ColumnFormatter");Object.defineProperty(exports,"ColumnFormatter",{enumerable:true,get:function get(){return ColumnFormatter_1.ColumnFormatter;}});},{"./ColumnFormatter":155,"./ColumnParser":156,"./NonQuotedColumnParser":157,"./QuotedColumnParser":158}],160:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var Parser_1=require("./Parser");Object.defineProperty(exports,"Parser",{enumerable:true,get:function get(){return Parser_1.Parser;}});var RowParser_1=require("./RowParser");Object.defineProperty(exports,"RowParser",{enumerable:true,get:function get(){return RowParser_1.RowParser;}});var Scanner_1=require("./Scanner");Object.defineProperty(exports,"Scanner",{enumerable:true,get:function get(){return Scanner_1.Scanner;}});var Token_1=require("./Token");Object.defineProperty(exports,"Token",{enumerable:true,get:function get(){return Token_1.Token;}});var column_1=require("./column");Object.defineProperty(exports,"ColumnParser",{enumerable:true,get:function get(){return column_1.ColumnParser;}});Object.defineProperty(exports,"NonQuotedColumnParser",{enumerable:true,get:function get(){return column_1.NonQuotedColumnParser;}});Object.defineProperty(exports,"QuotedColumnParser",{enumerable:true,get:function get(){return column_1.QuotedColumnParser;}});},{"./Parser":151,"./RowParser":152,"./Scanner":153,"./Token":154,"./column":159}],161:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.HeaderTransformer=void 0;var lodash_isundefined_1=__importDefault(require("lodash.isundefined"));var lodash_isfunction_1=__importDefault(require("lodash.isfunction"));var lodash_uniq_1=__importDefault(require("lodash.uniq"));var lodash_groupby_1=__importDefault(require("lodash.groupby"));var HeaderTransformer=/*#__PURE__*/function(){function HeaderTransformer(parserOptions){_classCallCheck2(this,HeaderTransformer);this.headers=null;this.receivedHeaders=false;this.shouldUseFirstRow=false;this.processedFirstRow=false;this.headersLength=0;this.parserOptions=parserOptions;if(parserOptions.headers===true){this.shouldUseFirstRow=true;}else if(Array.isArray(parserOptions.headers)){this.setHeaders(parserOptions.headers);}else if(lodash_isfunction_1.default(parserOptions.headers)){this.headersTransform=parserOptions.headers;}}_createClass2(HeaderTransformer,[{key:"transform",value:function transform(row,cb){if(!this.shouldMapRow(row)){return cb(null,{row:null,isValid:true});}return cb(null,this.processRow(row));}},{key:"shouldMapRow",value:function shouldMapRow(row){var parserOptions=this.parserOptions;if(!this.headersTransform&&parserOptions.renameHeaders&&!this.processedFirstRow){if(!this.receivedHeaders){throw new Error('Error renaming headers: new headers must be provided in an array');}this.processedFirstRow=true;return false;}if(!this.receivedHeaders&&Array.isArray(row)){if(this.headersTransform){this.setHeaders(this.headersTransform(row));}else if(this.shouldUseFirstRow){this.setHeaders(row);}else{// dont do anything with the headers if we didnt receive a transform or shouldnt use the first row. return true;}return false;}return true;}},{key:"processRow",value:function processRow(row){if(!this.headers){return{row:row,isValid:true};}var parserOptions=this.parserOptions;if(!parserOptions.discardUnmappedColumns&&row.length>this.headersLength){if(!parserOptions.strictColumnHandling){throw new Error("Unexpected Error: column header mismatch expected: ".concat(this.headersLength," columns got: ").concat(row.length));}return{row:row,isValid:false,reason:"Column header mismatch expected: ".concat(this.headersLength," columns got: ").concat(row.length)};}if(parserOptions.strictColumnHandling&&row.length1;});throw new Error("Duplicate headers found ".concat(JSON.stringify(duplicates)));}this.headers=headers;this.receivedHeaders=true;this.headersLength=((_a=this.headers)===null||_a===void 0?void 0:_a.length)||0;}}]);return HeaderTransformer;}();exports.HeaderTransformer=HeaderTransformer;},{"lodash.groupby":404,"lodash.isfunction":407,"lodash.isundefined":409,"lodash.uniq":410}],162:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.RowTransformerValidator=void 0;var lodash_isfunction_1=__importDefault(require("lodash.isfunction"));var types_1=require("../types");var RowTransformerValidator=/*#__PURE__*/function(){function RowTransformerValidator(){_classCallCheck2(this,RowTransformerValidator);this._rowTransform=null;this._rowValidator=null;}_createClass2(RowTransformerValidator,[{key:"transformAndValidate",value:function transformAndValidate(row,cb){var _this18=this;return this.callTransformer(row,function(transformErr,transformedRow){if(transformErr){return cb(transformErr);}if(!transformedRow){return cb(null,{row:null,isValid:true});}return _this18.callValidator(transformedRow,function(validateErr,validationResult){if(validateErr){return cb(validateErr);}if(validationResult&&!validationResult.isValid){return cb(null,{row:transformedRow,isValid:false,reason:validationResult.reason});}return cb(null,{row:transformedRow,isValid:true});});});}},{key:"callTransformer",value:function callTransformer(row,cb){if(!this._rowTransform){return cb(null,row);}return this._rowTransform(row,cb);}},{key:"callValidator",value:function callValidator(row,cb){if(!this._rowValidator){return cb(null,{row:row,isValid:true});}return this._rowValidator(row,cb);}},{key:"rowTransform",set:function set(transformFunction){if(!lodash_isfunction_1.default(transformFunction)){throw new TypeError('The transform should be a function');}this._rowTransform=RowTransformerValidator.createTransform(transformFunction);}},{key:"rowValidator",set:function set(validateFunction){if(!lodash_isfunction_1.default(validateFunction)){throw new TypeError('The validate should be a function');}this._rowValidator=RowTransformerValidator.createValidator(validateFunction);}}],[{key:"createTransform",value:function createTransform(transformFunction){if(types_1.isSyncTransform(transformFunction)){return function(row,cb){var transformed=null;try{transformed=transformFunction(row);}catch(e){return cb(e);}return cb(null,transformed);};}return transformFunction;}},{key:"createValidator",value:function createValidator(validateFunction){if(types_1.isSyncValidate(validateFunction)){return function(row,cb){cb(null,{row:row,isValid:validateFunction(row)});};}return function(row,cb){validateFunction(row,function(err,isValid,reason){if(err){return cb(err);}if(isValid){return cb(null,{row:row,isValid:isValid,reason:reason});}return cb(null,{row:row,isValid:false,reason:reason});});};}}]);return RowTransformerValidator;}();exports.RowTransformerValidator=RowTransformerValidator;},{"../types":164,"lodash.isfunction":407}],163:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var RowTransformerValidator_1=require("./RowTransformerValidator");Object.defineProperty(exports,"RowTransformerValidator",{enumerable:true,get:function get(){return RowTransformerValidator_1.RowTransformerValidator;}});var HeaderTransformer_1=require("./HeaderTransformer");Object.defineProperty(exports,"HeaderTransformer",{enumerable:true,get:function get(){return HeaderTransformer_1.HeaderTransformer;}});},{"./HeaderTransformer":161,"./RowTransformerValidator":162}],164:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.isSyncValidate=exports.isSyncTransform=void 0;exports.isSyncTransform=function(transform){return transform.length===1;};exports.isSyncValidate=function(validate){return validate.length===1;};},{}],165:[function(require,module,exports){var asn1=exports;asn1.bignum=require('bn.js');asn1.define=require('./asn1/api').define;asn1.base=require('./asn1/base');asn1.constants=require('./asn1/constants');asn1.decoders=require('./asn1/decoders');asn1.encoders=require('./asn1/encoders');},{"./asn1/api":166,"./asn1/base":168,"./asn1/constants":172,"./asn1/decoders":174,"./asn1/encoders":177,"bn.js":179}],166:[function(require,module,exports){var asn1=require('../asn1');var inherits=require('inherits');var api=exports;api.define=function define(name,body){return new Entity(name,body);};function Entity(name,body){this.name=name;this.body=body;this.decoders={};this.encoders={};};Entity.prototype._createNamed=function createNamed(base){var named;try{named=require('vm').runInThisContext('(function '+this.name+'(entity) {\n'+' this._initNamed(entity);\n'+'})');}catch(e){named=function named(entity){this._initNamed(entity);};}inherits(named,base);named.prototype._initNamed=function initnamed(entity){base.call(this,entity);};return new named(this);};Entity.prototype._getDecoder=function _getDecoder(enc){enc=enc||'der';// Lazily create decoder if(!this.decoders.hasOwnProperty(enc))this.decoders[enc]=this._createNamed(asn1.decoders[enc]);return this.decoders[enc];};Entity.prototype.decode=function decode(data,enc,options){return this._getDecoder(enc).decode(data,options);};Entity.prototype._getEncoder=function _getEncoder(enc){enc=enc||'der';// Lazily create encoder if(!this.encoders.hasOwnProperty(enc))this.encoders[enc]=this._createNamed(asn1.encoders[enc]);return this.encoders[enc];};Entity.prototype.encode=function encode(data,enc,/* internal */reporter){return this._getEncoder(enc).encode(data,reporter);};},{"../asn1":165,"inherits":364,"vm":511}],167:[function(require,module,exports){var inherits=require('inherits');var Reporter=require('../base').Reporter;var Buffer=require('buffer').Buffer;function DecoderBuffer(base,options){Reporter.call(this,options);if(!Buffer.isBuffer(base)){this.error('Input not Buffer');return;}this.base=base;this.offset=0;this.length=base.length;}inherits(DecoderBuffer,Reporter);exports.DecoderBuffer=DecoderBuffer;DecoderBuffer.prototype.save=function save(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)};};DecoderBuffer.prototype.restore=function restore(save){// Return skipped data var res=new DecoderBuffer(this.base);res.offset=save.offset;res.length=this.offset;this.offset=save.offset;Reporter.prototype.restore.call(this,save.reporter);return res;};DecoderBuffer.prototype.isEmpty=function isEmpty(){return this.offset===this.length;};DecoderBuffer.prototype.readUInt8=function readUInt8(fail){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,true);else return this.error(fail||'DecoderBuffer overrun');};DecoderBuffer.prototype.skip=function skip(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||'DecoderBuffer overrun');var res=new DecoderBuffer(this.base);// Share reporter state res._reporterState=this._reporterState;res.offset=this.offset;res.length=this.offset+bytes;this.offset+=bytes;return res;};DecoderBuffer.prototype.raw=function raw(save){return this.base.slice(save?save.offset:this.offset,this.length);};function EncoderBuffer(value,reporter){if(Array.isArray(value)){this.length=0;this.value=value.map(function(item){if(!(item instanceof EncoderBuffer))item=new EncoderBuffer(item,reporter);this.length+=item.length;return item;},this);}else if(typeof value==='number'){if(!(0<=value&&value<=0xff))return reporter.error('non-byte EncoderBuffer value');this.value=value;this.length=1;}else if(typeof value==='string'){this.value=value;this.length=Buffer.byteLength(value);}else if(Buffer.isBuffer(value)){this.value=value;this.length=value.length;}else{return reporter.error('Unsupported type: '+_typeof2(value));}}exports.EncoderBuffer=EncoderBuffer;EncoderBuffer.prototype.join=function join(out,offset){if(!out)out=new Buffer(this.length);if(!offset)offset=0;if(this.length===0)return out;if(Array.isArray(this.value)){this.value.forEach(function(item){item.join(out,offset);offset+=item.length;});}else{if(typeof this.value==='number')out[offset]=this.value;else if(typeof this.value==='string')out.write(this.value,offset);else if(Buffer.isBuffer(this.value))this.value.copy(out,offset);offset+=this.length;}return out;};},{"../base":168,"buffer":214,"inherits":364}],168:[function(require,module,exports){var base=exports;base.Reporter=require('./reporter').Reporter;base.DecoderBuffer=require('./buffer').DecoderBuffer;base.EncoderBuffer=require('./buffer').EncoderBuffer;base.Node=require('./node');},{"./buffer":167,"./node":169,"./reporter":170}],169:[function(require,module,exports){var Reporter=require('../base').Reporter;var EncoderBuffer=require('../base').EncoderBuffer;var DecoderBuffer=require('../base').DecoderBuffer;var assert=require('minimalistic-assert');// Supported tags var tags=['seq','seqof','set','setof','objid','bool','gentime','utctime','null_','enum','int','objDesc','bitstr','bmpstr','charstr','genstr','graphstr','ia5str','iso646str','numstr','octstr','printstr','t61str','unistr','utf8str','videostr'];// Public methods list var methods=['key','obj','use','optional','explicit','implicit','def','choice','any','contains'].concat(tags);// Overrided methods list var overrided=['_peekTag','_decodeTag','_use','_decodeStr','_decodeObjid','_decodeTime','_decodeNull','_decodeInt','_decodeBool','_decodeList','_encodeComposite','_encodeStr','_encodeObjid','_encodeTime','_encodeNull','_encodeInt','_encodeBool'];function Node(enc,parent){var state={};this._baseState=state;state.enc=enc;state.parent=parent||null;state.children=null;// State state.tag=null;state.args=null;state.reverseArgs=null;state.choice=null;state.optional=false;state.any=false;state.obj=false;state.use=null;state.useDecoder=null;state.key=null;state['default']=null;state.explicit=null;state.implicit=null;state.contains=null;// Should create new instance on each method if(!state.parent){state.children=[];this._wrap();}}module.exports=Node;var stateProps=['enc','parent','children','tag','args','reverseArgs','choice','optional','any','obj','use','alteredUse','key','default','explicit','implicit','contains'];Node.prototype.clone=function clone(){var state=this._baseState;var cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop];});var res=new this.constructor(cstate.parent);res._baseState=cstate;return res;};Node.prototype._wrap=function wrap(){var state=this._baseState;methods.forEach(function(method){this[method]=function _wrappedMethod(){var clone=new this.constructor(this);state.children.push(clone);return clone[method].apply(clone,arguments);};},this);};Node.prototype._init=function init(body){var state=this._baseState;assert(state.parent===null);body.call(this);// Filter children state.children=state.children.filter(function(child){return child._baseState.parent===this;},this);assert.equal(state.children.length,1,'Root node can have only one child');};Node.prototype._useArgs=function useArgs(args){var state=this._baseState;// Filter children and args var children=args.filter(function(arg){return arg instanceof this.constructor;},this);args=args.filter(function(arg){return!(arg instanceof this.constructor);},this);if(children.length!==0){assert(state.children===null);state.children=children;// Replace parent to maintain backward link children.forEach(function(child){child._baseState.parent=this;},this);}if(args.length!==0){assert(state.args===null);state.args=args;state.reverseArgs=args.map(function(arg){if(_typeof2(arg)!=='object'||arg.constructor!==Object)return arg;var res={};Object.keys(arg).forEach(function(key){if(key==(key|0))key|=0;var value=arg[key];res[value]=key;});return res;});}};// // Overrided methods // overrided.forEach(function(method){Node.prototype[method]=function _overrided(){var state=this._baseState;throw new Error(method+' not implemented for encoding: '+state.enc);};});// // Public methods // tags.forEach(function(tag){Node.prototype[tag]=function _tagMethod(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);assert(state.tag===null);state.tag=tag;this._useArgs(args);return this;};});Node.prototype.use=function use(item){assert(item);var state=this._baseState;assert(state.use===null);state.use=item;return this;};Node.prototype.optional=function optional(){var state=this._baseState;state.optional=true;return this;};Node.prototype.def=function def(val){var state=this._baseState;assert(state['default']===null);state['default']=val;state.optional=true;return this;};Node.prototype.explicit=function explicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.explicit=num;return this;};Node.prototype.implicit=function implicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.implicit=num;return this;};Node.prototype.obj=function obj(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);state.obj=true;if(args.length!==0)this._useArgs(args);return this;};Node.prototype.key=function key(newKey){var state=this._baseState;assert(state.key===null);state.key=newKey;return this;};Node.prototype.any=function any(){var state=this._baseState;state.any=true;return this;};Node.prototype.choice=function choice(obj){var state=this._baseState;assert(state.choice===null);state.choice=obj;this._useArgs(Object.keys(obj).map(function(key){return obj[key];}));return this;};Node.prototype.contains=function contains(item){var state=this._baseState;assert(state.use===null);state.contains=item;return this;};// // Decoding // Node.prototype._decode=function decode(input,options){var state=this._baseState;// Decode root node if(state.parent===null)return input.wrapResult(state.children[0]._decode(input,options));var result=state['default'];var present=true;var prevKey=null;if(state.key!==null)prevKey=input.enterKey(state.key);// Check if tag is there if(state.optional){var tag=null;if(state.explicit!==null)tag=state.explicit;else if(state.implicit!==null)tag=state.implicit;else if(state.tag!==null)tag=state.tag;if(tag===null&&!state.any){// Trial and Error var save=input.save();try{if(state.choice===null)this._decodeGeneric(state.tag,input,options);else this._decodeChoice(input,options);present=true;}catch(e){present=false;}input.restore(save);}else{present=this._peekTag(input,tag,state.any);if(input.isError(present))return present;}}// Push object on stack var prevObj;if(state.obj&&present)prevObj=input.enterObject();if(present){// Unwrap explicit values if(state.explicit!==null){var explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit;}var start=input.offset;// Unwrap implicit and normal values if(state.use===null&&state.choice===null){if(state.any)var save=input.save();var body=this._decodeTag(input,state.implicit!==null?state.implicit:state.tag,state.any);if(input.isError(body))return body;if(state.any)result=input.raw(save);else input=body;}if(options&&options.track&&state.tag!==null)options.track(input.path(),start,input.length,'tagged');if(options&&options.track&&state.tag!==null)options.track(input.path(),input.offset,input.length,'content');// Select proper method for tag if(state.any)result=result;else if(state.choice===null)result=this._decodeGeneric(state.tag,input,options);else result=this._decodeChoice(input,options);if(input.isError(result))return result;// Decode children if(!state.any&&state.choice===null&&state.children!==null){state.children.forEach(function decodeChildren(child){// NOTE: We are ignoring errors here, to let parser continue with other // parts of encoded data child._decode(input,options);});}// Decode contained/encoded by schema, only in bit or octet strings if(state.contains&&(state.tag==='octstr'||state.tag==='bitstr')){var data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options);}}// Pop object if(state.obj&&present)result=input.leaveObject(prevObj);// Set key if(state.key!==null&&(result!==null||present===true))input.leaveKey(prevKey,state.key,result);else if(prevKey!==null)input.exitKey(prevKey);return result;};Node.prototype._decodeGeneric=function decodeGeneric(tag,input,options){var state=this._baseState;if(tag==='seq'||tag==='set')return null;if(tag==='seqof'||tag==='setof')return this._decodeList(input,tag,state.args[0],options);else if(/str$/.test(tag))return this._decodeStr(input,tag,options);else if(tag==='objid'&&state.args)return this._decodeObjid(input,state.args[0],state.args[1],options);else if(tag==='objid')return this._decodeObjid(input,null,null,options);else if(tag==='gentime'||tag==='utctime')return this._decodeTime(input,tag,options);else if(tag==='null_')return this._decodeNull(input,options);else if(tag==='bool')return this._decodeBool(input,options);else if(tag==='objDesc')return this._decodeStr(input,tag,options);else if(tag==='int'||tag==='enum')return this._decodeInt(input,state.args&&state.args[0],options);if(state.use!==null){return this._getUse(state.use,input._reporterState.obj)._decode(input,options);}else{return input.error('unknown tag: '+tag);}};Node.prototype._getUse=function _getUse(entity,obj){var state=this._baseState;// Create altered use decoder if implicit is set state.useDecoder=this._use(entity,obj);assert(state.useDecoder._baseState.parent===null);state.useDecoder=state.useDecoder._baseState.children[0];if(state.implicit!==state.useDecoder._baseState.implicit){state.useDecoder=state.useDecoder.clone();state.useDecoder._baseState.implicit=state.implicit;}return state.useDecoder;};Node.prototype._decodeChoice=function decodeChoice(input,options){var state=this._baseState;var result=null;var match=false;Object.keys(state.choice).some(function(key){var save=input.save();var node=state.choice[key];try{var value=node._decode(input,options);if(input.isError(value))return false;result={type:key,value:value};match=true;}catch(e){input.restore(save);return false;}return true;},this);if(!match)return input.error('Choice not matched');return result;};// // Encoding // Node.prototype._createEncoderBuffer=function createEncoderBuffer(data){return new EncoderBuffer(data,this.reporter);};Node.prototype._encode=function encode(data,reporter,parent){var state=this._baseState;if(state['default']!==null&&state['default']===data)return;var result=this._encodeValue(data,reporter,parent);if(result===undefined)return;if(this._skipDefault(result,reporter,parent))return;return result;};Node.prototype._encodeValue=function encode(data,reporter,parent){var state=this._baseState;// Decode root node if(state.parent===null)return state.children[0]._encode(data,reporter||new Reporter());var result=null;// Set reporter to share it with a child class this.reporter=reporter;// Check if data is there if(state.optional&&data===undefined){if(state['default']!==null)data=state['default'];else return;}// Encode children first var content=null;var primitive=false;if(state.any){// Anything that was given is translated to buffer result=this._createEncoderBuffer(data);}else if(state.choice){result=this._encodeChoice(data,reporter);}else if(state.contains){content=this._getUse(state.contains,parent)._encode(data,reporter);primitive=true;}else if(state.children){content=state.children.map(function(child){if(child._baseState.tag==='null_')return child._encode(null,reporter,data);if(child._baseState.key===null)return reporter.error('Child should have a key');var prevKey=reporter.enterKey(child._baseState.key);if(_typeof2(data)!=='object')return reporter.error('Child expected, but input is not object');var res=child._encode(data[child._baseState.key],reporter,data);reporter.leaveKey(prevKey);return res;},this).filter(function(child){return child;});content=this._createEncoderBuffer(content);}else{if(state.tag==='seqof'||state.tag==='setof'){// TODO(indutny): this should be thrown on DSL level if(!(state.args&&state.args.length===1))return reporter.error('Too many args for : '+state.tag);if(!Array.isArray(data))return reporter.error('seqof/setof, but data is not Array');var child=this.clone();child._baseState.implicit=null;content=this._createEncoderBuffer(data.map(function(item){var state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter);},child));}else if(state.use!==null){result=this._getUse(state.use,parent)._encode(data,reporter);}else{content=this._encodePrimitive(state.tag,data);primitive=true;}}// Encode data itself var result;if(!state.any&&state.choice===null){var tag=state.implicit!==null?state.implicit:state.tag;var cls=state.implicit===null?'universal':'context';if(tag===null){if(state.use===null)reporter.error('Tag could be omitted only for .use()');}else{if(state.use===null)result=this._encodeComposite(tag,primitive,cls,content);}}// Wrap in explicit if(state.explicit!==null)result=this._encodeComposite(state.explicit,false,'context',result);return result;};Node.prototype._encodeChoice=function encodeChoice(data,reporter){var state=this._baseState;var node=state.choice[data.type];if(!node){assert(false,data.type+' not found in '+JSON.stringify(Object.keys(state.choice)));}return node._encode(data.value,reporter);};Node.prototype._encodePrimitive=function encodePrimitive(tag,data){var state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);else if(tag==='objid'&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);else if(tag==='objid')return this._encodeObjid(data,null,null);else if(tag==='gentime'||tag==='utctime')return this._encodeTime(data,tag);else if(tag==='null_')return this._encodeNull();else if(tag==='int'||tag==='enum')return this._encodeInt(data,state.args&&state.reverseArgs[0]);else if(tag==='bool')return this._encodeBool(data);else if(tag==='objDesc')return this._encodeStr(data,tag);else throw new Error('Unsupported tag: '+tag);};Node.prototype._isNumstr=function isNumstr(str){return /^[0-9 ]*$/.test(str);};Node.prototype._isPrintstr=function isPrintstr(str){return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str);};},{"../base":168,"minimalistic-assert":414}],170:[function(require,module,exports){var inherits=require('inherits');function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]};}exports.Reporter=Reporter;Reporter.prototype.isError=function isError(obj){return obj instanceof ReporterError;};Reporter.prototype.save=function save(){var state=this._reporterState;return{obj:state.obj,pathLen:state.path.length};};Reporter.prototype.restore=function restore(data){var state=this._reporterState;state.obj=data.obj;state.path=state.path.slice(0,data.pathLen);};Reporter.prototype.enterKey=function enterKey(key){return this._reporterState.path.push(key);};Reporter.prototype.exitKey=function exitKey(index){var state=this._reporterState;state.path=state.path.slice(0,index-1);};Reporter.prototype.leaveKey=function leaveKey(index,key,value){var state=this._reporterState;this.exitKey(index);if(state.obj!==null)state.obj[key]=value;};Reporter.prototype.path=function path(){return this._reporterState.path.join('/');};Reporter.prototype.enterObject=function enterObject(){var state=this._reporterState;var prev=state.obj;state.obj={};return prev;};Reporter.prototype.leaveObject=function leaveObject(prev){var state=this._reporterState;var now=state.obj;state.obj=prev;return now;};Reporter.prototype.error=function error(msg){var err;var state=this._reporterState;var inherited=msg instanceof ReporterError;if(inherited){err=msg;}else{err=new ReporterError(state.path.map(function(elem){return'['+JSON.stringify(elem)+']';}).join(''),msg.message||msg,msg.stack);}if(!state.options.partial)throw err;if(!inherited)state.errors.push(err);return err;};Reporter.prototype.wrapResult=function wrapResult(result){var state=this._reporterState;if(!state.options.partial)return result;return{result:this.isError(result)?null:result,errors:state.errors};};function ReporterError(path,msg){this.path=path;this.rethrow(msg);};inherits(ReporterError,Error);ReporterError.prototype.rethrow=function rethrow(msg){this.message=msg+' at: '+(this.path||'(shallow)');if(Error.captureStackTrace)Error.captureStackTrace(this,ReporterError);if(!this.stack){try{// IE only adds stack when thrown throw new Error(this.message);}catch(e){this.stack=e.stack;}}return this;};},{"inherits":364}],171:[function(require,module,exports){var constants=require('../constants');exports.tagClass={0:'universal',1:'application',2:'context',3:'private'};exports.tagClassByName=constants._reverse(exports.tagClass);exports.tag={0x00:'end',0x01:'bool',0x02:'int',0x03:'bitstr',0x04:'octstr',0x05:'null_',0x06:'objid',0x07:'objDesc',0x08:'external',0x09:'real',0x0a:'enum',0x0b:'embed',0x0c:'utf8str',0x0d:'relativeOid',0x10:'seq',0x11:'set',0x12:'numstr',0x13:'printstr',0x14:'t61str',0x15:'videostr',0x16:'ia5str',0x17:'utctime',0x18:'gentime',0x19:'graphstr',0x1a:'iso646str',0x1b:'genstr',0x1c:'unistr',0x1d:'charstr',0x1e:'bmpstr'};exports.tagByName=constants._reverse(exports.tag);},{"../constants":172}],172:[function(require,module,exports){var constants=exports;// Helper constants._reverse=function reverse(map){var res={};Object.keys(map).forEach(function(key){// Convert key to integer if it is stringified if((key|0)==key)key=key|0;var value=map[key];res[value]=key;});return res;};constants.der=require('./der');},{"./der":171}],173:[function(require,module,exports){var inherits=require('inherits');var asn1=require('../../asn1');var base=asn1.base;var bignum=asn1.bignum;// Import DER constants var der=asn1.constants.der;function DERDecoder(entity){this.enc='der';this.name=entity.name;this.entity=entity;// Construct base tree this.tree=new DERNode();this.tree._init(entity.body);};module.exports=DERDecoder;DERDecoder.prototype.decode=function decode(data,options){if(!(data instanceof base.DecoderBuffer))data=new base.DecoderBuffer(data,options);return this.tree._decode(data,options);};// Tree methods function DERNode(parent){base.Node.call(this,'der',parent);}inherits(DERNode,base.Node);DERNode.prototype._peekTag=function peekTag(buffer,tag,any){if(buffer.isEmpty())return false;var state=buffer.save();var decodedTag=derDecodeTag(buffer,'Failed to peek tag: "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;buffer.restore(state);return decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+'of'===tag||any;};DERNode.prototype._decodeTag=function decodeTag(buffer,tag,any){var decodedTag=derDecodeTag(buffer,'Failed to decode tag of "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;var len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of "'+tag+'"');// Failure if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+'of'!==tag){return buffer.error('Failed to match tag: "'+tag+'"');}if(decodedTag.primitive||len!==null)return buffer.skip(len,'Failed to match body of: "'+tag+'"');// Indefinite length... find END tag var state=buffer.save();var res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: "'+this.tag+'"');if(buffer.isError(res))return res;len=buffer.offset-state.offset;buffer.restore(state);return buffer.skip(len,'Failed to match body of: "'+tag+'"');};DERNode.prototype._skipUntilEnd=function skipUntilEnd(buffer,fail){while(true){var tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;var len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;var res;if(tag.primitive||len!==null)res=buffer.skip(len);else res=this._skipUntilEnd(buffer,fail);// Failure if(buffer.isError(res))return res;if(tag.tagStr==='end')break;}};DERNode.prototype._decodeList=function decodeList(buffer,tag,decoder,options){var result=[];while(!buffer.isEmpty()){var possibleEnd=this._peekTag(buffer,'end');if(buffer.isError(possibleEnd))return possibleEnd;var res=decoder.decode(buffer,'der',options);if(buffer.isError(res)&&possibleEnd)break;result.push(res);}return result;};DERNode.prototype._decodeStr=function decodeStr(buffer,tag){if(tag==='bitstr'){var unused=buffer.readUInt8();if(buffer.isError(unused))return unused;return{unused:unused,data:buffer.raw()};}else if(tag==='bmpstr'){var raw=buffer.raw();if(raw.length%2===1)return buffer.error('Decoding of string type: bmpstr length mismatch');var str='';for(var i=0;i>6];var primitive=(tag&0x20)===0;// Multi-octet tag - load if((tag&0x1f)===0x1f){var oct=tag;tag=0;while((oct&0x80)===0x80){oct=buf.readUInt8(fail);if(buf.isError(oct))return oct;tag<<=7;tag|=oct&0x7f;}}else{tag&=0x1f;}var tagStr=der.tag[tag];return{cls:cls,primitive:primitive,tag:tag,tagStr:tagStr};}function derDecodeLen(buf,primitive,fail){var len=buf.readUInt8(fail);if(buf.isError(len))return len;// Indefinite form if(!primitive&&len===0x80)return null;// Definite form if((len&0x80)===0){// Short form return len;}// Long form var num=len&0x7f;if(num>4)return buf.error('length octect is too long');len=0;for(var i=0;i=0x100;i>>=8){lenOctets++;}var header=new Buffer(1+1+lenOctets);header[0]=encodedTag;header[1]=0x80|lenOctets;for(var i=1+lenOctets,j=content.length;j>0;i--,j>>=8){header[i]=j&0xff;}return this._createEncoderBuffer([header,content]);};DERNode.prototype._encodeStr=function encodeStr(str,tag){if(tag==='bitstr'){return this._createEncoderBuffer([str.unused|0,str.data]);}else if(tag==='bmpstr'){var buf=new Buffer(str.length*2);for(var i=0;i=40)return this.reporter.error('Second objid identifier OOB');id.splice(0,2,id[0]*40+id[1]);}// Count number of octets var size=0;for(var i=0;i=0x80;ident>>=7){size++;}}var objid=new Buffer(size);var offset=objid.length-1;for(var i=id.length-1;i>=0;i--){var ident=id[i];objid[offset--]=ident&0x7f;while((ident>>=7)>0){objid[offset--]=0x80|ident&0x7f;}}return this._createEncoderBuffer(objid);};function two(num){if(num<10)return'0'+num;else return num;}DERNode.prototype._encodeTime=function encodeTime(time,tag){var str;var date=new Date(time);if(tag==='gentime'){str=[two(date.getFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),'Z'].join('');}else if(tag==='utctime'){str=[two(date.getFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),'Z'].join('');}else{this.reporter.error('Encoding '+tag+' time is not supported yet');}return this._encodeStr(str,'octstr');};DERNode.prototype._encodeNull=function encodeNull(){return this._createEncoderBuffer('');};DERNode.prototype._encodeInt=function encodeInt(num,values){if(typeof num==='string'){if(!values)return this.reporter.error('String int or enum given, but no values map');if(!values.hasOwnProperty(num)){return this.reporter.error('Values map doesn\'t contain: '+JSON.stringify(num));}num=values[num];}// Bignum, assume big endian if(typeof num!=='number'&&!Buffer.isBuffer(num)){var numArray=num.toArray();if(!num.sign&&numArray[0]&0x80){numArray.unshift(0);}num=new Buffer(numArray);}if(Buffer.isBuffer(num)){var size=num.length;if(num.length===0)size++;var out=new Buffer(size);num.copy(out);if(num.length===0)out[0]=0;return this._createEncoderBuffer(out);}if(num<0x80)return this._createEncoderBuffer(num);if(num<0x100)return this._createEncoderBuffer([0,num]);var size=1;for(var i=num;i>=0x100;i>>=8){size++;}var out=new Array(size);for(var i=out.length-1;i>=0;i--){out[i]=num&0xff;num>>=8;}if(out[0]&0x80){out.unshift(0);}return this._createEncoderBuffer(new Buffer(out));};DERNode.prototype._encodeBool=function encodeBool(value){return this._createEncoderBuffer(value?0xff:0);};DERNode.prototype._use=function use(entity,obj){if(typeof entity==='function')entity=entity(obj);return entity._getEncoder('der').tree;};DERNode.prototype._skipDefault=function skipDefault(dataBuffer,reporter,parent){var state=this._baseState;var i;if(state['default']===null)return false;var data=dataBuffer.join();if(state.defaultBuffer===undefined)state.defaultBuffer=this._encodeValue(state['default'],reporter,parent).join();if(data.length!==state.defaultBuffer.length)return false;for(i=0;i=0x1f)return reporter.error('Multi-octet tag encoding unsupported');if(!primitive)res|=0x20;res|=der.tagClassByName[cls||'universal']<<6;return res;}},{"../../asn1":165,"buffer":214,"inherits":364}],177:[function(require,module,exports){var encoders=exports;encoders.der=require('./der');encoders.pem=require('./pem');},{"./der":176,"./pem":178}],178:[function(require,module,exports){var inherits=require('inherits');var DEREncoder=require('./der');function PEMEncoder(entity){DEREncoder.call(this,entity);this.enc='pem';};inherits(PEMEncoder,DEREncoder);module.exports=PEMEncoder;PEMEncoder.prototype.encode=function encode(data,options){var buf=DEREncoder.prototype.encode.call(this,data);var p=buf.toString('base64');var out=['-----BEGIN '+options.label+'-----'];for(var i=0;i0)return left;return right;};BN.min=function min(left,right){if(left.cmp(right)<0)return left;return right;};BN.prototype._init=function init(number,base,endian){if(typeof number==='number'){return this._initNumber(number,base,endian);}if(_typeof2(number)==='object'){return this._initArray(number,base,endian);}if(base==='hex'){base=16;}assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,'');var start=0;if(number[0]==='-'){start++;}if(base===16){this._parseHex(number,start);}else{this._parseBase(number,base,start);}if(number[0]==='-'){this.negative=1;}this.strip();if(endian!=='le')return;this._initArray(this.toArray(),base,endian);};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number;}if(number<0x4000000){this.words=[number&0x3ffffff];this.length=1;}else if(number<0x10000000000000){this.words=[number&0x3ffffff,number/0x4000000&0x3ffffff];this.length=2;}else{assert(number<0x20000000000000);// 2 ^ 53 (unsafe) this.words=[number&0x3ffffff,number/0x4000000&0x3ffffff,1];this.length=3;}if(endian!=='le')return;// Reverse the bytes this._initArray(this.toArray(),base,endian);};BN.prototype._initArray=function _initArray(number,base,endian){// Perhaps a Uint8Array assert(typeof number.length==='number');if(number.length<=0){this.words=[0];this.length=1;return this;}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i=0;i-=3){w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<>>26-off&0x3ffffff;off+=24;if(off>=26){off-=26;j++;}}}else if(endian==='le'){for(i=0,j=0;i>>26-off&0x3ffffff;off+=24;if(off>=26){off-=26;j++;}}}return this.strip();};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);for(var i=start;i=49&&c<=54){r|=c-49+0xa;// 'A' - 'F' }else if(c>=17&&c<=22){r|=c-17+0xa;// '0' - '9' }else{r|=c&0xf;}}return r;}BN.prototype._parseHex=function _parseHex(number,start){// Create possibly bigger array to ensure that it fits the number this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i=start;i-=6){w=parseHex(number,i,i+6);this.words[j]|=w<>>26-off&0x3fffff;off+=24;if(off>=26){off-=26;j++;}}if(i+6!==start){w=parseHex(number,start,i+6);this.words[j]|=w<>>26-off&0x3fffff;}this.strip();};function parseBase(str,start,end,mul){var r=0;var len=Math.min(str.length,end);for(var i=start;i=49){r+=c-49+0xa;// 'A' }else if(c>=17){r+=c-17+0xa;// '0' - '9' }else{r+=c;}}return r;}BN.prototype._parseBase=function _parseBase(number,base,start){// Initialize as zero this.words=[0];this.length=1;// Find length of limb in base for(var limbLen=0,limbPow=1;limbPow<=0x3ffffff;limbPow*=base){limbLen++;}limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i1&&this.words[this.length-1]===0){this.length--;}return this._normSign();};BN.prototype._normSign=function _normSign(){// -0 = 0 if(this.length===1&&this.words[0]===0){this.negative=0;}return this;};BN.prototype.inspect=function inspect(){return(this.red?'';};/* var zeros = []; var groupSizes = []; var groupBases = []; var s = ''; var i = -1; while (++i < BN.wordSize) { zeros[i] = s; s += '0'; } groupSizes[0] = 0; groupSizes[1] = 0; groupBases[0] = 0; groupBases[1] = 0; var base = 2 - 1; while (++base < 36 + 1) { var groupSize = 0; var groupBase = 1; while (groupBase < (1 << BN.wordSize) / base) { groupBase *= base; groupSize += 1; } groupSizes[base] = groupSize; groupBases[base] = groupBase; } */var zeros=['','0','00','000','0000','00000','000000','0000000','00000000','000000000','0000000000','00000000000','000000000000','0000000000000','00000000000000','000000000000000','0000000000000000','00000000000000000','000000000000000000','0000000000000000000','00000000000000000000','000000000000000000000','0000000000000000000000','00000000000000000000000','000000000000000000000000','0000000000000000000000000'];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,10000000,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;padding=padding|0||1;var out;if(base===16||base==='hex'){out='';var off=0;var carry=0;for(var i=0;i>>24-off&0xffffff;if(carry!==0||i!==this.length-1){out=zeros[6-word.length]+word+out;}else{out=word+out;}off+=2;if(off>=26){off-=26;i--;}}if(carry!==0){out=carry.toString(16)+out;}while(out.length%padding!==0){out='0'+out;}if(this.negative!==0){out='-'+out;}return out;}if(base===(base|0)&&base>=2&&base<=36){// var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); var groupSize=groupSizes[base];// var groupBase = Math.pow(base, groupSize); var groupBase=groupBases[base];out='';var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(!c.isZero()){out=zeros[groupSize-r.length]+r+out;}else{out=r+out;}}if(this.isZero()){out='0'+out;}while(out.length%padding!==0){out='0'+out;}if(this.negative!==0){out='-'+out;}return out;}assert(false,'Base should be between 2 and 36');};BN.prototype.toNumber=function toNumber(){var ret=this.words[0];if(this.length===2){ret+=this.words[1]*0x4000000;}else if(this.length===3&&this.words[2]===0x01){// NOTE: at this stage it is known that the top bit is set ret+=0x10000000000000+this.words[1]*0x4000000;}else if(this.length>2){assert(false,'Number can only safely store up to 53 bits');}return this.negative!==0?-ret:ret;};BN.prototype.toJSON=function toJSON(){return this.toString(16);};BN.prototype.toBuffer=function toBuffer(endian,length){assert(typeof Buffer!=='undefined');return this.toArrayLike(Buffer,endian,length);};BN.prototype.toArray=function toArray(endian,length){return this.toArrayLike(Array,endian,length);};BN.prototype.toArrayLike=function toArrayLike(ArrayType,endian,length){var byteLength=this.byteLength();var reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,'byte array longer than desired length');assert(reqLength>0,'Requested array length <= 0');this.strip();var littleEndian=endian==='le';var res=new ArrayType(reqLength);var b,i;var q=this.clone();if(!littleEndian){// Assume big-endian for(i=0;i=0x1000){r+=13;t>>>=13;}if(t>=0x40){r+=7;t>>>=7;}if(t>=0x8){r+=4;t>>>=4;}if(t>=0x02){r+=2;t>>>=2;}return r+t;};}BN.prototype._zeroBits=function _zeroBits(w){// Short-cut if(w===0)return 26;var t=w;var r=0;if((t&0x1fff)===0){r+=13;t>>>=13;}if((t&0x7f)===0){r+=7;t>>>=7;}if((t&0xf)===0){r+=4;t>>>=4;}if((t&0x3)===0){r+=2;t>>>=2;}if((t&0x1)===0){r++;}return r;};// Return number of used bits in a BN BN.prototype.bitLength=function bitLength(){var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi;};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit>>wbit;}return w;}// Number of trailing zero bits BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this);};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this);};// And `num` with `this` in-place BN.prototype.iuand=function iuand(num){// b = min-length(num, this) var b;if(this.length>num.length){b=num;}else{b=this;}for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this);};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this);};// Xor `num` with `this` in-place BN.prototype.iuxor=function iuxor(num){// a.length > b.length var a;var b;if(this.length>num.length){a=this;b=num;}else{a=num;b=this;}for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this);};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this);};// Not ``this`` with ``width`` bitwidth BN.prototype.inotn=function inotn(width){assert(typeof width==='number'&&width>=0);var bytesNeeded=Math.ceil(width/26)|0;var bitsLeft=width%26;// Extend the buffer with leading zeroes this._expand(bytesNeeded);if(bitsLeft>0){bytesNeeded--;}// Handle complete words for(var i=0;i0){this.words[i]=~this.words[i]&0x3ffffff>>26-bitsLeft;}// And remove leading zeroes return this.strip();};BN.prototype.notn=function notn(width){return this.clone().inotn(width);};// Set `bit` of `this` BN.prototype.setn=function setn(bit,val){assert(typeof bit==='number'&&bit>=0);var off=bit/26|0;var wbit=bit%26;this._expand(off+1);if(val){this.words[off]=this.words[off]|1< b.length var a,b;if(this.length>num.length){a=this;b=num;}else{a=num;b=this;}var carry=0;for(var i=0;i>>26;}for(;carry!==0&&i>>26;}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++;// Copy the rest of the words }else if(a!==this){for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this);};// Subtract `num` from `this` in-place BN.prototype.isub=function isub(num){// this - (-num) = this + num if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign();// -this - num = -(this + num) }else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign();}// At this point both numbers are positive var cmp=this.cmp(num);// Optimization - zeroify if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this;}// a > b var a,b;if(cmp>0){a=this;b=num;}else{a=num;b=this;}var carry=0;for(var i=0;i>26;this.words[i]=r&0x3ffffff;}for(;carry!==0&&i>26;this.words[i]=r&0x3ffffff;}// Copy rest of the words if(carry===0&&i= 0x3ffffff var ncarry=carry>>>26;var rword=carry&0x3ffffff;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;a=self.words[i]|0;b=num.words[j]|0;r=a*b+rword;ncarry+=r/0x4000000|0;rword=r&0x3ffffff;}out.words[k]=rword|0;carry=ncarry|0;}if(carry!==0){out.words[k]=carry|0;}else{out.length--;}return out.strip();}// TODO(indutny): it may be reasonable to omit it for users who don't need // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit // multiplication (like elliptic secp256k1). var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&0x1fff;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&0x1fff;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&0x1fff;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&0x1fff;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&0x1fff;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&0x1fff;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&0x1fff;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&0x1fff;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&0x1fff;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&0x1fff;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&0x1fff;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&0x1fff;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&0x1fff;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&0x1fff;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&0x1fff;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&0x1fff;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&0x1fff;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&0x1fff;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&0x1fff;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&0x1fff;var bh9=b9>>>13;out.negative=self.negative^num.negative;out.length=19;/* k = 0 */lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0;w0&=0x3ffffff;/* k = 1 */lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);lo=lo+Math.imul(al0,bl1)|0;mid=mid+Math.imul(al0,bh1)|0;mid=mid+Math.imul(ah0,bl1)|0;hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0;w1&=0x3ffffff;/* k = 2 */lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);lo=lo+Math.imul(al1,bl1)|0;mid=mid+Math.imul(al1,bh1)|0;mid=mid+Math.imul(ah1,bl1)|0;hi=hi+Math.imul(ah1,bh1)|0;lo=lo+Math.imul(al0,bl2)|0;mid=mid+Math.imul(al0,bh2)|0;mid=mid+Math.imul(ah0,bl2)|0;hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0;w2&=0x3ffffff;/* k = 3 */lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);lo=lo+Math.imul(al2,bl1)|0;mid=mid+Math.imul(al2,bh1)|0;mid=mid+Math.imul(ah2,bl1)|0;hi=hi+Math.imul(ah2,bh1)|0;lo=lo+Math.imul(al1,bl2)|0;mid=mid+Math.imul(al1,bh2)|0;mid=mid+Math.imul(ah1,bl2)|0;hi=hi+Math.imul(ah1,bh2)|0;lo=lo+Math.imul(al0,bl3)|0;mid=mid+Math.imul(al0,bh3)|0;mid=mid+Math.imul(ah0,bl3)|0;hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0;w3&=0x3ffffff;/* k = 4 */lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);lo=lo+Math.imul(al3,bl1)|0;mid=mid+Math.imul(al3,bh1)|0;mid=mid+Math.imul(ah3,bl1)|0;hi=hi+Math.imul(ah3,bh1)|0;lo=lo+Math.imul(al2,bl2)|0;mid=mid+Math.imul(al2,bh2)|0;mid=mid+Math.imul(ah2,bl2)|0;hi=hi+Math.imul(ah2,bh2)|0;lo=lo+Math.imul(al1,bl3)|0;mid=mid+Math.imul(al1,bh3)|0;mid=mid+Math.imul(ah1,bl3)|0;hi=hi+Math.imul(ah1,bh3)|0;lo=lo+Math.imul(al0,bl4)|0;mid=mid+Math.imul(al0,bh4)|0;mid=mid+Math.imul(ah0,bl4)|0;hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0;w4&=0x3ffffff;/* k = 5 */lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);lo=lo+Math.imul(al4,bl1)|0;mid=mid+Math.imul(al4,bh1)|0;mid=mid+Math.imul(ah4,bl1)|0;hi=hi+Math.imul(ah4,bh1)|0;lo=lo+Math.imul(al3,bl2)|0;mid=mid+Math.imul(al3,bh2)|0;mid=mid+Math.imul(ah3,bl2)|0;hi=hi+Math.imul(ah3,bh2)|0;lo=lo+Math.imul(al2,bl3)|0;mid=mid+Math.imul(al2,bh3)|0;mid=mid+Math.imul(ah2,bl3)|0;hi=hi+Math.imul(ah2,bh3)|0;lo=lo+Math.imul(al1,bl4)|0;mid=mid+Math.imul(al1,bh4)|0;mid=mid+Math.imul(ah1,bl4)|0;hi=hi+Math.imul(ah1,bh4)|0;lo=lo+Math.imul(al0,bl5)|0;mid=mid+Math.imul(al0,bh5)|0;mid=mid+Math.imul(ah0,bl5)|0;hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0;w5&=0x3ffffff;/* k = 6 */lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);lo=lo+Math.imul(al5,bl1)|0;mid=mid+Math.imul(al5,bh1)|0;mid=mid+Math.imul(ah5,bl1)|0;hi=hi+Math.imul(ah5,bh1)|0;lo=lo+Math.imul(al4,bl2)|0;mid=mid+Math.imul(al4,bh2)|0;mid=mid+Math.imul(ah4,bl2)|0;hi=hi+Math.imul(ah4,bh2)|0;lo=lo+Math.imul(al3,bl3)|0;mid=mid+Math.imul(al3,bh3)|0;mid=mid+Math.imul(ah3,bl3)|0;hi=hi+Math.imul(ah3,bh3)|0;lo=lo+Math.imul(al2,bl4)|0;mid=mid+Math.imul(al2,bh4)|0;mid=mid+Math.imul(ah2,bl4)|0;hi=hi+Math.imul(ah2,bh4)|0;lo=lo+Math.imul(al1,bl5)|0;mid=mid+Math.imul(al1,bh5)|0;mid=mid+Math.imul(ah1,bl5)|0;hi=hi+Math.imul(ah1,bh5)|0;lo=lo+Math.imul(al0,bl6)|0;mid=mid+Math.imul(al0,bh6)|0;mid=mid+Math.imul(ah0,bl6)|0;hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0;w6&=0x3ffffff;/* k = 7 */lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);lo=lo+Math.imul(al6,bl1)|0;mid=mid+Math.imul(al6,bh1)|0;mid=mid+Math.imul(ah6,bl1)|0;hi=hi+Math.imul(ah6,bh1)|0;lo=lo+Math.imul(al5,bl2)|0;mid=mid+Math.imul(al5,bh2)|0;mid=mid+Math.imul(ah5,bl2)|0;hi=hi+Math.imul(ah5,bh2)|0;lo=lo+Math.imul(al4,bl3)|0;mid=mid+Math.imul(al4,bh3)|0;mid=mid+Math.imul(ah4,bl3)|0;hi=hi+Math.imul(ah4,bh3)|0;lo=lo+Math.imul(al3,bl4)|0;mid=mid+Math.imul(al3,bh4)|0;mid=mid+Math.imul(ah3,bl4)|0;hi=hi+Math.imul(ah3,bh4)|0;lo=lo+Math.imul(al2,bl5)|0;mid=mid+Math.imul(al2,bh5)|0;mid=mid+Math.imul(ah2,bl5)|0;hi=hi+Math.imul(ah2,bh5)|0;lo=lo+Math.imul(al1,bl6)|0;mid=mid+Math.imul(al1,bh6)|0;mid=mid+Math.imul(ah1,bl6)|0;hi=hi+Math.imul(ah1,bh6)|0;lo=lo+Math.imul(al0,bl7)|0;mid=mid+Math.imul(al0,bh7)|0;mid=mid+Math.imul(ah0,bl7)|0;hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0;w7&=0x3ffffff;/* k = 8 */lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);lo=lo+Math.imul(al7,bl1)|0;mid=mid+Math.imul(al7,bh1)|0;mid=mid+Math.imul(ah7,bl1)|0;hi=hi+Math.imul(ah7,bh1)|0;lo=lo+Math.imul(al6,bl2)|0;mid=mid+Math.imul(al6,bh2)|0;mid=mid+Math.imul(ah6,bl2)|0;hi=hi+Math.imul(ah6,bh2)|0;lo=lo+Math.imul(al5,bl3)|0;mid=mid+Math.imul(al5,bh3)|0;mid=mid+Math.imul(ah5,bl3)|0;hi=hi+Math.imul(ah5,bh3)|0;lo=lo+Math.imul(al4,bl4)|0;mid=mid+Math.imul(al4,bh4)|0;mid=mid+Math.imul(ah4,bl4)|0;hi=hi+Math.imul(ah4,bh4)|0;lo=lo+Math.imul(al3,bl5)|0;mid=mid+Math.imul(al3,bh5)|0;mid=mid+Math.imul(ah3,bl5)|0;hi=hi+Math.imul(ah3,bh5)|0;lo=lo+Math.imul(al2,bl6)|0;mid=mid+Math.imul(al2,bh6)|0;mid=mid+Math.imul(ah2,bl6)|0;hi=hi+Math.imul(ah2,bh6)|0;lo=lo+Math.imul(al1,bl7)|0;mid=mid+Math.imul(al1,bh7)|0;mid=mid+Math.imul(ah1,bl7)|0;hi=hi+Math.imul(ah1,bh7)|0;lo=lo+Math.imul(al0,bl8)|0;mid=mid+Math.imul(al0,bh8)|0;mid=mid+Math.imul(ah0,bl8)|0;hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0;w8&=0x3ffffff;/* k = 9 */lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);lo=lo+Math.imul(al8,bl1)|0;mid=mid+Math.imul(al8,bh1)|0;mid=mid+Math.imul(ah8,bl1)|0;hi=hi+Math.imul(ah8,bh1)|0;lo=lo+Math.imul(al7,bl2)|0;mid=mid+Math.imul(al7,bh2)|0;mid=mid+Math.imul(ah7,bl2)|0;hi=hi+Math.imul(ah7,bh2)|0;lo=lo+Math.imul(al6,bl3)|0;mid=mid+Math.imul(al6,bh3)|0;mid=mid+Math.imul(ah6,bl3)|0;hi=hi+Math.imul(ah6,bh3)|0;lo=lo+Math.imul(al5,bl4)|0;mid=mid+Math.imul(al5,bh4)|0;mid=mid+Math.imul(ah5,bl4)|0;hi=hi+Math.imul(ah5,bh4)|0;lo=lo+Math.imul(al4,bl5)|0;mid=mid+Math.imul(al4,bh5)|0;mid=mid+Math.imul(ah4,bl5)|0;hi=hi+Math.imul(ah4,bh5)|0;lo=lo+Math.imul(al3,bl6)|0;mid=mid+Math.imul(al3,bh6)|0;mid=mid+Math.imul(ah3,bl6)|0;hi=hi+Math.imul(ah3,bh6)|0;lo=lo+Math.imul(al2,bl7)|0;mid=mid+Math.imul(al2,bh7)|0;mid=mid+Math.imul(ah2,bl7)|0;hi=hi+Math.imul(ah2,bh7)|0;lo=lo+Math.imul(al1,bl8)|0;mid=mid+Math.imul(al1,bh8)|0;mid=mid+Math.imul(ah1,bl8)|0;hi=hi+Math.imul(ah1,bh8)|0;lo=lo+Math.imul(al0,bl9)|0;mid=mid+Math.imul(al0,bh9)|0;mid=mid+Math.imul(ah0,bl9)|0;hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0;w9&=0x3ffffff;/* k = 10 */lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);lo=lo+Math.imul(al8,bl2)|0;mid=mid+Math.imul(al8,bh2)|0;mid=mid+Math.imul(ah8,bl2)|0;hi=hi+Math.imul(ah8,bh2)|0;lo=lo+Math.imul(al7,bl3)|0;mid=mid+Math.imul(al7,bh3)|0;mid=mid+Math.imul(ah7,bl3)|0;hi=hi+Math.imul(ah7,bh3)|0;lo=lo+Math.imul(al6,bl4)|0;mid=mid+Math.imul(al6,bh4)|0;mid=mid+Math.imul(ah6,bl4)|0;hi=hi+Math.imul(ah6,bh4)|0;lo=lo+Math.imul(al5,bl5)|0;mid=mid+Math.imul(al5,bh5)|0;mid=mid+Math.imul(ah5,bl5)|0;hi=hi+Math.imul(ah5,bh5)|0;lo=lo+Math.imul(al4,bl6)|0;mid=mid+Math.imul(al4,bh6)|0;mid=mid+Math.imul(ah4,bl6)|0;hi=hi+Math.imul(ah4,bh6)|0;lo=lo+Math.imul(al3,bl7)|0;mid=mid+Math.imul(al3,bh7)|0;mid=mid+Math.imul(ah3,bl7)|0;hi=hi+Math.imul(ah3,bh7)|0;lo=lo+Math.imul(al2,bl8)|0;mid=mid+Math.imul(al2,bh8)|0;mid=mid+Math.imul(ah2,bl8)|0;hi=hi+Math.imul(ah2,bh8)|0;lo=lo+Math.imul(al1,bl9)|0;mid=mid+Math.imul(al1,bh9)|0;mid=mid+Math.imul(ah1,bl9)|0;hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0;w10&=0x3ffffff;/* k = 11 */lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);lo=lo+Math.imul(al8,bl3)|0;mid=mid+Math.imul(al8,bh3)|0;mid=mid+Math.imul(ah8,bl3)|0;hi=hi+Math.imul(ah8,bh3)|0;lo=lo+Math.imul(al7,bl4)|0;mid=mid+Math.imul(al7,bh4)|0;mid=mid+Math.imul(ah7,bl4)|0;hi=hi+Math.imul(ah7,bh4)|0;lo=lo+Math.imul(al6,bl5)|0;mid=mid+Math.imul(al6,bh5)|0;mid=mid+Math.imul(ah6,bl5)|0;hi=hi+Math.imul(ah6,bh5)|0;lo=lo+Math.imul(al5,bl6)|0;mid=mid+Math.imul(al5,bh6)|0;mid=mid+Math.imul(ah5,bl6)|0;hi=hi+Math.imul(ah5,bh6)|0;lo=lo+Math.imul(al4,bl7)|0;mid=mid+Math.imul(al4,bh7)|0;mid=mid+Math.imul(ah4,bl7)|0;hi=hi+Math.imul(ah4,bh7)|0;lo=lo+Math.imul(al3,bl8)|0;mid=mid+Math.imul(al3,bh8)|0;mid=mid+Math.imul(ah3,bl8)|0;hi=hi+Math.imul(ah3,bh8)|0;lo=lo+Math.imul(al2,bl9)|0;mid=mid+Math.imul(al2,bh9)|0;mid=mid+Math.imul(ah2,bl9)|0;hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0;w11&=0x3ffffff;/* k = 12 */lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);lo=lo+Math.imul(al8,bl4)|0;mid=mid+Math.imul(al8,bh4)|0;mid=mid+Math.imul(ah8,bl4)|0;hi=hi+Math.imul(ah8,bh4)|0;lo=lo+Math.imul(al7,bl5)|0;mid=mid+Math.imul(al7,bh5)|0;mid=mid+Math.imul(ah7,bl5)|0;hi=hi+Math.imul(ah7,bh5)|0;lo=lo+Math.imul(al6,bl6)|0;mid=mid+Math.imul(al6,bh6)|0;mid=mid+Math.imul(ah6,bl6)|0;hi=hi+Math.imul(ah6,bh6)|0;lo=lo+Math.imul(al5,bl7)|0;mid=mid+Math.imul(al5,bh7)|0;mid=mid+Math.imul(ah5,bl7)|0;hi=hi+Math.imul(ah5,bh7)|0;lo=lo+Math.imul(al4,bl8)|0;mid=mid+Math.imul(al4,bh8)|0;mid=mid+Math.imul(ah4,bl8)|0;hi=hi+Math.imul(ah4,bh8)|0;lo=lo+Math.imul(al3,bl9)|0;mid=mid+Math.imul(al3,bh9)|0;mid=mid+Math.imul(ah3,bl9)|0;hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0;w12&=0x3ffffff;/* k = 13 */lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);lo=lo+Math.imul(al8,bl5)|0;mid=mid+Math.imul(al8,bh5)|0;mid=mid+Math.imul(ah8,bl5)|0;hi=hi+Math.imul(ah8,bh5)|0;lo=lo+Math.imul(al7,bl6)|0;mid=mid+Math.imul(al7,bh6)|0;mid=mid+Math.imul(ah7,bl6)|0;hi=hi+Math.imul(ah7,bh6)|0;lo=lo+Math.imul(al6,bl7)|0;mid=mid+Math.imul(al6,bh7)|0;mid=mid+Math.imul(ah6,bl7)|0;hi=hi+Math.imul(ah6,bh7)|0;lo=lo+Math.imul(al5,bl8)|0;mid=mid+Math.imul(al5,bh8)|0;mid=mid+Math.imul(ah5,bl8)|0;hi=hi+Math.imul(ah5,bh8)|0;lo=lo+Math.imul(al4,bl9)|0;mid=mid+Math.imul(al4,bh9)|0;mid=mid+Math.imul(ah4,bl9)|0;hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0;w13&=0x3ffffff;/* k = 14 */lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);lo=lo+Math.imul(al8,bl6)|0;mid=mid+Math.imul(al8,bh6)|0;mid=mid+Math.imul(ah8,bl6)|0;hi=hi+Math.imul(ah8,bh6)|0;lo=lo+Math.imul(al7,bl7)|0;mid=mid+Math.imul(al7,bh7)|0;mid=mid+Math.imul(ah7,bl7)|0;hi=hi+Math.imul(ah7,bh7)|0;lo=lo+Math.imul(al6,bl8)|0;mid=mid+Math.imul(al6,bh8)|0;mid=mid+Math.imul(ah6,bl8)|0;hi=hi+Math.imul(ah6,bh8)|0;lo=lo+Math.imul(al5,bl9)|0;mid=mid+Math.imul(al5,bh9)|0;mid=mid+Math.imul(ah5,bl9)|0;hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0;w14&=0x3ffffff;/* k = 15 */lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);lo=lo+Math.imul(al8,bl7)|0;mid=mid+Math.imul(al8,bh7)|0;mid=mid+Math.imul(ah8,bl7)|0;hi=hi+Math.imul(ah8,bh7)|0;lo=lo+Math.imul(al7,bl8)|0;mid=mid+Math.imul(al7,bh8)|0;mid=mid+Math.imul(ah7,bl8)|0;hi=hi+Math.imul(ah7,bh8)|0;lo=lo+Math.imul(al6,bl9)|0;mid=mid+Math.imul(al6,bh9)|0;mid=mid+Math.imul(ah6,bl9)|0;hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0;w15&=0x3ffffff;/* k = 16 */lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);lo=lo+Math.imul(al8,bl8)|0;mid=mid+Math.imul(al8,bh8)|0;mid=mid+Math.imul(ah8,bl8)|0;hi=hi+Math.imul(ah8,bh8)|0;lo=lo+Math.imul(al7,bl9)|0;mid=mid+Math.imul(al7,bh9)|0;mid=mid+Math.imul(ah7,bl9)|0;hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0;w16&=0x3ffffff;/* k = 17 */lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);lo=lo+Math.imul(al8,bl9)|0;mid=mid+Math.imul(al8,bh9)|0;mid=mid+Math.imul(ah8,bl9)|0;hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0;w17&=0x3ffffff;/* k = 18 */lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w18>>>26)|0;w18&=0x3ffffff;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++;}return out;};// Polyfill comb if(!Math.imul){comb10MulTo=smallMulTo;}function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k= 0x3ffffff var ncarry=hncarry;hncarry=0;var rword=carry&0x3ffffff;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&0x3ffffff;ncarry=ncarry+(r/0x4000000|0)|0;lo=lo+rword|0;rword=lo&0x3ffffff;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=0x3ffffff;}out.words[k]=rword;carry=ncarry;ncarry=hncarry;}if(carry!==0){out.words[k]=carry;}else{out.length--;}return out.strip();}function jumboMulTo(self,num,out){var fftm=new FFTM();return fftm.mulp(self,num,out);}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10){res=comb10MulTo(this,num,out);}else if(len<63){res=smallMulTo(this,num,out);}else if(len<1024){res=bigMulTo(this,num,out);}else{res=jumboMulTo(this,num,out);}return res;};// Cooley-Tukey algorithm for FFT // slightly revisited to rely on looping instead of recursion function FFTM(x,y){this.x=x;this.y=y;}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;}return rb;};// Performs "tweedling" phase, therefore 'emulating' // behaviour of the recursive algorithm FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1){i++;}return 1<>>13;rws[2*i+1]=carry&0x1fff;carry=carry>>>13;}// Pad with zeroes for(i=2*len;i>=26;carry+=w/0x4000000|0;// NOTE: lo is 27bit maximum carry+=lo>>>26;this.words[i]=lo&0x3ffffff;}if(carry!==0){this.words[i]=carry;this.length++;}return this;};BN.prototype.muln=function muln(num){return this.clone().imuln(num);};// `this` * `this` BN.prototype.sqr=function sqr(){return this.mul(this);};// `this` * `this` in-place BN.prototype.isqr=function isqr(){return this.imul(this.clone());};// Math.pow(`this`, `num`) BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);// Skip leading zeroes var res=this;for(var i=0;i=0);var r=bits%26;var s=(bits-r)/26;var carryMask=0x3ffffff>>>26-r<<26-r;var i;if(r!==0){var carry=0;for(i=0;i>>26-r;}if(carry){this.words[i]=carry;this.length++;}}if(s!==0){for(i=this.length-1;i>=0;i--){this.words[i+s]=this.words[i];}for(i=0;i=0);var h;if(hint){h=(hint-hint%26)/26;}else{h=0;}var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=0x3ffffff^0x3ffffff>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask;}// Push carried bits as a mask if(maskedWords&&carry!==0){maskedWords.words[maskedWords.length++]=carry;}if(this.length===0){this.words[0]=0;this.length=1;}return this.strip();};BN.prototype.ishrn=function ishrn(bits,hint,extended){// TODO(indutny): implement me assert(this.negative===0);return this.iushrn(bits,hint,extended);};// Shift-left BN.prototype.shln=function shln(bits){return this.clone().ishln(bits);};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits);};// Shift-right BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits);};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits);};// Test if n bit is set BN.prototype.testn=function testn(bit){assert(typeof bit==='number'&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,'imaskn works only with positive numbers');if(this.length<=s){return this;}if(r!==0){s++;}this.length=Math.min(s,this.length);if(r!==0){var mask=0x3ffffff^0x3ffffff>>>r<=0x4000000;i++){this.words[i]-=0x4000000;if(i===this.length-1){this.words[i+1]=1;}else{this.words[i+1]++;}}this.length=Math.max(this.length,i+1);return this;};// Subtract plain number `num` from `this` BN.prototype.isubn=function isubn(num){assert(typeof num==='number');assert(num<0x4000000);if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this;}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1;}else{// Carry for(var i=0;i>26)-(right/0x4000000|0);this.words[i+shift]=w&0x3ffffff;}for(;i>26;this.words[i+shift]=w&0x3ffffff;}if(carry===0)return this.strip();// Subtraction overflow assert(carry===-1);carry=0;for(i=0;i>26;this.words[i]=w&0x3ffffff;}this.negative=1;return this.strip();};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;// Normalize var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0;}// Initialize quotient var m=a.length-b.length;var q;if(mode!=='mod'){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*0x4000000+(a.words[b.length+j-1]|0);// NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max // (0x7ffffff) qj=Math.min(qj/bhi|0,0x3ffffff);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(!a.isZero()){a.negative^=1;}}if(q){q.words[j]=qj;}}if(q){q.strip();}a.strip();// Denormalize if(mode!=='div'&&shift!==0){a.iushrn(shift);}return{div:q||null,mod:a};};// NOTE: 1) `mode` can be set to `mod` to request mod only, // to `div` to request div only, or be absent to // request both div & mod // 2) `positive` is true if unsigned mod is requested BN.prototype.divmod=function divmod(num,mode,positive){assert(!num.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)};}var div,mod,res;if(this.negative!==0&&num.negative===0){res=this.neg().divmod(num,mode);if(mode!=='mod'){div=res.div.neg();}if(mode!=='div'){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.iadd(num);}}return{div:div,mod:mod};}if(this.negative===0&&num.negative!==0){res=this.divmod(num.neg(),mode);if(mode!=='mod'){div=res.div.neg();}return{div:div,mod:res.mod};}if((this.negative&num.negative)!==0){res=this.neg().divmod(num.neg(),mode);if(mode!=='div'){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.isub(num);}}return{div:res.div,mod:mod};}// Both numbers are positive at this point // Strip both numbers to approximate shift value if(num.length>this.length||this.cmp(num)<0){return{div:new BN(0),mod:this};}// Very short reduction if(num.length===1){if(mode==='div'){return{div:this.divn(num.words[0]),mod:null};}if(mode==='mod'){return{div:null,mod:new BN(this.modn(num.words[0]))};}return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))};}return this._wordDiv(num,mode);};// Find `this` / `num` BN.prototype.div=function div(num){return this.divmod(num,'div',false).div;};// Find `this` % `num` BN.prototype.mod=function mod(num){return this.divmod(num,'mod',false).mod;};BN.prototype.umod=function umod(num){return this.divmod(num,'mod',true).mod;};// Find Round(`this` / `num`) BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);// Fast case - exact division if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);// Round down if(cmp<0||r2===1&&cmp===0)return dm.div;// Round up return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1);};BN.prototype.modn=function modn(num){assert(num<=0x3ffffff);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--){acc=(p*acc+(this.words[i]|0))%num;}return acc;};// In-place division by number BN.prototype.idivn=function idivn(num){assert(num<=0x3ffffff);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*0x4000000;this.words[i]=w/num|0;carry=w%num;}return this.strip();};BN.prototype.divn=function divn(num){return this.clone().idivn(num);};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(!p.isZero());var x=this;var y=p.clone();if(x.negative!==0){x=x.umod(p);}else{x=x.clone();}// A * x + B * y = x var A=new BN(1);var B=new BN(0);// C * x + D * y = y var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g;}var yp=y.clone();var xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1){;}if(i>0){x.iushrn(i);while(i-->0){if(A.isOdd()||B.isOdd()){A.iadd(yp);B.isub(xp);}A.iushrn(1);B.iushrn(1);}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1){;}if(j>0){y.iushrn(j);while(j-->0){if(C.isOdd()||D.isOdd()){C.iadd(yp);D.isub(xp);}C.iushrn(1);D.iushrn(1);}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D);}else{y.isub(x);C.isub(A);D.isub(B);}}return{a:C,b:D,gcd:y.iushln(g)};};// This is reduced incarnation of the binary EEA // above, designated to invert members of the // _prime_ fields F(p) at a maximal speed BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(!p.isZero());var a=this;var b=p.clone();if(a.negative!==0){a=a.umod(p);}else{a=a.clone();}var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1){;}if(i>0){a.iushrn(i);while(i-->0){if(x1.isOdd()){x1.iadd(delta);}x1.iushrn(1);}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1){;}if(j>0){b.iushrn(j);while(j-->0){if(x2.isOdd()){x2.iadd(delta);}x2.iushrn(1);}}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2);}else{b.isub(a);x2.isub(x1);}}var res;if(a.cmpn(1)===0){res=x1;}else{res=x2;}if(res.cmpn(0)<0){res.iadd(p);}return res;};BN.prototype.gcd=function gcd(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;// Remove common factor of two for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1);}do{while(a.isEven()){a.iushrn(1);}while(b.isEven()){b.iushrn(1);}var r=a.cmp(b);if(r<0){// Swap `a` and `b` to make `a` always bigger than `b` var t=a;a=b;b=t;}else if(r===0||b.cmpn(1)===0){break;}a.isub(b);}while(true);return b.iushln(shift);};// Invert number in the field F(num) BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num);};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0;};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1;};// And first word and num BN.prototype.andln=function andln(num){return this.words[0]#};// Increment at the bit position in-line BN.prototype.bincn=function bincn(bit){assert(typeof bit==='number');var r=bit%26;var s=(bit-r)/26;var q=1<>>26;w&=0x3ffffff;this.words[i]=w;}if(carry!==0){this.words[i]=carry;this.length++;}return this;};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0;};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1){res=1;}else{if(negative){num=-num;}assert(num<=0x3ffffff,'Number is too big');var w=this.words[0]|0;res=w===num?0:w `num` // 0 - if `this` == `num` // -1 - if `this` < `num` BN.prototype.cmp=function cmp(num){if(this.negative!==0&&num.negative===0)return-1;if(this.negative===0&&num.negative!==0)return 1;var res=this.ucmp(num);if(this.negative!==0)return-res|0;return res;};// Unsigned comparison BN.prototype.ucmp=function ucmp(num){// At this point both numbers have the same sign if(this.length>num.length)return 1;if(this.length=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(ab){res=1;}break;}return res;};BN.prototype.gtn=function gtn(num){return this.cmpn(num)===1;};BN.prototype.gt=function gt(num){return this.cmp(num)===1;};BN.prototype.gten=function gten(num){return this.cmpn(num)>=0;};BN.prototype.gte=function gte(num){return this.cmp(num)>=0;};BN.prototype.ltn=function ltn(num){return this.cmpn(num)===-1;};BN.prototype.lt=function lt(num){return this.cmp(num)===-1;};BN.prototype.lten=function lten(num){return this.cmpn(num)<=0;};BN.prototype.lte=function lte(num){return this.cmp(num)<=0;};BN.prototype.eqn=function eqn(num){return this.cmpn(num)===0;};BN.prototype.eq=function eq(num){return this.cmp(num)===0;};// // A reduce context, could be using montgomery or something better, depending // on the `m` itself. // BN.red=function red(num){return new Red(num);};BN.prototype.toRed=function toRed(ctx){assert(!this.red,'Already a number in reduction context');assert(this.negative===0,'red works only with positives');return ctx.convertTo(this)._forceRed(ctx);};BN.prototype.fromRed=function fromRed(){assert(this.red,'fromRed works only with numbers in reduction context');return this.red.convertFrom(this);};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this;};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,'Already a number in reduction context');return this._forceRed(ctx);};BN.prototype.redAdd=function redAdd(num){assert(this.red,'redAdd works only with red numbers');return this.red.add(this,num);};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,'redIAdd works only with red numbers');return this.red.iadd(this,num);};BN.prototype.redSub=function redSub(num){assert(this.red,'redSub works only with red numbers');return this.red.sub(this,num);};BN.prototype.redISub=function redISub(num){assert(this.red,'redISub works only with red numbers');return this.red.isub(this,num);};BN.prototype.redShl=function redShl(num){assert(this.red,'redShl works only with red numbers');return this.red.shl(this,num);};BN.prototype.redMul=function redMul(num){assert(this.red,'redMul works only with red numbers');this.red._verify2(this,num);return this.red.mul(this,num);};BN.prototype.redIMul=function redIMul(num){assert(this.red,'redMul works only with red numbers');this.red._verify2(this,num);return this.red.imul(this,num);};BN.prototype.redSqr=function redSqr(){assert(this.red,'redSqr works only with red numbers');this.red._verify1(this);return this.red.sqr(this);};BN.prototype.redISqr=function redISqr(){assert(this.red,'redISqr works only with red numbers');this.red._verify1(this);return this.red.isqr(this);};// Square root over p BN.prototype.redSqrt=function redSqrt(){assert(this.red,'redSqrt works only with red numbers');this.red._verify1(this);return this.red.sqrt(this);};BN.prototype.redInvm=function redInvm(){assert(this.red,'redInvm works only with red numbers');this.red._verify1(this);return this.red.invm(this);};// Return negative clone of `this` % `red modulo` BN.prototype.redNeg=function redNeg(){assert(this.red,'redNeg works only with red numbers');this.red._verify1(this);return this.red.neg(this);};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,'redPow(normalNum)');this.red._verify1(this);return this.red.pow(this,num);};// Prime numbers with efficient reduction var primes={k256:null,p224:null,p192:null,p25519:null};// Pseudo-Mersenne prime function MPrime(name,p){// P = 2 ^ N - K this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp();}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp;};MPrime.prototype.ireduce=function ireduce(num){// Assumes that `num` is less than `P^2` // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength();}while(rlen>this.n);var cmp=rlen0){r.isub(this.p);}else{if(r.strip!==undefined){// r is BN v4 instance r.strip();}else{// r is BN v5 instance r._strip();}}return r;};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out);};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k);};function K256(){MPrime.call(this,'k256','ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');}inherits(K256,MPrime);K256.prototype.split=function split(input,output){// 256 = 9 * 26 + 22 var mask=0x3fffff;var outLen=Math.min(input.length,9);for(var i=0;i>>22;prev=next;}prev>>>=22;input.words[i-10]=prev;if(prev===0&&input.length>10){input.length-=10;}else{input.length-=9;}};K256.prototype.imulK=function imulK(num){// K = 0x1000003d1 = [ 0x40, 0x3d1 ] num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;// bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 var lo=0;for(var i=0;i>>=26;num.words[i]=lo;carry=hi;}if(carry!==0){num.words[num.length++]=carry;}return num;};// Exported mostly for testing purposes, use plain name instead BN._prime=function prime(name){// Cached version of prime if(primes[name])return primes[name];var prime;if(name==='k256'){prime=new K256();}else if(name==='p224'){prime=new P224();}else if(name==='p192'){prime=new P192();}else if(name==='p25519'){prime=new P25519();}else{throw new Error('Unknown prime '+name);}primes[name]=prime;return prime;};// // Base reduction engine // function Red(m){if(typeof m==='string'){var prime=BN._prime(m);this.m=prime.p;this.prime=prime;}else{assert(m.gtn(1),'modulus must be greater than 1');this.m=m;this.prime=null;}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,'red works only with positives');assert(a.red,'red works only with red numbers');};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,'red works only with positives');assert(a.red&&a.red===b.red,'red works only with red numbers');};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this);};Red.prototype.neg=function neg(a){if(a.isZero()){return a.clone();}return this.m.sub(a)._forceRed(this);};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0){res.isub(this.m);}return res._forceRed(this);};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0){res.isub(this.m);}return res;};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0){res.iadd(this.m);}return res._forceRed(this);};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0){res.iadd(this.m);}return res;};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num));};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b));};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b));};Red.prototype.isqr=function isqr(a){return this.imul(a,a.clone());};Red.prototype.sqr=function sqr(a){return this.mul(a,a);};Red.prototype.sqrt=function sqrt(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);// Fast case if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow);}// Tonelli-Shanks algorithm (Totally unoptimized and slow) // // Find Q and S, that Q * 2 ^ S = (P - 1) var q=this.m.subn(1);var s=0;while(!q.isZero()&&q.andln(1)===0){s++;q.iushrn(1);}assert(!q.isZero());var one=new BN(1).toRed(this);var nOne=one.redNeg();// Find quadratic non-residue // NOTE: Max is such because of generalized Riemann hypothesis. var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0){z.redIAdd(nOne);}var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++){tmp=tmp.redSqr();}assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0]){res=this.sqr(res);}if(bit===0&¤t===0){currentLen=0;continue;}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0;}start=26;}return res;};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);return r===num?r.clone():r;};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res;};// // Montgomery method engine // BN.mont=function mont(num){return new Mont(num);};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26;}this.r=new BN(1).iushln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r._invmp(this.m);this.minv=this.rinv.mul(this.r).isubn(1).div(this.m);this.minv=this.minv.umod(this.r);this.minv=this.r.sub(this.minv);}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift));};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r;};Mont.prototype.imul=function imul(a,b){if(a.isZero()||b.isZero()){a.words[0]=0;a.length=1;return a;}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m);}else if(u.cmpn(0)<0){res=u.iadd(this.m);}return res._forceRed(this);};Mont.prototype.mul=function mul(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m);}else if(u.cmpn(0)<0){res=u.iadd(this.m);}return res._forceRed(this);};Mont.prototype.invm=function invm(a){// (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this);};})(typeof module==='undefined'||module,this);},{"buffer":183}],180:[function(require,module,exports){'use strict';exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=='undefined'?Uint8Array:Array;var code='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';for(var i=0,len=code.length;i0){throw new Error('Invalid string. Length must be a multiple of 4');}// Trim off extra bytes after placeholder bytes are found // See: https://github.com/beatgammit/base64-js/issues/42 var validLen=b64.indexOf('=');if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen];}// base64 is 4/3 + up to two characters of the original data function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen;}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen;}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;// if there are placeholders, only get up to the last complete 4 chars var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i>16&0xFF;arr[curByte++]=tmp>>8&0xFF;arr[curByte++]=tmp&0xFF;}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&0xFF;}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&0xFF;arr[curByte++]=tmp&0xFF;}return arr;}function tripletToBase64(num){return lookup[num>>18&0x3F]+lookup[num>>12&0x3F]+lookup[num>>6&0x3F]+lookup[num&0x3F];}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength));}// pad the end with zeros, but make sure to not forget the extra bytes if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&0x3F]+'==');}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&0x3F]+lookup[tmp<<2&0x3F]+'=');}return parts.join('');}},{}],181:[function(require,module,exports){(function(module,exports){'use strict';// Utils function assert(val,msg){if(!val)throw new Error(msg||'Assertion failed');}// Could use `inherits` module, but don't want to move from single file // architecture yet. function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function TempCtor(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor();ctor.prototype.constructor=ctor;}// BN function BN(number,base,endian){if(BN.isBN(number)){return number;}this.negative=0;this.words=null;this.length=0;// Reduction context this.red=null;if(number!==null){if(base==='le'||base==='be'){endian=base;base=10;}this._init(number||0,base||10,endian||'be');}}if(_typeof2(module)==='object'){module.exports=BN;}else{exports.BN=BN;}BN.BN=BN;BN.wordSize=26;var Buffer;try{Buffer=require('buffer').Buffer;}catch(e){}BN.isBN=function isBN(num){if(num instanceof BN){return true;}return num!==null&&_typeof2(num)==='object'&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words);};BN.max=function max(left,right){if(left.cmp(right)>0)return left;return right;};BN.min=function min(left,right){if(left.cmp(right)<0)return left;return right;};BN.prototype._init=function init(number,base,endian){if(typeof number==='number'){return this._initNumber(number,base,endian);}if(_typeof2(number)==='object'){return this._initArray(number,base,endian);}if(base==='hex'){base=16;}assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,'');var start=0;if(number[0]==='-'){start++;}if(base===16){this._parseHex(number,start);}else{this._parseBase(number,base,start);}if(number[0]==='-'){this.negative=1;}this._strip();if(endian!=='le')return;this._initArray(this.toArray(),base,endian);};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number;}if(number<0x4000000){this.words=[number&0x3ffffff];this.length=1;}else if(number<0x10000000000000){this.words=[number&0x3ffffff,number/0x4000000&0x3ffffff];this.length=2;}else{assert(number<0x20000000000000);// 2 ^ 53 (unsafe) this.words=[number&0x3ffffff,number/0x4000000&0x3ffffff,1];this.length=3;}if(endian!=='le')return;// Reverse the bytes this._initArray(this.toArray(),base,endian);};BN.prototype._initArray=function _initArray(number,base,endian){// Perhaps a Uint8Array assert(typeof number.length==='number');if(number.length<=0){this.words=[0];this.length=1;return this;}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i=0;i-=3){w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<>>26-off&0x3ffffff;off+=24;if(off>=26){off-=26;j++;}}}else if(endian==='le'){for(i=0,j=0;i>>26-off&0x3ffffff;off+=24;if(off>=26){off-=26;j++;}}}return this._strip();};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);var z=0;for(var i=start;i=49&&c<=54){b=c-49+0xa;// 'A' - 'F' }else if(c>=17&&c<=22){b=c-17+0xa;// '0' - '9' }else{b=c;}r|=b;z|=b;}assert(!(z&0xf0),'Invalid character in '+str);return r;}BN.prototype._parseHex=function _parseHex(number,start){// Create possibly bigger array to ensure that it fits the number this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i=start;i-=6){w=parseHex(number,i,i+6);this.words[j]|=w<>>26-off&0x3fffff;off+=24;if(off>=26){off-=26;j++;}}if(i+6!==start){w=parseHex(number,start,i+6);this.words[j]|=w<>>26-off&0x3fffff;}this._strip();};function parseBase(str,start,end,mul){var r=0;var b=0;var len=Math.min(str.length,end);for(var i=start;i=49){b=c-49+0xa;// 'A' }else if(c>=17){b=c-17+0xa;// '0' - '9' }else{b=c;}assert(c>=0&&b1&&this.words[this.length-1]===0){this.length--;}return this._normSign();};BN.prototype._normSign=function _normSign(){// -0 = 0 if(this.length===1&&this.words[0]===0){this.negative=0;}return this;};// Check Symbol.for because not everywhere where Symbol defined // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility if(typeof Symbol!=='undefined'&&typeof Symbol.for==='function'){BN.prototype[Symbol.for('nodejs.util.inspect.custom')]=inspect;}else{BN.prototype.inspect=inspect;}function inspect(){return(this.red?'';}/* var zeros = []; var groupSizes = []; var groupBases = []; var s = ''; var i = -1; while (++i < BN.wordSize) { zeros[i] = s; s += '0'; } groupSizes[0] = 0; groupSizes[1] = 0; groupBases[0] = 0; groupBases[1] = 0; var base = 2 - 1; while (++base < 36 + 1) { var groupSize = 0; var groupBase = 1; while (groupBase < (1 << BN.wordSize) / base) { groupBase *= base; groupSize += 1; } groupSizes[base] = groupSize; groupBases[base] = groupBase; } */var zeros=['','0','00','000','0000','00000','000000','0000000','00000000','000000000','0000000000','00000000000','000000000000','0000000000000','00000000000000','000000000000000','0000000000000000','00000000000000000','000000000000000000','0000000000000000000','00000000000000000000','000000000000000000000','0000000000000000000000','00000000000000000000000','000000000000000000000000','0000000000000000000000000'];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,10000000,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;padding=padding|0||1;var out;if(base===16||base==='hex'){out='';var off=0;var carry=0;for(var i=0;i>>24-off&0xffffff;if(carry!==0||i!==this.length-1){out=zeros[6-word.length]+word+out;}else{out=word+out;}off+=2;if(off>=26){off-=26;i--;}}if(carry!==0){out=carry.toString(16)+out;}while(out.length%padding!==0){out='0'+out;}if(this.negative!==0){out='-'+out;}return out;}if(base===(base|0)&&base>=2&&base<=36){// var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); var groupSize=groupSizes[base];// var groupBase = Math.pow(base, groupSize); var groupBase=groupBases[base];out='';var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modrn(groupBase).toString(base);c=c.idivn(groupBase);if(!c.isZero()){out=zeros[groupSize-r.length]+r+out;}else{out=r+out;}}if(this.isZero()){out='0'+out;}while(out.length%padding!==0){out='0'+out;}if(this.negative!==0){out='-'+out;}return out;}assert(false,'Base should be between 2 and 36');};BN.prototype.toNumber=function toNumber(){var ret=this.words[0];if(this.length===2){ret+=this.words[1]*0x4000000;}else if(this.length===3&&this.words[2]===0x01){// NOTE: at this stage it is known that the top bit is set ret+=0x10000000000000+this.words[1]*0x4000000;}else if(this.length>2){assert(false,'Number can only safely store up to 53 bits');}return this.negative!==0?-ret:ret;};BN.prototype.toJSON=function toJSON(){return this.toString(16,2);};if(Buffer){BN.prototype.toBuffer=function toBuffer(endian,length){return this.toArrayLike(Buffer,endian,length);};}BN.prototype.toArray=function toArray(endian,length){return this.toArrayLike(Array,endian,length);};var allocate=function allocate(ArrayType,size){if(ArrayType.allocUnsafe){return ArrayType.allocUnsafe(size);}return new ArrayType(size);};BN.prototype.toArrayLike=function toArrayLike(ArrayType,endian,length){this._strip();var byteLength=this.byteLength();var reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,'byte array longer than desired length');assert(reqLength>0,'Requested array length <= 0');var res=allocate(ArrayType,reqLength);var postfix=endian==='le'?'LE':'BE';this['_toArrayLike'+postfix](res,byteLength);return res;};BN.prototype._toArrayLikeLE=function _toArrayLikeLE(res,byteLength){var position=0;var carry=0;for(var i=0,shift=0;i>8&0xff;}if(position>16&0xff;}if(shift===6){if(position>24&0xff;}carry=0;shift=0;}else{carry=word>>>24;shift+=2;}}if(position=0){res[position--]=word>>8&0xff;}if(position>=0){res[position--]=word>>16&0xff;}if(shift===6){if(position>=0){res[position--]=word>>24&0xff;}carry=0;shift=0;}else{carry=word>>>24;shift+=2;}}if(position>=0){res[position--]=carry;while(position>=0){res[position--]=0;}}};if(Math.clz32){BN.prototype._countBits=function _countBits(w){return 32-Math.clz32(w);};}else{BN.prototype._countBits=function _countBits(w){var t=w;var r=0;if(t>=0x1000){r+=13;t>>>=13;}if(t>=0x40){r+=7;t>>>=7;}if(t>=0x8){r+=4;t>>>=4;}if(t>=0x02){r+=2;t>>>=2;}return r+t;};}BN.prototype._zeroBits=function _zeroBits(w){// Short-cut if(w===0)return 26;var t=w;var r=0;if((t&0x1fff)===0){r+=13;t>>>=13;}if((t&0x7f)===0){r+=7;t>>>=7;}if((t&0xf)===0){r+=4;t>>>=4;}if((t&0x3)===0){r+=2;t>>>=2;}if((t&0x1)===0){r++;}return r;};// Return number of used bits in a BN BN.prototype.bitLength=function bitLength(){var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi;};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit>>wbit&0x01;}return w;}// Number of trailing zero bits BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this);};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this);};// And `num` with `this` in-place BN.prototype.iuand=function iuand(num){// b = min-length(num, this) var b;if(this.length>num.length){b=num;}else{b=this;}for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this);};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this);};// Xor `num` with `this` in-place BN.prototype.iuxor=function iuxor(num){// a.length > b.length var a;var b;if(this.length>num.length){a=this;b=num;}else{a=num;b=this;}for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this);};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this);};// Not ``this`` with ``width`` bitwidth BN.prototype.inotn=function inotn(width){assert(typeof width==='number'&&width>=0);var bytesNeeded=Math.ceil(width/26)|0;var bitsLeft=width%26;// Extend the buffer with leading zeroes this._expand(bytesNeeded);if(bitsLeft>0){bytesNeeded--;}// Handle complete words for(var i=0;i0){this.words[i]=~this.words[i]&0x3ffffff>>26-bitsLeft;}// And remove leading zeroes return this._strip();};BN.prototype.notn=function notn(width){return this.clone().inotn(width);};// Set `bit` of `this` BN.prototype.setn=function setn(bit,val){assert(typeof bit==='number'&&bit>=0);var off=bit/26|0;var wbit=bit%26;this._expand(off+1);if(val){this.words[off]=this.words[off]|1< b.length var a,b;if(this.length>num.length){a=this;b=num;}else{a=num;b=this;}var carry=0;for(var i=0;i>>26;}for(;carry!==0&&i>>26;}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++;// Copy the rest of the words }else if(a!==this){for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this);};// Subtract `num` from `this` in-place BN.prototype.isub=function isub(num){// this - (-num) = this + num if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign();// -this - num = -(this + num) }else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign();}// At this point both numbers are positive var cmp=this.cmp(num);// Optimization - zeroify if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this;}// a > b var a,b;if(cmp>0){a=this;b=num;}else{a=num;b=this;}var carry=0;for(var i=0;i>26;this.words[i]=r&0x3ffffff;}for(;carry!==0&&i>26;this.words[i]=r&0x3ffffff;}// Copy rest of the words if(carry===0&&i= 0x3ffffff var ncarry=carry>>>26;var rword=carry&0x3ffffff;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;a=self.words[i]|0;b=num.words[j]|0;r=a*b+rword;ncarry+=r/0x4000000|0;rword=r&0x3ffffff;}out.words[k]=rword|0;carry=ncarry|0;}if(carry!==0){out.words[k]=carry|0;}else{out.length--;}return out._strip();}// TODO(indutny): it may be reasonable to omit it for users who don't need // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit // multiplication (like elliptic secp256k1). var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&0x1fff;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&0x1fff;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&0x1fff;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&0x1fff;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&0x1fff;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&0x1fff;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&0x1fff;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&0x1fff;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&0x1fff;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&0x1fff;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&0x1fff;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&0x1fff;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&0x1fff;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&0x1fff;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&0x1fff;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&0x1fff;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&0x1fff;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&0x1fff;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&0x1fff;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&0x1fff;var bh9=b9>>>13;out.negative=self.negative^num.negative;out.length=19;/* k = 0 */lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0;w0&=0x3ffffff;/* k = 1 */lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);lo=lo+Math.imul(al0,bl1)|0;mid=mid+Math.imul(al0,bh1)|0;mid=mid+Math.imul(ah0,bl1)|0;hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0;w1&=0x3ffffff;/* k = 2 */lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);lo=lo+Math.imul(al1,bl1)|0;mid=mid+Math.imul(al1,bh1)|0;mid=mid+Math.imul(ah1,bl1)|0;hi=hi+Math.imul(ah1,bh1)|0;lo=lo+Math.imul(al0,bl2)|0;mid=mid+Math.imul(al0,bh2)|0;mid=mid+Math.imul(ah0,bl2)|0;hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0;w2&=0x3ffffff;/* k = 3 */lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);lo=lo+Math.imul(al2,bl1)|0;mid=mid+Math.imul(al2,bh1)|0;mid=mid+Math.imul(ah2,bl1)|0;hi=hi+Math.imul(ah2,bh1)|0;lo=lo+Math.imul(al1,bl2)|0;mid=mid+Math.imul(al1,bh2)|0;mid=mid+Math.imul(ah1,bl2)|0;hi=hi+Math.imul(ah1,bh2)|0;lo=lo+Math.imul(al0,bl3)|0;mid=mid+Math.imul(al0,bh3)|0;mid=mid+Math.imul(ah0,bl3)|0;hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0;w3&=0x3ffffff;/* k = 4 */lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);lo=lo+Math.imul(al3,bl1)|0;mid=mid+Math.imul(al3,bh1)|0;mid=mid+Math.imul(ah3,bl1)|0;hi=hi+Math.imul(ah3,bh1)|0;lo=lo+Math.imul(al2,bl2)|0;mid=mid+Math.imul(al2,bh2)|0;mid=mid+Math.imul(ah2,bl2)|0;hi=hi+Math.imul(ah2,bh2)|0;lo=lo+Math.imul(al1,bl3)|0;mid=mid+Math.imul(al1,bh3)|0;mid=mid+Math.imul(ah1,bl3)|0;hi=hi+Math.imul(ah1,bh3)|0;lo=lo+Math.imul(al0,bl4)|0;mid=mid+Math.imul(al0,bh4)|0;mid=mid+Math.imul(ah0,bl4)|0;hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0;w4&=0x3ffffff;/* k = 5 */lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);lo=lo+Math.imul(al4,bl1)|0;mid=mid+Math.imul(al4,bh1)|0;mid=mid+Math.imul(ah4,bl1)|0;hi=hi+Math.imul(ah4,bh1)|0;lo=lo+Math.imul(al3,bl2)|0;mid=mid+Math.imul(al3,bh2)|0;mid=mid+Math.imul(ah3,bl2)|0;hi=hi+Math.imul(ah3,bh2)|0;lo=lo+Math.imul(al2,bl3)|0;mid=mid+Math.imul(al2,bh3)|0;mid=mid+Math.imul(ah2,bl3)|0;hi=hi+Math.imul(ah2,bh3)|0;lo=lo+Math.imul(al1,bl4)|0;mid=mid+Math.imul(al1,bh4)|0;mid=mid+Math.imul(ah1,bl4)|0;hi=hi+Math.imul(ah1,bh4)|0;lo=lo+Math.imul(al0,bl5)|0;mid=mid+Math.imul(al0,bh5)|0;mid=mid+Math.imul(ah0,bl5)|0;hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0;w5&=0x3ffffff;/* k = 6 */lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);lo=lo+Math.imul(al5,bl1)|0;mid=mid+Math.imul(al5,bh1)|0;mid=mid+Math.imul(ah5,bl1)|0;hi=hi+Math.imul(ah5,bh1)|0;lo=lo+Math.imul(al4,bl2)|0;mid=mid+Math.imul(al4,bh2)|0;mid=mid+Math.imul(ah4,bl2)|0;hi=hi+Math.imul(ah4,bh2)|0;lo=lo+Math.imul(al3,bl3)|0;mid=mid+Math.imul(al3,bh3)|0;mid=mid+Math.imul(ah3,bl3)|0;hi=hi+Math.imul(ah3,bh3)|0;lo=lo+Math.imul(al2,bl4)|0;mid=mid+Math.imul(al2,bh4)|0;mid=mid+Math.imul(ah2,bl4)|0;hi=hi+Math.imul(ah2,bh4)|0;lo=lo+Math.imul(al1,bl5)|0;mid=mid+Math.imul(al1,bh5)|0;mid=mid+Math.imul(ah1,bl5)|0;hi=hi+Math.imul(ah1,bh5)|0;lo=lo+Math.imul(al0,bl6)|0;mid=mid+Math.imul(al0,bh6)|0;mid=mid+Math.imul(ah0,bl6)|0;hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0;w6&=0x3ffffff;/* k = 7 */lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);lo=lo+Math.imul(al6,bl1)|0;mid=mid+Math.imul(al6,bh1)|0;mid=mid+Math.imul(ah6,bl1)|0;hi=hi+Math.imul(ah6,bh1)|0;lo=lo+Math.imul(al5,bl2)|0;mid=mid+Math.imul(al5,bh2)|0;mid=mid+Math.imul(ah5,bl2)|0;hi=hi+Math.imul(ah5,bh2)|0;lo=lo+Math.imul(al4,bl3)|0;mid=mid+Math.imul(al4,bh3)|0;mid=mid+Math.imul(ah4,bl3)|0;hi=hi+Math.imul(ah4,bh3)|0;lo=lo+Math.imul(al3,bl4)|0;mid=mid+Math.imul(al3,bh4)|0;mid=mid+Math.imul(ah3,bl4)|0;hi=hi+Math.imul(ah3,bh4)|0;lo=lo+Math.imul(al2,bl5)|0;mid=mid+Math.imul(al2,bh5)|0;mid=mid+Math.imul(ah2,bl5)|0;hi=hi+Math.imul(ah2,bh5)|0;lo=lo+Math.imul(al1,bl6)|0;mid=mid+Math.imul(al1,bh6)|0;mid=mid+Math.imul(ah1,bl6)|0;hi=hi+Math.imul(ah1,bh6)|0;lo=lo+Math.imul(al0,bl7)|0;mid=mid+Math.imul(al0,bh7)|0;mid=mid+Math.imul(ah0,bl7)|0;hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0;w7&=0x3ffffff;/* k = 8 */lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);lo=lo+Math.imul(al7,bl1)|0;mid=mid+Math.imul(al7,bh1)|0;mid=mid+Math.imul(ah7,bl1)|0;hi=hi+Math.imul(ah7,bh1)|0;lo=lo+Math.imul(al6,bl2)|0;mid=mid+Math.imul(al6,bh2)|0;mid=mid+Math.imul(ah6,bl2)|0;hi=hi+Math.imul(ah6,bh2)|0;lo=lo+Math.imul(al5,bl3)|0;mid=mid+Math.imul(al5,bh3)|0;mid=mid+Math.imul(ah5,bl3)|0;hi=hi+Math.imul(ah5,bh3)|0;lo=lo+Math.imul(al4,bl4)|0;mid=mid+Math.imul(al4,bh4)|0;mid=mid+Math.imul(ah4,bl4)|0;hi=hi+Math.imul(ah4,bh4)|0;lo=lo+Math.imul(al3,bl5)|0;mid=mid+Math.imul(al3,bh5)|0;mid=mid+Math.imul(ah3,bl5)|0;hi=hi+Math.imul(ah3,bh5)|0;lo=lo+Math.imul(al2,bl6)|0;mid=mid+Math.imul(al2,bh6)|0;mid=mid+Math.imul(ah2,bl6)|0;hi=hi+Math.imul(ah2,bh6)|0;lo=lo+Math.imul(al1,bl7)|0;mid=mid+Math.imul(al1,bh7)|0;mid=mid+Math.imul(ah1,bl7)|0;hi=hi+Math.imul(ah1,bh7)|0;lo=lo+Math.imul(al0,bl8)|0;mid=mid+Math.imul(al0,bh8)|0;mid=mid+Math.imul(ah0,bl8)|0;hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0;w8&=0x3ffffff;/* k = 9 */lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);lo=lo+Math.imul(al8,bl1)|0;mid=mid+Math.imul(al8,bh1)|0;mid=mid+Math.imul(ah8,bl1)|0;hi=hi+Math.imul(ah8,bh1)|0;lo=lo+Math.imul(al7,bl2)|0;mid=mid+Math.imul(al7,bh2)|0;mid=mid+Math.imul(ah7,bl2)|0;hi=hi+Math.imul(ah7,bh2)|0;lo=lo+Math.imul(al6,bl3)|0;mid=mid+Math.imul(al6,bh3)|0;mid=mid+Math.imul(ah6,bl3)|0;hi=hi+Math.imul(ah6,bh3)|0;lo=lo+Math.imul(al5,bl4)|0;mid=mid+Math.imul(al5,bh4)|0;mid=mid+Math.imul(ah5,bl4)|0;hi=hi+Math.imul(ah5,bh4)|0;lo=lo+Math.imul(al4,bl5)|0;mid=mid+Math.imul(al4,bh5)|0;mid=mid+Math.imul(ah4,bl5)|0;hi=hi+Math.imul(ah4,bh5)|0;lo=lo+Math.imul(al3,bl6)|0;mid=mid+Math.imul(al3,bh6)|0;mid=mid+Math.imul(ah3,bl6)|0;hi=hi+Math.imul(ah3,bh6)|0;lo=lo+Math.imul(al2,bl7)|0;mid=mid+Math.imul(al2,bh7)|0;mid=mid+Math.imul(ah2,bl7)|0;hi=hi+Math.imul(ah2,bh7)|0;lo=lo+Math.imul(al1,bl8)|0;mid=mid+Math.imul(al1,bh8)|0;mid=mid+Math.imul(ah1,bl8)|0;hi=hi+Math.imul(ah1,bh8)|0;lo=lo+Math.imul(al0,bl9)|0;mid=mid+Math.imul(al0,bh9)|0;mid=mid+Math.imul(ah0,bl9)|0;hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0;w9&=0x3ffffff;/* k = 10 */lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);lo=lo+Math.imul(al8,bl2)|0;mid=mid+Math.imul(al8,bh2)|0;mid=mid+Math.imul(ah8,bl2)|0;hi=hi+Math.imul(ah8,bh2)|0;lo=lo+Math.imul(al7,bl3)|0;mid=mid+Math.imul(al7,bh3)|0;mid=mid+Math.imul(ah7,bl3)|0;hi=hi+Math.imul(ah7,bh3)|0;lo=lo+Math.imul(al6,bl4)|0;mid=mid+Math.imul(al6,bh4)|0;mid=mid+Math.imul(ah6,bl4)|0;hi=hi+Math.imul(ah6,bh4)|0;lo=lo+Math.imul(al5,bl5)|0;mid=mid+Math.imul(al5,bh5)|0;mid=mid+Math.imul(ah5,bl5)|0;hi=hi+Math.imul(ah5,bh5)|0;lo=lo+Math.imul(al4,bl6)|0;mid=mid+Math.imul(al4,bh6)|0;mid=mid+Math.imul(ah4,bl6)|0;hi=hi+Math.imul(ah4,bh6)|0;lo=lo+Math.imul(al3,bl7)|0;mid=mid+Math.imul(al3,bh7)|0;mid=mid+Math.imul(ah3,bl7)|0;hi=hi+Math.imul(ah3,bh7)|0;lo=lo+Math.imul(al2,bl8)|0;mid=mid+Math.imul(al2,bh8)|0;mid=mid+Math.imul(ah2,bl8)|0;hi=hi+Math.imul(ah2,bh8)|0;lo=lo+Math.imul(al1,bl9)|0;mid=mid+Math.imul(al1,bh9)|0;mid=mid+Math.imul(ah1,bl9)|0;hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0;w10&=0x3ffffff;/* k = 11 */lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);lo=lo+Math.imul(al8,bl3)|0;mid=mid+Math.imul(al8,bh3)|0;mid=mid+Math.imul(ah8,bl3)|0;hi=hi+Math.imul(ah8,bh3)|0;lo=lo+Math.imul(al7,bl4)|0;mid=mid+Math.imul(al7,bh4)|0;mid=mid+Math.imul(ah7,bl4)|0;hi=hi+Math.imul(ah7,bh4)|0;lo=lo+Math.imul(al6,bl5)|0;mid=mid+Math.imul(al6,bh5)|0;mid=mid+Math.imul(ah6,bl5)|0;hi=hi+Math.imul(ah6,bh5)|0;lo=lo+Math.imul(al5,bl6)|0;mid=mid+Math.imul(al5,bh6)|0;mid=mid+Math.imul(ah5,bl6)|0;hi=hi+Math.imul(ah5,bh6)|0;lo=lo+Math.imul(al4,bl7)|0;mid=mid+Math.imul(al4,bh7)|0;mid=mid+Math.imul(ah4,bl7)|0;hi=hi+Math.imul(ah4,bh7)|0;lo=lo+Math.imul(al3,bl8)|0;mid=mid+Math.imul(al3,bh8)|0;mid=mid+Math.imul(ah3,bl8)|0;hi=hi+Math.imul(ah3,bh8)|0;lo=lo+Math.imul(al2,bl9)|0;mid=mid+Math.imul(al2,bh9)|0;mid=mid+Math.imul(ah2,bl9)|0;hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0;w11&=0x3ffffff;/* k = 12 */lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);lo=lo+Math.imul(al8,bl4)|0;mid=mid+Math.imul(al8,bh4)|0;mid=mid+Math.imul(ah8,bl4)|0;hi=hi+Math.imul(ah8,bh4)|0;lo=lo+Math.imul(al7,bl5)|0;mid=mid+Math.imul(al7,bh5)|0;mid=mid+Math.imul(ah7,bl5)|0;hi=hi+Math.imul(ah7,bh5)|0;lo=lo+Math.imul(al6,bl6)|0;mid=mid+Math.imul(al6,bh6)|0;mid=mid+Math.imul(ah6,bl6)|0;hi=hi+Math.imul(ah6,bh6)|0;lo=lo+Math.imul(al5,bl7)|0;mid=mid+Math.imul(al5,bh7)|0;mid=mid+Math.imul(ah5,bl7)|0;hi=hi+Math.imul(ah5,bh7)|0;lo=lo+Math.imul(al4,bl8)|0;mid=mid+Math.imul(al4,bh8)|0;mid=mid+Math.imul(ah4,bl8)|0;hi=hi+Math.imul(ah4,bh8)|0;lo=lo+Math.imul(al3,bl9)|0;mid=mid+Math.imul(al3,bh9)|0;mid=mid+Math.imul(ah3,bl9)|0;hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0;w12&=0x3ffffff;/* k = 13 */lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);lo=lo+Math.imul(al8,bl5)|0;mid=mid+Math.imul(al8,bh5)|0;mid=mid+Math.imul(ah8,bl5)|0;hi=hi+Math.imul(ah8,bh5)|0;lo=lo+Math.imul(al7,bl6)|0;mid=mid+Math.imul(al7,bh6)|0;mid=mid+Math.imul(ah7,bl6)|0;hi=hi+Math.imul(ah7,bh6)|0;lo=lo+Math.imul(al6,bl7)|0;mid=mid+Math.imul(al6,bh7)|0;mid=mid+Math.imul(ah6,bl7)|0;hi=hi+Math.imul(ah6,bh7)|0;lo=lo+Math.imul(al5,bl8)|0;mid=mid+Math.imul(al5,bh8)|0;mid=mid+Math.imul(ah5,bl8)|0;hi=hi+Math.imul(ah5,bh8)|0;lo=lo+Math.imul(al4,bl9)|0;mid=mid+Math.imul(al4,bh9)|0;mid=mid+Math.imul(ah4,bl9)|0;hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0;w13&=0x3ffffff;/* k = 14 */lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);lo=lo+Math.imul(al8,bl6)|0;mid=mid+Math.imul(al8,bh6)|0;mid=mid+Math.imul(ah8,bl6)|0;hi=hi+Math.imul(ah8,bh6)|0;lo=lo+Math.imul(al7,bl7)|0;mid=mid+Math.imul(al7,bh7)|0;mid=mid+Math.imul(ah7,bl7)|0;hi=hi+Math.imul(ah7,bh7)|0;lo=lo+Math.imul(al6,bl8)|0;mid=mid+Math.imul(al6,bh8)|0;mid=mid+Math.imul(ah6,bl8)|0;hi=hi+Math.imul(ah6,bh8)|0;lo=lo+Math.imul(al5,bl9)|0;mid=mid+Math.imul(al5,bh9)|0;mid=mid+Math.imul(ah5,bl9)|0;hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0;w14&=0x3ffffff;/* k = 15 */lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);lo=lo+Math.imul(al8,bl7)|0;mid=mid+Math.imul(al8,bh7)|0;mid=mid+Math.imul(ah8,bl7)|0;hi=hi+Math.imul(ah8,bh7)|0;lo=lo+Math.imul(al7,bl8)|0;mid=mid+Math.imul(al7,bh8)|0;mid=mid+Math.imul(ah7,bl8)|0;hi=hi+Math.imul(ah7,bh8)|0;lo=lo+Math.imul(al6,bl9)|0;mid=mid+Math.imul(al6,bh9)|0;mid=mid+Math.imul(ah6,bl9)|0;hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0;w15&=0x3ffffff;/* k = 16 */lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);lo=lo+Math.imul(al8,bl8)|0;mid=mid+Math.imul(al8,bh8)|0;mid=mid+Math.imul(ah8,bl8)|0;hi=hi+Math.imul(ah8,bh8)|0;lo=lo+Math.imul(al7,bl9)|0;mid=mid+Math.imul(al7,bh9)|0;mid=mid+Math.imul(ah7,bl9)|0;hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0;w16&=0x3ffffff;/* k = 17 */lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);lo=lo+Math.imul(al8,bl9)|0;mid=mid+Math.imul(al8,bh9)|0;mid=mid+Math.imul(ah8,bl9)|0;hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0;w17&=0x3ffffff;/* k = 18 */lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&0x1fff)<<13)|0;c=(hi+(mid>>>13)|0)+(w18>>>26)|0;w18&=0x3ffffff;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++;}return out;};// Polyfill comb if(!Math.imul){comb10MulTo=smallMulTo;}function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k= 0x3ffffff var ncarry=hncarry;hncarry=0;var rword=carry&0x3ffffff;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&0x3ffffff;ncarry=ncarry+(r/0x4000000|0)|0;lo=lo+rword|0;rword=lo&0x3ffffff;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=0x3ffffff;}out.words[k]=rword;carry=ncarry;ncarry=hncarry;}if(carry!==0){out.words[k]=carry;}else{out.length--;}return out._strip();}function jumboMulTo(self,num,out){// Temporary disable, see https://github.com/indutny/bn.js/issues/211 // var fftm = new FFTM(); // return fftm.mulp(self, num, out); return bigMulTo(self,num,out);}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10){res=comb10MulTo(this,num,out);}else if(len<63){res=smallMulTo(this,num,out);}else if(len<1024){res=bigMulTo(this,num,out);}else{res=jumboMulTo(this,num,out);}return res;};// Cooley-Tukey algorithm for FFT // slightly revisited to rely on looping instead of recursion function FFTM(x,y){this.x=x;this.y=y;}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;}return rb;};// Performs "tweedling" phase, therefore 'emulating' // behaviour of the recursive algorithm FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1){i++;}return 1<>>13;rws[2*i+1]=carry&0x1fff;carry=carry>>>13;}// Pad with zeroes for(i=2*len;i>=26;carry+=w/0x4000000|0;// NOTE: lo is 27bit maximum carry+=lo>>>26;this.words[i]=lo&0x3ffffff;}if(carry!==0){this.words[i]=carry;this.length++;}return isNegNum?this.ineg():this;};BN.prototype.muln=function muln(num){return this.clone().imuln(num);};// `this` * `this` BN.prototype.sqr=function sqr(){return this.mul(this);};// `this` * `this` in-place BN.prototype.isqr=function isqr(){return this.imul(this.clone());};// Math.pow(`this`, `num`) BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);// Skip leading zeroes var res=this;for(var i=0;i=0);var r=bits%26;var s=(bits-r)/26;var carryMask=0x3ffffff>>>26-r<<26-r;var i;if(r!==0){var carry=0;for(i=0;i>>26-r;}if(carry){this.words[i]=carry;this.length++;}}if(s!==0){for(i=this.length-1;i>=0;i--){this.words[i+s]=this.words[i];}for(i=0;i=0);var h;if(hint){h=(hint-hint%26)/26;}else{h=0;}var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=0x3ffffff^0x3ffffff>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask;}// Push carried bits as a mask if(maskedWords&&carry!==0){maskedWords.words[maskedWords.length++]=carry;}if(this.length===0){this.words[0]=0;this.length=1;}return this._strip();};BN.prototype.ishrn=function ishrn(bits,hint,extended){// TODO(indutny): implement me assert(this.negative===0);return this.iushrn(bits,hint,extended);};// Shift-left BN.prototype.shln=function shln(bits){return this.clone().ishln(bits);};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits);};// Shift-right BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits);};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits);};// Test if n bit is set BN.prototype.testn=function testn(bit){assert(typeof bit==='number'&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,'imaskn works only with positive numbers');if(this.length<=s){return this;}if(r!==0){s++;}this.length=Math.min(s,this.length);if(r!==0){var mask=0x3ffffff^0x3ffffff>>>r<=0x4000000;i++){this.words[i]-=0x4000000;if(i===this.length-1){this.words[i+1]=1;}else{this.words[i+1]++;}}this.length=Math.max(this.length,i+1);return this;};// Subtract plain number `num` from `this` BN.prototype.isubn=function isubn(num){assert(typeof num==='number');assert(num<0x4000000);if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this;}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1;}else{// Carry for(var i=0;i>26)-(right/0x4000000|0);this.words[i+shift]=w&0x3ffffff;}for(;i>26;this.words[i+shift]=w&0x3ffffff;}if(carry===0)return this._strip();// Subtraction overflow assert(carry===-1);carry=0;for(i=0;i>26;this.words[i]=w&0x3ffffff;}this.negative=1;return this._strip();};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;// Normalize var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0;}// Initialize quotient var m=a.length-b.length;var q;if(mode!=='mod'){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*0x4000000+(a.words[b.length+j-1]|0);// NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max // (0x7ffffff) qj=Math.min(qj/bhi|0,0x3ffffff);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(!a.isZero()){a.negative^=1;}}if(q){q.words[j]=qj;}}if(q){q._strip();}a._strip();// Denormalize if(mode!=='div'&&shift!==0){a.iushrn(shift);}return{div:q||null,mod:a};};// NOTE: 1) `mode` can be set to `mod` to request mod only, // to `div` to request div only, or be absent to // request both div & mod // 2) `positive` is true if unsigned mod is requested BN.prototype.divmod=function divmod(num,mode,positive){assert(!num.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)};}var div,mod,res;if(this.negative!==0&&num.negative===0){res=this.neg().divmod(num,mode);if(mode!=='mod'){div=res.div.neg();}if(mode!=='div'){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.iadd(num);}}return{div:div,mod:mod};}if(this.negative===0&&num.negative!==0){res=this.divmod(num.neg(),mode);if(mode!=='mod'){div=res.div.neg();}return{div:div,mod:res.mod};}if((this.negative&num.negative)!==0){res=this.neg().divmod(num.neg(),mode);if(mode!=='div'){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.isub(num);}}return{div:res.div,mod:mod};}// Both numbers are positive at this point // Strip both numbers to approximate shift value if(num.length>this.length||this.cmp(num)<0){return{div:new BN(0),mod:this};}// Very short reduction if(num.length===1){if(mode==='div'){return{div:this.divn(num.words[0]),mod:null};}if(mode==='mod'){return{div:null,mod:new BN(this.modrn(num.words[0]))};}return{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))};}return this._wordDiv(num,mode);};// Find `this` / `num` BN.prototype.div=function div(num){return this.divmod(num,'div',false).div;};// Find `this` % `num` BN.prototype.mod=function mod(num){return this.divmod(num,'mod',false).mod;};BN.prototype.umod=function umod(num){return this.divmod(num,'mod',true).mod;};// Find Round(`this` / `num`) BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);// Fast case - exact division if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);// Round down if(cmp<0||r2===1&&cmp===0)return dm.div;// Round up return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1);};BN.prototype.modrn=function modrn(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=0x3ffffff);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--){acc=(p*acc+(this.words[i]|0))%num;}return isNegNum?-acc:acc;};// WARNING: DEPRECATED BN.prototype.modn=function modn(num){return this.modrn(num);};// In-place division by number BN.prototype.idivn=function idivn(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=0x3ffffff);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*0x4000000;this.words[i]=w/num|0;carry=w%num;}this._strip();return isNegNum?this.ineg():this;};BN.prototype.divn=function divn(num){return this.clone().idivn(num);};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(!p.isZero());var x=this;var y=p.clone();if(x.negative!==0){x=x.umod(p);}else{x=x.clone();}// A * x + B * y = x var A=new BN(1);var B=new BN(0);// C * x + D * y = y var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g;}var yp=y.clone();var xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1){;}if(i>0){x.iushrn(i);while(i-->0){if(A.isOdd()||B.isOdd()){A.iadd(yp);B.isub(xp);}A.iushrn(1);B.iushrn(1);}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1){;}if(j>0){y.iushrn(j);while(j-->0){if(C.isOdd()||D.isOdd()){C.iadd(yp);D.isub(xp);}C.iushrn(1);D.iushrn(1);}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D);}else{y.isub(x);C.isub(A);D.isub(B);}}return{a:C,b:D,gcd:y.iushln(g)};};// This is reduced incarnation of the binary EEA // above, designated to invert members of the // _prime_ fields F(p) at a maximal speed BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(!p.isZero());var a=this;var b=p.clone();if(a.negative!==0){a=a.umod(p);}else{a=a.clone();}var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1){;}if(i>0){a.iushrn(i);while(i-->0){if(x1.isOdd()){x1.iadd(delta);}x1.iushrn(1);}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1){;}if(j>0){b.iushrn(j);while(j-->0){if(x2.isOdd()){x2.iadd(delta);}x2.iushrn(1);}}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2);}else{b.isub(a);x2.isub(x1);}}var res;if(a.cmpn(1)===0){res=x1;}else{res=x2;}if(res.cmpn(0)<0){res.iadd(p);}return res;};BN.prototype.gcd=function gcd(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;// Remove common factor of two for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1);}do{while(a.isEven()){a.iushrn(1);}while(b.isEven()){b.iushrn(1);}var r=a.cmp(b);if(r<0){// Swap `a` and `b` to make `a` always bigger than `b` var t=a;a=b;b=t;}else if(r===0||b.cmpn(1)===0){break;}a.isub(b);}while(true);return b.iushln(shift);};// Invert number in the field F(num) BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num);};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0;};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1;};// And first word and num BN.prototype.andln=function andln(num){return this.words[0]#};// Increment at the bit position in-line BN.prototype.bincn=function bincn(bit){assert(typeof bit==='number');var r=bit%26;var s=(bit-r)/26;var q=1<>>26;w&=0x3ffffff;this.words[i]=w;}if(carry!==0){this.words[i]=carry;this.length++;}return this;};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0;};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this._strip();var res;if(this.length>1){res=1;}else{if(negative){num=-num;}assert(num<=0x3ffffff,'Number is too big');var w=this.words[0]|0;res=w===num?0:w `num` // 0 - if `this` == `num` // -1 - if `this` < `num` BN.prototype.cmp=function cmp(num){if(this.negative!==0&&num.negative===0)return-1;if(this.negative===0&&num.negative!==0)return 1;var res=this.ucmp(num);if(this.negative!==0)return-res|0;return res;};// Unsigned comparison BN.prototype.ucmp=function ucmp(num){// At this point both numbers have the same sign if(this.length>num.length)return 1;if(this.length=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(ab){res=1;}break;}return res;};BN.prototype.gtn=function gtn(num){return this.cmpn(num)===1;};BN.prototype.gt=function gt(num){return this.cmp(num)===1;};BN.prototype.gten=function gten(num){return this.cmpn(num)>=0;};BN.prototype.gte=function gte(num){return this.cmp(num)>=0;};BN.prototype.ltn=function ltn(num){return this.cmpn(num)===-1;};BN.prototype.lt=function lt(num){return this.cmp(num)===-1;};BN.prototype.lten=function lten(num){return this.cmpn(num)<=0;};BN.prototype.lte=function lte(num){return this.cmp(num)<=0;};BN.prototype.eqn=function eqn(num){return this.cmpn(num)===0;};BN.prototype.eq=function eq(num){return this.cmp(num)===0;};// // A reduce context, could be using montgomery or something better, depending // on the `m` itself. // BN.red=function red(num){return new Red(num);};BN.prototype.toRed=function toRed(ctx){assert(!this.red,'Already a number in reduction context');assert(this.negative===0,'red works only with positives');return ctx.convertTo(this)._forceRed(ctx);};BN.prototype.fromRed=function fromRed(){assert(this.red,'fromRed works only with numbers in reduction context');return this.red.convertFrom(this);};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this;};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,'Already a number in reduction context');return this._forceRed(ctx);};BN.prototype.redAdd=function redAdd(num){assert(this.red,'redAdd works only with red numbers');return this.red.add(this,num);};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,'redIAdd works only with red numbers');return this.red.iadd(this,num);};BN.prototype.redSub=function redSub(num){assert(this.red,'redSub works only with red numbers');return this.red.sub(this,num);};BN.prototype.redISub=function redISub(num){assert(this.red,'redISub works only with red numbers');return this.red.isub(this,num);};BN.prototype.redShl=function redShl(num){assert(this.red,'redShl works only with red numbers');return this.red.shl(this,num);};BN.prototype.redMul=function redMul(num){assert(this.red,'redMul works only with red numbers');this.red._verify2(this,num);return this.red.mul(this,num);};BN.prototype.redIMul=function redIMul(num){assert(this.red,'redMul works only with red numbers');this.red._verify2(this,num);return this.red.imul(this,num);};BN.prototype.redSqr=function redSqr(){assert(this.red,'redSqr works only with red numbers');this.red._verify1(this);return this.red.sqr(this);};BN.prototype.redISqr=function redISqr(){assert(this.red,'redISqr works only with red numbers');this.red._verify1(this);return this.red.isqr(this);};// Square root over p BN.prototype.redSqrt=function redSqrt(){assert(this.red,'redSqrt works only with red numbers');this.red._verify1(this);return this.red.sqrt(this);};BN.prototype.redInvm=function redInvm(){assert(this.red,'redInvm works only with red numbers');this.red._verify1(this);return this.red.invm(this);};// Return negative clone of `this` % `red modulo` BN.prototype.redNeg=function redNeg(){assert(this.red,'redNeg works only with red numbers');this.red._verify1(this);return this.red.neg(this);};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,'redPow(normalNum)');this.red._verify1(this);return this.red.pow(this,num);};// Prime numbers with efficient reduction var primes={k256:null,p224:null,p192:null,p25519:null};// Pseudo-Mersenne prime function MPrime(name,p){// P = 2 ^ N - K this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp();}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp;};MPrime.prototype.ireduce=function ireduce(num){// Assumes that `num` is less than `P^2` // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength();}while(rlen>this.n);var cmp=rlen0){r.isub(this.p);}else{if(r.strip!==undefined){// r is a BN v4 instance r.strip();}else{// r is a BN v5 instance r._strip();}}return r;};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out);};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k);};function K256(){MPrime.call(this,'k256','ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');}inherits(K256,MPrime);K256.prototype.split=function split(input,output){// 256 = 9 * 26 + 22 var mask=0x3fffff;var outLen=Math.min(input.length,9);for(var i=0;i>>22;prev=next;}prev>>>=22;input.words[i-10]=prev;if(prev===0&&input.length>10){input.length-=10;}else{input.length-=9;}};K256.prototype.imulK=function imulK(num){// K = 0x1000003d1 = [ 0x40, 0x3d1 ] num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;// bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 var lo=0;for(var i=0;i>>=26;num.words[i]=lo;carry=hi;}if(carry!==0){num.words[num.length++]=carry;}return num;};// Exported mostly for testing purposes, use plain name instead BN._prime=function prime(name){// Cached version of prime if(primes[name])return primes[name];var prime;if(name==='k256'){prime=new K256();}else if(name==='p224'){prime=new P224();}else if(name==='p192'){prime=new P192();}else if(name==='p25519'){prime=new P25519();}else{throw new Error('Unknown prime '+name);}primes[name]=prime;return prime;};// // Base reduction engine // function Red(m){if(typeof m==='string'){var prime=BN._prime(m);this.m=prime.p;this.prime=prime;}else{assert(m.gtn(1),'modulus must be greater than 1');this.m=m;this.prime=null;}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,'red works only with positives');assert(a.red,'red works only with red numbers');};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,'red works only with positives');assert(a.red&&a.red===b.red,'red works only with red numbers');};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);move(a,a.umod(this.m)._forceRed(this));return a;};Red.prototype.neg=function neg(a){if(a.isZero()){return a.clone();}return this.m.sub(a)._forceRed(this);};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0){res.isub(this.m);}return res._forceRed(this);};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0){res.isub(this.m);}return res;};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0){res.iadd(this.m);}return res._forceRed(this);};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0){res.iadd(this.m);}return res;};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num));};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b));};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b));};Red.prototype.isqr=function isqr(a){return this.imul(a,a.clone());};Red.prototype.sqr=function sqr(a){return this.mul(a,a);};Red.prototype.sqrt=function sqrt(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);// Fast case if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow);}// Tonelli-Shanks algorithm (Totally unoptimized and slow) // // Find Q and S, that Q * 2 ^ S = (P - 1) var q=this.m.subn(1);var s=0;while(!q.isZero()&&q.andln(1)===0){s++;q.iushrn(1);}assert(!q.isZero());var one=new BN(1).toRed(this);var nOne=one.redNeg();// Find quadratic non-residue // NOTE: Max is such because of generalized Riemann hypothesis. var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0){z.redIAdd(nOne);}var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++){tmp=tmp.redSqr();}assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0]){res=this.sqr(res);}if(bit===0&¤t===0){currentLen=0;continue;}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0;}start=26;}return res;};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);return r===num?r.clone():r;};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res;};// // Montgomery method engine // BN.mont=function mont(num){return new Mont(num);};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26;}this.r=new BN(1).iushln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r._invmp(this.m);this.minv=this.rinv.mul(this.r).isubn(1).div(this.m);this.minv=this.minv.umod(this.r);this.minv=this.r.sub(this.minv);}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift));};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r;};Mont.prototype.imul=function imul(a,b){if(a.isZero()||b.isZero()){a.words[0]=0;a.length=1;return a;}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m);}else if(u.cmpn(0)<0){res=u.iadd(this.m);}return res._forceRed(this);};Mont.prototype.mul=function mul(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m);}else if(u.cmpn(0)<0){res=u.iadd(this.m);}return res._forceRed(this);};Mont.prototype.invm=function invm(a){// (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this);};})(typeof module==='undefined'||module,this);},{"buffer":183}],182:[function(require,module,exports){var r;module.exports=function rand(len){if(!r)r=new Rand(null);return r.generate(len);};function Rand(rand){this.rand=rand;}module.exports.Rand=Rand;Rand.prototype.generate=function generate(len){return this._rand(len);};// Emulate crypto API using randy Rand.prototype._rand=function _rand(n){if(this.rand.getBytes)return this.rand.getBytes(n);var res=new Uint8Array(n);for(var i=0;i>>24]^SUB_MIX1[s1>>>16&0xff]^SUB_MIX2[s2>>>8&0xff]^SUB_MIX3[s3&0xff]^keySchedule[ksRow++];t1=SUB_MIX0[s1>>>24]^SUB_MIX1[s2>>>16&0xff]^SUB_MIX2[s3>>>8&0xff]^SUB_MIX3[s0&0xff]^keySchedule[ksRow++];t2=SUB_MIX0[s2>>>24]^SUB_MIX1[s3>>>16&0xff]^SUB_MIX2[s0>>>8&0xff]^SUB_MIX3[s1&0xff]^keySchedule[ksRow++];t3=SUB_MIX0[s3>>>24]^SUB_MIX1[s0>>>16&0xff]^SUB_MIX2[s1>>>8&0xff]^SUB_MIX3[s2&0xff]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3;}t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&0xff]<<16|SBOX[s2>>>8&0xff]<<8|SBOX[s3&0xff])^keySchedule[ksRow++];t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&0xff]<<16|SBOX[s3>>>8&0xff]<<8|SBOX[s0&0xff])^keySchedule[ksRow++];t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&0xff]<<16|SBOX[s0>>>8&0xff]<<8|SBOX[s1&0xff])^keySchedule[ksRow++];t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&0xff]<<16|SBOX[s1>>>8&0xff]<<8|SBOX[s2&0xff])^keySchedule[ksRow++];t0=t0>>>0;t1=t1>>>0;t2=t2>>>0;t3=t3>>>0;return[t0,t1,t2,t3];}// AES constants var RCON=[0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36];var G=function(){// Compute double table var d=new Array(256);for(var j=0;j<256;j++){if(j<128){d[j]=j<<1;}else{d[j]=j<<1^0x11b;}}var SBOX=[];var INV_SBOX=[];var SUB_MIX=[[],[],[],[]];var INV_SUB_MIX=[[],[],[],[]];// Walk GF(2^8) var x=0;var xi=0;for(var i=0;i<256;++i){// Compute sbox var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^sx&0xff^0x63;SBOX[x]=sx;INV_SBOX[sx]=x;// Compute multiplication var x2=d[x];var x4=d[x2];var x8=d[x4];// Compute sub bytes, mix columns tables var t=d[sx]*0x101^sx*0x1010100;SUB_MIX[0][x]=t<<24|t>>>8;SUB_MIX[1][x]=t<<16|t>>>16;SUB_MIX[2][x]=t<<8|t>>>24;SUB_MIX[3][x]=t;// Compute inv sub bytes, inv mix columns tables t=x8*0x1010101^x4*0x10001^x2*0x101^x*0x1010100;INV_SUB_MIX[0][sx]=t<<24|t>>>8;INV_SUB_MIX[1][sx]=t<<16|t>>>16;INV_SUB_MIX[2][sx]=t<<8|t>>>24;INV_SUB_MIX[3][sx]=t;if(x===0){x=xi=1;}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]];}}return{SBOX:SBOX,INV_SBOX:INV_SBOX,SUB_MIX:SUB_MIX,INV_SUB_MIX:INV_SUB_MIX};}();function AES(key){this._key=asUInt32Array(key);this._reset();}AES.blockSize=4*4;AES.keySize=256/8;AES.prototype.blockSize=AES.blockSize;AES.prototype.keySize=AES.keySize;AES.prototype._reset=function(){var keyWords=this._key;var keySize=keyWords.length;var nRounds=keySize+6;var ksRows=(nRounds+1)*4;var keySchedule=[];for(var k=0;k>>24;t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&0xff]<<16|G.SBOX[t>>>8&0xff]<<8|G.SBOX[t&0xff];t^=RCON[k/keySize|0]<<24;}else if(keySize>6&&k%keySize===4){t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&0xff]<<16|G.SBOX[t>>>8&0xff]<<8|G.SBOX[t&0xff];}keySchedule[k]=keySchedule[k-keySize]^t;}var invKeySchedule=[];for(var ik=0;ik>>24]]^G.INV_SUB_MIX[1][G.SBOX[tt>>>16&0xff]]^G.INV_SUB_MIX[2][G.SBOX[tt>>>8&0xff]]^G.INV_SUB_MIX[3][G.SBOX[tt&0xff]];}}this._nRounds=nRounds;this._keySchedule=keySchedule;this._invKeySchedule=invKeySchedule;};AES.prototype.encryptBlockRaw=function(M){M=asUInt32Array(M);return cryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds);};AES.prototype.encryptBlock=function(M){var out=this.encryptBlockRaw(M);var buf=Buffer.allocUnsafe(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf;};AES.prototype.decryptBlock=function(M){M=asUInt32Array(M);// swap var m1=M[1];M[1]=M[3];M[3]=m1;var out=cryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds);var buf=Buffer.allocUnsafe(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[3],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[1],12);return buf;};AES.prototype.scrub=function(){scrubVec(this._keySchedule);scrubVec(this._invKeySchedule);scrubVec(this._key);};module.exports.AES=AES;},{"safe-buffer":470}],185:[function(require,module,exports){var aes=require('./aes');var Buffer=require('safe-buffer').Buffer;var Transform=require('cipher-base');var inherits=require('inherits');var GHASH=require('./ghash');var xor=require('buffer-xor');var incr32=require('./incr32');function xorTest(a,b){var out=0;if(a.length!==b.length)out++;var len=Math.min(a.length,b.length);for(var i=0;i16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out;}}else{if(this.cache.length>=16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out;}}return null;};Splitter.prototype.flush=function(){if(this.cache.length)return this.cache;};function unpad(last){var padded=last[15];if(padded<1||padded>16){throw new Error('unable to decrypt data');}var i=-1;while(++i15){var out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out;}return null;};Splitter.prototype.flush=function(){var len=16-this.cache.length;var padBuff=Buffer.allocUnsafe(len);var i=-1;while(++i>>0,0);buf.writeUInt32BE(out[1]>>>0,4);buf.writeUInt32BE(out[2]>>>0,8);buf.writeUInt32BE(out[3]>>>0,12);return buf;}function GHASH(key){this.h=key;this.state=Buffer.alloc(16,0);this.cache=Buffer.allocUnsafe(0);}// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html // by Juho Vähä-Herttua GHASH.prototype.ghash=function(block){var i=-1;while(++i> 1 for(j=3;j>0;j--){Vi[j]=Vi[j]>>>1|(Vi[j-1]&1)<<31;}Vi[0]=Vi[0]>>>1;// If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R if(lsbVi){Vi[0]=Vi[0]^0xe1<<24;}}this.state=fromArray(Zi);};GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);var chunk;while(this.cache.length>=16){chunk=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(chunk);}};GHASH.prototype.final=function(abl,bl){if(this.cache.length){this.ghash(Buffer.concat([this.cache,ZEROES],16));}this.ghash(fromArray([0,abl,0,bl]));return this.state;};module.exports=GHASH;},{"safe-buffer":470}],190:[function(require,module,exports){function incr32(iv){var len=iv.length;var item;while(len--){item=iv.readUInt8(len);if(item===255){iv.writeUInt8(0,len);}else{item++;iv.writeUInt8(item,len);break;}}}module.exports=incr32;},{}],191:[function(require,module,exports){var xor=require('buffer-xor');exports.encrypt=function(self,block){var data=xor(block,self._prev);self._prev=self._cipher.encryptBlock(data);return self._prev;};exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad);};},{"buffer-xor":215}],192:[function(require,module,exports){var Buffer=require('safe-buffer').Buffer;var xor=require('buffer-xor');function encryptStart(self,data,decrypt){var len=data.length;var out=xor(data,self._cache);self._cache=self._cache.slice(len);self._prev=Buffer.concat([self._prev,decrypt?data:out]);return out;}exports.encrypt=function(self,data,decrypt){var out=Buffer.allocUnsafe(0);var len;while(data.length){if(self._cache.length===0){self._cache=self._cipher.encryptBlock(self._prev);self._prev=Buffer.allocUnsafe(0);}if(self._cache.length<=data.length){len=self._cache.length;out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]);data=data.slice(len);}else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break;}}return out;};},{"buffer-xor":215,"safe-buffer":470}],193:[function(require,module,exports){var Buffer=require('safe-buffer').Buffer;function encryptByte(self,byteParam,decrypt){var pad;var i=-1;var len=8;var out=0;var bit,value;while(++i>i%8;self._prev=shiftIn(self._prev,decrypt?bit:value);}return out;}function shiftIn(buffer,value){var len=buffer.length;var i=-1;var out=Buffer.allocUnsafe(buffer.length);buffer=Buffer.concat([buffer,Buffer.from([value])]);while(++i>7;}return out;}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=Buffer.allocUnsafe(len);var i=-1;while(++i=0||!r.umod(priv.prime1)||!r.umod(priv.prime2)){r=new bn(randomBytes(len));}return r;}}).call(this,require("buffer").Buffer);},{"bn.js":205,"buffer":214,"randombytes":451}],205:[function(require,module,exports){arguments[4][179][0].apply(exports,arguments);},{"buffer":183,"dup":179}],206:[function(require,module,exports){module.exports=require('./browser/algorithms.json');},{"./browser/algorithms.json":207}],207:[function(require,module,exports){module.exports={"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}};},{}],208:[function(require,module,exports){module.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"};},{}],209:[function(require,module,exports){var Buffer=require('safe-buffer').Buffer;var createHash=require('create-hash');var stream=require('readable-stream');var inherits=require('inherits');var sign=require('./sign');var verify=require('./verify');var algorithms=require('./algorithms.json');Object.keys(algorithms).forEach(function(key){algorithms[key].id=Buffer.from(algorithms[key].id,'hex');algorithms[key.toLowerCase()]=algorithms[key];});function Sign(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error('Unknown message digest');this._hashType=data.hash;this._hash=createHash(data.hash);this._tag=data.id;this._signType=data.sign;}inherits(Sign,stream.Writable);Sign.prototype._write=function _write(data,_,done){this._hash.update(data);done();};Sign.prototype.update=function update(data,enc){if(typeof data==='string')data=Buffer.from(data,enc);this._hash.update(data);return this;};Sign.prototype.sign=function signMethod(key,enc){this.end();var hash=this._hash.digest();var sig=sign(hash,key,this._hashType,this._signType,this._tag);return enc?sig.toString(enc):sig;};function Verify(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error('Unknown message digest');this._hash=createHash(data.hash);this._tag=data.id;this._signType=data.sign;}inherits(Verify,stream.Writable);Verify.prototype._write=function _write(data,_,done){this._hash.update(data);done();};Verify.prototype.update=function update(data,enc){if(typeof data==='string')data=Buffer.from(data,enc);this._hash.update(data);return this;};Verify.prototype.verify=function verifyMethod(key,sig,enc){if(typeof sig==='string')sig=Buffer.from(sig,enc);this.end();var hash=this._hash.digest();return verify(sig,hash,key,this._signType,this._tag);};function createSign(algorithm){return new Sign(algorithm);}function createVerify(algorithm){return new Verify(algorithm);}module.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify};},{"./algorithms.json":207,"./sign":210,"./verify":211,"create-hash":308,"inherits":364,"readable-stream":467,"safe-buffer":212}],210:[function(require,module,exports){// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var Buffer=require('safe-buffer').Buffer;var createHmac=require('create-hmac');var crt=require('browserify-rsa');var EC=require('elliptic').ec;var BN=require('bn.js');var parseKeys=require('parse-asn1');var curves=require('./curves.json');function sign(hash,key,hashType,signType,tag){var priv=parseKeys(key);if(priv.curve){// rsa keys can be interpreted as ecdsa ones in openssl if(signType!=='ecdsa'&&signType!=='ecdsa/rsa')throw new Error('wrong private key type');return ecSign(hash,priv);}else if(priv.type==='dsa'){if(signType!=='dsa')throw new Error('wrong private key type');return dsaSign(hash,priv,hashType);}else{if(signType!=='rsa'&&signType!=='ecdsa/rsa')throw new Error('wrong private key type');}hash=Buffer.concat([tag,hash]);var len=priv.modulus.byteLength();var pad=[0,1];while(hash.length+pad.length+10)bits.ishrn(shift);return bits;}function bits2octets(bits,q){bits=bits2int(bits,q);bits=bits.mod(q);var out=Buffer.from(bits.toArray());if(out.length=q)throw new Error('invalid sig');}module.exports=verify;},{"./curves.json":208,"bn.js":181,"elliptic":327,"parse-asn1":436,"safe-buffer":212}],212:[function(require,module,exports){/*! safe-buffer. MIT License. Feross Aboukhadijeh */ /* eslint-disable node/no-deprecated-api */var buffer=require('buffer');var Buffer=buffer.Buffer;// alternative to using Object.keys for old browsers function copyProps(src,dst){for(var key in src){dst[key]=src[key];}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer;}else{// Copy properties from require('buffer') copyProps(buffer,exports);exports.Buffer=SafeBuffer;}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length);}SafeBuffer.prototype=Object.create(Buffer.prototype);// Copy static methods from Buffer copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==='number'){throw new TypeError('Argument must not be a number');}return Buffer(arg,encodingOrOffset,length);};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==='string'){buf.fill(fill,encoding);}else{buf.fill(fill);}}else{buf.fill(0);}return buf;};SafeBuffer.allocUnsafe=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return Buffer(size);};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return buffer.SlowBuffer(size);};},{"buffer":214}],213:[function(require,module,exports){arguments[4][183][0].apply(exports,arguments);},{"dup":183}],214:[function(require,module,exports){(function(Buffer){/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ /* eslint-disable no-proto */'use strict';var base64=require('base64-js');var ieee754=require('ieee754');exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=0x7fffffff;exports.kMaxLength=K_MAX_LENGTH;/** * If `Buffer.TYPED_ARRAY_SUPPORT`: * === true Use Uint8Array implementation (fastest) * === false Print warning and recommend using `buffer` v4.x which has an Object * implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * We report that the browser does not support typed arrays if the are not subclassable * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support * for __proto__ and has a buggy typed array implementation. */Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=='undefined'&&typeof console.error==='function'){console.error('This browser lacks typed array (Uint8Array) support which is required by '+'`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');}function typedArraySupport(){// Can typed array instances can be augmented? try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function foo(){return 42;}};return arr.foo()===42;}catch(e){return false;}}Object.defineProperty(Buffer.prototype,'parent',{enumerable:true,get:function get(){if(!Buffer.isBuffer(this))return undefined;return this.buffer;}});Object.defineProperty(Buffer.prototype,'offset',{enumerable:true,get:function get(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset;}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"');}// Return an augmented `Uint8Array` instance var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf;}/** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */function Buffer(arg,encodingOrOffset,length){// Common case. if(typeof arg==='number'){if(typeof encodingOrOffset==='string'){throw new TypeError('The "string" argument must be of type string. Received type number');}return allocUnsafe(arg);}return from(arg,encodingOrOffset,length);}// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 if(typeof Symbol!=='undefined'&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false});}Buffer.poolSize=8192;// not used by this implementation function from(value,encodingOrOffset,length){if(typeof value==='string'){return fromString(value,encodingOrOffset);}if(ArrayBuffer.isView(value)){return fromArrayLike(value);}if(value==null){throw TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, '+'or Array-like Object. Received type '+_typeof2(value));}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length);}if(typeof value==='number'){throw new TypeError('The "value" argument must not be of type number. Received type number');}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length);}var b=fromObject(value);if(b)return b;if(typeof Symbol!=='undefined'&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==='function'){return Buffer.from(value[Symbol.toPrimitive]('string'),encodingOrOffset,length);}throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, '+'or Array-like Object. Received type '+_typeof2(value));}/** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length);};// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: // https://github.com/feross/buffer/pull/148 Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=='number'){throw new TypeError('"size" argument must be of type number');}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"');}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size);}if(fill!==undefined){// Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding==='string'?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill);}return createBuffer(size);}/** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding);};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0);}/** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */Buffer.allocUnsafe=function(size){return allocUnsafe(size);};/** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size);};function fromString(string,encoding){if(typeof encoding!=='string'||encoding===''){encoding='utf8';}if(!Buffer.isEncoding(encoding)){throw new TypeError('Unknown encoding: '+encoding);}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){// Writing a hex string, for example, that contains invalid characters will // cause everything after the first invalid character to be ignored. (e.g. // 'abxxcd' will be treated as 'ab') buf=buf.slice(0,actual);}return buf;}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i=K_MAX_LENGTH){throw new RangeError('Attempt to allocate Buffer larger than maximum '+'size: 0x'+K_MAX_LENGTH.toString(16)+' bytes');}return length|0;}function SlowBuffer(length){if(+length!=length){// eslint-disable-line eqeqeq length=0;}return Buffer.alloc(+length);}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype;// so Buffer.isBuffer(Buffer.prototype) will be false };Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;// Use a for loop to avoid recursion var loweredCase=false;for(;;){switch(encoding){case'ascii':case'latin1':case'binary':return len;case'utf8':case'utf-8':return utf8ToBytes(string).length;case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return len*2;case'hex':return len>>>1;case'base64':return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length;// assume utf8 }encoding=(''+encoding).toLowerCase();loweredCase=true;}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;// No need to verify that "this.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. // undefined is handled specially as per ECMA-262 6th Edition, // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. if(start===undefined||start<0){start=0;}// Return early if start > this.length. Done here to prevent potential uint32 // coercion fail below. if(start>this.length){return'';}if(end===undefined||end>this.length){end=this.length;}if(end<=0){return'';}// Force coersion to uint32. This will also coerce falsey/NaN values to 0. end>>>=0;start>>>=0;if(end<=start){return'';}if(!encoding)encoding='utf8';while(true){switch(encoding){case'hex':return hexSlice(this,start,end);case'utf8':case'utf-8':return utf8Slice(this,start,end);case'ascii':return asciiSlice(this,start,end);case'latin1':case'binary':return latin1Slice(this,start,end);case'base64':return base64Slice(this,start,end);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(encoding+'').toLowerCase();loweredCase=true;}}}// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) // to detect a Buffer instance. It's not possible to use `instanceof Buffer` // reliably in a browserify context because there could be multiple different // copies of the 'buffer' package in use. This method works even for Buffer // instances that were created from another copy of the `buffer` package. // See: https://github.com/feross/buffer/issues/154 Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i;}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError('Buffer size must be a multiple of 16-bits');}for(var i=0;imax)str+=' ... ';return'';};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength);}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+'Received type '+_typeof2(target));}if(start===undefined){start=0;}if(end===undefined){end=target?target.length:0;}if(thisStart===undefined){thisStart=0;}if(thisEnd===undefined){thisEnd=this.length;}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError('out of range index');}if(thisStart>=thisEnd&&start>=end){return 0;}if(thisStart>=thisEnd){return-1;}if(start>=end){return 1;}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant is val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){// Empty buffer means no match if(buffer.length===0)return-1;// Normalize byteOffset if(typeof byteOffset==='string'){encoding=byteOffset;byteOffset=0;}else if(byteOffset>0x7fffffff){byteOffset=0x7fffffff;}else if(byteOffset<-0x80000000){byteOffset=-0x80000000;}byteOffset=+byteOffset;// Coerce to Number. if(numberIsNaN(byteOffset)){// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer byteOffset=dir?0:buffer.length-1;}// Normalize byteOffset: negative offsets start from the end of the buffer if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1;}else if(byteOffset<0){if(dir)byteOffset=0;else return-1;}// Normalize val if(typeof val==='string'){val=Buffer.from(val,encoding);}// Finally, search either indexOf (if dir is true) or lastIndexOf if(Buffer.isBuffer(val)){// Special case: looking for empty string/buffer always fails if(val.length===0){return-1;}return arrayIndexOf(buffer,val,byteOffset,encoding,dir);}else if(typeof val==='number'){val=val&0xFF;// Search for a byte value [0-255] if(typeof Uint8Array.prototype.indexOf==='function'){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset);}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset);}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir);}throw new TypeError('val must be string, number or Buffer');}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==='ucs2'||encoding==='ucs-2'||encoding==='utf16le'||encoding==='utf-16le'){if(arr.length<2||val.length<2){return-1;}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2;}}function read(buf,i){if(indexSize===1){return buf[i];}else{return buf.readUInt16BE(i*indexSize);}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining;}}var strLen=string.length;if(length>strLen/2){length=strLen/2;}for(var i=0;i>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding='utf8';}else{encoding=length;length=undefined;}}else{throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError('Attempt to write outside buffer bounds');}if(!encoding)encoding='utf8';var loweredCase=false;for(;;){switch(encoding){case'hex':return hexWrite(this,string,offset,length);case'utf8':case'utf-8':return utf8Write(this,string,offset,length);case'ascii':return asciiWrite(this,string,offset,length);case'latin1':case'binary':return latin1Write(this,string,offset,length);case'base64':// Warning: maxLength not taken into account in base64Write return base64Write(this,string,offset,length);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(''+encoding).toLowerCase();loweredCase=true;}}};Buffer.prototype.toJSON=function toJSON(){return{type:'Buffer',data:Array.prototype.slice.call(this._arr||this,0)};};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf);}else{return base64.fromByteArray(buf.slice(start,end));}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i0xEF?4:firstByte>0xDF?3:firstByte>0xBF?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<0x80){codePoint=firstByte;}break;case 2:secondByte=buf[i+1];if((secondByte&0xC0)===0x80){tempCodePoint=(firstByte&0x1F)<<0x6|secondByte&0x3F;if(tempCodePoint>0x7F){codePoint=tempCodePoint;}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0xC|(secondByte&0x3F)<<0x6|thirdByte&0x3F;if(tempCodePoint>0x7FF&&(tempCodePoint<0xD800||tempCodePoint>0xDFFF)){codePoint=tempCodePoint;}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80&&(fourthByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0x12|(secondByte&0x3F)<<0xC|(thirdByte&0x3F)<<0x6|fourthByte&0x3F;if(tempCodePoint>0xFFFF&&tempCodePoint<0x110000){codePoint=tempCodePoint;}}}}if(codePoint===null){// we did not generate a valid codePoint so insert a // replacement char (U+FFFD) and advance only 1 byte codePoint=0xFFFD;bytesPerSequence=1;}else if(codePoint>0xFFFF){// encode to utf16 (surrogate pair dance) codePoint-=0x10000;res.push(codePoint>>>10&0x3FF|0xD800);codePoint=0xDC00|codePoint&0x3FF;}res.push(codePoint);i+=bytesPerSequence;}return decodeCodePointsArray(res);}// Based on http://stackoverflow.com/a/22747272/680742, the browser with // the lowest limit is Chrome, with 0x10000 args. // We go 1 magnitude less, for safety var MAX_ARGUMENTS_LENGTH=0x1000;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints);// avoid extra slice() }// Decode in chunks to avoid "call stack size exceeded". var res='';var i=0;while(ilen)end=len;var out='';for(var i=start;ilen){start=len;}if(end<0){end+=len;if(end<0)end=0;}else if(end>len){end=len;}if(endlength)throw new RangeError('Trying to access beyond buffer length');}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length);}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=0x100)){val+=this[offset+--byteLength]*mul;}return val;};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset];};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8;};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1];};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*0x1000000;};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*0x1000000+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3]);};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=0x100)){val+=this[offset+--i]*mul;}mul*=0x80;if(val>=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&0x80))return this[offset];return(0xff-this[offset]+1)*-1;};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24;};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3];};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4);};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4);};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8);};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8);};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError('Index out of range');}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var mul=1;var i=0;this[offset]=value&0xFF;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var i=byteLength-1;var mul=1;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){this[offset+i]=value/mul&0xFF;}return offset+byteLength;};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,0xff,0);this[offset]=value&0xff;return offset+1;};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);this[offset]=value&0xff;this[offset+1]=value>>>8;return offset+2;};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);this[offset]=value>>>8;this[offset+1]=value&0xff;return offset+2;};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&0xff;return offset+4;};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;return offset+4;};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=0;var mul=1;var sub=0;this[offset]=value&0xFF;while(++i>0)-sub&0xFF;}return offset+byteLength;};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1;}this[offset+i]=(value/mul>>0)-sub&0xFF;}return offset+byteLength;};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,0x7f,-0x80);if(value<0)value=0xff+value+1;this[offset]=value&0xff;return offset+1;};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);this[offset]=value&0xff;this[offset+1]=value>>>8;return offset+2;};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);this[offset]=value>>>8;this[offset+1]=value&0xff;return offset+2;};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);this[offset]=value&0xff;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4;};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);if(value<0)value=0xffffffff+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;return offset+4;};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError('Index out of range');if(offset<0)throw new RangeError('Index out of range');}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e+38,-3.4028234663852886e+38);}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4;}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert);};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert);};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157E+308,-1.7976931348623157E+308);}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8;}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert);};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert);};// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError('argument should be a Buffer');if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError('Index out of range');if(end<0)throw new RangeError('sourceEnd out of bounds');// Are we oob? if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start];}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);}return len;};// Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill=function fill(val,start,end,encoding){// Handle string cases: if(typeof val==='string'){if(typeof start==='string'){encoding=start;start=0;end=this.length;}else if(typeof end==='string'){encoding=end;end=this.length;}if(encoding!==undefined&&typeof encoding!=='string'){throw new TypeError('encoding must be a string');}if(typeof encoding==='string'&&!Buffer.isEncoding(encoding)){throw new TypeError('Unknown encoding: '+encoding);}if(val.length===1){var code=val.charCodeAt(0);if(encoding==='utf8'&&code<128||encoding==='latin1'){// Fast path: If `val` fits into a single byte, use that numeric value. val=code;}}}else if(typeof val==='number'){val=val&255;}// Invalid ranges are not set to a default, so can range check early. if(start<0||this.length>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==='number'){for(i=start;i0xD7FF&&codePoint<0xE000){// last char was a lead if(!leadSurrogate){// no lead yet if(codePoint>0xDBFF){// unexpected trail if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}else if(i+1===length){// unpaired lead if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}// valid lead leadSurrogate=codePoint;continue;}// 2 leads in a row if(codePoint<0xDC00){if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);leadSurrogate=codePoint;continue;}// valid surrogate pair codePoint=(leadSurrogate-0xD800<<10|codePoint-0xDC00)+0x10000;}else if(leadSurrogate){// valid bmp char, but last char was a lead if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);}leadSurrogate=null;// encode utf8 if(codePoint<0x80){if((units-=1)<0)break;bytes.push(codePoint);}else if(codePoint<0x800){if((units-=2)<0)break;bytes.push(codePoint>>0x6|0xC0,codePoint&0x3F|0x80);}else if(codePoint<0x10000){if((units-=3)<0)break;bytes.push(codePoint>>0xC|0xE0,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else if(codePoint<0x110000){if((units-=4)<0)break;bytes.push(codePoint>>0x12|0xF0,codePoint>>0xC&0x3F|0x80,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else{throw new Error('Invalid code point');}}return bytes;}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi);}return byteArray;}function base64ToBytes(str){return base64.toByteArray(base64clean(str));}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i];}return i;}// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass // the `instanceof` check but they should be treated as of that type. // See: https://github.com/feross/buffer/issues/166 function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name;}function numberIsNaN(obj){// For IE11 support return obj!==obj;// eslint-disable-line no-self-compare }}).call(this,require("buffer").Buffer);},{"base64-js":180,"buffer":214,"ieee754":362}],215:[function(require,module,exports){(function(Buffer){module.exports=function xor(a,b){var length=Math.min(a.length,b.length);var buffer=new Buffer(length);for(var i=0;iindex){value=O[index++];// eslint-disable-next-line no-self-compare if(value!=value)return true;// Array#indexOf ignores holes, Array#includes - not }else for(;length>index;index++){if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;}return!IS_INCLUDES&&-1;};};module.exports={// `Array.prototype.includes` method // https://tc39.github.io/ecma262/#sec-array.prototype.includes includes:createMethod(true),// `Array.prototype.indexOf` method // https://tc39.github.io/ecma262/#sec-array.prototype.indexof indexOf:createMethod(false)};},{"../internals/to-absolute-index":289,"../internals/to-indexed-object":290,"../internals/to-length":292}],221:[function(require,module,exports){var bind=require('../internals/function-bind-context');var IndexedObject=require('../internals/indexed-object');var toObject=require('../internals/to-object');var toLength=require('../internals/to-length');var arraySpeciesCreate=require('../internals/array-species-create');var push=[].push;// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation var createMethod=function createMethod(TYPE){var IS_MAP=TYPE==1;var IS_FILTER=TYPE==2;var IS_SOME=TYPE==3;var IS_EVERY=TYPE==4;var IS_FIND_INDEX=TYPE==6;var NO_HOLES=TYPE==5||IS_FIND_INDEX;return function($this,callbackfn,that,specificCreate){var O=toObject($this);var self=IndexedObject(O);var boundFunction=bind(callbackfn,that,3);var length=toLength(self.length);var index=0;var create=specificCreate||arraySpeciesCreate;var target=IS_MAP?create($this,length):IS_FILTER?create($this,0):undefined;var value,result;for(;length>index;index++){if(NO_HOLES||index in self){value=self[index];result=boundFunction(value,index,O);if(TYPE){if(IS_MAP)target[index]=result;// map else if(result)switch(TYPE){case 3:return true;// some case 5:return value;// find case 6:return index;// findIndex case 2:push.call(target,value);// filter }else if(IS_EVERY)return false;// every }}}return IS_FIND_INDEX?-1:IS_SOME||IS_EVERY?IS_EVERY:target;};};module.exports={// `Array.prototype.forEach` method // https://tc39.github.io/ecma262/#sec-array.prototype.foreach forEach:createMethod(0),// `Array.prototype.map` method // https://tc39.github.io/ecma262/#sec-array.prototype.map map:createMethod(1),// `Array.prototype.filter` method // https://tc39.github.io/ecma262/#sec-array.prototype.filter filter:createMethod(2),// `Array.prototype.some` method // https://tc39.github.io/ecma262/#sec-array.prototype.some some:createMethod(3),// `Array.prototype.every` method // https://tc39.github.io/ecma262/#sec-array.prototype.every every:createMethod(4),// `Array.prototype.find` method // https://tc39.github.io/ecma262/#sec-array.prototype.find find:createMethod(5),// `Array.prototype.findIndex` method // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex findIndex:createMethod(6)};},{"../internals/array-species-create":222,"../internals/function-bind-context":239,"../internals/indexed-object":248,"../internals/to-length":292,"../internals/to-object":293}],222:[function(require,module,exports){var isObject=require('../internals/is-object');var isArray=require('../internals/is-array');var wellKnownSymbol=require('../internals/well-known-symbol');var SPECIES=wellKnownSymbol('species');// `ArraySpeciesCreate` abstract operation // https://tc39.github.io/ecma262/#sec-arrayspeciescreate module.exports=function(originalArray,length){var C;if(isArray(originalArray)){C=originalArray.constructor;// cross-realm fallback if(typeof C=='function'&&(C===Array||isArray(C.prototype)))C=undefined;else if(isObject(C)){C=C[SPECIES];if(C===null)C=undefined;}}return new(C===undefined?Array:C)(length===0?0:length);};},{"../internals/is-array":252,"../internals/is-object":254,"../internals/well-known-symbol":299}],223:[function(require,module,exports){var anObject=require('../internals/an-object');// call something on iterator step with safe closing on error module.exports=function(iterator,fn,value,ENTRIES){try{return ENTRIES?fn(anObject(value)[0],value[1]):fn(value);// 7.4.6 IteratorClose(iterator, completion) }catch(error){var returnMethod=iterator['return'];if(returnMethod!==undefined)anObject(returnMethod.call(iterator));throw error;}};},{"../internals/an-object":219}],224:[function(require,module,exports){var wellKnownSymbol=require('../internals/well-known-symbol');var ITERATOR=wellKnownSymbol('iterator');var SAFE_CLOSING=false;try{var called=0;var iteratorWithReturn={next:function next(){return{done:!!called++};},'return':function _return(){SAFE_CLOSING=true;}};iteratorWithReturn[ITERATOR]=function(){return this;};// eslint-disable-next-line no-throw-literal Array.from(iteratorWithReturn,function(){throw 2;});}catch(error){/* empty */}module.exports=function(exec,SKIP_CLOSING){if(!SKIP_CLOSING&&!SAFE_CLOSING)return false;var ITERATION_SUPPORT=false;try{var object={};object[ITERATOR]=function(){return{next:function next(){return{done:ITERATION_SUPPORT=true};}};};exec(object);}catch(error){/* empty */}return ITERATION_SUPPORT;};},{"../internals/well-known-symbol":299}],225:[function(require,module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1);};},{}],226:[function(require,module,exports){var TO_STRING_TAG_SUPPORT=require('../internals/to-string-tag-support');var classofRaw=require('../internals/classof-raw');var wellKnownSymbol=require('../internals/well-known-symbol');var TO_STRING_TAG=wellKnownSymbol('toStringTag');// ES3 wrong here var CORRECT_ARGUMENTS=classofRaw(function(){return arguments;}())=='Arguments';// fallback for IE11 Script Access Denied error var tryGet=function tryGet(it,key){try{return it[key];}catch(error){/* empty */}};// getting tag from ES6+ `Object.prototype.toString` module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===undefined?'Undefined':it===null?'Null'// @@toStringTag case :typeof(tag=tryGet(O=Object(it),TO_STRING_TAG))=='string'?tag// builtinTag case :CORRECT_ARGUMENTS?classofRaw(O)// ES3 arguments fallback :(result=classofRaw(O))=='Object'&&typeof O.callee=='function'?'Arguments':result;};},{"../internals/classof-raw":225,"../internals/to-string-tag-support":295,"../internals/well-known-symbol":299}],227:[function(require,module,exports){var has=require('../internals/has');var ownKeys=require('../internals/own-keys');var getOwnPropertyDescriptorModule=require('../internals/object-get-own-property-descriptor');var definePropertyModule=require('../internals/object-define-property');module.exports=function(target,source){var keys=ownKeys(source);var defineProperty=definePropertyModule.f;var getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f;for(var i=0;i=74){match=userAgent.match(/Chrome\/(\d+)/);if(match)version=match[1];}}module.exports=version&&+version;},{"../internals/engine-user-agent":234,"../internals/global":242}],236:[function(require,module,exports){// IE8- don't enum bug keys module.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf'];},{}],237:[function(require,module,exports){var global=require('../internals/global');var getOwnPropertyDescriptor=require('../internals/object-get-own-property-descriptor').f;var createNonEnumerableProperty=require('../internals/create-non-enumerable-property');var redefine=require('../internals/redefine');var setGlobal=require('../internals/set-global');var copyConstructorProperties=require('../internals/copy-constructor-properties');var isForced=require('../internals/is-forced');/* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target */module.exports=function(options,source){var TARGET=options.target;var GLOBAL=options.global;var STATIC=options.stat;var FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL){target=global;}else if(STATIC){target=global[TARGET]||setGlobal(TARGET,{});}else{target=(global[TARGET]||{}).prototype;}if(target)for(key in source){sourceProperty=source[key];if(options.noTargetGet){descriptor=getOwnPropertyDescriptor(target,key);targetProperty=descriptor&&descriptor.value;}else targetProperty=target[key];FORCED=isForced(GLOBAL?key:TARGET+(STATIC?'.':'#')+key,options.forced);// contained in target if(!FORCED&&targetProperty!==undefined){if(_typeof2(sourceProperty)===_typeof2(targetProperty))continue;copyConstructorProperties(sourceProperty,targetProperty);}// add a flag to not completely full polyfills if(options.sham||targetProperty&&targetProperty.sham){createNonEnumerableProperty(sourceProperty,'sham',true);}// extend global redefine(target,key,sourceProperty,options);}};},{"../internals/copy-constructor-properties":227,"../internals/create-non-enumerable-property":228,"../internals/global":242,"../internals/is-forced":253,"../internals/object-get-own-property-descriptor":267,"../internals/redefine":279,"../internals/set-global":281}],238:[function(require,module,exports){module.exports=function(exec){try{return!!exec();}catch(error){return true;}};},{}],239:[function(require,module,exports){var aFunction=require('../internals/a-function');// optional / simple context binding module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 0:return function(){return fn.call(that);};case 1:return function(a){return fn.call(that,a);};case 2:return function(a,b){return fn.call(that,a,b);};case 3:return function(a,b,c){return fn.call(that,a,b,c);};}return function()/* ...args */{return fn.apply(that,arguments);};};},{"../internals/a-function":217}],240:[function(require,module,exports){var path=require('../internals/path');var global=require('../internals/global');var aFunction=function aFunction(variable){return typeof variable=='function'?variable:undefined;};module.exports=function(namespace,method){return arguments.length<2?aFunction(path[namespace])||aFunction(global[namespace]):path[namespace]&&path[namespace][method]||global[namespace]&&global[namespace][method];};},{"../internals/global":242,"../internals/path":275}],241:[function(require,module,exports){var classof=require('../internals/classof');var Iterators=require('../internals/iterators');var wellKnownSymbol=require('../internals/well-known-symbol');var ITERATOR=wellKnownSymbol('iterator');module.exports=function(it){if(it!=undefined)return it[ITERATOR]||it['@@iterator']||Iterators[classof(it)];};},{"../internals/classof":226,"../internals/iterators":257,"../internals/well-known-symbol":299}],242:[function(require,module,exports){(function(global){var check=function check(it){return it&&it.Math==Math&⁢};// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports=// eslint-disable-next-line no-undef check((typeof globalThis==="undefined"?"undefined":_typeof2(globalThis))=='object'&&globalThis)||check((typeof window==="undefined"?"undefined":_typeof2(window))=='object'&&window)||check((typeof self==="undefined"?"undefined":_typeof2(self))=='object'&&self)||check(_typeof2(global)=='object'&&global)||// eslint-disable-next-line no-new-func Function('return this')();}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],243:[function(require,module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key);};},{}],244:[function(require,module,exports){module.exports={};},{}],245:[function(require,module,exports){var global=require('../internals/global');module.exports=function(a,b){var console=global.console;if(console&&console.error){arguments.length===1?console.error(a):console.error(a,b);}};},{"../internals/global":242}],246:[function(require,module,exports){var getBuiltIn=require('../internals/get-built-in');module.exports=getBuiltIn('document','documentElement');},{"../internals/get-built-in":240}],247:[function(require,module,exports){var DESCRIPTORS=require('../internals/descriptors');var fails=require('../internals/fails');var createElement=require('../internals/document-create-element');// Thank's IE8 for his funny defineProperty module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement('div'),'a',{get:function get(){return 7;}}).a!=7;});},{"../internals/descriptors":231,"../internals/document-create-element":232,"../internals/fails":238}],248:[function(require,module,exports){var fails=require('../internals/fails');var classof=require('../internals/classof-raw');var split=''.split;// fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports=fails(function(){// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins return!Object('z').propertyIsEnumerable(0);})?function(it){return classof(it)=='String'?split.call(it,''):Object(it);}:Object;},{"../internals/classof-raw":225,"../internals/fails":238}],249:[function(require,module,exports){var store=require('../internals/shared-store');var functionToString=Function.toString;// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper if(typeof store.inspectSource!='function'){store.inspectSource=function(it){return functionToString.call(it);};}module.exports=store.inspectSource;},{"../internals/shared-store":285}],250:[function(require,module,exports){var NATIVE_WEAK_MAP=require('../internals/native-weak-map');var global=require('../internals/global');var isObject=require('../internals/is-object');var createNonEnumerableProperty=require('../internals/create-non-enumerable-property');var objectHas=require('../internals/has');var sharedKey=require('../internals/shared-key');var hiddenKeys=require('../internals/hidden-keys');var WeakMap=global.WeakMap;var set,get,has;var enforce=function enforce(it){return has(it)?get(it):set(it,{});};var getterFor=function getterFor(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE){throw TypeError('Incompatible receiver, '+TYPE+' required');}return state;};};if(NATIVE_WEAK_MAP){var store=new WeakMap();var wmget=store.get;var wmhas=store.has;var wmset=store.set;set=function set(it,metadata){wmset.call(store,it,metadata);return metadata;};get=function get(it){return wmget.call(store,it)||{};};has=function has(it){return wmhas.call(store,it);};}else{var STATE=sharedKey('state');hiddenKeys[STATE]=true;set=function set(it,metadata){createNonEnumerableProperty(it,STATE,metadata);return metadata;};get=function get(it){return objectHas(it,STATE)?it[STATE]:{};};has=function has(it){return objectHas(it,STATE);};}module.exports={set:set,get:get,has:has,enforce:enforce,getterFor:getterFor};},{"../internals/create-non-enumerable-property":228,"../internals/global":242,"../internals/has":243,"../internals/hidden-keys":244,"../internals/is-object":254,"../internals/native-weak-map":261,"../internals/shared-key":284}],251:[function(require,module,exports){var wellKnownSymbol=require('../internals/well-known-symbol');var Iterators=require('../internals/iterators');var ITERATOR=wellKnownSymbol('iterator');var ArrayPrototype=Array.prototype;// check on default Array iterator module.exports=function(it){return it!==undefined&&(Iterators.Array===it||ArrayPrototype[ITERATOR]===it);};},{"../internals/iterators":257,"../internals/well-known-symbol":299}],252:[function(require,module,exports){var classof=require('../internals/classof-raw');// `IsArray` abstract operation // https://tc39.github.io/ecma262/#sec-isarray module.exports=Array.isArray||function isArray(arg){return classof(arg)=='Array';};},{"../internals/classof-raw":225}],253:[function(require,module,exports){var fails=require('../internals/fails');var replacement=/#|\.prototype\./;var isForced=function isForced(feature,detection){var value=data[normalize(feature)];return value==POLYFILL?true:value==NATIVE?false:typeof detection=='function'?fails(detection):!!detection;};var normalize=isForced.normalize=function(string){return String(string).replace(replacement,'.').toLowerCase();};var data=isForced.data={};var NATIVE=isForced.NATIVE='N';var POLYFILL=isForced.POLYFILL='P';module.exports=isForced;},{"../internals/fails":238}],254:[function(require,module,exports){module.exports=function(it){return _typeof2(it)==='object'?it!==null:typeof it==='function';};},{}],255:[function(require,module,exports){module.exports=false;},{}],256:[function(require,module,exports){var anObject=require('../internals/an-object');var isArrayIteratorMethod=require('../internals/is-array-iterator-method');var toLength=require('../internals/to-length');var bind=require('../internals/function-bind-context');var getIteratorMethod=require('../internals/get-iterator-method');var callWithSafeIterationClosing=require('../internals/call-with-safe-iteration-closing');var Result=function Result(stopped,result){this.stopped=stopped;this.result=result;};var iterate=module.exports=function(iterable,fn,that,AS_ENTRIES,IS_ITERATOR){var boundFunction=bind(fn,that,AS_ENTRIES?2:1);var iterator,iterFn,index,length,result,next,step;if(IS_ITERATOR){iterator=iterable;}else{iterFn=getIteratorMethod(iterable);if(typeof iterFn!='function')throw TypeError('Target is not iterable');// optimisation for array iterators if(isArrayIteratorMethod(iterFn)){for(index=0,length=toLength(iterable.length);length>index;index++){result=AS_ENTRIES?boundFunction(anObject(step=iterable[index])[0],step[1]):boundFunction(iterable[index]);if(result&&result instanceof Result)return result;}return new Result(false);}iterator=iterFn.call(iterable);}next=iterator.next;while(!(step=next.call(iterator)).done){result=callWithSafeIterationClosing(iterator,boundFunction,step.value,AS_ENTRIES);if(_typeof2(result)=='object'&&result&&result instanceof Result)return result;}return new Result(false);};iterate.stop=function(result){return new Result(true,result);};},{"../internals/an-object":219,"../internals/call-with-safe-iteration-closing":223,"../internals/function-bind-context":239,"../internals/get-iterator-method":241,"../internals/is-array-iterator-method":251,"../internals/to-length":292}],257:[function(require,module,exports){arguments[4][244][0].apply(exports,arguments);},{"dup":244}],258:[function(require,module,exports){var global=require('../internals/global');var getOwnPropertyDescriptor=require('../internals/object-get-own-property-descriptor').f;var classof=require('../internals/classof-raw');var macrotask=require('../internals/task').set;var IS_IOS=require('../internals/engine-is-ios');var MutationObserver=global.MutationObserver||global.WebKitMutationObserver;var process=global.process;var Promise=global.Promise;var IS_NODE=classof(process)=='process';// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` var queueMicrotaskDescriptor=getOwnPropertyDescriptor(global,'queueMicrotask');var queueMicrotask=queueMicrotaskDescriptor&&queueMicrotaskDescriptor.value;var flush,head,last,notify,toggle,node,promise,then;// modern engines have queueMicrotask method if(!queueMicrotask){flush=function flush(){var parent,fn;if(IS_NODE&&(parent=process.domain))parent.exit();while(head){fn=head.fn;head=head.next;try{fn();}catch(error){if(head)notify();else last=undefined;throw error;}}last=undefined;if(parent)parent.enter();};// Node.js if(IS_NODE){notify=function notify(){process.nextTick(flush);};// browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 }else if(MutationObserver&&!IS_IOS){toggle=true;node=document.createTextNode('');new MutationObserver(flush).observe(node,{characterData:true});notify=function notify(){node.data=toggle=!toggle;};// environments with maybe non-completely correct, but existent Promise }else if(Promise&&Promise.resolve){// Promise.resolve without an argument throws an error in LG WebOS 2 promise=Promise.resolve(undefined);then=promise.then;notify=function notify(){then.call(promise,flush);};// for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessag // - onreadystatechange // - setTimeout }else{notify=function notify(){// strange IE + webpack dev server bug - use .call(global) macrotask.call(global,flush);};}}module.exports=queueMicrotask||function(fn){var task={fn:fn,next:undefined};if(last)last.next=task;if(!head){head=task;notify();}last=task;};},{"../internals/classof-raw":225,"../internals/engine-is-ios":233,"../internals/global":242,"../internals/object-get-own-property-descriptor":267,"../internals/task":288}],259:[function(require,module,exports){var global=require('../internals/global');module.exports=global.Promise;},{"../internals/global":242}],260:[function(require,module,exports){var fails=require('../internals/fails');module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){// Chrome 38 Symbol has incorrect toString conversion // eslint-disable-next-line no-undef return!String(Symbol());});},{"../internals/fails":238}],261:[function(require,module,exports){var global=require('../internals/global');var inspectSource=require('../internals/inspect-source');var WeakMap=global.WeakMap;module.exports=typeof WeakMap==='function'&&/native code/.test(inspectSource(WeakMap));},{"../internals/global":242,"../internals/inspect-source":249}],262:[function(require,module,exports){'use strict';var aFunction=require('../internals/a-function');var PromiseCapability=function PromiseCapability(C){var resolve,reject;this.promise=new C(function($$resolve,$$reject){if(resolve!==undefined||reject!==undefined)throw TypeError('Bad Promise constructor');resolve=$$resolve;reject=$$reject;});this.resolve=aFunction(resolve);this.reject=aFunction(reject);};// 25.4.1.5 NewPromiseCapability(C) module.exports.f=function(C){return new PromiseCapability(C);};},{"../internals/a-function":217}],263:[function(require,module,exports){'use strict';var DESCRIPTORS=require('../internals/descriptors');var fails=require('../internals/fails');var objectKeys=require('../internals/object-keys');var getOwnPropertySymbolsModule=require('../internals/object-get-own-property-symbols');var propertyIsEnumerableModule=require('../internals/object-property-is-enumerable');var toObject=require('../internals/to-object');var IndexedObject=require('../internals/indexed-object');var nativeAssign=Object.assign;var defineProperty=Object.defineProperty;// `Object.assign` method // https://tc39.github.io/ecma262/#sec-object.assign module.exports=!nativeAssign||fails(function(){// should have correct order of operations (Edge bug) if(DESCRIPTORS&&nativeAssign({b:1},nativeAssign(defineProperty({},'a',{enumerable:true,get:function get(){defineProperty(this,'b',{value:3,enumerable:false});}}),{b:2})).b!==1)return true;// should work with symbols and should have deterministic property order (V8 bug) var A={};var B={};// eslint-disable-next-line no-undef var symbol=Symbol();var alphabet='abcdefghijklmnopqrst';A[symbol]=7;alphabet.split('').forEach(function(chr){B[chr]=chr;});return nativeAssign({},A)[symbol]!=7||objectKeys(nativeAssign({},B)).join('')!=alphabet;})?function assign(target,source){// eslint-disable-line no-unused-vars var T=toObject(target);var argumentsLength=arguments.length;var index=1;var getOwnPropertySymbols=getOwnPropertySymbolsModule.f;var propertyIsEnumerable=propertyIsEnumerableModule.f;while(argumentsLength>index){var S=IndexedObject(arguments[index++]);var keys=getOwnPropertySymbols?objectKeys(S).concat(getOwnPropertySymbols(S)):objectKeys(S);var length=keys.length;var j=0;var key;while(length>j){key=keys[j++];if(!DESCRIPTORS||propertyIsEnumerable.call(S,key))T[key]=S[key];}}return T;}:nativeAssign;},{"../internals/descriptors":231,"../internals/fails":238,"../internals/indexed-object":248,"../internals/object-get-own-property-symbols":270,"../internals/object-keys":272,"../internals/object-property-is-enumerable":273,"../internals/to-object":293}],264:[function(require,module,exports){var anObject=require('../internals/an-object');var defineProperties=require('../internals/object-define-properties');var enumBugKeys=require('../internals/enum-bug-keys');var hiddenKeys=require('../internals/hidden-keys');var html=require('../internals/html');var documentCreateElement=require('../internals/document-create-element');var sharedKey=require('../internals/shared-key');var GT='>';var LT='<';var PROTOTYPE='prototype';var SCRIPT='script';var IE_PROTO=sharedKey('IE_PROTO');var EmptyConstructor=function EmptyConstructor(){/* empty */};var scriptTag=function scriptTag(content){return LT+SCRIPT+GT+content+LT+'/'+SCRIPT+GT;};// Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX=function NullProtoObjectViaActiveX(activeXDocument){activeXDocument.write(scriptTag(''));activeXDocument.close();var temp=activeXDocument.parentWindow.Object;activeXDocument=null;// avoid memory leak return temp;};// Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame=function NullProtoObjectViaIFrame(){// Thrash, waste and sodomy: IE GC bug var iframe=documentCreateElement('iframe');var JS='java'+SCRIPT+':';var iframeDocument;iframe.style.display='none';html.appendChild(iframe);// https://github.com/zloirock/core-js/issues/475 iframe.src=String(JS);iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(scriptTag('document.F=Object'));iframeDocument.close();return iframeDocument.F;};// Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument;var _NullProtoObject=function NullProtoObject(){try{/* global ActiveXObject */activeXDocument=document.domain&&new ActiveXObject('htmlfile');}catch(error){/* ignore */}_NullProtoObject=activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame();var length=enumBugKeys.length;while(length--){delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];}return _NullProtoObject();};hiddenKeys[IE_PROTO]=true;// `Object.create` method // https://tc39.github.io/ecma262/#sec-object.create module.exports=Object.create||function create(O,Properties){var result;if(O!==null){EmptyConstructor[PROTOTYPE]=anObject(O);result=new EmptyConstructor();EmptyConstructor[PROTOTYPE]=null;// add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO]=O;}else result=_NullProtoObject();return Properties===undefined?result:defineProperties(result,Properties);};},{"../internals/an-object":219,"../internals/document-create-element":232,"../internals/enum-bug-keys":236,"../internals/hidden-keys":244,"../internals/html":246,"../internals/object-define-properties":265,"../internals/shared-key":284}],265:[function(require,module,exports){var DESCRIPTORS=require('../internals/descriptors');var definePropertyModule=require('../internals/object-define-property');var anObject=require('../internals/an-object');var objectKeys=require('../internals/object-keys');// `Object.defineProperties` method // https://tc39.github.io/ecma262/#sec-object.defineproperties module.exports=DESCRIPTORS?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=objectKeys(Properties);var length=keys.length;var index=0;var key;while(length>index){definePropertyModule.f(O,key=keys[index++],Properties[key]);}return O;};},{"../internals/an-object":219,"../internals/descriptors":231,"../internals/object-define-property":266,"../internals/object-keys":272}],266:[function(require,module,exports){var DESCRIPTORS=require('../internals/descriptors');var IE8_DOM_DEFINE=require('../internals/ie8-dom-define');var anObject=require('../internals/an-object');var toPrimitive=require('../internals/to-primitive');var nativeDefineProperty=Object.defineProperty;// `Object.defineProperty` method // https://tc39.github.io/ecma262/#sec-object.defineproperty exports.f=DESCRIPTORS?nativeDefineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return nativeDefineProperty(O,P,Attributes);}catch(error){/* empty */}if('get'in Attributes||'set'in Attributes)throw TypeError('Accessors not supported');if('value'in Attributes)O[P]=Attributes.value;return O;};},{"../internals/an-object":219,"../internals/descriptors":231,"../internals/ie8-dom-define":247,"../internals/to-primitive":294}],267:[function(require,module,exports){var DESCRIPTORS=require('../internals/descriptors');var propertyIsEnumerableModule=require('../internals/object-property-is-enumerable');var createPropertyDescriptor=require('../internals/create-property-descriptor');var toIndexedObject=require('../internals/to-indexed-object');var toPrimitive=require('../internals/to-primitive');var has=require('../internals/has');var IE8_DOM_DEFINE=require('../internals/ie8-dom-define');var nativeGetOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;// `Object.getOwnPropertyDescriptor` method // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor exports.f=DESCRIPTORS?nativeGetOwnPropertyDescriptor:function getOwnPropertyDescriptor(O,P){O=toIndexedObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return nativeGetOwnPropertyDescriptor(O,P);}catch(error){/* empty */}if(has(O,P))return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O,P),O[P]);};},{"../internals/create-property-descriptor":229,"../internals/descriptors":231,"../internals/has":243,"../internals/ie8-dom-define":247,"../internals/object-property-is-enumerable":273,"../internals/to-indexed-object":290,"../internals/to-primitive":294}],268:[function(require,module,exports){var toIndexedObject=require('../internals/to-indexed-object');var nativeGetOwnPropertyNames=require('../internals/object-get-own-property-names').f;var toString={}.toString;var windowNames=(typeof window==="undefined"?"undefined":_typeof2(window))=='object'&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function getWindowNames(it){try{return nativeGetOwnPropertyNames(it);}catch(error){return windowNames.slice();}};// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)=='[object Window]'?getWindowNames(it):nativeGetOwnPropertyNames(toIndexedObject(it));};},{"../internals/object-get-own-property-names":269,"../internals/to-indexed-object":290}],269:[function(require,module,exports){var internalObjectKeys=require('../internals/object-keys-internal');var enumBugKeys=require('../internals/enum-bug-keys');var hiddenKeys=enumBugKeys.concat('length','prototype');// `Object.getOwnPropertyNames` method // https://tc39.github.io/ecma262/#sec-object.getownpropertynames exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return internalObjectKeys(O,hiddenKeys);};},{"../internals/enum-bug-keys":236,"../internals/object-keys-internal":271}],270:[function(require,module,exports){exports.f=Object.getOwnPropertySymbols;},{}],271:[function(require,module,exports){var has=require('../internals/has');var toIndexedObject=require('../internals/to-indexed-object');var indexOf=require('../internals/array-includes').indexOf;var hiddenKeys=require('../internals/hidden-keys');module.exports=function(object,names){var O=toIndexedObject(object);var i=0;var result=[];var key;for(key in O){!has(hiddenKeys,key)&&has(O,key)&&result.push(key);}// Don't enum bug & hidden keys while(names.length>i){if(has(O,key=names[i++])){~indexOf(result,key)||result.push(key);}}return result;};},{"../internals/array-includes":220,"../internals/has":243,"../internals/hidden-keys":244,"../internals/to-indexed-object":290}],272:[function(require,module,exports){var internalObjectKeys=require('../internals/object-keys-internal');var enumBugKeys=require('../internals/enum-bug-keys');// `Object.keys` method // https://tc39.github.io/ecma262/#sec-object.keys module.exports=Object.keys||function keys(O){return internalObjectKeys(O,enumBugKeys);};},{"../internals/enum-bug-keys":236,"../internals/object-keys-internal":271}],273:[function(require,module,exports){'use strict';var nativePropertyIsEnumerable={}.propertyIsEnumerable;var getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;// Nashorn ~ JDK8 bug var NASHORN_BUG=getOwnPropertyDescriptor&&!nativePropertyIsEnumerable.call({1:2},1);// `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable exports.f=NASHORN_BUG?function propertyIsEnumerable(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable;}:nativePropertyIsEnumerable;},{}],274:[function(require,module,exports){var getBuiltIn=require('../internals/get-built-in');var getOwnPropertyNamesModule=require('../internals/object-get-own-property-names');var getOwnPropertySymbolsModule=require('../internals/object-get-own-property-symbols');var anObject=require('../internals/an-object');// all object keys, includes non-enumerable and symbols module.exports=getBuiltIn('Reflect','ownKeys')||function ownKeys(it){var keys=getOwnPropertyNamesModule.f(anObject(it));var getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?keys.concat(getOwnPropertySymbols(it)):keys;};},{"../internals/an-object":219,"../internals/get-built-in":240,"../internals/object-get-own-property-names":269,"../internals/object-get-own-property-symbols":270}],275:[function(require,module,exports){var global=require('../internals/global');module.exports=global;},{"../internals/global":242}],276:[function(require,module,exports){module.exports=function(exec){try{return{error:false,value:exec()};}catch(error){return{error:true,value:error};}};},{}],277:[function(require,module,exports){var anObject=require('../internals/an-object');var isObject=require('../internals/is-object');var newPromiseCapability=require('../internals/new-promise-capability');module.exports=function(C,x){anObject(C);if(isObject(x)&&x.constructor===C)return x;var promiseCapability=newPromiseCapability.f(C);var resolve=promiseCapability.resolve;resolve(x);return promiseCapability.promise;};},{"../internals/an-object":219,"../internals/is-object":254,"../internals/new-promise-capability":262}],278:[function(require,module,exports){var redefine=require('../internals/redefine');module.exports=function(target,src,options){for(var key in src){redefine(target,key,src[key],options);}return target;};},{"../internals/redefine":279}],279:[function(require,module,exports){var global=require('../internals/global');var createNonEnumerableProperty=require('../internals/create-non-enumerable-property');var has=require('../internals/has');var setGlobal=require('../internals/set-global');var inspectSource=require('../internals/inspect-source');var InternalStateModule=require('../internals/internal-state');var getInternalState=InternalStateModule.get;var enforceInternalState=InternalStateModule.enforce;var TEMPLATE=String(String).split('String');(module.exports=function(O,key,value,options){var unsafe=options?!!options.unsafe:false;var simple=options?!!options.enumerable:false;var noTargetGet=options?!!options.noTargetGet:false;if(typeof value=='function'){if(typeof key=='string'&&!has(value,'name'))createNonEnumerableProperty(value,'name',key);enforceInternalState(value).source=TEMPLATE.join(typeof key=='string'?key:'');}if(O===global){if(simple)O[key]=value;else setGlobal(key,value);return;}else if(!unsafe){delete O[key];}else if(!noTargetGet&&O[key]){simple=true;}if(simple)O[key]=value;else createNonEnumerableProperty(O,key,value);// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype,'toString',function toString(){return typeof this=='function'&&getInternalState(this).source||inspectSource(this);});},{"../internals/create-non-enumerable-property":228,"../internals/global":242,"../internals/has":243,"../internals/inspect-source":249,"../internals/internal-state":250,"../internals/set-global":281}],280:[function(require,module,exports){// `RequireObjectCoercible` abstract operation // https://tc39.github.io/ecma262/#sec-requireobjectcoercible module.exports=function(it){if(it==undefined)throw TypeError("Can't call method on "+it);return it;};},{}],281:[function(require,module,exports){var global=require('../internals/global');var createNonEnumerableProperty=require('../internals/create-non-enumerable-property');module.exports=function(key,value){try{createNonEnumerableProperty(global,key,value);}catch(error){global[key]=value;}return value;};},{"../internals/create-non-enumerable-property":228,"../internals/global":242}],282:[function(require,module,exports){'use strict';var getBuiltIn=require('../internals/get-built-in');var definePropertyModule=require('../internals/object-define-property');var wellKnownSymbol=require('../internals/well-known-symbol');var DESCRIPTORS=require('../internals/descriptors');var SPECIES=wellKnownSymbol('species');module.exports=function(CONSTRUCTOR_NAME){var Constructor=getBuiltIn(CONSTRUCTOR_NAME);var defineProperty=definePropertyModule.f;if(DESCRIPTORS&&Constructor&&!Constructor[SPECIES]){defineProperty(Constructor,SPECIES,{configurable:true,get:function get(){return this;}});}};},{"../internals/descriptors":231,"../internals/get-built-in":240,"../internals/object-define-property":266,"../internals/well-known-symbol":299}],283:[function(require,module,exports){var defineProperty=require('../internals/object-define-property').f;var has=require('../internals/has');var wellKnownSymbol=require('../internals/well-known-symbol');var TO_STRING_TAG=wellKnownSymbol('toStringTag');module.exports=function(it,TAG,STATIC){if(it&&!has(it=STATIC?it:it.prototype,TO_STRING_TAG)){defineProperty(it,TO_STRING_TAG,{configurable:true,value:TAG});}};},{"../internals/has":243,"../internals/object-define-property":266,"../internals/well-known-symbol":299}],284:[function(require,module,exports){var shared=require('../internals/shared');var uid=require('../internals/uid');var keys=shared('keys');module.exports=function(key){return keys[key]||(keys[key]=uid(key));};},{"../internals/shared":286,"../internals/uid":296}],285:[function(require,module,exports){var global=require('../internals/global');var setGlobal=require('../internals/set-global');var SHARED='__core-js_shared__';var store=global[SHARED]||setGlobal(SHARED,{});module.exports=store;},{"../internals/global":242,"../internals/set-global":281}],286:[function(require,module,exports){var IS_PURE=require('../internals/is-pure');var store=require('../internals/shared-store');(module.exports=function(key,value){return store[key]||(store[key]=value!==undefined?value:{});})('versions',[]).push({version:'3.6.5',mode:IS_PURE?'pure':'global',copyright:'© 2020 Denis Pushkarev (zloirock.ru)'});},{"../internals/is-pure":255,"../internals/shared-store":285}],287:[function(require,module,exports){var anObject=require('../internals/an-object');var aFunction=require('../internals/a-function');var wellKnownSymbol=require('../internals/well-known-symbol');var SPECIES=wellKnownSymbol('species');// `SpeciesConstructor` abstract operation // https://tc39.github.io/ecma262/#sec-speciesconstructor module.exports=function(O,defaultConstructor){var C=anObject(O).constructor;var S;return C===undefined||(S=anObject(C)[SPECIES])==undefined?defaultConstructor:aFunction(S);};},{"../internals/a-function":217,"../internals/an-object":219,"../internals/well-known-symbol":299}],288:[function(require,module,exports){var global=require('../internals/global');var fails=require('../internals/fails');var classof=require('../internals/classof-raw');var bind=require('../internals/function-bind-context');var html=require('../internals/html');var createElement=require('../internals/document-create-element');var IS_IOS=require('../internals/engine-is-ios');var location=global.location;var set=global.setImmediate;var clear=global.clearImmediate;var process=global.process;var MessageChannel=global.MessageChannel;var Dispatch=global.Dispatch;var counter=0;var queue={};var ONREADYSTATECHANGE='onreadystatechange';var defer,channel,port;var run=function run(id){// eslint-disable-next-line no-prototype-builtins if(queue.hasOwnProperty(id)){var fn=queue[id];delete queue[id];fn();}};var runner=function runner(id){return function(){run(id);};};var listener=function listener(event){run(event.data);};var post=function post(id){// old engines have not location.origin global.postMessage(id+'',location.protocol+'//'+location.host);};// Node.js 0.9+ & IE10+ has setImmediate, otherwise: if(!set||!clear){set=function setImmediate(fn){var args=[];var i=1;while(arguments.length>i){args.push(arguments[i++]);}queue[++counter]=function(){// eslint-disable-next-line no-new-func (typeof fn=='function'?fn:Function(fn)).apply(undefined,args);};defer(counter);return counter;};clear=function clearImmediate(id){delete queue[id];};// Node.js 0.8- if(classof(process)=='process'){defer=function defer(id){process.nextTick(runner(id));};// Sphere (JS game engine) Dispatch API }else if(Dispatch&&Dispatch.now){defer=function defer(id){Dispatch.now(runner(id));};// Browsers with MessageChannel, includes WebWorkers // except iOS - https://github.com/zloirock/core-js/issues/624 }else if(MessageChannel&&!IS_IOS){channel=new MessageChannel();port=channel.port2;channel.port1.onmessage=listener;defer=bind(port.postMessage,port,1);// Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' }else if(global.addEventListener&&typeof postMessage=='function'&&!global.importScripts&&!fails(post)&&location.protocol!=='file:'){defer=post;global.addEventListener('message',listener,false);// IE8- }else if(ONREADYSTATECHANGE in createElement('script')){defer=function defer(id){html.appendChild(createElement('script'))[ONREADYSTATECHANGE]=function(){html.removeChild(this);run(id);};};// Rest old browsers }else{defer=function defer(id){setTimeout(runner(id),0);};}}module.exports={set:set,clear:clear};},{"../internals/classof-raw":225,"../internals/document-create-element":232,"../internals/engine-is-ios":233,"../internals/fails":238,"../internals/function-bind-context":239,"../internals/global":242,"../internals/html":246}],289:[function(require,module,exports){var toInteger=require('../internals/to-integer');var max=Math.max;var min=Math.min;// Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). module.exports=function(index,length){var integer=toInteger(index);return integer<0?max(integer+length,0):min(integer,length);};},{"../internals/to-integer":291}],290:[function(require,module,exports){// toObject with fallback for non-array-like ES3 strings var IndexedObject=require('../internals/indexed-object');var requireObjectCoercible=require('../internals/require-object-coercible');module.exports=function(it){return IndexedObject(requireObjectCoercible(it));};},{"../internals/indexed-object":248,"../internals/require-object-coercible":280}],291:[function(require,module,exports){var ceil=Math.ceil;var floor=Math.floor;// `ToInteger` abstract operation // https://tc39.github.io/ecma262/#sec-tointeger module.exports=function(argument){return isNaN(argument=+argument)?0:(argument>0?floor:ceil)(argument);};},{}],292:[function(require,module,exports){var toInteger=require('../internals/to-integer');var min=Math.min;// `ToLength` abstract operation // https://tc39.github.io/ecma262/#sec-tolength module.exports=function(argument){return argument>0?min(toInteger(argument),0x1FFFFFFFFFFFFF):0;// 2 ** 53 - 1 == 9007199254740991 };},{"../internals/to-integer":291}],293:[function(require,module,exports){var requireObjectCoercible=require('../internals/require-object-coercible');// `ToObject` abstract operation // https://tc39.github.io/ecma262/#sec-toobject module.exports=function(argument){return Object(requireObjectCoercible(argument));};},{"../internals/require-object-coercible":280}],294:[function(require,module,exports){var isObject=require('../internals/is-object');// `ToPrimitive` abstract operation // https://tc39.github.io/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports=function(input,PREFERRED_STRING){if(!isObject(input))return input;var fn,val;if(PREFERRED_STRING&&typeof(fn=input.toString)=='function'&&!isObject(val=fn.call(input)))return val;if(typeof(fn=input.valueOf)=='function'&&!isObject(val=fn.call(input)))return val;if(!PREFERRED_STRING&&typeof(fn=input.toString)=='function'&&!isObject(val=fn.call(input)))return val;throw TypeError("Can't convert object to primitive value");};},{"../internals/is-object":254}],295:[function(require,module,exports){var wellKnownSymbol=require('../internals/well-known-symbol');var TO_STRING_TAG=wellKnownSymbol('toStringTag');var test={};test[TO_STRING_TAG]='z';module.exports=String(test)==='[object z]';},{"../internals/well-known-symbol":299}],296:[function(require,module,exports){var id=0;var postfix=Math.random();module.exports=function(key){return'Symbol('+String(key===undefined?'':key)+')_'+(++id+postfix).toString(36);};},{}],297:[function(require,module,exports){var NATIVE_SYMBOL=require('../internals/native-symbol');module.exports=NATIVE_SYMBOL// eslint-disable-next-line no-undef &&!Symbol.sham// eslint-disable-next-line no-undef &&_typeof2(Symbol.iterator)=='symbol';},{"../internals/native-symbol":260}],298:[function(require,module,exports){var wellKnownSymbol=require('../internals/well-known-symbol');exports.f=wellKnownSymbol;},{"../internals/well-known-symbol":299}],299:[function(require,module,exports){var global=require('../internals/global');var shared=require('../internals/shared');var has=require('../internals/has');var uid=require('../internals/uid');var NATIVE_SYMBOL=require('../internals/native-symbol');var USE_SYMBOL_AS_UID=require('../internals/use-symbol-as-uid');var WellKnownSymbolsStore=shared('wks');var _Symbol2=global.Symbol;var createWellKnownSymbol=USE_SYMBOL_AS_UID?_Symbol2:_Symbol2&&_Symbol2.withoutSetter||uid;module.exports=function(name){if(!has(WellKnownSymbolsStore,name)){if(NATIVE_SYMBOL&&has(_Symbol2,name))WellKnownSymbolsStore[name]=_Symbol2[name];else WellKnownSymbolsStore[name]=createWellKnownSymbol('Symbol.'+name);}return WellKnownSymbolsStore[name];};},{"../internals/global":242,"../internals/has":243,"../internals/native-symbol":260,"../internals/shared":286,"../internals/uid":296,"../internals/use-symbol-as-uid":297}],300:[function(require,module,exports){var $=require('../internals/export');var assign=require('../internals/object-assign');// `Object.assign` method // https://tc39.github.io/ecma262/#sec-object.assign $({target:'Object',stat:true,forced:Object.assign!==assign},{assign:assign});},{"../internals/export":237,"../internals/object-assign":263}],301:[function(require,module,exports){var $=require('../internals/export');var toObject=require('../internals/to-object');var nativeKeys=require('../internals/object-keys');var fails=require('../internals/fails');var FAILS_ON_PRIMITIVES=fails(function(){nativeKeys(1);});// `Object.keys` method // https://tc39.github.io/ecma262/#sec-object.keys $({target:'Object',stat:true,forced:FAILS_ON_PRIMITIVES},{keys:function keys(it){return nativeKeys(toObject(it));}});},{"../internals/export":237,"../internals/fails":238,"../internals/object-keys":272,"../internals/to-object":293}],302:[function(require,module,exports){'use strict';var $=require('../internals/export');var IS_PURE=require('../internals/is-pure');var global=require('../internals/global');var getBuiltIn=require('../internals/get-built-in');var NativePromise=require('../internals/native-promise-constructor');var redefine=require('../internals/redefine');var redefineAll=require('../internals/redefine-all');var setToStringTag=require('../internals/set-to-string-tag');var setSpecies=require('../internals/set-species');var isObject=require('../internals/is-object');var aFunction=require('../internals/a-function');var anInstance=require('../internals/an-instance');var classof=require('../internals/classof-raw');var inspectSource=require('../internals/inspect-source');var iterate=require('../internals/iterate');var checkCorrectnessOfIteration=require('../internals/check-correctness-of-iteration');var speciesConstructor=require('../internals/species-constructor');var task=require('../internals/task').set;var microtask=require('../internals/microtask');var promiseResolve=require('../internals/promise-resolve');var hostReportErrors=require('../internals/host-report-errors');var newPromiseCapabilityModule=require('../internals/new-promise-capability');var perform=require('../internals/perform');var InternalStateModule=require('../internals/internal-state');var isForced=require('../internals/is-forced');var wellKnownSymbol=require('../internals/well-known-symbol');var V8_VERSION=require('../internals/engine-v8-version');var SPECIES=wellKnownSymbol('species');var PROMISE='Promise';var getInternalState=InternalStateModule.get;var setInternalState=InternalStateModule.set;var getInternalPromiseState=InternalStateModule.getterFor(PROMISE);var PromiseConstructor=NativePromise;var TypeError=global.TypeError;var document=global.document;var process=global.process;var $fetch=getBuiltIn('fetch');var newPromiseCapability=newPromiseCapabilityModule.f;var newGenericPromiseCapability=newPromiseCapability;var IS_NODE=classof(process)=='process';var DISPATCH_EVENT=!!(document&&document.createEvent&&global.dispatchEvent);var UNHANDLED_REJECTION='unhandledrejection';var REJECTION_HANDLED='rejectionhandled';var PENDING=0;var FULFILLED=1;var REJECTED=2;var HANDLED=1;var UNHANDLED=2;var Internal,OwnPromiseCapability,PromiseWrapper,nativeThen;var FORCED=isForced(PROMISE,function(){var GLOBAL_CORE_JS_PROMISE=inspectSource(PromiseConstructor)!==String(PromiseConstructor);if(!GLOBAL_CORE_JS_PROMISE){// V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 // We can't detect it synchronously, so just check versions if(V8_VERSION===66)return true;// Unhandled rejections tracking support, NodeJS Promise without it fails @@species test if(!IS_NODE&&typeof PromiseRejectionEvent!='function')return true;}// We need Promise#finally in the pure version for preventing prototype pollution if(IS_PURE&&!PromiseConstructor.prototype['finally'])return true;// We can't use @@species feature detection in V8 since it causes // deoptimization and performance degradation // https://github.com/zloirock/core-js/issues/679 if(V8_VERSION>=51&&/native code/.test(PromiseConstructor))return false;// Detect correctness of subclassing with @@species support var promise=PromiseConstructor.resolve(1);var FakePromise=function FakePromise(exec){exec(function(){/* empty */},function(){/* empty */});};var constructor=promise.constructor={};constructor[SPECIES]=FakePromise;return!(promise.then(function(){/* empty */})instanceof FakePromise);});var INCORRECT_ITERATION=FORCED||!checkCorrectnessOfIteration(function(iterable){PromiseConstructor.all(iterable)['catch'](function(){/* empty */});});// helpers var isThenable=function isThenable(it){var then;return isObject(it)&&typeof(then=it.then)=='function'?then:false;};var notify=function notify(promise,state,isReject){if(state.notified)return;state.notified=true;var chain=state.reactions;microtask(function(){var value=state.value;var ok=state.state==FULFILLED;var index=0;// variable length - can't use forEach while(chain.length>index){var reaction=chain[index++];var handler=ok?reaction.ok:reaction.fail;var resolve=reaction.resolve;var reject=reaction.reject;var domain=reaction.domain;var result,then,exited;try{if(handler){if(!ok){if(state.rejection===UNHANDLED)onHandleUnhandled(promise,state);state.rejection=HANDLED;}if(handler===true)result=value;else{if(domain)domain.enter();result=handler(value);// can throw if(domain){domain.exit();exited=true;}}if(result===reaction.promise){reject(TypeError('Promise-chain cycle'));}else if(then=isThenable(result)){then.call(result,resolve,reject);}else resolve(result);}else reject(value);}catch(error){if(domain&&!exited)domain.exit();reject(error);}}state.reactions=[];state.notified=false;if(isReject&&!state.rejection)onUnhandled(promise,state);});};var dispatchEvent=function dispatchEvent(name,promise,reason){var event,handler;if(DISPATCH_EVENT){event=document.createEvent('Event');event.promise=promise;event.reason=reason;event.initEvent(name,false,true);global.dispatchEvent(event);}else event={promise:promise,reason:reason};if(handler=global['on'+name])handler(event);else if(name===UNHANDLED_REJECTION)hostReportErrors('Unhandled promise rejection',reason);};var onUnhandled=function onUnhandled(promise,state){task.call(global,function(){var value=state.value;var IS_UNHANDLED=isUnhandled(state);var result;if(IS_UNHANDLED){result=perform(function(){if(IS_NODE){process.emit('unhandledRejection',value,promise);}else dispatchEvent(UNHANDLED_REJECTION,promise,value);});// Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should state.rejection=IS_NODE||isUnhandled(state)?UNHANDLED:HANDLED;if(result.error)throw result.value;}});};var isUnhandled=function isUnhandled(state){return state.rejection!==HANDLED&&!state.parent;};var onHandleUnhandled=function onHandleUnhandled(promise,state){task.call(global,function(){if(IS_NODE){process.emit('rejectionHandled',promise);}else dispatchEvent(REJECTION_HANDLED,promise,state.value);});};var bind=function bind(fn,promise,state,unwrap){return function(value){fn(promise,state,value,unwrap);};};var internalReject=function internalReject(promise,state,value,unwrap){if(state.done)return;state.done=true;if(unwrap)state=unwrap;state.value=value;state.state=REJECTED;notify(promise,state,true);};var internalResolve=function internalResolve(promise,state,value,unwrap){if(state.done)return;state.done=true;if(unwrap)state=unwrap;try{if(promise===value)throw TypeError("Promise can't be resolved itself");var then=isThenable(value);if(then){microtask(function(){var wrapper={done:false};try{then.call(value,bind(internalResolve,promise,wrapper,state),bind(internalReject,promise,wrapper,state));}catch(error){internalReject(promise,wrapper,error,state);}});}else{state.value=value;state.state=FULFILLED;notify(promise,state,false);}}catch(error){internalReject(promise,{done:false},error,state);}};// constructor polyfill if(FORCED){// 25.4.3.1 Promise(executor) PromiseConstructor=function Promise(executor){anInstance(this,PromiseConstructor,PROMISE);aFunction(executor);Internal.call(this);var state=getInternalState(this);try{executor(bind(internalResolve,this,state),bind(internalReject,this,state));}catch(error){internalReject(this,state,error);}};// eslint-disable-next-line no-unused-vars Internal=function Promise(executor){setInternalState(this,{type:PROMISE,done:false,notified:false,parent:false,reactions:[],rejection:false,state:PENDING,value:undefined});};Internal.prototype=redefineAll(PromiseConstructor.prototype,{// `Promise.prototype.then` method // https://tc39.github.io/ecma262/#sec-promise.prototype.then then:function then(onFulfilled,onRejected){var state=getInternalPromiseState(this);var reaction=newPromiseCapability(speciesConstructor(this,PromiseConstructor));reaction.ok=typeof onFulfilled=='function'?onFulfilled:true;reaction.fail=typeof onRejected=='function'&&onRejected;reaction.domain=IS_NODE?process.domain:undefined;state.parent=true;state.reactions.push(reaction);if(state.state!=PENDING)notify(this,state,false);return reaction.promise;},// `Promise.prototype.catch` method // https://tc39.github.io/ecma262/#sec-promise.prototype.catch 'catch':function _catch(onRejected){return this.then(undefined,onRejected);}});OwnPromiseCapability=function OwnPromiseCapability(){var promise=new Internal();var state=getInternalState(promise);this.promise=promise;this.resolve=bind(internalResolve,promise,state);this.reject=bind(internalReject,promise,state);};newPromiseCapabilityModule.f=newPromiseCapability=function newPromiseCapability(C){return C===PromiseConstructor||C===PromiseWrapper?new OwnPromiseCapability(C):newGenericPromiseCapability(C);};if(!IS_PURE&&typeof NativePromise=='function'){nativeThen=NativePromise.prototype.then;// wrap native Promise#then for native async functions redefine(NativePromise.prototype,'then',function then(onFulfilled,onRejected){var that=this;return new PromiseConstructor(function(resolve,reject){nativeThen.call(that,resolve,reject);}).then(onFulfilled,onRejected);// https://github.com/zloirock/core-js/issues/640 },{unsafe:true});// wrap fetch result if(typeof $fetch=='function')$({global:true,enumerable:true,forced:true},{// eslint-disable-next-line no-unused-vars fetch:function fetch(input/* , init */){return promiseResolve(PromiseConstructor,$fetch.apply(global,arguments));}});}}$({global:true,wrap:true,forced:FORCED},{Promise:PromiseConstructor});setToStringTag(PromiseConstructor,PROMISE,false,true);setSpecies(PROMISE);PromiseWrapper=getBuiltIn(PROMISE);// statics $({target:PROMISE,stat:true,forced:FORCED},{// `Promise.reject` method // https://tc39.github.io/ecma262/#sec-promise.reject reject:function reject(r){var capability=newPromiseCapability(this);capability.reject.call(undefined,r);return capability.promise;}});$({target:PROMISE,stat:true,forced:IS_PURE||FORCED},{// `Promise.resolve` method // https://tc39.github.io/ecma262/#sec-promise.resolve resolve:function resolve(x){return promiseResolve(IS_PURE&&this===PromiseWrapper?PromiseConstructor:this,x);}});$({target:PROMISE,stat:true,forced:INCORRECT_ITERATION},{// `Promise.all` method // https://tc39.github.io/ecma262/#sec-promise.all all:function all(iterable){var C=this;var capability=newPromiseCapability(C);var resolve=capability.resolve;var reject=capability.reject;var result=perform(function(){var $promiseResolve=aFunction(C.resolve);var values=[];var counter=0;var remaining=1;iterate(iterable,function(promise){var index=counter++;var alreadyCalled=false;values.push(undefined);remaining++;$promiseResolve.call(C,promise).then(function(value){if(alreadyCalled)return;alreadyCalled=true;values[index]=value;--remaining||resolve(values);},reject);});--remaining||resolve(values);});if(result.error)reject(result.value);return capability.promise;},// `Promise.race` method // https://tc39.github.io/ecma262/#sec-promise.race race:function race(iterable){var C=this;var capability=newPromiseCapability(C);var reject=capability.reject;var result=perform(function(){var $promiseResolve=aFunction(C.resolve);iterate(iterable,function(promise){$promiseResolve.call(C,promise).then(capability.resolve,reject);});});if(result.error)reject(result.value);return capability.promise;}});},{"../internals/a-function":217,"../internals/an-instance":218,"../internals/check-correctness-of-iteration":224,"../internals/classof-raw":225,"../internals/engine-v8-version":235,"../internals/export":237,"../internals/get-built-in":240,"../internals/global":242,"../internals/host-report-errors":245,"../internals/inspect-source":249,"../internals/internal-state":250,"../internals/is-forced":253,"../internals/is-object":254,"../internals/is-pure":255,"../internals/iterate":256,"../internals/microtask":258,"../internals/native-promise-constructor":259,"../internals/new-promise-capability":262,"../internals/perform":276,"../internals/promise-resolve":277,"../internals/redefine":279,"../internals/redefine-all":278,"../internals/set-species":282,"../internals/set-to-string-tag":283,"../internals/species-constructor":287,"../internals/task":288,"../internals/well-known-symbol":299}],303:[function(require,module,exports){var defineWellKnownSymbol=require('../internals/define-well-known-symbol');// `Symbol.asyncIterator` well-known symbol // https://tc39.github.io/ecma262/#sec-symbol.asynciterator defineWellKnownSymbol('asyncIterator');},{"../internals/define-well-known-symbol":230}],304:[function(require,module,exports){'use strict';var $=require('../internals/export');var global=require('../internals/global');var getBuiltIn=require('../internals/get-built-in');var IS_PURE=require('../internals/is-pure');var DESCRIPTORS=require('../internals/descriptors');var NATIVE_SYMBOL=require('../internals/native-symbol');var USE_SYMBOL_AS_UID=require('../internals/use-symbol-as-uid');var fails=require('../internals/fails');var has=require('../internals/has');var isArray=require('../internals/is-array');var isObject=require('../internals/is-object');var anObject=require('../internals/an-object');var toObject=require('../internals/to-object');var toIndexedObject=require('../internals/to-indexed-object');var toPrimitive=require('../internals/to-primitive');var createPropertyDescriptor=require('../internals/create-property-descriptor');var nativeObjectCreate=require('../internals/object-create');var objectKeys=require('../internals/object-keys');var getOwnPropertyNamesModule=require('../internals/object-get-own-property-names');var getOwnPropertyNamesExternal=require('../internals/object-get-own-property-names-external');var getOwnPropertySymbolsModule=require('../internals/object-get-own-property-symbols');var getOwnPropertyDescriptorModule=require('../internals/object-get-own-property-descriptor');var definePropertyModule=require('../internals/object-define-property');var propertyIsEnumerableModule=require('../internals/object-property-is-enumerable');var createNonEnumerableProperty=require('../internals/create-non-enumerable-property');var redefine=require('../internals/redefine');var shared=require('../internals/shared');var sharedKey=require('../internals/shared-key');var hiddenKeys=require('../internals/hidden-keys');var uid=require('../internals/uid');var wellKnownSymbol=require('../internals/well-known-symbol');var wrappedWellKnownSymbolModule=require('../internals/well-known-symbol-wrapped');var defineWellKnownSymbol=require('../internals/define-well-known-symbol');var setToStringTag=require('../internals/set-to-string-tag');var InternalStateModule=require('../internals/internal-state');var $forEach=require('../internals/array-iteration').forEach;var HIDDEN=sharedKey('hidden');var SYMBOL='Symbol';var PROTOTYPE='prototype';var TO_PRIMITIVE=wellKnownSymbol('toPrimitive');var setInternalState=InternalStateModule.set;var getInternalState=InternalStateModule.getterFor(SYMBOL);var ObjectPrototype=Object[PROTOTYPE];var $Symbol=global.Symbol;var $stringify=getBuiltIn('JSON','stringify');var nativeGetOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f;var nativeDefineProperty=definePropertyModule.f;var nativeGetOwnPropertyNames=getOwnPropertyNamesExternal.f;var nativePropertyIsEnumerable=propertyIsEnumerableModule.f;var AllSymbols=shared('symbols');var ObjectPrototypeSymbols=shared('op-symbols');var StringToSymbolRegistry=shared('string-to-symbol-registry');var SymbolToStringRegistry=shared('symbol-to-string-registry');var WellKnownSymbolsStore=shared('wks');var QObject=global.QObject;// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var USE_SETTER=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDescriptor=DESCRIPTORS&&fails(function(){return nativeObjectCreate(nativeDefineProperty({},'a',{get:function get(){return nativeDefineProperty(this,'a',{value:7}).a;}})).a!=7;})?function(O,P,Attributes){var ObjectPrototypeDescriptor=nativeGetOwnPropertyDescriptor(ObjectPrototype,P);if(ObjectPrototypeDescriptor)delete ObjectPrototype[P];nativeDefineProperty(O,P,Attributes);if(ObjectPrototypeDescriptor&&O!==ObjectPrototype){nativeDefineProperty(ObjectPrototype,P,ObjectPrototypeDescriptor);}}:nativeDefineProperty;var wrap=function wrap(tag,description){var symbol=AllSymbols[tag]=nativeObjectCreate($Symbol[PROTOTYPE]);setInternalState(symbol,{type:SYMBOL,tag:tag,description:description});if(!DESCRIPTORS)symbol.description=description;return symbol;};var isSymbol=USE_SYMBOL_AS_UID?function(it){return _typeof2(it)=='symbol';}:function(it){return Object(it)instanceof $Symbol;};var $defineProperty=function defineProperty(O,P,Attributes){if(O===ObjectPrototype)$defineProperty(ObjectPrototypeSymbols,P,Attributes);anObject(O);var key=toPrimitive(P,true);anObject(Attributes);if(has(AllSymbols,key)){if(!Attributes.enumerable){if(!has(O,HIDDEN))nativeDefineProperty(O,HIDDEN,createPropertyDescriptor(1,{}));O[HIDDEN][key]=true;}else{if(has(O,HIDDEN)&&O[HIDDEN][key])O[HIDDEN][key]=false;Attributes=nativeObjectCreate(Attributes,{enumerable:createPropertyDescriptor(0,false)});}return setSymbolDescriptor(O,key,Attributes);}return nativeDefineProperty(O,key,Attributes);};var $defineProperties=function defineProperties(O,Properties){anObject(O);var properties=toIndexedObject(Properties);var keys=objectKeys(properties).concat($getOwnPropertySymbols(properties));$forEach(keys,function(key){if(!DESCRIPTORS||$propertyIsEnumerable.call(properties,key))$defineProperty(O,key,properties[key]);});return O;};var $create=function create(O,Properties){return Properties===undefined?nativeObjectCreate(O):$defineProperties(nativeObjectCreate(O),Properties);};var $propertyIsEnumerable=function propertyIsEnumerable(V){var P=toPrimitive(V,true);var enumerable=nativePropertyIsEnumerable.call(this,P);if(this===ObjectPrototype&&has(AllSymbols,P)&&!has(ObjectPrototypeSymbols,P))return false;return enumerable||!has(this,P)||!has(AllSymbols,P)||has(this,HIDDEN)&&this[HIDDEN][P]?enumerable:true;};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(O,P){var it=toIndexedObject(O);var key=toPrimitive(P,true);if(it===ObjectPrototype&&has(AllSymbols,key)&&!has(ObjectPrototypeSymbols,key))return;var descriptor=nativeGetOwnPropertyDescriptor(it,key);if(descriptor&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key])){descriptor.enumerable=true;}return descriptor;};var $getOwnPropertyNames=function getOwnPropertyNames(O){var names=nativeGetOwnPropertyNames(toIndexedObject(O));var result=[];$forEach(names,function(key){if(!has(AllSymbols,key)&&!has(hiddenKeys,key))result.push(key);});return result;};var $getOwnPropertySymbols=function getOwnPropertySymbols(O){var IS_OBJECT_PROTOTYPE=O===ObjectPrototype;var names=nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE?ObjectPrototypeSymbols:toIndexedObject(O));var result=[];$forEach(names,function(key){if(has(AllSymbols,key)&&(!IS_OBJECT_PROTOTYPE||has(ObjectPrototype,key))){result.push(AllSymbols[key]);}});return result;};// `Symbol` constructor // https://tc39.github.io/ecma262/#sec-symbol-constructor if(!NATIVE_SYMBOL){$Symbol=function _Symbol3(){if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor');var description=!arguments.length||arguments[0]===undefined?undefined:String(arguments[0]);var tag=uid(description);var setter=function setter(value){if(this===ObjectPrototype)setter.call(ObjectPrototypeSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDescriptor(this,tag,createPropertyDescriptor(1,value));};if(DESCRIPTORS&&USE_SETTER)setSymbolDescriptor(ObjectPrototype,tag,{configurable:true,set:setter});return wrap(tag,description);};redefine($Symbol[PROTOTYPE],'toString',function toString(){return getInternalState(this).tag;});redefine($Symbol,'withoutSetter',function(description){return wrap(uid(description),description);});propertyIsEnumerableModule.f=$propertyIsEnumerable;definePropertyModule.f=$defineProperty;getOwnPropertyDescriptorModule.f=$getOwnPropertyDescriptor;getOwnPropertyNamesModule.f=getOwnPropertyNamesExternal.f=$getOwnPropertyNames;getOwnPropertySymbolsModule.f=$getOwnPropertySymbols;wrappedWellKnownSymbolModule.f=function(name){return wrap(wellKnownSymbol(name),name);};if(DESCRIPTORS){// https://github.com/tc39/proposal-Symbol-description nativeDefineProperty($Symbol[PROTOTYPE],'description',{configurable:true,get:function description(){return getInternalState(this).description;}});if(!IS_PURE){redefine(ObjectPrototype,'propertyIsEnumerable',$propertyIsEnumerable,{unsafe:true});}}}$({global:true,wrap:true,forced:!NATIVE_SYMBOL,sham:!NATIVE_SYMBOL},{Symbol:$Symbol});$forEach(objectKeys(WellKnownSymbolsStore),function(name){defineWellKnownSymbol(name);});$({target:SYMBOL,stat:true,forced:!NATIVE_SYMBOL},{// `Symbol.for` method // https://tc39.github.io/ecma262/#sec-symbol.for 'for':function _for(key){var string=String(key);if(has(StringToSymbolRegistry,string))return StringToSymbolRegistry[string];var symbol=$Symbol(string);StringToSymbolRegistry[string]=symbol;SymbolToStringRegistry[symbol]=string;return symbol;},// `Symbol.keyFor` method // https://tc39.github.io/ecma262/#sec-symbol.keyfor keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+' is not a symbol');if(has(SymbolToStringRegistry,sym))return SymbolToStringRegistry[sym];},useSetter:function useSetter(){USE_SETTER=true;},useSimple:function useSimple(){USE_SETTER=false;}});$({target:'Object',stat:true,forced:!NATIVE_SYMBOL,sham:!DESCRIPTORS},{// `Object.create` method // https://tc39.github.io/ecma262/#sec-object.create create:$create,// `Object.defineProperty` method // https://tc39.github.io/ecma262/#sec-object.defineproperty defineProperty:$defineProperty,// `Object.defineProperties` method // https://tc39.github.io/ecma262/#sec-object.defineproperties defineProperties:$defineProperties,// `Object.getOwnPropertyDescriptor` method // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors getOwnPropertyDescriptor:$getOwnPropertyDescriptor});$({target:'Object',stat:true,forced:!NATIVE_SYMBOL},{// `Object.getOwnPropertyNames` method // https://tc39.github.io/ecma262/#sec-object.getownpropertynames getOwnPropertyNames:$getOwnPropertyNames,// `Object.getOwnPropertySymbols` method // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols getOwnPropertySymbols:$getOwnPropertySymbols});// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives // https://bugs.chromium.org/p/v8/issues/detail?id=3443 $({target:'Object',stat:true,forced:fails(function(){getOwnPropertySymbolsModule.f(1);})},{getOwnPropertySymbols:function getOwnPropertySymbols(it){return getOwnPropertySymbolsModule.f(toObject(it));}});// `JSON.stringify` method behavior with symbols // https://tc39.github.io/ecma262/#sec-json.stringify if($stringify){var FORCED_JSON_STRINGIFY=!NATIVE_SYMBOL||fails(function(){var symbol=$Symbol();// MS Edge converts symbol values to JSON as {} return $stringify([symbol])!='[null]'// WebKit converts symbol values to JSON as null ||$stringify({a:symbol})!='{}'// V8 throws on boxed symbols ||$stringify(Object(symbol))!='{}';});$({target:'JSON',stat:true,forced:FORCED_JSON_STRINGIFY},{// eslint-disable-next-line no-unused-vars stringify:function stringify(it,replacer,space){var args=[it];var index=1;var $replacer;while(arguments.length>index){args.push(arguments[index++]);}$replacer=replacer;if(!isObject(replacer)&&it===undefined||isSymbol(it))return;// IE8 returns string on undefined if(!isArray(replacer))replacer=function replacer(key,value){if(typeof $replacer=='function')value=$replacer.call(this,key,value);if(!isSymbol(value))return value;};args[1]=replacer;return $stringify.apply(null,args);}});}// `Symbol.prototype[@@toPrimitive]` method // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive if(!$Symbol[PROTOTYPE][TO_PRIMITIVE]){createNonEnumerableProperty($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);}// `Symbol.prototype[@@toStringTag]` property // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag setToStringTag($Symbol,SYMBOL);hiddenKeys[HIDDEN]=true;},{"../internals/an-object":219,"../internals/array-iteration":221,"../internals/create-non-enumerable-property":228,"../internals/create-property-descriptor":229,"../internals/define-well-known-symbol":230,"../internals/descriptors":231,"../internals/export":237,"../internals/fails":238,"../internals/get-built-in":240,"../internals/global":242,"../internals/has":243,"../internals/hidden-keys":244,"../internals/internal-state":250,"../internals/is-array":252,"../internals/is-object":254,"../internals/is-pure":255,"../internals/native-symbol":260,"../internals/object-create":264,"../internals/object-define-property":266,"../internals/object-get-own-property-descriptor":267,"../internals/object-get-own-property-names":269,"../internals/object-get-own-property-names-external":268,"../internals/object-get-own-property-symbols":270,"../internals/object-keys":272,"../internals/object-property-is-enumerable":273,"../internals/redefine":279,"../internals/set-to-string-tag":283,"../internals/shared":286,"../internals/shared-key":284,"../internals/to-indexed-object":290,"../internals/to-object":293,"../internals/to-primitive":294,"../internals/uid":296,"../internals/use-symbol-as-uid":297,"../internals/well-known-symbol":299,"../internals/well-known-symbol-wrapped":298}],305:[function(require,module,exports){(function(Buffer){// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // NOTE: These type checking functions intentionally don't use `instanceof` // because it is fragile and can be easily faked with `Object.create()`. function isArray(arg){if(Array.isArray){return Array.isArray(arg);}return objectToString(arg)==='[object Array]';}exports.isArray=isArray;function isBoolean(arg){return typeof arg==='boolean';}exports.isBoolean=isBoolean;function isNull(arg){return arg===null;}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null;}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==='number';}exports.isNumber=isNumber;function isString(arg){return typeof arg==='string';}exports.isString=isString;function isSymbol(arg){return _typeof2(arg)==='symbol';}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0;}exports.isUndefined=isUndefined;function isRegExp(re){return objectToString(re)==='[object RegExp]';}exports.isRegExp=isRegExp;function isObject(arg){return _typeof2(arg)==='object'&&arg!==null;}exports.isObject=isObject;function isDate(d){return objectToString(d)==='[object Date]';}exports.isDate=isDate;function isError(e){return objectToString(e)==='[object Error]'||e instanceof Error;}exports.isError=isError;function isFunction(arg){return typeof arg==='function';}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==='boolean'||typeof arg==='number'||typeof arg==='string'||_typeof2(arg)==='symbol'||// ES6 symbol typeof arg==='undefined';}exports.isPrimitive=isPrimitive;exports.isBuffer=Buffer.isBuffer;function objectToString(o){return Object.prototype.toString.call(o);}}).call(this,{"isBuffer":require("../../is-buffer/index.js")});},{"../../is-buffer/index.js":365}],306:[function(require,module,exports){(function(Buffer){var elliptic=require('elliptic');var BN=require('bn.js');module.exports=function createECDH(curve){return new ECDH(curve);};var aliases={secp256k1:{name:'secp256k1',byteLength:32},secp224r1:{name:'p224',byteLength:28},prime256v1:{name:'p256',byteLength:32},prime192v1:{name:'p192',byteLength:24},ed25519:{name:'ed25519',byteLength:32},secp384r1:{name:'p384',byteLength:48},secp521r1:{name:'p521',byteLength:66}};aliases.p224=aliases.secp224r1;aliases.p256=aliases.secp256r1=aliases.prime256v1;aliases.p192=aliases.secp192r1=aliases.prime192v1;aliases.p384=aliases.secp384r1;aliases.p521=aliases.secp521r1;function ECDH(curve){this.curveType=aliases[curve];if(!this.curveType){this.curveType={name:curve};}this.curve=new elliptic.ec(this.curveType.name);// eslint-disable-line new-cap this.keys=void 0;}ECDH.prototype.generateKeys=function(enc,format){this.keys=this.curve.genKeyPair();return this.getPublicKey(enc,format);};ECDH.prototype.computeSecret=function(other,inenc,enc){inenc=inenc||'utf8';if(!Buffer.isBuffer(other)){other=new Buffer(other,inenc);}var otherPub=this.curve.keyFromPublic(other).getPublic();var out=otherPub.mul(this.keys.getPrivate()).getX();return formatReturnValue(out,enc,this.curveType.byteLength);};ECDH.prototype.getPublicKey=function(enc,format){var key=this.keys.getPublic(format==='compressed',true);if(format==='hybrid'){if(key[key.length-1]%2){key[0]=7;}else{key[0]=6;}}return formatReturnValue(key,enc);};ECDH.prototype.getPrivateKey=function(enc){return formatReturnValue(this.keys.getPrivate(),enc);};ECDH.prototype.setPublicKey=function(pub,enc){enc=enc||'utf8';if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc);}this.keys._importPublic(pub);return this;};ECDH.prototype.setPrivateKey=function(priv,enc){enc=enc||'utf8';if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc);}var _priv=new BN(priv);_priv=_priv.toString(16);this.keys=this.curve.genKeyPair();this.keys._importPrivate(_priv);return this;};function formatReturnValue(bn,enc,len){if(!Array.isArray(bn)){bn=bn.toArray();}var buf=new Buffer(bn);if(len&&buf.lengthblocksize){var hash=alg==='rmd160'?new RIPEMD160():sha(alg);key=hash.update(key).digest();}else if(key.lengthblocksize){key=alg(key);}else if(key.length=e?t:""+Array(e+1-r.length).join(n)+t;},d={s:c,z:function z(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+c(r,2,"0")+":"+c(i,2,"0");},m:function m(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(n,u),i=e-r<0,s=t.clone().add(n+(i?-1:1),u);return Number(-(n+(e-r)/(i?r-s:s-r))||0);},a:function a(t){return t<0?Math.ceil(t)||0:Math.floor(t);},p:function p(h){return{M:u,y:a,w:s,d:i,D:"date",h:r,m:n,s:e,ms:t,Q:o}[h]||String(h||"").toLowerCase().replace(/s$/,"");},u:function u(t){return void 0===t;}},$={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},l="en",m={};m[l]=$;var y=function y(t){return t instanceof v;},M=function M(t,e,n){var r;if(!t)return l;if("string"==typeof t)m[t]&&(r=t),e&&(m[t]=e,r=t);else{var i=t.name;m[i]=t,r=i;}return!n&&r&&(l=r),r||!n&&l;},g=function g(t,e){if(y(t))return t.clone();var n="object"==_typeof2(e)?e:{};return n.date=t,n.args=arguments,new v(n);},D=d;D.l=M,D.i=y,D.w=function(t,e){return g(t,{locale:e.$L,utc:e.$u,$offset:e.$offset});};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t);}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(D.u(e))return new Date();if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(h);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0);}return new Date(e);}(t),this.init();},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},d.$utils=function(){return D;},d.isValid=function(){return!("Invalid Date"===this.$d.toString());},d.isSame=function(t,e){var n=g(t);return this.startOf(e)<=n&&n<=this.endOf(e);},d.isAfter=function(t,e){return g(t)68?1900:2e3);}],YYYY:[/\d{4}/,i("year")],Z:s,ZZ:s};var f=function f(t,n,r){try{var o=function(t){for(var n=t.match(e),r=n.length,o=0;o0?s-1:m.getMonth());var D=f||0,M=u||0,g=d||0,Y=c||0;return l?new Date(Date.UTC(p,y,v,D,M,g,Y+60*l.offset*1e3)):r?new Date(Date.UTC(p,y,v,D,M,g,Y)):new Date(p,y,v,D,M,g,Y);}catch(t){return new Date("");}};return function(e,n,r){var o=n.prototype,i=o.parse;o.parse=function(e){var n=e.date,o=e.utc,s=e.args;this.$u=o;var a=s[1];if("string"==typeof a){var h=!0===s[2],u=!0===s[3],d=h||u,c=s[2];u&&(c=s[2]),h||(t=c?r.Ls[c]:this.$locale()),this.$d=f(n,a,o),this.init(),c&&!0!==c&&(this.$L=this.locale(c).$L),d&&n!==this.format(a)&&(this.$d=new Date(""));}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var v=r.apply(this,s);if(v.isValid()){this.$d=v.$d,this.$L=v.$L,this.init();break;}m===l&&(this.$d=new Date(""));}else i.call(this,e);};};});},{}],315:[function(require,module,exports){!function(t,i){"object"==_typeof2(exports)&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):t.dayjs_plugin_utc=i();}(this,function(){"use strict";return function(t,i,e){var s=new Date().getTimezoneOffset(),n=i.prototype;e.utc=function(t){return new i({date:t,utc:!0,args:arguments});},n.utc=function(){return e(this.toDate(),{locale:this.$L,utc:!0});},n.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1});};var u=n.parse;n.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),u.call(this,t);};var o=n.init;n.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds();}else o.call(this);};var f=n.utcOffset;n.utcOffset=function(t){var i=this.$utils().u;if(i(t))return this.$u?0:i(this.$offset)?f.call(this):this.$offset;var e,n=Math.abs(t)<=16?60*t:t;return 0!==t?(e=this.local().add(n+s,"minute")).$offset=n:e=this.utc(),e;};var r=n.format;n.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return r.call(this,i);},n.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+s;return this.$d.valueOf()-6e4*t;},n.isUTC=function(){return!!this.$u;},n.toISOString=function(){return this.toDate().toISOString();},n.toString=function(){return this.toDate().toUTCString();};var a=n.toDate;n.toDate=function(t){return"s"===t&&this.$offset?e(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():a.call(this);};};});},{}],316:[function(require,module,exports){'use strict';exports.utils=require('./des/utils');exports.Cipher=require('./des/cipher');exports.DES=require('./des/des');exports.CBC=require('./des/cbc');exports.EDE=require('./des/ede');},{"./des/cbc":317,"./des/cipher":318,"./des/des":319,"./des/ede":320,"./des/utils":321}],317:[function(require,module,exports){'use strict';var assert=require('minimalistic-assert');var inherits=require('inherits');var proto={};function CBCState(iv){assert.equal(iv.length,8,'Invalid IV length');this.iv=new Array(8);for(var i=0;i0;count--){inputOff+=this._buffer(data,inputOff);outputOff+=this._flushBuffer(out,outputOff);}// Buffer rest of the input inputOff+=this._buffer(data,inputOff);return out;};Cipher.prototype.final=function final(buffer){var first;if(buffer)first=this.update(buffer);var last;if(this.type==='encrypt')last=this._finalEncrypt();else last=this._finalDecrypt();if(first)return first.concat(last);else return last;};Cipher.prototype._pad=function _pad(buffer,off){if(off===0)return false;while(off>>1];kL=utils.r28shl(kL,shift);kR=utils.r28shl(kR,shift);utils.pc2(kL,kR,state.keys,i);}};DES.prototype._update=function _update(inp,inOff,out,outOff){var state=this._desState;var l=utils.readUInt32BE(inp,inOff);var r=utils.readUInt32BE(inp,inOff+4);// Initial Permutation utils.ip(l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];if(this.type==='encrypt')this._encrypt(state,l,r,state.tmp,0);else this._decrypt(state,l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];utils.writeUInt32BE(out,l,outOff);utils.writeUInt32BE(out,r,outOff+4);};DES.prototype._pad=function _pad(buffer,off){var value=buffer.length-off;for(var i=off;i>>0;l=t;}// Reverse Initial Permutation utils.rip(r,l,out,off);};DES.prototype._decrypt=function _decrypt(state,lStart,rStart,out,off){var l=rStart;var r=lStart;// Apply f() x16 times for(var i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i];var keyR=state.keys[i+1];// f(r, k) utils.expand(l,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=l;l=(r^f)>>>0;r=t;}// Reverse Initial Permutation utils.rip(l,r,out,off);};},{"./cipher":318,"./utils":321,"inherits":364,"minimalistic-assert":414}],320:[function(require,module,exports){'use strict';var assert=require('minimalistic-assert');var inherits=require('inherits');var Cipher=require('./cipher');var DES=require('./des');function EDEState(type,key){assert.equal(key.length,24,'Invalid key length');var k1=key.slice(0,8);var k2=key.slice(8,16);var k3=key.slice(16,24);if(type==='encrypt'){this.ciphers=[DES.create({type:'encrypt',key:k1}),DES.create({type:'decrypt',key:k2}),DES.create({type:'encrypt',key:k3})];}else{this.ciphers=[DES.create({type:'decrypt',key:k3}),DES.create({type:'encrypt',key:k2}),DES.create({type:'decrypt',key:k1})];}}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state;}inherits(EDE,Cipher);module.exports=EDE;EDE.create=function create(options){return new EDE(options);};EDE.prototype._update=function _update(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff);state.ciphers[1]._update(out,outOff,out,outOff);state.ciphers[2]._update(out,outOff,out,outOff);};EDE.prototype._pad=DES.prototype._pad;EDE.prototype._unpad=DES.prototype._unpad;},{"./cipher":318,"./des":319,"inherits":364,"minimalistic-assert":414}],321:[function(require,module,exports){'use strict';exports.readUInt32BE=function readUInt32BE(bytes,off){var res=bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off];return res>>>0;};exports.writeUInt32BE=function writeUInt32BE(bytes,value,off){bytes[0+off]=value>>>24;bytes[1+off]=value>>>16&0xff;bytes[2+off]=value>>>8&0xff;bytes[3+off]=value&0xff;};exports.ip=function ip(inL,inR,out,off){var outL=0;var outR=0;for(var i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>>j+i&1;}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>>j+i&1;}}for(var i=6;i>=0;i-=2){for(var j=1;j<=25;j+=8){outR<<=1;outR|=inR>>>j+i&1;}for(var j=1;j<=25;j+=8){outR<<=1;outR|=inL>>>j+i&1;}}out[off+0]=outL>>>0;out[off+1]=outR>>>0;};exports.rip=function rip(inL,inR,out,off){var outL=0;var outR=0;for(var i=0;i<4;i++){for(var j=24;j>=0;j-=8){outL<<=1;outL|=inR>>>j+i&1;outL<<=1;outL|=inL>>>j+i&1;}}for(var i=4;i<8;i++){for(var j=24;j>=0;j-=8){outR<<=1;outR|=inR>>>j+i&1;outR<<=1;outR|=inL>>>j+i&1;}}out[off+0]=outL>>>0;out[off+1]=outR>>>0;};exports.pc1=function pc1(inL,inR,out,off){var outL=0;var outR=0;// 7, 15, 23, 31, 39, 47, 55, 63 // 6, 14, 22, 30, 39, 47, 55, 63 // 5, 13, 21, 29, 39, 47, 55, 63 // 4, 12, 20, 28 for(var i=7;i>=5;i--){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1;}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>j+i&1;}}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1;}// 1, 9, 17, 25, 33, 41, 49, 57 // 2, 10, 18, 26, 34, 42, 50, 58 // 3, 11, 19, 27, 35, 43, 51, 59 // 36, 44, 52, 60 for(var i=1;i<=3;i++){for(var j=0;j<=24;j+=8){outR<<=1;outR|=inR>>j+i&1;}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1;}}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1;}out[off+0]=outL>>>0;out[off+1]=outR>>>0;};exports.r28shl=function r28shl(num,shift){return num<>>28-shift;};var pc2table=[// inL => outL 14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,// inR => outR 15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function pc2(inL,inR,out,off){var outL=0;var outR=0;var len=pc2table.length>>>1;for(var i=0;i>>pc2table[i]&0x1;}for(var i=len;i>>pc2table[i]&0x1;}out[off+0]=outL>>>0;out[off+1]=outR>>>0;};exports.expand=function expand(r,out,off){var outL=0;var outR=0;outL=(r&1)<<5|r>>>27;for(var i=23;i>=15;i-=4){outL<<=6;outL|=r>>>i&0x3f;}for(var i=11;i>=3;i-=4){outR|=r>>>i&0x3f;outR<<=6;}outR|=(r&0x1f)<<1|r>>>31;out[off+0]=outL>>>0;out[off+1]=outR>>>0;};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function substitute(inL,inR){var out=0;for(var i=0;i<4;i++){var b=inL>>>18-i*6&0x3f;var sb=sTable[i*0x40+b];out<<=4;out|=sb;}for(var i=0;i<4;i++){var b=inR>>>18-i*6&0x3f;var sb=sTable[4*0x40+i*0x40+b];out<<=4;out|=sb;}return out>>>0;};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function permute(num){var out=0;for(var i=0;i>>permuteTable[i]&0x1;}return out>>>0;};exports.padSplit=function padSplit(num,size,group){var str=num.toString(2);while(str.lengthbits){num.ishrn(1);}if(num.isEven()){num.iadd(ONE);}if(!num.testn(1)){num.iadd(TWO);}if(!gen.cmp(TWO)){while(num.mod(TWENTYFOUR).cmp(ELEVEN)){num.iadd(FOUR);}}else if(!gen.cmp(FIVE)){while(num.mod(TEN).cmp(THREE)){num.iadd(FOUR);}}n2=num.shrn(1);if(simpleSieve(n2)&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num)){return num;}}}},{"bn.js":326,"miller-rabin":412,"randombytes":451}],325:[function(require,module,exports){module.exports={"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}};},{}],326:[function(require,module,exports){arguments[4][179][0].apply(exports,arguments);},{"buffer":183,"dup":179}],327:[function(require,module,exports){'use strict';var elliptic=exports;elliptic.version=require('../package.json').version;elliptic.utils=require('./elliptic/utils');elliptic.rand=require('brorand');elliptic.curve=require('./elliptic/curve');elliptic.curves=require('./elliptic/curves');// Protocols elliptic.ec=require('./elliptic/ec');elliptic.eddsa=require('./elliptic/eddsa');},{"../package.json":343,"./elliptic/curve":330,"./elliptic/curves":333,"./elliptic/ec":334,"./elliptic/eddsa":337,"./elliptic/utils":341,"brorand":182}],328:[function(require,module,exports){'use strict';var BN=require('bn.js');var utils=require('../utils');var getNAF=utils.getNAF;var getJSF=utils.getJSF;var assert=utils.assert;function BaseCurve(type,conf){this.type=type;this.p=new BN(conf.p,16);// Use Montgomery, when there is no fast reduction for the prime this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p);// Useful for many curves this.zero=new BN(0).toRed(this.red);this.one=new BN(1).toRed(this.red);this.two=new BN(2).toRed(this.red);// Curve configuration, optional this.n=conf.n&&new BN(conf.n,16);this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed);// Temporary arrays this._wnafT1=new Array(4);this._wnafT2=new Array(4);this._wnafT3=new Array(4);this._wnafT4=new Array(4);this._bitLength=this.n?this.n.bitLength():0;// Generalized Greg Maxwell's trick var adjustCount=this.n&&this.p.div(this.n);if(!adjustCount||adjustCount.cmpn(100)>0){this.redN=null;}else{this._maxwellTrick=true;this.redN=this.n.toRed(this.red);}}module.exports=BaseCurve;BaseCurve.prototype.point=function point(){throw new Error('Not implemented');};BaseCurve.prototype.validate=function validate(){throw new Error('Not implemented');};BaseCurve.prototype._fixedNafMul=function _fixedNafMul(p,k){assert(p.precomputed);var doubles=p._getDoubles();var naf=getNAF(k,1,this._bitLength);var I=(1<=j;k--){nafW=(nafW<<1)+naf[k];}repr.push(nafW);}var a=this.jpoint(null,null,null);var b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(var j=0;j=0;i--){// Count zeroes for(var k=0;i>=0&&naf[i]===0;i--){k++;}if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;var z=naf[i];assert(z!==0);if(p.type==='affine'){// J +- P if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg());}else{// J +- J if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg());}}return p.type==='affine'?acc.toP():acc;};BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(defW,points,coeffs,len,jacobianResult){var wndWidth=this._wnafT1;var wnd=this._wnafT2;var naf=this._wnafT3;// Fill all arrays var max=0;for(var i=0;i=1;i-=2){var a=i-1;var b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a],this._bitLength);naf[b]=getNAF(coeffs[b],wndWidth[b],this._bitLength);max=Math.max(naf[a].length,max);max=Math.max(naf[b].length,max);continue;}var comb=[points[a],/* 1 */null,/* 3 */null,/* 5 */points[b]/* 7 */];// Try to avoid Projective points, if possible if(points[a].y.cmp(points[b].y)===0){comb[1]=points[a].add(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg());}else if(points[a].y.cmp(points[b].y.redNeg())===0){comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].add(points[b].neg());}else{comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg());}var index=[-3,/* -1 -1 */-1,/* -1 0 */-5,/* -1 1 */-7,/* 0 -1 */0,/* 0 0 */7,/* 0 1 */5,/* 1 -1 */1,/* 1 0 */3/* 1 1 */];var jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max);naf[a]=new Array(max);naf[b]=new Array(max);for(var j=0;j=0;i--){var k=0;while(i>=0){var zero=true;for(var j=0;j=0)k++;acc=acc.dblp(k);if(i<0)break;for(var j=0;j0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type==='affine')acc=acc.mixedAdd(p);else acc=acc.add(p);}}// Zeroify references for(var i=0;i=Math.ceil((k.bitLength()+1)/doubles.step);};BasePoint.prototype._getDoubles=function _getDoubles(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this];var acc=this;for(var i=0;i';return'';};Point.prototype.isInfinity=function isInfinity(){// XXX This code assumes that zero is always zero in red return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0);};Point.prototype._extDbl=function _extDbl(){// hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #doubling-dbl-2008-hwcd // 4M + 4S // A = X1^2 var a=this.x.redSqr();// B = Y1^2 var b=this.y.redSqr();// C = 2 * Z1^2 var c=this.z.redSqr();c=c.redIAdd(c);// D = a * A var d=this.curve._mulA(a);// E = (X1 + Y1)^2 - A - B var e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);// G = D + B var g=d.redAdd(b);// F = G - C var f=g.redSub(c);// H = D - B var h=d.redSub(b);// X3 = E * F var nx=e.redMul(f);// Y3 = G * H var ny=g.redMul(h);// T3 = E * H var nt=e.redMul(h);// Z3 = F * G var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt);};Point.prototype._projDbl=function _projDbl(){// hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #doubling-dbl-2008-bbjlp // #doubling-dbl-2007-bl // and others // Generally 3M + 4S or 2M + 4S // B = (X1 + Y1)^2 var b=this.x.redAdd(this.y).redSqr();// C = X1^2 var c=this.x.redSqr();// D = Y1^2 var d=this.y.redSqr();var nx;var ny;var nz;if(this.curve.twisted){// E = a * C var e=this.curve._mulA(c);// F = E + D var f=e.redAdd(d);if(this.zOne){// X3 = (B - C - D) * (F - 2) nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));// Y3 = F * (E - D) ny=f.redMul(e.redSub(d));// Z3 = F^2 - 2 * F nz=f.redSqr().redSub(f).redSub(f);}else{// H = Z1^2 var h=this.z.redSqr();// J = F - 2 * H var j=f.redSub(h).redISub(h);// X3 = (B-C-D)*J nx=b.redSub(c).redISub(d).redMul(j);// Y3 = F * (E - D) ny=f.redMul(e.redSub(d));// Z3 = F * J nz=f.redMul(j);}}else{// E = C + D var e=c.redAdd(d);// H = (c * Z1)^2 var h=this.curve._mulC(this.z).redSqr();// J = E - 2 * H var j=e.redSub(h).redSub(h);// X3 = c * (B - E) * J nx=this.curve._mulC(b.redISub(e)).redMul(j);// Y3 = c * E * (C - D) ny=this.curve._mulC(e).redMul(c.redISub(d));// Z3 = E * J nz=e.redMul(j);}return this.curve.point(nx,ny,nz);};Point.prototype.dbl=function dbl(){if(this.isInfinity())return this;// Double in extended coordinates if(this.curve.extended)return this._extDbl();else return this._projDbl();};Point.prototype._extAdd=function _extAdd(p){// hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #addition-add-2008-hwcd-3 // 8M // A = (Y1 - X1) * (Y2 - X2) var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x));// B = (Y1 + X1) * (Y2 + X2) var b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));// C = T1 * k * T2 var c=this.t.redMul(this.curve.dd).redMul(p.t);// D = Z1 * 2 * Z2 var d=this.z.redMul(p.z.redAdd(p.z));// E = B - A var e=b.redSub(a);// F = D - C var f=d.redSub(c);// G = D + C var g=d.redAdd(c);// H = B + A var h=b.redAdd(a);// X3 = E * F var nx=e.redMul(f);// Y3 = G * H var ny=g.redMul(h);// T3 = E * H var nt=e.redMul(h);// Z3 = F * G var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt);};Point.prototype._projAdd=function _projAdd(p){// hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #addition-add-2008-bbjlp // #addition-add-2007-bl // 10M + 1S // A = Z1 * Z2 var a=this.z.redMul(p.z);// B = A^2 var b=a.redSqr();// C = X1 * X2 var c=this.x.redMul(p.x);// D = Y1 * Y2 var d=this.y.redMul(p.y);// E = d * C * D var e=this.curve.d.redMul(c).redMul(d);// F = B - E var f=b.redSub(e);// G = B + E var g=b.redAdd(e);// X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D) var tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);var nx=a.redMul(f).redMul(tmp);var ny;var nz;if(this.curve.twisted){// Y3 = A * G * (D - a * C) ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));// Z3 = F * G nz=f.redMul(g);}else{// Y3 = A * G * (D - C) ny=a.redMul(g).redMul(d.redSub(c));// Z3 = c * F * G nz=this.curve._mulC(f).redMul(g);}return this.curve.point(nx,ny,nz);};Point.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p);};Point.prototype.mul=function mul(k){if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k);};Point.prototype.mulAdd=function mulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,false);};Point.prototype.jmulAdd=function jmulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,true);};Point.prototype.normalize=function normalize(){if(this.zOne)return this;// Normalize coordinates var zi=this.z.redInvm();this.x=this.x.redMul(zi);this.y=this.y.redMul(zi);if(this.t)this.t=this.t.redMul(zi);this.z=this.curve.one;this.zOne=true;return this;};Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg());};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed();};Point.prototype.getY=function getY(){this.normalize();return this.y.fromRed();};Point.prototype.eq=function eq(other){return this===other||this.getX().cmp(other.getX())===0&&this.getY().cmp(other.getY())===0;};Point.prototype.eqXToP=function eqXToP(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(rx)===0)return true;var xc=x.clone();var t=this.curve.redN.redMul(this.z);for(;;){xc.iadd(this.curve.n);if(xc.cmp(this.curve.p)>=0)return false;rx.redIAdd(t);if(this.x.cmp(rx)===0)return true;}};// Compatibility with BaseCurve Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add;},{"../utils":341,"./base":328,"bn.js":342,"inherits":364}],330:[function(require,module,exports){'use strict';var curve=exports;curve.base=require('./base');curve.short=require('./short');curve.mont=require('./mont');curve.edwards=require('./edwards');},{"./base":328,"./edwards":329,"./mont":331,"./short":332}],331:[function(require,module,exports){'use strict';var BN=require('bn.js');var inherits=require('inherits');var Base=require('./base');var utils=require('../utils');function MontCurve(conf){Base.call(this,'mont',conf);this.a=new BN(conf.a,16).toRed(this.red);this.b=new BN(conf.b,16).toRed(this.red);this.i4=new BN(4).toRed(this.red).redInvm();this.two=new BN(2).toRed(this.red);this.a24=this.i4.redMul(this.a.redAdd(this.two));}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.validate=function validate(point){var x=point.normalize().x;var x2=x.redSqr();var rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);var y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0;};function Point(curve,x,z){Base.BasePoint.call(this,curve,'projective');if(x===null&&z===null){this.x=this.curve.one;this.z=this.curve.zero;}else{this.x=new BN(x,16);this.z=new BN(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);}}inherits(Point,Base.BasePoint);MontCurve.prototype.decodePoint=function decodePoint(bytes,enc){return this.point(utils.toArray(bytes,enc),1);};MontCurve.prototype.point=function point(x,z){return new Point(this,x,z);};MontCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj);};Point.prototype.precompute=function precompute(){// No-op };Point.prototype._encode=function _encode(){return this.getX().toArray('be',this.curve.p.byteLength());};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one);};Point.prototype.inspect=function inspect(){if(this.isInfinity())return'';return'';};Point.prototype.isInfinity=function isInfinity(){// XXX This code assumes that zero is always zero in red return this.z.cmpn(0)===0;};Point.prototype.dbl=function dbl(){// http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3 // 2M + 2S + 4A // A = X1 + Z1 var a=this.x.redAdd(this.z);// AA = A^2 var aa=a.redSqr();// B = X1 - Z1 var b=this.x.redSub(this.z);// BB = B^2 var bb=b.redSqr();// C = AA - BB var c=aa.redSub(bb);// X3 = AA * BB var nx=aa.redMul(bb);// Z3 = C * (BB + A24 * C) var nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz);};Point.prototype.add=function add(){throw new Error('Not supported on Montgomery curve');};Point.prototype.diffAdd=function diffAdd(p,diff){// http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3 // 4M + 2S + 6A // A = X2 + Z2 var a=this.x.redAdd(this.z);// B = X2 - Z2 var b=this.x.redSub(this.z);// C = X3 + Z3 var c=p.x.redAdd(p.z);// D = X3 - Z3 var d=p.x.redSub(p.z);// DA = D * A var da=d.redMul(a);// CB = C * B var cb=c.redMul(b);// X5 = Z1 * (DA + CB)^2 var nx=diff.z.redMul(da.redAdd(cb).redSqr());// Z5 = X1 * (DA - CB)^2 var nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz);};Point.prototype.mul=function mul(k){var t=k.clone();var a=this;// (N / 2) * Q + Q var b=this.curve.point(null,null);// (N / 2) * Q var c=this;// Q for(var bits=[];t.cmpn(0)!==0;t.iushrn(1)){bits.push(t.andln(1));}for(var i=bits.length-1;i>=0;i--){if(bits[i]===0){// N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q a=a.diffAdd(b,c);// N * Q = 2 * ((N / 2) * Q + Q)) b=b.dbl();}else{// N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q) b=a.diffAdd(b,c);// N * Q + Q = 2 * ((N / 2) * Q + Q) a=a.dbl();}}return b;};Point.prototype.mulAdd=function mulAdd(){throw new Error('Not supported on Montgomery curve');};Point.prototype.jumlAdd=function jumlAdd(){throw new Error('Not supported on Montgomery curve');};Point.prototype.eq=function eq(other){return this.getX().cmp(other.getX())===0;};Point.prototype.normalize=function normalize(){this.x=this.x.redMul(this.z.redInvm());this.z=this.curve.one;return this;};Point.prototype.getX=function getX(){// Normalize coordinates this.normalize();return this.x.fromRed();};},{"../utils":341,"./base":328,"bn.js":342,"inherits":364}],332:[function(require,module,exports){'use strict';var utils=require('../utils');var BN=require('bn.js');var inherits=require('inherits');var Base=require('./base');var assert=utils.assert;function ShortCurve(conf){Base.call(this,'short',conf);this.a=new BN(conf.a,16).toRed(this.red);this.b=new BN(conf.b,16).toRed(this.red);this.tinv=this.two.redInvm();this.zeroA=this.a.fromRed().cmpn(0)===0;this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0;// If the curve is endomorphic, precalculate beta and lambda this.endo=this._getEndomorphism(conf);this._endoWnafT1=new Array(4);this._endoWnafT2=new Array(4);}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function _getEndomorphism(conf){// No efficient endomorphism if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;// Compute beta and lambda, that lambda * P = (beta * Px; Py) var beta;var lambda;if(conf.beta){beta=new BN(conf.beta,16).toRed(this.red);}else{var betas=this._getEndoRoots(this.p);// Choose the smallest beta beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1];beta=beta.toRed(this.red);}if(conf.lambda){lambda=new BN(conf.lambda,16);}else{// Choose the lambda that is matching selected beta var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0){lambda=lambdas[0];}else{lambda=lambdas[1];assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0);}}// Get basis vectors, used for balanced length-two representation var basis;if(conf.basis){basis=conf.basis.map(function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)};});}else{basis=this._getEndoBasis(lambda);}return{beta:beta,lambda:lambda,basis:basis};};ShortCurve.prototype._getEndoRoots=function _getEndoRoots(num){// Find roots of for x^2 + x + 1 in F // Root = (-1 +- Sqrt(-3)) / 2 // var red=num===this.p?this.red:BN.mont(num);var tinv=new BN(2).toRed(red).redInvm();var ntinv=tinv.redNeg();var s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);var l1=ntinv.redAdd(s).fromRed();var l2=ntinv.redSub(s).fromRed();return[l1,l2];};ShortCurve.prototype._getEndoBasis=function _getEndoBasis(lambda){// aprxSqrt >= sqrt(this.n) var aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2));// 3.74 // Run EGCD, until r(L + 1) < aprxSqrt var u=lambda;var v=this.n.clone();var x1=new BN(1);var y1=new BN(0);var x2=new BN(0);var y2=new BN(1);// NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) var a0;var b0;// First vector var a1;var b1;// Second vector var a2;var b2;var prevR;var i=0;var r;var x;while(u.cmpn(0)!==0){var q=v.div(u);r=v.sub(q.mul(u));x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0){a0=prevR.neg();b0=x1;a1=r.neg();b1=x;}else if(a1&&++i===2){break;}prevR=r;v=u;u=r;x2=x1;x1=x;y2=y1;y1=y;}a2=r.neg();b2=x;var len1=a1.sqr().add(b1.sqr());var len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0){a2=a0;b2=b0;}// Normalize signs if(a1.negative){a1=a1.neg();b1=b1.neg();}if(a2.negative){a2=a2.neg();b2=b2.neg();}return[{a:a1,b:b1},{a:a2,b:b2}];};ShortCurve.prototype._endoSplit=function _endoSplit(k){var basis=this.endo.basis;var v1=basis[0];var v2=basis[1];var c1=v2.b.mul(k).divRound(this.n);var c2=v1.b.neg().mul(k).divRound(this.n);var p1=c1.mul(v1.a);var p2=c2.mul(v2.a);var q1=c1.mul(v1.b);var q2=c2.mul(v2.b);// Calculate answer var k1=k.sub(p1).sub(p2);var k2=q1.add(q2).neg();return{k1:k1,k2:k2};};ShortCurve.prototype.pointFromX=function pointFromX(x,odd){x=new BN(x,16);if(!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);var y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw new Error('invalid point');// XXX Is there any way to tell if the number is odd without converting it // to non-red form? var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y);};ShortCurve.prototype.validate=function validate(point){if(point.inf)return true;var x=point.x;var y=point.y;var ax=this.a.redMul(x);var rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0;};ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(points,coeffs,jacobianResult){var npoints=this._endoWnafT1;var ncoeffs=this._endoWnafT2;for(var i=0;i';return'';};Point.prototype.isInfinity=function isInfinity(){return this.inf;};Point.prototype.add=function add(p){// O + P = P if(this.inf)return p;// P + O = P if(p.inf)return this;// P + P = 2P if(this.eq(p))return this.dbl();// P + (-P) = O if(this.neg().eq(p))return this.curve.point(null,null);// P + Q = O if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x);var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny);};Point.prototype.dbl=function dbl(){if(this.inf)return this;// 2P = O var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a;var x2=this.x.redSqr();var dyinv=ys1.redInvm();var c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);var nx=c.redSqr().redISub(this.x.redAdd(this.x));var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny);};Point.prototype.getX=function getX(){return this.x.fromRed();};Point.prototype.getY=function getY(){return this.y.fromRed();};Point.prototype.mul=function mul(k){k=new BN(k,16);if(this.isInfinity())return this;else if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k);};Point.prototype.mulAdd=function mulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2);};Point.prototype.jmulAdd=function jmulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs,true);else return this.curve._wnafMulAdd(1,points,coeffs,2,true);};Point.prototype.eq=function eq(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0);};Point.prototype.neg=function neg(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed;var negate=function negate(p){return p.neg();};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}};}return res;};Point.prototype.toJ=function toJ(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res;};function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,'jacobian');if(x===null&&y===null&&z===null){this.x=this.curve.one;this.y=this.curve.one;this.z=new BN(0);}else{this.x=new BN(x,16);this.y=new BN(y,16);this.z=new BN(z,16);}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one;}inherits(JPoint,Base.BasePoint);ShortCurve.prototype.jpoint=function jpoint(x,y,z){return new JPoint(this,x,y,z);};JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm();var zinv2=zinv.redSqr();var ax=this.x.redMul(zinv2);var ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay);};JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z);};JPoint.prototype.add=function add(p){// O + P = P if(this.isInfinity())return p;// P + O = P if(p.isInfinity())return this;// 12M + 4S + 7A var pz2=p.z.redSqr();var z2=this.z.redSqr();var u1=this.x.redMul(pz2);var u2=p.x.redMul(z2);var s1=this.y.redMul(pz2.redMul(p.z));var s2=p.y.redMul(z2.redMul(this.z));var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz);};JPoint.prototype.mixedAdd=function mixedAdd(p){// O + P = P if(this.isInfinity())return p.toJ();// P + O = P if(p.isInfinity())return this;// 8M + 3S + 7A var z2=this.z.redSqr();var u1=this.x;var u2=p.x.redMul(z2);var s1=this.y;var s2=p.y.redMul(z2).redMul(this.z);var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz);};JPoint.prototype.dblp=function dblp(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();if(this.curve.zeroA||this.curve.threeA){var r=this;for(var i=0;i 6M + 6S + 9A var a=this.curve.a;var tinv=this.curve.tinv;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();// Reuse results var jyd=jy.redAdd(jy);for(var i=0;i=0)return false;rx.redIAdd(t);if(this.x.cmp(rx)===0)return true;}};JPoint.prototype.inspect=function inspect(){if(this.isInfinity())return'';return'';};JPoint.prototype.isInfinity=function isInfinity(){// XXX This code assumes that zero is always zero in red return this.z.cmpn(0)===0;};},{"../utils":341,"./base":328,"bn.js":342,"inherits":364}],333:[function(require,module,exports){'use strict';var curves=exports;var hash=require('hash.js');var curve=require('./curve');var utils=require('./utils');var assert=utils.assert;function PresetCurve(options){if(options.type==='short')this.curve=new curve.short(options);else if(options.type==='edwards')this.curve=new curve.edwards(options);else this.curve=new curve.mont(options);this.g=this.curve.g;this.n=this.curve.n;this.hash=options.hash;assert(this.g.validate(),'Invalid curve');assert(this.g.mul(this.n).isInfinity(),'Invalid curve, G*N != O');}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:true,enumerable:true,get:function get(){var curve=new PresetCurve(options);Object.defineProperty(curves,name,{configurable:true,enumerable:true,value:curve});return curve;}});}defineCurve('p192',{type:'short',prime:'p192',p:'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',a:'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',b:'64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',n:'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',hash:hash.sha256,gRed:false,g:['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012','07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811']});defineCurve('p224',{type:'short',prime:'p224',p:'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',a:'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',b:'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',n:'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',hash:hash.sha256,gRed:false,g:['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21','bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34']});defineCurve('p256',{type:'short',prime:null,p:'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',a:'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',b:'5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',n:'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',hash:hash.sha256,gRed:false,g:['6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296','4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5']});defineCurve('p384',{type:'short',prime:null,p:'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff '+'fffffffe ffffffff 00000000 00000000 ffffffff',a:'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff '+'fffffffe ffffffff 00000000 00000000 fffffffc',b:'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f '+'5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',n:'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 '+'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',hash:hash.sha384,gRed:false,g:['aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 '+'5502f25d bf55296c 3a545e38 72760ab7','3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 '+'0a60b1ce 1d7e819d 7a431d7c 90ea0e5f']});defineCurve('p521',{type:'short',prime:null,p:'000001ff ffffffff ffffffff ffffffff ffffffff ffffffff '+'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff '+'ffffffff ffffffff ffffffff ffffffff ffffffff',a:'000001ff ffffffff ffffffff ffffffff ffffffff ffffffff '+'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff '+'ffffffff ffffffff ffffffff ffffffff fffffffc',b:'00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b '+'99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd '+'3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',n:'000001ff ffffffff ffffffff ffffffff ffffffff ffffffff '+'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 '+'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',hash:hash.sha512,gRed:false,g:['000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 '+'053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 '+'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66','00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 '+'579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 '+'3fad0761 353c7086 a272c240 88be9476 9fd16650']});defineCurve('curve25519',{type:'mont',prime:'p25519',p:'7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',a:'76d06',b:'1',n:'1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',hash:hash.sha256,gRed:false,g:['9']});defineCurve('ed25519',{type:'edwards',prime:'p25519',p:'7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',a:'-1',c:'1',// -121665 * (121666^(-1)) (mod P) d:'52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',n:'1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',hash:hash.sha256,gRed:false,g:['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',// 4/5 '6666666666666666666666666666666666666666666666666666666666666658']});var pre;try{pre=require('./precomputed/secp256k1');}catch(e){pre=undefined;}defineCurve('secp256k1',{type:'short',prime:'k256',p:'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',a:'0',b:'7',n:'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',h:'1',hash:hash.sha256,// Precomputed endomorphism beta:'7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',lambda:'5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',basis:[{a:'3086d221a7d46bcde86c90e49284eb15',b:'-e4437ed6010e88286f547fa90abfe4c3'},{a:'114ca50f7a8e2f3f657c1108d9d44cfd8',b:'3086d221a7d46bcde86c90e49284eb15'}],gRed:false,g:['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798','483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',pre]});},{"./curve":330,"./precomputed/secp256k1":340,"./utils":341,"hash.js":349}],334:[function(require,module,exports){'use strict';var BN=require('bn.js');var HmacDRBG=require('hmac-drbg');var utils=require('../utils');var curves=require('../curves');var rand=require('brorand');var assert=utils.assert;var KeyPair=require('./key');var Signature=require('./signature');function EC(options){if(!(this instanceof EC))return new EC(options);// Shortcut `elliptic.ec(curve-name)` if(typeof options==='string'){assert(curves.hasOwnProperty(options),'Unknown curve '+options);options=curves[options];}// Shortcut for `elliptic.ec(elliptic.curves.curveName)` if(options instanceof curves.PresetCurve)options={curve:options};this.curve=options.curve.curve;this.n=this.curve.n;this.nh=this.n.ushrn(1);this.g=this.curve.g;// Point on curve this.g=options.curve.g;this.g.precompute(options.curve.n.bitLength()+1);// Hash for function for DRBG this.hash=options.hash||options.curve.hash;}module.exports=EC;EC.prototype.keyPair=function keyPair(options){return new KeyPair(this,options);};EC.prototype.keyFromPrivate=function keyFromPrivate(priv,enc){return KeyPair.fromPrivate(this,priv,enc);};EC.prototype.keyFromPublic=function keyFromPublic(pub,enc){return KeyPair.fromPublic(this,pub,enc);};EC.prototype.genKeyPair=function genKeyPair(options){if(!options)options={};// Instantiate Hmac_DRBG var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||'utf8',entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||'utf8',nonce:this.n.toArray()});var bytes=this.n.byteLength();var ns2=this.n.sub(new BN(2));do{var priv=new BN(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;priv.iaddn(1);return this.keyFromPrivate(priv);}while(true);};EC.prototype._truncateToN=function truncateToN(msg,truncOnly){var delta=msg.byteLength()*8-this.n.bitLength();if(delta>0)msg=msg.ushrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg;};EC.prototype.sign=function sign(msg,key,enc,options){if(_typeof2(enc)==='object'){options=enc;enc=null;}if(!options)options={};key=this.keyFromPrivate(key,enc);msg=this._truncateToN(new BN(msg,16));// Zero-extend key to provide enough entropy var bytes=this.n.byteLength();var bkey=key.getPrivate().toArray('be',bytes);// Zero-extend nonce to have the same byte size as N var nonce=msg.toArray('be',bytes);// Instantiate Hmac_DRBG var drbg=new HmacDRBG({hash:this.hash,entropy:bkey,nonce:nonce,pers:options.pers,persEnc:options.persEnc||'utf8'});// Number of bytes to generate var ns1=this.n.sub(new BN(1));for(var iter=0;true;iter++){var k=options.k?options.k(iter):new BN(drbg.generate(this.n.byteLength()));k=this._truncateToN(k,true);if(k.cmpn(1)<=0||k.cmp(ns1)>=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var kpX=kp.getX();var r=kpX.umod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));s=s.umod(this.n);if(s.cmpn(0)===0)continue;var recoveryParam=(kp.getY().isOdd()?1:0)|(kpX.cmp(r)!==0?2:0);// Use complement of `s`, if it is > `n / 2` if(options.canonical&&s.cmp(this.nh)>0){s=this.n.sub(s);recoveryParam^=1;}return new Signature({r:r,s:s,recoveryParam:recoveryParam});}};EC.prototype.verify=function verify(msg,signature,key,enc){msg=this._truncateToN(new BN(msg,16));key=this.keyFromPublic(key,enc);signature=new Signature(signature,'hex');// Perform primitive values validation var r=signature.r;var s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return false;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return false;// Validate signature var sinv=s.invm(this.n);var u1=sinv.mul(msg).umod(this.n);var u2=sinv.mul(r).umod(this.n);if(!this.curve._maxwellTrick){var p=this.g.mulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;return p.getX().umod(this.n).cmp(r)===0;}// NOTE: Greg Maxwell's trick, inspired by: // https://git.io/vad3K var p=this.g.jmulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;// Compare `p.x` of Jacobian point with `r`, // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the // inverse of `p.z^2` return p.eqXToP(r);};EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,'The recovery param is more than two bits');signature=new Signature(signature,enc);var n=this.n;var e=new BN(msg);var r=signature.r;var s=signature.s;// A set LSB signifies that the y-coordinate is odd var isYOdd=j&1;var isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw new Error('Unable to find sencond key candinate');// 1.1. Let x = r + jn. if(isSecondKey)r=this.curve.pointFromX(r.add(this.curve.n),isYOdd);else r=this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n);var s1=n.sub(e).mul(rInv).umod(n);var s2=s.mul(rInv).umod(n);// 1.6.1 Compute Q = r^-1 (sR - eG) // Q = r^-1 (sR + -eG) return this.g.mulAdd(s1,r,s2);};EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){signature=new Signature(signature,enc);if(signature.recoveryParam!==null)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i);}catch(e){continue;}if(Qprime.eq(Q))return i;}throw new Error('Unable to find valid recovery factor');};},{"../curves":333,"../utils":341,"./key":335,"./signature":336,"bn.js":342,"brorand":182,"hmac-drbg":361}],335:[function(require,module,exports){'use strict';var BN=require('bn.js');var utils=require('../utils');var assert=utils.assert;function KeyPair(ec,options){this.ec=ec;this.priv=null;this.pub=null;// KeyPair(ec, { priv: ..., pub: ... }) if(options.priv)this._importPrivate(options.priv,options.privEnc);if(options.pub)this._importPublic(options.pub,options.pubEnc);}module.exports=KeyPair;KeyPair.fromPublic=function fromPublic(ec,pub,enc){if(pub instanceof KeyPair)return pub;return new KeyPair(ec,{pub:pub,pubEnc:enc});};KeyPair.fromPrivate=function fromPrivate(ec,priv,enc){if(priv instanceof KeyPair)return priv;return new KeyPair(ec,{priv:priv,privEnc:enc});};KeyPair.prototype.validate=function validate(){var pub=this.getPublic();if(pub.isInfinity())return{result:false,reason:'Invalid public key'};if(!pub.validate())return{result:false,reason:'Public key is not a point'};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:false,reason:'Public key * N != O'};return{result:true,reason:null};};KeyPair.prototype.getPublic=function getPublic(compact,enc){// compact is optional argument if(typeof compact==='string'){enc=compact;compact=null;}if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!enc)return this.pub;return this.pub.encode(enc,compact);};KeyPair.prototype.getPrivate=function getPrivate(enc){if(enc==='hex')return this.priv.toString(16,2);else return this.priv;};KeyPair.prototype._importPrivate=function _importPrivate(key,enc){this.priv=new BN(key,enc||16);// Ensure that the priv won't be bigger than n, otherwise we may fail // in fixed multiplication method this.priv=this.priv.umod(this.ec.curve.n);};KeyPair.prototype._importPublic=function _importPublic(key,enc){if(key.x||key.y){// Montgomery points only have an `x` coordinate. // Weierstrass/Edwards points on the other hand have both `x` and // `y` coordinates. if(this.ec.curve.type==='mont'){assert(key.x,'Need x coordinate');}else if(this.ec.curve.type==='short'||this.ec.curve.type==='edwards'){assert(key.x&&key.y,'Need both x and y coordinate');}this.pub=this.ec.curve.point(key.x,key.y);return;}this.pub=this.ec.curve.decodePoint(key,enc);};// ECDH KeyPair.prototype.derive=function derive(pub){return pub.mul(this.priv).getX();};// ECDSA KeyPair.prototype.sign=function sign(msg,enc,options){return this.ec.sign(msg,this,enc,options);};KeyPair.prototype.verify=function verify(msg,signature){return this.ec.verify(msg,signature,this);};KeyPair.prototype.inspect=function inspect(){return'';};},{"../utils":341,"bn.js":342}],336:[function(require,module,exports){'use strict';var BN=require('bn.js');var utils=require('../utils');var assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;if(this._importDER(options,enc))return;assert(options.r&&options.s,'Signature without r or s');this.r=new BN(options.r,16);this.s=new BN(options.s,16);if(options.recoveryParam===undefined)this.recoveryParam=null;else this.recoveryParam=options.recoveryParam;}module.exports=Signature;function Position(){this.place=0;}function getLength(buf,p){var initial=buf[p.place++];if(!(initial&0x80)){return initial;}var octetLen=initial&0xf;var val=0;for(var i=0,off=p.place;i>>3);arr.push(octets|0x80);while(--octets){arr.push(len>>>(octets<<3)&0xff);}arr.push(len);}Signature.prototype.toDER=function toDER(enc){var r=this.r.toArray();var s=this.s.toArray();// Pad values if(r[0]&0x80)r=[0].concat(r);// Pad values if(s[0]&0x80)s=[0].concat(s);r=rmPadding(r);s=rmPadding(s);while(!s[0]&&!(s[1]&0x80)){s=s.slice(1);}var arr=[0x02];constructLength(arr,r.length);arr=arr.concat(r);arr.push(0x02);constructLength(arr,s.length);var backHalf=arr.concat(s);var res=[0x30];constructLength(res,backHalf.length);res=res.concat(backHalf);return utils.encode(res,enc);};},{"../utils":341,"bn.js":342}],337:[function(require,module,exports){'use strict';var hash=require('hash.js');var curves=require('../curves');var utils=require('../utils');var assert=utils.assert;var parseBytes=utils.parseBytes;var KeyPair=require('./key');var Signature=require('./signature');function EDDSA(curve){assert(curve==='ed25519','only tested with ed25519 so far');if(!(this instanceof EDDSA))return new EDDSA(curve);var curve=curves[curve].curve;this.curve=curve;this.g=curve.g;this.g.precompute(curve.n.bitLength()+1);this.pointClass=curve.point().constructor;this.encodingLength=Math.ceil(curve.n.bitLength()/8);this.hash=hash.sha512;}module.exports=EDDSA;/** * @param {Array|String} message - message bytes * @param {Array|String|KeyPair} secret - secret bytes or a keypair * @returns {Signature} - signature */EDDSA.prototype.sign=function sign(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret);var r=this.hashInt(key.messagePrefix(),message);var R=this.g.mul(r);var Rencoded=this.encodePoint(R);var s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv());var S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded});};/** * @param {Array} message - message bytes * @param {Array|String|Signature} sig - sig bytes * @param {Array|String|Point|KeyPair} pub - public key * @returns {Boolean} - true if public key matches sig of message */EDDSA.prototype.verify=function verify(message,sig,pub){message=parseBytes(message);sig=this.makeSignature(sig);var key=this.keyFromPublic(pub);var h=this.hashInt(sig.Rencoded(),key.pubBytes(),message);var SG=this.g.mul(sig.S());var RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG);};EDDSA.prototype.hashInt=function hashInt(){var hash=this.hash();for(var i=0;i} [params.secret] - secret seed bytes * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms) * @param {Array} [params.pub] - public key point encoded as bytes * */function KeyPair(eddsa,params){this.eddsa=eddsa;this._secret=parseBytes(params.secret);if(eddsa.isPoint(params.pub))this._pub=params.pub;else this._pubBytes=parseBytes(params.pub);}KeyPair.fromPublic=function fromPublic(eddsa,pub){if(pub instanceof KeyPair)return pub;return new KeyPair(eddsa,{pub:pub});};KeyPair.fromSecret=function fromSecret(eddsa,secret){if(secret instanceof KeyPair)return secret;return new KeyPair(eddsa,{secret:secret});};KeyPair.prototype.secret=function secret(){return this._secret;};cachedProperty(KeyPair,'pubBytes',function pubBytes(){return this.eddsa.encodePoint(this.pub());});cachedProperty(KeyPair,'pub',function pub(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv());});cachedProperty(KeyPair,'privBytes',function privBytes(){var eddsa=this.eddsa;var hash=this.hash();var lastIx=eddsa.encodingLength-1;var a=hash.slice(0,eddsa.encodingLength);a[0]&=248;a[lastIx]&=127;a[lastIx]|=64;return a;});cachedProperty(KeyPair,'priv',function priv(){return this.eddsa.decodeInt(this.privBytes());});cachedProperty(KeyPair,'hash',function hash(){return this.eddsa.hash().update(this.secret()).digest();});cachedProperty(KeyPair,'messagePrefix',function messagePrefix(){return this.hash().slice(this.eddsa.encodingLength);});KeyPair.prototype.sign=function sign(message){assert(this._secret,'KeyPair can only verify');return this.eddsa.sign(message,this);};KeyPair.prototype.verify=function verify(message,sig){return this.eddsa.verify(message,sig,this);};KeyPair.prototype.getSecret=function getSecret(enc){assert(this._secret,'KeyPair is public only');return utils.encode(this.secret(),enc);};KeyPair.prototype.getPublic=function getPublic(enc){return utils.encode(this.pubBytes(),enc);};module.exports=KeyPair;},{"../utils":341}],339:[function(require,module,exports){'use strict';var BN=require('bn.js');var utils=require('../utils');var assert=utils.assert;var cachedProperty=utils.cachedProperty;var parseBytes=utils.parseBytes;/** * @param {EDDSA} eddsa - eddsa instance * @param {Array|Object} sig - * @param {Array|Point} [sig.R] - R point as Point or bytes * @param {Array|bn} [sig.S] - S scalar as bn or bytes * @param {Array} [sig.Rencoded] - R point encoded * @param {Array} [sig.Sencoded] - S scalar encoded */function Signature(eddsa,sig){this.eddsa=eddsa;if(_typeof2(sig)!=='object')sig=parseBytes(sig);if(Array.isArray(sig)){sig={R:sig.slice(0,eddsa.encodingLength),S:sig.slice(eddsa.encodingLength)};}assert(sig.R&&sig.S,'Signature without R or S');if(eddsa.isPoint(sig.R))this._R=sig.R;if(sig.S instanceof BN)this._S=sig.S;this._Rencoded=Array.isArray(sig.R)?sig.R:sig.Rencoded;this._Sencoded=Array.isArray(sig.S)?sig.S:sig.Sencoded;}cachedProperty(Signature,'S',function S(){return this.eddsa.decodeInt(this.Sencoded());});cachedProperty(Signature,'R',function R(){return this.eddsa.decodePoint(this.Rencoded());});cachedProperty(Signature,'Rencoded',function Rencoded(){return this.eddsa.encodePoint(this.R());});cachedProperty(Signature,'Sencoded',function Sencoded(){return this.eddsa.encodeInt(this.S());});Signature.prototype.toBytes=function toBytes(){return this.Rencoded().concat(this.Sencoded());};Signature.prototype.toHex=function toHex(){return utils.encode(this.toBytes(),'hex').toUpperCase();};module.exports=Signature;},{"../utils":341,"bn.js":342}],340:[function(require,module,exports){module.exports={doubles:{step:4,points:[['e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a','f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'],['8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508','11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'],['175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739','d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'],['363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640','4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'],['8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c','4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'],['723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda','96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'],['eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa','5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'],['100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0','cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'],['e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d','9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'],['feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d','e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'],['da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1','9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'],['53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0','5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'],['8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047','10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'],['385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862','283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'],['6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7','7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'],['3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd','56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'],['85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83','7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'],['948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a','53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'],['6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8','bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'],['e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d','4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'],['e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725','7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'],['213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754','4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'],['4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c','17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'],['fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6','6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'],['76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39','c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'],['c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891','893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'],['d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b','febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'],['b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03','2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'],['e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d','eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'],['a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070','7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'],['90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4','e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'],['8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da','662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'],['e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11','1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'],['8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e','efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'],['e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41','2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'],['b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef','67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'],['d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8','db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'],['324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d','648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'],['4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96','35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'],['9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd','ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'],['6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5','9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'],['a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266','40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'],['7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71','34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'],['928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac','c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'],['85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751','1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'],['ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e','493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'],['827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241','c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'],['eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3','be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'],['e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f','4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'],['1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19','aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'],['146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be','b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'],['fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9','6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'],['da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2','8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'],['a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13','7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'],['174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c','ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'],['959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba','2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'],['d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151','e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'],['64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073','d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'],['8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458','38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'],['13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b','69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'],['bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366','d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'],['8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa','40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'],['8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0','620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'],['dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787','7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'],['f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e','ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82']]},naf:{wnd:7,points:[['f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9','388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'],['2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4','d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'],['5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc','6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'],['acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe','cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'],['774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb','d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'],['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8','ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'],['d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e','581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'],['defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34','4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'],['2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c','85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'],['352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5','321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'],['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f','2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'],['9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714','73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'],['daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729','a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'],['c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db','2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'],['6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4','e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'],['1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5','b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'],['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479','2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'],['62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d','80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'],['80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f','1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'],['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb','d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'],['d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9','eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'],['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963','758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'],['77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74','958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'],['f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530','e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'],['463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b','5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'],['f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247','cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'],['caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1','cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'],['2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120','4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'],['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435','91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'],['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18','673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'],['e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8','59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'],['186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb','3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'],['df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f','55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'],['5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143','efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'],['290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba','e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'],['af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45','f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'],['766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a','744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'],['59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e','c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'],['f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8','e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'],['7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c','30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'],['948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519','e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'],['7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab','100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'],['3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca','ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'],['d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf','8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'],['1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610','68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'],['733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4','f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'],['15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c','d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'],['a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940','edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'],['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980','a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'],['311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3','66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'],['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf','9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'],['f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63','4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'],['d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448','fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'],['32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf','5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'],['7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5','8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'],['ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6','8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'],['16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5','5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'],['eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99','f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'],['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51','f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'],['494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5','42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'],['a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5','204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'],['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997','4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'],['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881','73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'],['5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5','39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'],['36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66','d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'],['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726','ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'],['8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede','6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'],['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94','60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'],['85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31','3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'],['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51','b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'],['a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252','ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'],['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5','cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'],['d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b','6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'],['ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4','322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'],['af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f','6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'],['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889','2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'],['591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246','b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'],['11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984','998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'],['3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a','b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'],['cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030','bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'],['c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197','6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'],['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593','c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'],['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef','21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'],['347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38','60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'],['da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a','49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'],['c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111','5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'],['4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502','7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'],['3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea','be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'],['cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26','8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'],['b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986','39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'],['d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e','62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'],['48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4','25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'],['dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda','ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'],['6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859','cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'],['e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f','f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'],['eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c','6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'],['13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942','fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'],['ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a','1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'],['b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80','5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'],['ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d','438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'],['8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1','cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'],['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63','c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'],['e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352','6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'],['7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193','ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'],['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00','9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'],['32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58','ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'],['e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7','d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'],['8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8','c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'],['4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e','67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'],['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d','cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'],['674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b','299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'],['d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f','f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'],['30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6','462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'],['be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297','62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'],['93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a','7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'],['b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c','ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'],['d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52','4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'],['d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb','bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'],['463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065','bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'],['7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917','603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'],['74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9','cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'],['30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3','553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'],['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57','712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'],['176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66','ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'],['75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8','9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'],['809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721','9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'],['1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180','4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9']]}};},{}],341:[function(require,module,exports){'use strict';var utils=exports;var BN=require('bn.js');var minAssert=require('minimalistic-assert');var minUtils=require('minimalistic-crypto-utils');utils.assert=minAssert;utils.toArray=minUtils.toArray;utils.zero2=minUtils.zero2;utils.toHex=minUtils.toHex;utils.encode=minUtils.encode;// Represent num in a w-NAF form function getNAF(num,w,bits){var naf=new Array(Math.max(num.bitLength(),bits)+1);naf.fill(0);var ws=1<(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z);}else{z=0;}naf[i]=z;k.iushrn(1);}return naf;}utils.getNAF=getNAF;// Represent k1, k2 in a Joint Sparse Form function getJSF(k1,k2){var jsf=[[],[]];k1=k1.clone();k2=k2.clone();var d1=0;var d2=0;while(k1.cmpn(-d1)>0||k2.cmpn(-d2)>0){// First phase var m14=k1.andln(3)+d1&3;var m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0){u1=0;}else{var m8=k1.andln(7)+d1&7;if((m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14;}jsf[0].push(u1);var u2;if((m24&1)===0){u2=0;}else{var m8=k2.andln(7)+d2&7;if((m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24;}jsf[1].push(u2);// Second phase if(2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.iushrn(1);k2.iushrn(1);}return jsf;}utils.getJSF=getJSF;function cachedProperty(obj,name,computer){var key='_'+name;obj.prototype[name]=function cachedProperty(){return this[key]!==undefined?this[key]:this[key]=computer.call(this);};}utils.cachedProperty=cachedProperty;function parseBytes(bytes){return typeof bytes==='string'?utils.toArray(bytes,'hex'):bytes;}utils.parseBytes=parseBytes;function intFromLE(bytes){return new BN(bytes,'hex','le');}utils.intFromLE=intFromLE;},{"bn.js":342,"minimalistic-assert":414,"minimalistic-crypto-utils":415}],342:[function(require,module,exports){arguments[4][179][0].apply(exports,arguments);},{"buffer":183,"dup":179}],343:[function(require,module,exports){module.exports={"_from":"elliptic@^6.5.2","_id":"elliptic@6.5.2","_inBundle":false,"_integrity":"sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"elliptic@^6.5.2","name":"elliptic","escapedName":"elliptic","rawSpec":"^6.5.2","saveSpec":null,"fetchSpec":"^6.5.2"},"_requiredBy":["/browserify-sign","/create-ecdh"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz","_shasum":"05c5678d7173c049d8ca433552224a495d0e3762","_spec":"elliptic@^6.5.2","_where":"/mnt/d/dev/git/exceljs/node_modules/browserify-sign","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"bundleDependencies":false,"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"deprecated":false,"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.5.2"};},{}],344:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. var objectCreate=Object.create||objectCreatePolyfill;var objectKeys=Object.keys||objectKeysPolyfill;var bind=Function.prototype.bind||functionBindPolyfill;function EventEmitter(){if(!this._events||!Object.prototype.hasOwnProperty.call(this,'_events')){this._events=objectCreate(null);this._eventsCount=0;}this._maxListeners=this._maxListeners||undefined;}module.exports=EventEmitter;// Backwards-compat with node 0.10.x EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;// By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. var defaultMaxListeners=10;var hasDefineProperty;try{var o={};if(Object.defineProperty)Object.defineProperty(o,'x',{value:0});hasDefineProperty=o.x===0;}catch(err){hasDefineProperty=false;}if(hasDefineProperty){Object.defineProperty(EventEmitter,'defaultMaxListeners',{enumerable:true,get:function get(){return defaultMaxListeners;},set:function set(arg){// check whether the input is a positive number (whose value is zero or // greater and not a NaN). if(typeof arg!=='number'||arg<0||arg!==arg)throw new TypeError('"defaultMaxListeners" must be a positive number');defaultMaxListeners=arg;}});}else{EventEmitter.defaultMaxListeners=defaultMaxListeners;}// Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=='number'||n<0||isNaN(n))throw new TypeError('"n" argument must be a positive number');this._maxListeners=n;return this;};function $getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners;}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return $getMaxListeners(this);};// These standalone emit* functions are used to optimize calling of event // handlers for fast cases because emit() itself often has a variable number of // arguments and can be deoptimized because of that. These functions always have // the same number of arguments and thus do not get deoptimized, so the code // inside them can execute faster. function emitNone(handler,isFn,self){if(isFn)handler.call(self);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i1)er=arguments[1];if(er instanceof Error){throw er;// Unhandled 'error' event }else{// At least give some kind of context to the user var err=new Error('Unhandled "error" event. ('+er+')');err.context=er;throw err;}return false;}handler=events[type];if(!handler)return false;var isFn=typeof handler==='function';len=arguments.length;switch(len){// fast cases case 1:emitNone(handler,isFn,this);break;case 2:emitOne(handler,isFn,this,arguments[1]);break;case 3:emitTwo(handler,isFn,this,arguments[1],arguments[2]);break;case 4:emitThree(handler,isFn,this,arguments[1],arguments[2],arguments[3]);break;// slower default:args=new Array(len-1);for(i=1;i0&&existing.length>m){existing.warned=true;var w=new Error('Possible EventEmitter memory leak detected. '+existing.length+' "'+String(type)+'" listeners '+'added. Use emitter.setMaxListeners() to '+'increase limit.');w.name='MaxListenersExceededWarning';w.emitter=target;w.type=type;w.count=existing.length;if((typeof console==="undefined"?"undefined":_typeof2(console))==='object'&&console.warn){console.warn('%s: %s',w.name,w.message);}}}}return target;}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false);};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true);};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;switch(arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:var args=new Array(arguments.length);for(var i=0;i=0;i--){if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener;position=i;break;}}if(position<0)return this;if(position===0)list.shift();else spliceOne(list,position);if(list.length===1)events[type]=list[0];if(events.removeListener)this.emit('removeListener',type,originalListener||listener);}return this;};EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events,i;events=this._events;if(!events)return this;// not listening for removeListener, no need to emit if(!events.removeListener){if(arguments.length===0){this._events=objectCreate(null);this._eventsCount=0;}else if(events[type]){if(--this._eventsCount===0)this._events=objectCreate(null);else delete events[type];}return this;}// emit removeListener for all listeners on all events if(arguments.length===0){var keys=objectKeys(events);var key;for(i=0;i=0;i--){this.removeListener(type,listeners[i]);}}return this;};function _listeners(target,type,unwrap){var events=target._events;if(!events)return[];var evlistener=events[type];if(!evlistener)return[];if(typeof evlistener==='function')return unwrap?[evlistener.listener||evlistener]:[evlistener];return unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length);}EventEmitter.prototype.listeners=function listeners(type){return _listeners(this,type,true);};EventEmitter.prototype.rawListeners=function rawListeners(type){return _listeners(this,type,false);};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==='function'){return emitter.listenerCount(type);}else{return listenerCount.call(emitter,type);}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events){var evlistener=events[type];if(typeof evlistener==='function'){return 1;}else if(evlistener){return evlistener.length;}}return 0;}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?Reflect.ownKeys(this._events):[];};// About 1.5x faster than the two-arg version of Array#splice(). function spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k0||ivLen>0){var hash=new MD5();hash.update(tmp);hash.update(password);if(salt)hash.update(salt);tmp=hash.digest();var used=0;if(keyLen>0){var keyStart=key.length-keyLen;used=Math.min(keyLen,tmp.length);tmp.copy(key,keyStart,0,used);keyLen-=used;}if(used0){var ivStart=iv.length-ivLen;var length=Math.min(ivLen,tmp.length-used);tmp.copy(iv,ivStart,used,used+length);ivLen-=length;}}tmp.fill(0);return{key:key,iv:iv};}module.exports=EVP_BytesToKey;},{"md5.js":411,"safe-buffer":470}],346:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var format_1=require("@fast-csv/format");Object.defineProperty(exports,"format",{enumerable:true,get:function get(){return format_1.format;}});Object.defineProperty(exports,"write",{enumerable:true,get:function get(){return format_1.write;}});Object.defineProperty(exports,"writeToStream",{enumerable:true,get:function get(){return format_1.writeToStream;}});Object.defineProperty(exports,"writeToBuffer",{enumerable:true,get:function get(){return format_1.writeToBuffer;}});Object.defineProperty(exports,"writeToString",{enumerable:true,get:function get(){return format_1.writeToString;}});Object.defineProperty(exports,"writeToPath",{enumerable:true,get:function get(){return format_1.writeToPath;}});Object.defineProperty(exports,"CsvFormatterStream",{enumerable:true,get:function get(){return format_1.CsvFormatterStream;}});Object.defineProperty(exports,"FormatterOptions",{enumerable:true,get:function get(){return format_1.FormatterOptions;}});var parse_1=require("@fast-csv/parse");Object.defineProperty(exports,"parse",{enumerable:true,get:function get(){return parse_1.parse;}});Object.defineProperty(exports,"parseString",{enumerable:true,get:function get(){return parse_1.parseString;}});Object.defineProperty(exports,"parseStream",{enumerable:true,get:function get(){return parse_1.parseStream;}});Object.defineProperty(exports,"parseFile",{enumerable:true,get:function get(){return parse_1.parseFile;}});Object.defineProperty(exports,"ParserOptions",{enumerable:true,get:function get(){return parse_1.ParserOptions;}});Object.defineProperty(exports,"CsvParserStream",{enumerable:true,get:function get(){return parse_1.CsvParserStream;}});},{"@fast-csv/format":146,"@fast-csv/parse":150}],347:[function(require,module,exports){'use strict';var Buffer=require('safe-buffer').Buffer;var Transform=require('readable-stream').Transform;var inherits=require('inherits');function throwIfNotStringOrBuffer(val,prefix){if(!Buffer.isBuffer(val)&&typeof val!=='string'){throw new TypeError(prefix+' must be a string or a buffer');}}function HashBase(blockSize){Transform.call(this);this._block=Buffer.allocUnsafe(blockSize);this._blockSize=blockSize;this._blockOffset=0;this._length=[0,0,0,0];this._finalized=false;}inherits(HashBase,Transform);HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding);}catch(err){error=err;}callback(error);};HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest());}catch(err){error=err;}callback(error);};HashBase.prototype.update=function(data,encoding){throwIfNotStringOrBuffer(data,'Data');if(this._finalized)throw new Error('Digest already called');if(!Buffer.isBuffer(data))data=Buffer.from(data,encoding);// consume data var block=this._block;var offset=0;while(this._blockOffset+data.length-offset>=this._blockSize){for(var i=this._blockOffset;i0;++j){this._length[j]+=carry;carry=this._length[j]/0x0100000000|0;if(carry>0)this._length[j]-=0x0100000000*carry;}return this;};HashBase.prototype._update=function(){throw new Error('_update is not implemented');};HashBase.prototype.digest=function(encoding){if(this._finalized)throw new Error('Digest already called');this._finalized=true;var digest=this._digest();if(encoding!==undefined)digest=digest.toString(encoding);// reset state this._block.fill(0);this._blockOffset=0;for(var i=0;i<4;++i){this._length[i]=0;}return digest;};HashBase.prototype._digest=function(){throw new Error('_digest is not implemented');};module.exports=HashBase;},{"inherits":364,"readable-stream":467,"safe-buffer":348}],348:[function(require,module,exports){arguments[4][212][0].apply(exports,arguments);},{"buffer":214,"dup":212}],349:[function(require,module,exports){var hash=exports;hash.utils=require('./hash/utils');hash.common=require('./hash/common');hash.sha=require('./hash/sha');hash.ripemd=require('./hash/ripemd');hash.hmac=require('./hash/hmac');// Proxy hash functions to the main object hash.sha1=hash.sha.sha1;hash.sha256=hash.sha.sha256;hash.sha224=hash.sha.sha224;hash.sha384=hash.sha.sha384;hash.sha512=hash.sha.sha512;hash.ripemd160=hash.ripemd.ripemd160;},{"./hash/common":350,"./hash/hmac":351,"./hash/ripemd":352,"./hash/sha":353,"./hash/utils":360}],350:[function(require,module,exports){'use strict';var utils=require('./utils');var assert=require('minimalistic-assert');function BlockHash(){this.pending=null;this.pendingTotal=0;this.blockSize=this.constructor.blockSize;this.outSize=this.constructor.outSize;this.hmacStrength=this.constructor.hmacStrength;this.padLength=this.constructor.padLength/8;this.endian='big';this._delta8=this.blockSize/8;this._delta32=this.blockSize/32;}exports.BlockHash=BlockHash;BlockHash.prototype.update=function update(msg,enc){// Convert message to array, pad it, and join into 32bit blocks msg=utils.toArray(msg,enc);if(!this.pending)this.pending=msg;else this.pending=this.pending.concat(msg);this.pendingTotal+=msg.length;// Enough data, try updating if(this.pending.length>=this._delta8){msg=this.pending;// Process pending data in blocks var r=msg.length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length);if(this.pending.length===0)this.pending=null;msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24&0xff;res[i++]=len>>>16&0xff;res[i++]=len>>>8&0xff;res[i++]=len&0xff;}else{res[i++]=len&0xff;res[i++]=len>>>8&0xff;res[i++]=len>>>16&0xff;res[i++]=len>>>24&0xff;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;for(t=8;tthis.blockSize)key=new this.Hash().update(key).digest();assert(key.length<=this.blockSize);// Add padding to key for(var i=key.length;i>>3;}exports.g0_256=g0_256;function g1_256(x){return rotr32(x,17)^rotr32(x,19)^x>>>10;}exports.g1_256=g1_256;},{"../utils":360}],360:[function(require,module,exports){'use strict';var assert=require('minimalistic-assert');var inherits=require('inherits');exports.inherits=inherits;function isSurrogatePair(msg,i){if((msg.charCodeAt(i)&0xFC00)!==0xD800){return false;}if(i<0||i+1>=msg.length){return false;}return(msg.charCodeAt(i+1)&0xFC00)===0xDC00;}function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg==='string'){if(!enc){// Inspired by stringToUtf8ByteArray() in closure-library by Google // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143 // Apache License 2.0 // https://github.com/google/closure-library/blob/master/LICENSE var p=0;for(var i=0;i>6|192;res[p++]=c&63|128;}else if(isSurrogatePair(msg,i)){c=0x10000+((c&0x03FF)<<10)+(msg.charCodeAt(++i)&0x03FF);res[p++]=c>>18|240;res[p++]=c>>12&63|128;res[p++]=c>>6&63|128;res[p++]=c&63|128;}else{res[p++]=c>>12|224;res[p++]=c>>6&63|128;res[p++]=c&63|128;}}}else if(enc==='hex'){msg=msg.replace(/[^a-z0-9]+/ig,'');if(msg.length%2!==0)msg='0'+msg;for(i=0;i>>24|w>>>8&0xff00|w<<8&0xff0000|(w&0xff)<<24;return res>>>0;}exports.htonl=htonl;function toHex32(msg,endian){var res='';for(var i=0;i>>0;}return res;}exports.join32=join32;function split32(msg,endian){var res=new Array(msg.length*4);for(var i=0,k=0;i>>24;res[k+1]=m>>>16&0xff;res[k+2]=m>>>8&0xff;res[k+3]=m&0xff;}else{res[k+3]=m>>>24;res[k+2]=m>>>16&0xff;res[k+1]=m>>>8&0xff;res[k]=m&0xff;}}return res;}exports.split32=split32;function rotr32(w,b){return w>>>b|w<<32-b;}exports.rotr32=rotr32;function rotl32(w,b){return w<>>32-b;}exports.rotl32=rotl32;function sum32(a,b){return a+b>>>0;}exports.sum32=sum32;function sum32_3(a,b,c){return a+b+c>>>0;}exports.sum32_3=sum32_3;function sum32_4(a,b,c,d){return a+b+c+d>>>0;}exports.sum32_4=sum32_4;function sum32_5(a,b,c,d,e){return a+b+c+d+e>>>0;}exports.sum32_5=sum32_5;function sum64(buf,pos,ah,al){var bh=buf[pos];var bl=buf[pos+1];var lo=al+bl>>>0;var hi=(lo>>0;buf[pos+1]=lo;}exports.sum64=sum64;function sum64_hi(ah,al,bh,bl){var lo=al+bl>>>0;var hi=(lo>>0;}exports.sum64_hi=sum64_hi;function sum64_lo(ah,al,bh,bl){var lo=al+bl;return lo>>>0;}exports.sum64_lo=sum64_lo;function sum64_4_hi(ah,al,bh,bl,ch,cl,dh,dl){var carry=0;var lo=al;lo=lo+bl>>>0;carry+=lo>>0;carry+=lo>>0;carry+=lo>>0;}exports.sum64_4_hi=sum64_4_hi;function sum64_4_lo(ah,al,bh,bl,ch,cl,dh,dl){var lo=al+bl+cl+dl;return lo>>>0;}exports.sum64_4_lo=sum64_4_lo;function sum64_5_hi(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0;var lo=al;lo=lo+bl>>>0;carry+=lo>>0;carry+=lo>>0;carry+=lo>>0;carry+=lo>>0;}exports.sum64_5_hi=sum64_5_hi;function sum64_5_lo(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var lo=al+bl+cl+dl+el;return lo>>>0;}exports.sum64_5_lo=sum64_5_lo;function rotr64_hi(ah,al,num){var r=al<<32-num|ah>>>num;return r>>>0;}exports.rotr64_hi=rotr64_hi;function rotr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0;}exports.rotr64_lo=rotr64_lo;function shr64_hi(ah,al,num){return ah>>>num;}exports.shr64_hi=shr64_hi;function shr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0;}exports.shr64_lo=shr64_lo;},{"inherits":364,"minimalistic-assert":414}],361:[function(require,module,exports){'use strict';var hash=require('hash.js');var utils=require('minimalistic-crypto-utils');var assert=require('minimalistic-assert');function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash;this.predResist=!!options.predResist;this.outLen=this.hash.outSize;this.minEntropy=options.minEntropy||this.hash.hmacStrength;this._reseed=null;this.reseedInterval=null;this.K=null;this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||'hex');var nonce=utils.toArray(options.nonce,options.nonceEnc||'hex');var pers=utils.toArray(options.pers,options.persEnc||'hex');assert(entropy.length>=this.minEntropy/8,'Not enough entropy. Minimum is: '+this.minEntropy+' bits');this._init(entropy,nonce,pers);}module.exports=HmacDRBG;HmacDRBG.prototype._init=function init(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8);this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,'Not enough entropy. Minimum is: '+this.minEntropy+' bits');this._update(entropy.concat(add||[]));this._reseed=1;};HmacDRBG.prototype.generate=function generate(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw new Error('Reseed is required');// Optional encoding if(typeof enc!=='string'){addEnc=add;add=enc;enc=null;}// Optional additional data if(add){add=utils.toArray(add,addEnc||'hex');this._update(add);}var temp=[];while(temp.length>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity;}else{m=m+Math.pow(2,mLen);e=e-eBias;}return(s?-1:1)*m*Math.pow(2,e-mLen);};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax;}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else{value+=rt*Math.pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias;}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0;}}for(;mLen>=8;buffer[offset+i]=m&0xff,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&0xff,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128;};},{}],363:[function(require,module,exports){(function(global){'use strict';var Mutation=global.MutationObserver||global.WebKitMutationObserver;var scheduleDrain;{if(Mutation){var called=0;var observer=new Mutation(nextTick);var element=global.document.createTextNode('');observer.observe(element,{characterData:true});scheduleDrain=function scheduleDrain(){element.data=called=++called%2;};}else if(!global.setImmediate&&typeof global.MessageChannel!=='undefined'){var channel=new global.MessageChannel();channel.port1.onmessage=nextTick;scheduleDrain=function scheduleDrain(){channel.port2.postMessage(0);};}else if('document'in global&&'onreadystatechange'in global.document.createElement('script')){scheduleDrain=function scheduleDrain(){// Create a